后续会持续更新,广告回来更精彩!如果想看原理可以看看我的另几篇文章
没有过多的讲解原理,你们只要背会了,就能快乐两年半。
一.java基础
1.八大基础类型
数字型: 字节类型(byte)、短整型short、整型int、长整型Long、单精度浮点数float、双精度浮点数double
字符型: 字符类型char、
布尔型: 布尔类型boolean、
2.java三大特性
封装: 使用private关键字,让对象私有,防止无关的程序去使用。
继承: 继承某个类,使子类可以使用父类的属性和方法。
多态: 同一个行为,不同的子类具有不同的表现形式。
3.重载和重写的区别
重载: 发生在同一类中,函数名必须一样,参数类型、参数个数、参数顺序、返回值、修饰符可以不一样。
重写: 发生在父子类中,函数名、参数、返回值必须一样,访问修饰符必须大于等于父类,异常要小于等于父类,父类方法是private不能重写。
4.pubilc、protected、(dafault)不写、private修饰符的作用范围
pubilc: 同类、同包、子类、不同包都可以使用。
protected: 同类、同包、子类可以使用,不同包不能。
(dafault)不写: 同类、同包可以使用,子类、不同包不能。
private: 只有同类可以。
5.==和equals的区别
6.hashcode()值相同,equals就一定为true
7.为什么重写equals(),就要重写hashcode()?
8.short s = 1;s = s + 1;(程序1)和 short s = 1; s += 1;(程序2)是否都能正常运行
9.说出下面程序的运行结果,及原因
10.&和&&的区别
11.String、StringBuffer、StringBuilder的区别
12.String rap = new String(“ctrl”);创建了几个对象?
13.什么是反射
14.浅拷贝和深拷贝的区别
15.构造器能被重写吗
16.并发和并行
17.实例变量和类变量。
18.说出下面程序的运行结果,及原因
19.抽象类和接口的区别
20.Error和Exception有什么区别
21.NoClassDefFoundError和ClassNotFoundException区别
22.如果try{} 里有一个 return 语句,那么finally{} 里的代码会不会被执行,什么时候被执行,在 return 前还是后?
23.看一面代码执行结果是啥
24.final关键字有哪些用法?
25.jdk1.8的新特性
26.http中重定向和转发的区别
27.get和post请求的区别 delete、put
28.cookie和session的区别
29.java中的数据结构
30.什么是跨域?跨域的三要素
31.tomcat三个默认端口及其作用
32.throw 和 throws 的区别?
33.说一下你熟悉的设计模式
34.实例化对象有哪几种方式
35.java中什么样的类不能被实例化
36.序列化和反序列化
37.序列化的优点
38.你知道什么是单点登录吗?
39.实现单点登录的方式
40.sso(单点登录)与OAuth2.0(授权)的区别?
41.如何防止表单提交
42.泛型是什么?有什么好处?
43.值传递和引用传递
二.java集合
1.List、Set、Map的区别
2.List、Set、Map常用集合有哪些?
3.ArrayList的初始容量是多少?扩容机制是什么?扩容过程是怎样?
4.什么是哈希表
5.什么是哈希冲突
6.解决哈希冲突
7.HashMap的hash()算法,为什么不是h=key.hashcode(),而是key.hashcode()^ (h>>>16)
8.为什么HashMap的初始容量和扩容都是2的次幂
9.HashMap如果指定了不是2的次幂的容量会发生什么?
10.HashMap为什么线程不安全
11.解决Hashmap的线程安全问题
12.ConcurrentHashMap的原理
13.为什么用synchronized代替ReentrantLock
14.HashMap为什么使用链表
15.HashMap为什么使用红黑树
16.HashMap为什么不一上来就使用红黑树
17.说说你对红黑树的理解
18.为什么链表长度大于8,并且表的长度大于64的时候,链表会转换成红黑树?
19.为什么转成红黑树是8呢?而重新转为链表阈值是6呢?
20.为什么负载因子是0.75?
21.什么时候会扩容?
22.为什么不是满了扩容?
23.扩容过程
24.HashMap和Hashtable的区别
25.集合为什么要用迭代器(Iterator)
三.多线程
1.线程是什么?多线程是什么?
2.守护线程和用户线程
3.线程的各个状态
4.线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等
5.wait()和sleep()的区别?
6.为什么 wait()、notify()、notifyAll()方法定义在 Object 类里面,而不是 Thread 类?
7.start()和run()的区别
8.实现多线程的方式
9.Runnable和Callable的区别
10.线程池的好处
11.线程池的七大参数
12.线程池的执行过程
13.四大方法
14.四大拒绝策略
15.shutdown 和 shutdownNow 的区别?
16.什么是死锁?
17.造成死锁的四个必要条件
18.线程安全主要是三方面
19.volatile和synchronized的区别
20.synchronized和lock的区别
21.JMM(java内存模型)
22.JMM的约定
23.JMM的八个命令
24.为什么要有JMM,用来解决什么问题?
四.jvm
1.jvm是什么?
2.jvm的作用
3.java文件的加载过程
4.jdk、jre、jvm的区别
5.类加载器的作用
6.类加载器的类型
7.双亲委派机制的加载过程
8.双亲委派机制的优缺点
9.为什么要打破双亲委派机制
10.打破双亲委派机制的方式
11.jvm的每个部分储存的都是什么
12.内存溢出(oom)和栈溢出
13.垃圾回收的作用区域
14.怎么判断对象是否可回收
15.四种引用类型 强引用 软引用 弱引用 虚引用
16.垃圾回收算法
17.轻GC(Minor GC)和 重GC(Full GC)
18.什么时候会发生重GC
五.锁
1.悲观锁和乐观锁
2.悲观锁和乐观锁的场景
3.自旋锁和自适应自旋锁
4.无锁、偏向锁、轻量级锁、重量级锁
5.公平锁和非公平锁
6.可重入锁
7.独享锁和共享锁
8.互斥锁和读写锁
9.分段锁
10.锁优化技术
六.CAS原理
七.Redis高频面试题
八.常用八大排序算法和四大查找算法
九.数据库
十.Mybatis常见面试题
十一.SpringMVC常见面试题
十二.Spring常见面试题
十三.SpringBoot常见面试题
十四.springCloud常见面试题
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。