前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每日面试题推送及讲解-20190409

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

作者头像
每天学Java
发布2020-06-02 10:10:49
3120
发布2020-06-02 10:10:49
举报
文章被收录于专栏:每天学Java每天学Java

今日面试题

  • 对于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没有现成的方法,如果想要指定的格式就需要我们自己去写一个方法进行转换。

面试题答案

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 每天学Java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日面试题
  • 面试题分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档