1、Java的运行(基础必备)
起码了解底层IDE又是如何执行java程序吧!很多人其实并不了解。
2、JVM相关(包括了各个版本的特性)
一般面试有超过3年Java经验的开发者的时候,我每次肯定必问JVM相关的知识。或许JVM不是唯一决定技术能力好坏的面试问题,但是绝对可以佐证Java开发能力的高低。
JVM的相关知识点:JVM内存模型和结构GC原理,性能调优调优:Thread Dump, 分析内存结构
class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程等等
3、数据类型
这条没有什么好多说的,无非就是Java中的基本类型和对象类型的掌握
4.对象和实例,对象的创建
这部分主要了解class和instance的概念以及差别
5.面向对象编程的概念
Java中很多特性或者说知识点都是和java面向对象编程概念相关的。
6.流程控制
if, switch, loop, for, while 等流程控制的语法
7.访问控制
这是Java封装特性的一个基础
8.集合框架
做Java开发,没有不用集合框架的
9.IO流
IO在Java中不仅仅是文件读写那么简单,也包括了socket网络的读写等等一切的输入输出操作。
10.一些不常用的基础知识点
equals,hashcode,string/stringbuffer,final ,finally,finalize等
11.多线程并发
多线程的实现和启动callable与runable区别syncrhoized,reentrantLock各自特点和比对线程池future异步方式获取执行结果concurrent包lock
12.Java中也是提供了可以直接操作TCP协议、UDP协议的API。在需要强调网络性能的情况下,可以直接使用TCP/UDP 进行通讯
13.时间和日期的处理
14.XML解析/ JSON解析
15.Maven的使用
这个也要了解一下,虽然不是Java内的技术,但是他给Java的发展带来的便利是看得见的
16.泛型、标注、RMI、JNI
泛型:一般的应用或者是业务的开发,只需要简单使用,不一定会用到定义泛型这样的操作, 但是开发一些基础公共组件会使用到
标注:对于一般开发者,会使用标注即可
RMI:RemoteMethodInvocation ,Java语言特有的远程调用接口
JNI:Java Native Interface,可以允许Java中调用本地接口方法,一般用于C/C++代码的调用