专栏首页每天学Java每日面试题推送及讲解-20190409

每日面试题推送及讲解-20190409

今日面试题

  • 对于Java的位运算符你了解多少。
  • Java内存和性能的优化你有没有一点建议
  • 数组是无法动态扩展,但是ArrayList又是基于数组的,为什么ArrayList可以扩容呢?
  • JavaScript如何得到"yyyy-MM-dd"格式的当前日期

上期面试题:

每日面试题推送及讲解-20190408

面试题分析

第一题是对于Java运算符的考核,位运算符主要是针对二进制,整型(byte、char、short、int、long)数据类型的二进制进行的移位操作。运算符其中有以下几种:

  • 与运算符:& 如果相对应位都是1,则结果为1,否则为0
  • 非运算符:~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
  • 或运算符:| 如果相对应位都是0,则结果为0,否则为1
  • 异或^ 如果相对应位值相同,则结果为0,否则为1
  • 移位运算符中左移:<< 右移:<< 右移补零:>>>

在Java基础中,位运算符可能是比较难理解的且可读性不强,但是在Java一些源码中,我们会发现很多这样的操作,因为普遍认为基于二进制的运算会比数字直接进行运算要快

第二题是对于Java内存考核,说起内存和性能的优化可能有点唬人,但是我们要从根源考虑就会有思路,内存的优化一般会跟对象有关系,所以我们需要避免建立无用的对象,而性能更多的就是代码层面上体现,比如异常机制,自动拆装箱。所以我们想合理利用内存和CPU来提高性能和节约成本,就需要在使用Java开发的过程中,尽量写出合理的代码,比如减少对象的创建,能使用基本数据类型就尽量不要用对象,弃用一些Java类(比如HashTable)......

第三题是对集合框架的考核,回答这个问题需要我们对于ArrayList的扩容机制有一定的了解,在ArrayList中扩容只是一个表象,在内部实际上但是实际上我们是改变了数组的引用,换句话说就是用新容量的数组替代旧的数组,我们可以通过grow()方法进行源码追踪

第四题考察的是JS,对于Java开发来说了解前端的东西是非常正常的一件事情,实际上Java和JavaScript语法是相似的,在JS中我们想获得日期,new Date()得到的格式是:Mar 31 10:10:43 UTC+0800 2012。Java中提供格式化的类,但是JavaScript没有现成的方法,如果想要指定的格式就需要我们自己去写一个方法进行转换。

面试题答案

面试题详细答案都在题库里面,如果不是最新的题目,大家可以使用题库的搜索功能,来看看吧......

本文分享自微信公众号 - 每天学Java(gh_fddfb9d03324),作者:每天学Java

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Class类文件结构

    “ 我们都知道Java虚拟机不和包括Java在的任何语言绑定,它只与Class文件这种特定的二进制文件格式所关联。而Class文件是由java文件经过javac...

    每天学Java
  • Java底层-Javac编译器

    当我们执行这个命令后,就会得到一个class文件,这一步其实就是编译,在前面一节我们提及到Java不同于C/C++,它首先需要将Java文件编译成class文件...

    每天学Java
  • Java内存模型

    “ Java内存模型(Java Memory Model,JMM)的定义是Java虚拟机试图实现Java程序在各种平台下都能达到一致的内存访问效果。”

    每天学Java
  • 14-OpenStack中的Vlan网络

    小朋友呢
  • Selenium处理单选项下拉框列表

    UI自动化测试中,经常会遇到下拉框列表选项,常见的下拉框列表有:单选项下拉框,多选项下拉框。

    Altumn
  • (六十四)c#Winform自定义控件-温度计(工业)

    GitHub:https://github.com/kwwwvagaa/NetWinformControl

    冰封一夏
  • 认识Java Core和Heap Dump

    什么是Java Core和Heap Dump Java程序运行时,有时会产生Java Core及Heap Dump文件,它一般发生于Java程序遇到致命问题的情...

    静默虚空
  • 巧用外部表避免大量的insert (r4笔记第71天)

    昨天开发咨询我一个问题,希望我对下面的语句进行调优。 语句类似下面的形式 SELECT subscriber_no FROM SUBSCRIBER S W...

    jeanron100
  • Linux系统下如何优雅地关闭Java进程?

    Linux系统下如何kill掉一个后台Java进程,相信童鞋们都知道如何操作。首先使用ps命令查找该Java进程的进程ID,然后使用kill命令进行杀掉。命令如...

    用户6543014
  • 不小心执行 rm -f,该如何恢复?

    每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有 bug,呵呵。

    昱良

扫码关注云+社区

领取腾讯云代金券