大学期间接触 Java 的时间也不短了,不论学习仍是实习,都让我发觉基础的重要性。互联网发展太快了,各类框架各类技术更新迭代的速度很是快,可能你恰好掌握了一门技术的应用,它却已经走在淘汰的边缘了。java
而学习新技术总要付出必定的时间成本,那么怎么下降时间成本呢?那就是打好基础,技术再怎么革新,底层的东西也不多会变更,牢固的基础会帮助你在各类新技术的学习中游刃有余,快速上手。web
由于我选择的方向是后台开发,因此谈谈我认为的基础有哪些。其余方向确定也有本身的体系,从低层到高层,能够本身摸索。后台的话,我以为网络知识,各类协议,web 知识,数据库知识,Linux 基本操做以及本身选择的后台语言知识,这些是最基础最须要牢固掌握的。算法
因此从今天起,会出一系列与后台基础相关的博文,一是对本身过去学习的一个总结,二是分享出来,但愿能够帮助到须要的人。数据库
Java 基础我作了 10 个方面的总结,包括基本概念,面向对象,关键字,基本类型与运算,字符串与数组,异常处理,Java 平台与内存管理,分布式 Java 应用,多线程,IO。如下对这些内容作一些简单的总结,同时我也有完整的思惟导图,博客上不方便展现,如有须要,联系我。设计模式
安全性数组
健壮性缓存
功能安全
获取类的方式服务器
层次逻辑关系不一样。网络
数据处理方式不一样与控制程序方式不一样
方法重载
方法覆盖
同
异
静态内部类
成员内部类
局部内部类
匿名内部类
原则
int长度
float长度
boolean 类型变量的取值
优势
隐式类型转换
显式类型转换
类型自动转换
运算符优先级
点 () [] +(正) -(负) ++ -- ~ ! * / %
+(加) -(减) << >> >>> < <= > >= instanceof == != & | ^ && || ?: = += -= *= /= %= &= |= ^= ~= <<= >>= >>>=
严重错误,不可恢复
检查性异常
运行时异常
执行class
编译执行
语义分析器组件:注解语法树
连接
校验
初始化(不是类加载必须触发的)
触发时机
JVM启动过程当中指定的初始化类
解释执行
JVM字节码为中间代码,由JVM在运行期对其解释并执行
基于栈
编译执行
client compiler
server compiler
栈上分配
堆
分代管理
收集器
引用计数收集器
跟踪收集器
三种实现算法
复制
Sun JDK中可用GC
新生代
串行GC(Serial GC):复制算法
旧生代和持久代可用GC
并发:CMS
Full GC
触发的四种状况
符合垃圾回收标准
泄露的两种状况
泄露缘由
TCP/IP+BIO
TCP/IP+NIO
Channel
UDP/IP+BIO
UDP/IP+NIO
远程调用方式
基于Java自身技术
WebService
JVM保证如下操做顺序
为避免资源操做的脏数据问题,JVM提供了
基于Object的wait/notify/notifyAll
基于JDK 5 并发包,支持线程交互
sleep
wait
字符流
UID最好本身定义。优势