Java

Get Started. It's Free
or sign up with your email address
Rocket clouds
Java by Mind Map: Java

1. 基础知识

1.1. 流

1.2. 序列化

1.3. 集合类

1.4. String类

2. JVM

2.1. 垃圾回收

2.1.1. 首先使用的1960年MIT的LISP

2.1.2. 已经自动化,但研究的意义

2.1.2.1. 排查内存溢出和泄露

2.1.3. 引用计数算法

2.1.3.1. 无法解决循环引用的问题

2.1.3.1.1. { ..... objA.instance = objB; objB.instance = objA; objA = null; objB = null; System.gc(); ... }

2.1.4. 跟搜索算法

2.1.4.1. 通过一系列名为GC Roots作为起点向下搜索的引用链,如果GC Roots到这个对象不可达,则对象不可用。

2.1.5. 引用

2.1.5.1. 强引用

2.1.5.1.1. Object obj=new Object()

2.1.5.2. 软引用

2.1.5.2.1. SoftReference

2.1.5.3. 弱引用

2.1.5.3.1. WeakReference

2.1.5.4. 虚引用

2.1.5.4.1. PhantomReference

2.2. JMM(Java Memory Model)

2.2.1. 程序计数器(Program Counter Register)

2.2.1.1. 存放当前正在被执行的Java 字节码操作指令的地址

2.2.1.2. 每个线程都有它自己的PC(程序计数器)寄存器

2.2.2. Java虚拟机栈(Java VM Stack)

2.2.2.1. 由栈帧(stack frame)组成,帧则是用来存储线程在执行过程中的参数,返回值,以及中间结果等。如果在没有足够的内存给Java VM栈,或者没足够的内存来生成新的线程时,Java虚拟机将抛出OutOfMemoryError

2.2.3. Java堆(Heap)

2.2.3.1. 用来存储Java类实例或数组的。当没有足够的内存给新生实例或数组时,Java虚拟机将抛出OutOfMemoryError

2.2.4. 方法区(Java VM Method Area)

2.2.4.1. 用来存储类型相关的信息, 如该类型的常量池,字段或方法信息。当方法区没有足够内存时也会出现OutOfMemoryError

2.2.5. 常量池(Runtime Constant Pool)

2.2.5.1. 运行时常量池包括字段引用以及常量。当常量池没有足够内存可用时, 同样会抛出OutOfMemoryError异常

2.2.6. 本地方法栈(Native Method Stack)

2.2.6.1. 由一些C/C++写的方法,给予JVM的一些方法支持。 同理,当没有可用内存时也会抛出OutOfMemoryError异常

3. J2EE

3.1. Spring

3.1.1. 参考文档

3.1.1.1. http://docs.spring.io/spring-framework/docs/2.5.2/reference/

3.1.2. 事务管理

3.1.2.1. 声明式事务

3.1.2.1.1. 实现方式

3.1.2.1.2. 实现类

3.2. Struts

3.2.1. 拦截器

3.2.1.1. http://struts2.group.iteye.com/group/wiki/1397-deep-into-struts2-interceptors

3.2.1.2. 自定义拦截器

3.2.1.2.1. 继承AbstractInterceptor类,重写intercept()方法

3.2.1.2.2. public String intercept(ActionInvocation arg0) throws Exception { ................ invocation.invoke();//执行Action的execute()方法或者执行下一个拦截器 ................ }

3.3. iBatis

3.4. hibernate

3.5. J2EE规范

3.5.1. JDBC

3.5.2. JNDI

3.5.3. EJB

3.5.4. RMI

3.5.5. Java IDL/CORBA

3.5.6. JSP

3.5.7. Java Servlet

3.5.8. XML

3.5.9. JMS

3.5.10. JTA

3.5.11. JTS

3.5.12. JAF(JavaBeans Activation Framework)

3.5.13. JavaMail

3.6. WEB容器

3.6.1. Tomcat

4. OSGI

4.1. helloworld

4.1.1. http://freewxy.iteye.com/blog/1254581

5. 并发编程

6. Web Service

7. 软件工程

7.1. 面向对象

7.1.1. 设计模式

7.2. 项目及实践经验

7.2.1. 快速了解一个项目的框架

7.2.1.1. web.xml

7.2.1.1.1. log4j

7.2.1.1.2. struts

7.2.1.1.3. spring

7.2.1.1.4. 首页

7.2.1.1.5. 会话超时时间

7.3. UML

8. 常用包

8.1. log4j

8.1.1. 查看版本号

8.1.1.1. MAINIFEST.MF

8.1.1.1.1. Implementation-Version

8.1.2. 使用手册

8.1.2.1. log4jManual.pdf

8.2. ehcache

8.2.1. 丢失对象问题排查

9. 编码效率

9.1. Eclipse

9.1.1. 快捷键

9.1.1.1. http://www.kuaipan.cn/share.htm?s=WJxHSjLPU22OcXyq-ACNNBgADPZ4=

9.1.2. 不使用鼠标,使用小红帽及触摸板,减少手指移动距离

9.1.3. Snippets

9.1.3.1. http://www.kuaipan.cn/share.htm?s=WJxHSjLPU22OcXyq-ACNNBgADPZ4=

9.1.4. 提高Eclipse响应

9.1.4.1. 只打印关键日志

9.1.4.1.1. javaw.exe未退出导致tomcat重启之后ehcache jgroup报错刷日志

9.1.4.2. 精简Eclipse视图窗口

9.1.5. 自动化

9.1.5.1. abator

9.1.5.1.1. 定制

9.1.6. 导航加速

9.1.6.1. bookmarks

9.1.6.2. CTRL+SHIFT+R,CTRL+H

9.1.6.2.1. 设置派生derived文件夹排除输出文件夹

9.1.6.2.2. CTRL+H 只留下File Search

9.1.6.2.3. File Search中的FileName Pattern尽量缩小查找文件范围

9.1.6.2.4. 设置show in navigator快捷键

9.1.7. StrokeIt

10. 项目管理

10.1. 版本管理

10.1.1. Git

10.1.2. Svn

11. 测试

11.1. 单元测试

11.1.1. JUnit

11.1.1.1. Spring Test

11.1.1.1.1. http://www.cnblogs.com/rainisic/archive/2012/01/22/Spring_Test_Framework.html