学习Java的21个技术点
- 学习Java的21个技术点
- 一 Java的运行基础必备
- 二 JVM相关包括各个版本特性
一. Java的运行(基础必备)
- java命令:javac编译java文件为class文件,java命令的使用,带packpage的java类如何在命令行中启动
- java路径:java程序涉及到的各个路径(classpath,java,library,path,java运行的主目录)
- 数据类型(主要知识点):
基本类型:int , long ,float ,double ,boolean 等
对应的对象类型:Integer等类型的基本类型转换,装箱和拆箱
Object类型:equals,hashcode
String类型的特点 - 对象和实例,对象的创建(需要了解class个instance的概念以及差别)
- 访问控制:public , protected , default , private 对与class的字段及方法的修饰作用
- 流程控制:if , switch , loop , for , while 等流程控制的语法
- 面向对象的概念(主要知识点):
面向对象的三大特征:封装 , 继承 , 多态 ;各自的定义概念,有哪些特性体现,各自的使用场景
静态多分派,动态单分派的概念
重载的概念及使用
继承:接口多实现,基类单继承
抽象:抽象类,接口
多态:方法覆盖的概念及使用
接口回调 - Static关键字
静态属性的定义,使用以及类加载时如何初始化
静态方法的定义及使用
静态类的定义及使用
静态代码块的定义及初始化时机 - 基础知识点(暂时归纳如下)
equals , hashcode , string/stringbuffer , final , finally , finalize - 集合框架
这里包括如下内容(并发相关不包含在内):
集合框架的体系:基础Collection , Map具体集合实现的内容
List , Set , Map 具体的实现,内部结构 , 特殊方法 , 适用场景等
集合相关的工具类Collecttions等的用法 - 异常框架
异常的体系:Throwable , Exception , RuntimeException , Error
RuntimeException和一般Exception的区别,具体处理方法等 - Java IO
基本的IO体系:包括InputStream , OutPutStream , Reader/Writer , 文件读取 , 各种流读取等
NIO的概念,具体使用方式和使用场景 - 多线程并发
多线程的实现和启动
callable与runable的区别
synchronized,reentrantLock各自的特点和对比
线程池
future异步方式获取执行结果
concurrent包
lock机制 - 网络编程
TCP/IP 、UDP协议的API
Socket应用
MINA、Netty通讯框架 - 时间日期处理
熟练使用API处理时间
JDK8中对时间的处理已经更新,更加简化
Joda时间框架 - XML解析/JSON解析
XML:了解DOM解析和SAX解析的基本原理和各自的使用场景
JSON:了解一些常用的JSON框架的用法,如:Jackson , FastJson ,Gson等 - Maven的使用
Maven在依赖的引入和管理,开发流程的更新和发布产出,乃至版本更新,使用Maven都可以大大简化开发的复杂程度,必备知识点 - 泛型
JDK5开始引入的语法糖,在编写java代码时会有些许便利,特别是开发一些基础公共组件时会使用到。 - 标注
JDK5之后引入,Spring3之前使用xml作为标准配置文件,之后广泛使用标注尤其是spring-boot兴起之后,越来越推崇标注来简化xml配置。 - RMI
RemoteMethodInvocation,Java语言特有的远程调用接口,使用简单,不过跨语言的情况下需要使用webservice等其他方式来支持。一般情况下很少使用,可以实现程序远程启动停止等控制。 - JNI
JavaNativeInterface,可以允许Java中调用本地接口方法,一般用于C/C++代码的调用。需要注意的是java中加载so/dll文件的路径问题。
二. JVM相关(包括各个版本特性)
- GC原理,性能调优
- 调优:Thread Dump,分析内存结构
- Class二进制字节码结构,ClassLoader体系,Class加载过程,实例创建过程
- 方法执行过程:Java各大版本更新提供的新特性(需要简单了解)