一、基础
1.核心语言
int a = 10;
关键字:50个,2个不能用,2个Java 5+,冷僻关键字(transient、volatile、native、strictfp)
标识符:3条命名规则;2条建议规则;
运算符:优先级和结合性;
字面量:整数、字符、小数、布尔、字符串、引用、类型
分隔符:
2.程序逻辑
循环结构:while、do...while、for
选择结构:if...else、switch...case...default
3.面向对象
四大支柱:
抽象:定义类是寻找共性的过程(数据抽象和行为抽象):创建对象的过程是发现个性的过程(同一个类的每个对象也是不一样的)
封装:隐藏一切可隐藏的实现细节,只提供简单的访问接口;
继承: 从已有的类创建出新类的过程;
多态:同样的对象(引用)接收相同的消息,做出不同的行为;
方法重写
对象造型
SOLID原则
4.集合框架
List/Set/Queue/Map
遗留容器:Vector、Hashtable、Dictionary、Stack、Properties
//缓存穿透、缓存雪崩、缓存击穿
5.I/O
BIO
NIO(JDK1.4+) - 单线程+异步I/O
Buffer
Channel
Charset
AIO(JDK1.7+)
Files
Paths
6.并发编程
Runnable / Thread
synchronized - 隐式锁机制
wait() / notify / notifyAll()
Lock
ConcurrentHashMap / CopyOnWriteArrayList
AtomicInteger
Semaphore / CountdownLatch
Fork / Join - 充分利用CPU多核特性 - TimSort
TimSort
7.异常机制
try / catch / finally / throw / throws
运行时异常可以随便抓取,受检异常不能随意抓,必须在try中有才能抓取
Throwable
Exception
CloneNotSupportedException
SQLException
IOException
ClassNotFoundException
RuntimeException
NullPointerException
IndexOutOfBoundsException
ClassCastException
IllegalArgumentException
ArithimeticException
NegativeArraySizeException
DOMException
Error
OutOfMemoryError
StackOverflowError
8.反射 / 自省
用反射写出的代码性能较低,但通过反射可以写出通用性更强的代码
9.JDBC
10.自动构建
Maven - pom.xml项目对象模型,参与项目的整个项目周期
mvn archetype:generate
mvn test
mvn install
Gradle
11.网络编程
基于传输层协议:
TCP:ServerSocket、Socket
UDP:DatagramSocket、DatagramPacket
基于应用层(HTTP)协议:
URL / URLConnection / HttpURLConnection
基于APache的HttpComponents
HttpClient
自己开发网络服务
** Netty **
MINA
序列化和反序列化
Serializable / ObjectInputStream / ObjectOutputStream
** protobuf(google)**
** Kryo(性能极好)**
12.日志系统
java.util.logging 不用
Log4j / Log4j2 / Logback / Slf4j / Commons - Logging
13.工具类
时间日期: Date/Calendar -- > LocalDate / LocalTime / LocalDateTime / Instant
Math / System / Runtime / Arrays / Collections
Objects
14.XML / JSON / YAML
异构系统之间交换数据 - RESTful / WebService
SAX解析 - Simole API for XML - 事件触发式解析(原生的、不用)
DOM解析 - Document Object Model - 把整个文件弄成一个对象
dom4j / classmate
StXML解析 - 流式解析
Jackson / Fastjson / Gson
15.语言新特性
二、Web前端
HTML
CSS
JavaScript
ES6 + BOM + DOM
动态语言 + 面向对象 + 函数式编程
jQquery / Zepto.js
Ajax: 原生 / $.ajax() / $.getJSON()
** Ajax跨域问题:JSONP **
JSON:parse() / stringfy() / http://json.org
图表:ECharts / Chart.js
富文本:CKEditor / UEditor
前端MV*框架:AngularJS / Avalon / Vue.js
三、数据库
1.概念:主键、外键、索引、视图、触发器、序列、同义词、函数、过程、表、行、列、范式、E-R图
2.SQL:
DDL:create、drop、alter
DML:insert、delete、update
DQL:select(投影、别名、筛选、模糊、去重、排序、分组、聚合函数、子查询、连接查询)
DCL:grant 、revoke
3.优化
** SQL语句优化 **
硬件优化
读写分离
分库分表 - MyCat
负载均衡 + 集群配置
LVS / NginX
explain 执行计划 / 慢查询分析
四、框架
1.SSH
2.SSM
3.SSS
五、装逼
1.Spring Boot
2.Docker
3.NoSQL - Redis / CAP / BASE
4.Thymeleaf - th / sec
5.Spring Cloud - 微服务
6.Shiro / Spring Security Shiro更简单
Authentication
Authorization
ACL - Access Control List
RBAC - Role Based Access Control
7.JVM垃圾回收
什么样
什么时间
如何回收
8.JVM性能调优
JConsole
VisualVM