RSS

Java程序员去面试,需要准备哪些知识点?


     
      年中或者年底绩效出来后,总是几家欢乐几家愁。绩效好的机会多的老板信任的,会更加有干劲。绩效不好的,老板不看好的,可能就会有离职的冲动。
     如果你有离职的想法,那么还是需要花一些时间准备一下,毕竟现在外面好的互联网公司对程序员的要求还是蛮高的,需要你有各种能耐。
     这篇文章主要是介绍一下我自己从毕业到现在碰到的一些面试题。部分题目给出了答案,部分试题则没有。
     JAVA 基础
     int 占用几个字节
     答案:
     4个
     不用第三个变量,如何交换两个变量的值
     public class TestSwitchVar { public static void main { int a = 1; int b = 2; a = a + b; b = a - b; a = a - b; System.out.println; System.out.println; }}JAVA动态代理使用什么技术实现的
     答案:
     反射
     JAVA类加载器的原理
     答案:
     学习JAVA类加载器
     集合类
     HashSet的add方法是如何实现的,如何去重的;
     答案:
     HashSet的底层是使用HashMap来实现的,调用add方法的时候,底层也是用HashMap的put方法来实现的。HashSet之所以具备去重的能力,也是因为HashMap的put方法中,如果发现key已经存在了,会覆盖key对应的值,但是对于HashSet来说,还是原来那个key。也就是说Key set并没有任何变动。
     HashMap的实现原理;
     答案:
     看我之前写的HashMap的put和get方法原理和 HashMap扩容以及HashMap多线程下发生死循环的原因 这几篇博文即可。
     JDK 1.7 ConcurrentHashMap的实现原理
     答案:
     ConcurrentHashMap学习
     ConcurrentHashMap在JDK 1.8的实现跟JDK7有什