年中或者年底绩效出来后,总是几家欢乐几家愁。绩效好的机会多的老板信任的,会更加有干劲。绩效不好的,老板不看好的,可能就会有离职的冲动。
如果你有离职的想法,那么还是需要花一些时间准备一下,毕竟现在外面好的互联网公司对程序员的要求还是蛮高的,需要你有各种能耐。
这篇文章主要是介绍一下我自己从毕业到现在碰到的一些面试题。部分题目给出了答案,部分试题则没有。
int 占用几个字节
答案:
4个
不用第三个变量,如何交换两个变量的值
public class TestSwitchVar { public static void main(String[] args) { int a = 1; int b = 2; a = a + b; b = a - b; a = a - b; System.out.println(a); System.out.println(b); } }
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学习ArrayList是线程安全的吗
答案:
线程不安全的ArrayListCopyOnWriteArrayList是如何实现线程安全的;
答案:
CopyOnWriteArrayList的使用场景貌似很少很少描述JAVA NIO的工作原理,相比JAVA IO有什么优势
答案:
学习NIOsleep方法和wait方法有什么区别
答案:
1、wait方法释放锁,sleep方法不释放锁
2、wait方法必须在同步代码块里,比如synchronize关键里,但是sleep方法没有这限制
wait()方法调用后,到底发生了什么事情
答案:
Object wait方法除了使用synchronized关键字之外,还有其他同步的做法吗
答案:
volatile关键字
lock()和unlock()
volatile关键字有什么用
答案:
浅析volatile关键字悲观锁和乐观锁的区别
答案:
学习一下CAS垃圾回收算法有哪几种?各种有什么特点
答案:
JVM专栏什么时候触发young gc,什么时候触发full gc
答案:
新生代中的Eden满了就就行young gc,老年代满了,就进行full gc。
如果JAVA进程突然挂掉了,怎么查看挂掉的原因
答案:
java进程挂掉后,会产生core dump 文件,可以使用jstack 命令输出线程堆栈信息。
JVM是怎么调优的
答案
JVM调优-学习篇答案:
Mysql 索引知识点什么是覆盖索引
答案:
Mysql 索引知识点什么情况下,需要建立复合索引
答案:
Mysql 索引知识点索引原理是什么,底层用什么数据结构
答案:
Mysql B+树学习应用的数据库是如何做容灾的
innodb myisam的区别
答案:
Mysql 索引知识点mysql批量插入数据的时候,怎么优化
用过哪些NoSQL数据库,简单介绍一下
如何用JAVA代码解析一个HTTP请求,描述一下实现的思路
HTTP 1.0 HTTP1.1 HTTP 2.0的区别
答案:
HTTP1.0 HTTP 1.1 HTTP 2.0主要区别Spring 加载bean生命周期
答案:
Spring中的bean的生命周期,如果从细节上来讲,是非常复杂的,从粗粒度上来讲就是:
1、调用构造方法创建对象;
2、调用对象的set方法设置属性值;
3、可以使用Spring提供的一些接口,可以在bean set方法调用完后,做些处理工作或者注入一些自定义的代码实现;
4、整个bean初始完后,所有的依赖对象注入后,如果想做一些初始化工作,可以利用@PostConstruct等一些注解
5、销毁bean之前做一些处理工作
6、销毁bean
Spring AOP的实现原理
请写出一个高性能线程安全的单例出来
public class Singleton { private static Singleton singleton = null; private Singleton() { } public static Singleton getInstance() { if (singleton != null) { return singleton; } synchronized (Singleton.class) { if (singleton== null) { singleton= new Singleton(); } } } }
描述一下模板设计模式
你去面试,需要准备什么知识点?