Java常见的基础面试题

许多小伙伴们都想去鹅厂、阿里这种大厂,那么大家一定要知道,大厂往往考察你的不会是多么先进的技术,而真正关注你的是你的基础,因为当你进去以后做的是平台开发,一定要了解底层源码以及编码特性才能提高开发效率。

首先是大家经常会遇到的一个问题:

你知道运算符&和&&,|和||的区别么?

&为按位与操作,只有对应的两个二进制数为1,结果为1  位运算是最快的

例如1&1 = 1     1&0 = 0    0&1 = 0  0&0 = 0

|位按位或操作,有一个为1的时候,结果就为1

例如1|0 = 1   0|1=1   1|1=1

&&和||称为短路运算符,在逻辑判断中使用

& 和 && 都可以实现 和 这个功能

区别:& 两边都运算,而 && 先算 && 左侧,若左侧为false 那么右侧就不运算,判断语句中推荐使用 &&,效率更高

​| 和 || 和上面类似

区别:||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断

用最有效率的方法计算2乘以8?

2 << 3   意思是往左移几位就是乘以2的几次方     2*2的3次方

写个方法,传递两个非0的int数值进去,实现变量交换的方式,有几种方式?

方法一:

public static void swap(int a, int b){

      System.out.printf("a=%d, b=%d",a,b);

       a = a + b;

       b = a - b ;

       a = a - b;

       System.out.printf("\na=%d, b=%d",a,b);

   }

方法二:

public static void swap2(int a, int b){

​    System.out.printf("a=%d, b=%d",a,b);

​   a = a^b;   // a1 = a^b

    b = b^a;   // b = b^a^b

    a = a^b;   // a = a1^b = a^b^a

​    System.out.printf("\na=%d, b=%d",a,b);

}

说下java数据类型分类?

基础数据类型:byte、short、int、long、float、double、char、boolean

引用数据类型:其他都是引用类型

String和Enum分别是什么类型:引用类型

定义变量 int i = 5;  return i++; 和 return ++i; 返回结果是什么

第一个输出的答案为5,第二个输出的答案为6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容