一、java基础
二、集合
三、多线程
四、jvm
五、常用框架
六、组件-MQ、Dubbo、Redis
七、数据库
八、算法
九、非技术常用问答
1、&与&&,|与||
&与&&:只有两边都是true时,结果才是true;
不同之处:&两边都要运算,&&先算左侧,左侧false则右侧不计算;
|与||与上述类似,当两边计算结果至少有一个是true时,结果才是true;
不同之处:|两边都要运算,||先算左侧,左侧true则右侧不计算;
2、最有效计算2乘以8
原理:位运算时CPU直接支持的,效率高
8是2的3次方,2*8 == 2<<3
1 //常见的JDK源码??HashMap的默认容量16 2 //1<<4,就相当于 1 * 2的4次方,1*16 3 int DEFAULT_INITIAL_CAPACITY = 1 << 4;
3、两个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); }
方法二:异或,?个数 与另一数 异或两次 是本身,与本身异或是0;
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 = a^b; //a = a1^b = a^b^a System.out.printf("\na=%d, b=%d",a,b); }
4、java语言的基础类型
基础数据类型:byte、short、int、long、float、double、char、boolean
原文:https://www.cnblogs.com/huasky/p/13186131.html