你必须掌握的 21 个 Java 核心技术!
往期热门文章: 1、再见!Postman 2、为什么我决定要放弃 okhttp、httpClient? 3、再见了SpringMVC,这个框架有点厉害,甚至干掉了Servlet! 4、推荐一款国产开源监控系统,太强大了!! 5、如何写出让同事无法维护的代码?
经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。
1. JVM相关
不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。
我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。
在JVM这个大类中,我认为需要掌握的知识有:
JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump, 分析内存结构 class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解)
2. Java的运行
这条可能出看很简单,java程序的运行谁不会呢?
不过很多时候, 我们只是单纯通过IDE去执行java程序,底层IDE又是如何执行java程序呢?很多人并不了解。
这个知识点是最最基本的java开发者需要掌握的,第一个肯定是教你如何在命令行中执行java程序,但是很多人一旦把java学完了,IDE用上了,就把这个都忘了。
为什么强调要知道这个呢,知道了java最纯粹的启动方式之后,你才能在启动出问题的时候,去分析当时启动的目录多少,执行命名如何,参数如何,是否有缺失等。
javac 编译java文件为 class 文件 java 命令的使用, 带package的java类如何在命令行中启动 java程序涉及到的各个路径(classpath, java。library。path, java运行的主目录等)
3. 数据类型
可以再了解一些JDK如何自动转换方面的知识,包括装箱拆箱等,还要注意避免装箱之后的类型相等的判断。
基本类型:int, long, float, double, boolean 。。。 对应的对象类型:Integer 等类型到基本类型的转换, 装箱和拆箱 Object类型:equals, hashcode String 类型的特点
4. 对象和实例
在这方面,开发者需要了解class和instance的概念以及之间的差别, 这是java面向对象特性的一个基础。
无继承:分配内存空间, 初始化变量, 调用构造函数 有继承:处理静态动作, 分配内存空间, 变量定义为初始值 , 从基类->子类, 处理定义处的初始化, 执行构造方法
静态属性等从基类->子类进行初始化 默认无参构造方法相关的特性
5. 访问控制
6. 流程控制
7. 面向对象编程的概念
面向对象三大特性:封装,继承,多态; 各自的定义概念,有哪些特性体现出来,各自的使用场景 静态多分派,动态单分派的概念 重载的概念和使用 继承:接口多实现,基类单继承 抽象,抽象类,接口 多态:方法覆盖的概念和使用 接口回调
8. static
静态属性的定义,使用,以及类加载时如何初始化 静态方法的定义和使用 静态类的定义和使用 静态代码块的定义和初始化时机
9. 基础知识点
equals hashcode tring/stringbuffer final finally finalize
10. 集合框架
这个是一个需要多加掌握的部分,做java开发,可以说没有不用到集合框架的,这很重要,这里整理的Java集合面试题及答案你必须都要清楚。
但是这里的知识点并不难,但是对于集合最好要了解内部的实现方式,因为这样有助于你在各个不同的场景选择适合的框架来解决问题,比如有1W个元素的集合,经常要进行contains判断操作,知道了集合的特性或者内部实现,就很容易做出正确的选择。
11. 异常框架
一般遇到异常,直接上抛,或者随便catch一下处理之后对于程序整体运行也没有什么大的影响。不过在企业级设计开发中, 异常的设计与处理的好坏,往往就关系着这个系统整体的健壮性。
12. Java IO
在这中的知识点主要有:
13. 多线程
多线程的实现和启动 callable 与 runable 区别 syncrhoized ,reentrantLock 各自特点和比对 线程池 future 异步方式获取执行结果 concurrent 包 lock
14. 网络
15. 时间日期处理
16. XML解析/JSON解析
17. Maven 使用
18. 泛型
19. 注解
20. RMI
21. JNI
最近热文阅读:
1、再见!Postman 2、为什么我决定要放弃 okhttp、httpClient? 3、再见了SpringMVC,这个框架有点厉害,甚至干掉了Servlet! 4、推荐一款国产开源监控系统,太强大了!! 5、把 Spring Cloud 给拆了!详解每个组件的作用 6、牛逼了!这款软件几乎可以操作所有数据库! 7、Feed流系统设计 8、面试官:String长度有限制吗?是多少?还好我看过 9、Java 如何精确统计页面停留时长? 10、花30分钟,用Jenkins部署码云上的SpringBoot项目 关注公众号,你想要的Java都在这里