一、前言
最近刚读完一本书:《Netty、Zookeeper、Redis 并发实战》,个人觉得 Netty 部分是写得很不错的,读完之后又对 Netty 进行了一波很好的复习(之前用 spring boot + netty + zookeeper 模仿 dubbo 做 rpc 框架,那时候是刚学 netty 后自己造的小轮子)。
虽然对于 Netty 的使用已经比较熟悉了,而且还知道它的底层是基于 Java NIO 做进一步的封装,使得并发性能和开发效率得到大大的提升。但是,对于同步阻塞、同步非阻塞、异步这些概念,还是比较的模糊,一直处于似懂非懂的状态。
所以这两天,一直在网上看看大家对此的评论,也得到了一些启发。而且还有很多同学们提到了 《Netty 权威指南 第二版》 这本书,说前两章对于网络 I/O 模型和 Java I/O 的介绍很不错,所以我也特意去找了一本 pdf 来看看(比较穷。。。)。看了前两章后,确实对于这方面的概念清晰了不少,所以决定写下此文章来记录一下,也分享给更多不清楚这方面理论的同学们,并且也下定决定,有空一定把这本书继续看完,哈哈哈。
专题1:JavaOOP
- 
1、什么是B/S架构?什么是C/S架构 
- 
2、Java都有哪些开发平台? 
- 
3、什么是JDK?什么是JRE? 
- 
4、Java语言有哪些特点 
- 
5、面向对象和面向过程的区别 
- 
6、什么是数据结构? 
- 
7、Java的数据结构有哪些? 
- 
8、什么是OOP? 
- 
9、类与对象的关系? 
- 
10、Java中有几种数据类型 
- 
11、标识符的命名规则。 
- 
12、instanceof关键字的作用 
- 
13、什么是隐式转换,什么是显式转换 
- 
14、Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型 
- 
15、什么是拆装箱? 
- 
16、Java中的包装类都是哪些? 
- 
17、一个java类中包含哪些内容? 
- 
18、那针对浮点型数据运算出现的误差的问题,你怎么解决? 
- 
19、面向对象的特征有哪些方面? 
- 
20、访问修饰符 public,private,protected,以及不写(默认) 时的区别? 
- 
21、String 是最基本的数据类型吗? 
- 
22、float f=3.4;是否正确? 
- 
23、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1; 有错吗? 
- 
24、重载和重写的区别 
- 
25、equals与==的区别 
- 
36、++i与i++的区别 
- 
37、程序的结构有哪些? 
- 
38、数组实例化有几种方式? 
- 
39、Java中各种数据默认值 
- 
40、Java常用包有哪些? 
- 
41、Object类常用方法有哪些? 
- 
42、java中有没有指针? 
- 
43、java中是值传递引用传递? 
- 
44、实例化数组后,能不能改变数组长度呢? 
- 
45、假设数组内有5个元素,如果对数组进行反序,该如何做? 
- 
46、形参与实参区别 
- 
47、构造方法能不能显式调用? 
- 
48、什么是方法重载? 
- 
49、构造方法能不能重写?能不能重载? 
- 
50、内部类与静态内部类的区别? 
- 
51、Static关键字有什么作用? 
- 
52、final在java中的作用,有哪些用法? 
- 
53、StringString StringBuffffer 和 StringBuilder 的区别是什么? 
- 
54、String str=”aaa”,与String str=new String(“aaa”)一样吗? 
- 
55、讲下java中的math类有那些常用方法? 
- 
56、String类的常用方法有哪些? 
- 
57、Java中的继承是单继承还是多继承 
- 
58、Super与this表示什么? 
- 
59、普通类与抽象类有什么区别? 
- 
60、什么是接口?为什么需要接口? 
- 
61、接口有什么特点? 
- 
62、抽象类和接口的区别? 
- 
63、Hashcode的作用 
- 
64、 Java的四种引用,强弱软虚 
- 
65、Java创建对象有几种方式? 
- 
66、有没有可能两个不相等的对象有相同的hashcode 
- 
67、拷贝和浅拷贝的区别是什么? 
- 
68、static都有哪些用法? 
- 
69、a=a+b与a+=b有什么区别吗? 
- 
70、final、finalize()、finally 
- 
71、JDBC操作的步骤 
- 
72、在使用jdbc的时候,如何防止出现sql注入的问题。 
- 
73、怎么在JDBC内调用一个存储过程 
- 
74、是否了解连接池,使用连接池有什么好处? 
- 
75、你所了解的数据源技术有那些?使用数据源有什么好处? 
- 
76、&和&&的区别 
- 
77、静态内部类如何定义 
- 
78、什么是成员内部类 
- 
79、Static Nested Class 和 Inner Class的不同 
- 
80、什么时候用assert 
- 
81、Java有没有goto 
- 
82、数组有没有length()这个方法? String有没有length()这个方法 
- 
83、用最有效率的方法算出2乘以8等於几 
- 
84、float型float f=3.4是否正确? 
- 
85、排序都有哪几种方法?请列举 
- 
86、静态变量和实例变量的区别? 
- 
87、说出一些常用的类,包,接口,请各举5个 
- 
88、a.hashCode() 有什么用?与 a.equals(b) 有什么关系? 
- 
89、Java 中的编译期常量是什么?使用它又什么风险? 
- 
90、在 Java 中,如何跳出当前的多重嵌套循环? 
- 
91、构造器(constructor)是否可被重写(override)? 
- 
92、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 
- 
93、是否可以继承 String 类? 
- 
94、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 
- 
95、String 和 StringBuilder、StringBuffer 的区别? 
- 
96、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分? 
- 
97、char 型变量中能不能存贮一个中文汉字,为什么? 
- 
98、抽象类(abstract class)和接口(interface)有什么异同 ? 
- 
99、静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 
- 
100、Java 中会存在内存泄漏吗,请简单描述。 
- 
101、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被 synchronized修饰? 
- 
102、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用? 
- 
103、如何实现对象克隆? 
- 
104、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)? 
- 
105、一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 
- 
106、Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口? 
- 
107、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制? 
- 108、Java 中的 final 关键字有哪些用法?

专题2:Java集合/泛型
- 
1、ArrayList和linkedList的区别 
- 
2、 HashMap和HashTable的区别 
- 
3、Collection包结构,与Collections的区别 
- 
4、泛型常用特点 (待补充) 
- 
5、说说List,Set,Map三者的区别 
- 
6、Array与ArrayList有什么不一样? 
- 
7、Map有什么特点 
- 
8、集合类存放于 Java.util 包中, 主要有几 种接口 
- 
9、什么是list接口 
- 
10、说说ArrayList(数组) 
- 
11、Vector( 数组实现、 线程同步) 
- 
12、说说LinkList(链表) 
- 
13、什么Set集合 
- 
14、HashSet( Hash 表) 
- 
15、什么是TreeSet(二叉树) 
- 
16、说说LinkHashSet( HashSet+LinkedHashMap) 
- 
17、HashMap(数组+链表+红黑树) 
- 
18、说说ConcurrentHashMap 
- 
19、HashTable(线程安全) 
- 
20、TreeMap(可排序) 
- 
21、LinkHashMap(记录插入顺序) 
- 
22、泛型类 
- 
23、类型通配符? 
- 24、类型擦除

专题3:Java中的IO与NIO
- 
1、Java 中 IO 流? 
- 
2、Java IO与 NIO的区别 
- 
3、常用io类有那些 
- 
4、字节流与字符流的区别 
- 
5、阻塞 IO 模型 
- 
6、<typo id="typo-3740" ignoretag="true" data-origin="非">非</typo>阻塞 IO 模型 
- 
7、多路复用 IO 模型 
- 
8、信号驱动 IO 模型 
- 
9、异步 IO 模型 
- 
10、JAVA NIO 
- 
11、NIO 的缓冲区 
- 
12、NIO 的非阻塞 
- 
13、Channel 
- 
14、Buffer 
- 15、Selector

专题4:Java反射
- 
1、除了使用new创建对象之外,还可以用什么方法创建对象? 
- 
2、Java反射创建对象效率高还是通过new创建对象的效率高? 
- 
3、java反射的作用 
- 
4、哪里会用到反射机制? 
- 
5、反射的实现方式: 
- 
6、实现Java反射的类: 
- 
7、反射机制的优缺点: 
- 
8、Java 反射 API 
- 
9、反射使用步骤(获取 Class 对象、调用对象方法) 
- 
10、获取 Class 对象有几种方法 
- 11、利用反射动态创建对象实例

最后
码字不易,觉得有帮助的可以帮忙点个赞,让更多有需要的人看到
又是一年求职季,在这里,我为各位准备了一套Java程序员精选高频面试笔试真题,来帮助大家攻下BAT的offer,题目范围从初级的Java基础到高级的分布式架构等等一系列的面试题和答案,用于给大家作为参考
以下是部分内容截图
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录










