Java工程师成神之路-北京尚学堂.doc

上传人:自*** 文档编号:126897501 上传时间:2020-03-28 格式:DOC 页数:19 大小:292KB
返回 下载 相关 举报
Java工程师成神之路-北京尚学堂.doc_第1页
第1页 / 共19页
Java工程师成神之路-北京尚学堂.doc_第2页
第2页 / 共19页
Java工程师成神之路-北京尚学堂.doc_第3页
第3页 / 共19页
Java工程师成神之路-北京尚学堂.doc_第4页
第4页 / 共19页
Java工程师成神之路-北京尚学堂.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Java工程师成神之路-北京尚学堂.doc》由会员分享,可在线阅读,更多相关《Java工程师成神之路-北京尚学堂.doc(19页珍藏版)》请在金锄头文库上搜索。

1、Java工程师成神之路一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http:/www.jcp.org/en/jsr/detail?id=133http:/ 了解JVM各种参数及调优1.1.3. 学习使用Java工具jps, jstack, jmap, jconsole, jinfo, jhat, javap, http:/ 学习Java诊断工具http:/www.eclipse.org/mat/http:/ 自己编写各种outofmemory,stackoverflow程序HeapOutOfMemoryYoung OutOfMemoryMe

2、thodArea OutOfMemoryConstantPool OutOfMemoryDirectMemory OutOfMemoryStack OutOfMemoryStack OverFlow1.1.6. 使用工具尝试解决以下问题,并写下总结当一个Java程序响应很慢时如何查找问题当一个Java程序频繁FullGC时如何解决问题,如何查看垃圾回收日志当一个Java应用发生OutOfMemory时该如何解决,年轻代、年老代、永久代解决办法不同,导致原因也不同1.1.7. 参考资料http:/ Java基础知识1.2.1. 阅读源代码java.lang.Stringjava.lang.Int

3、egerjava.lang.Longjava.lang.Enumjava.math.BigDecimaljava.lang.ThreadLocaljava.lang.ClassLoader & .URLClassLoaderjava.util.ArrayList & java.util.LinkedListjava.util.HashMap & java.util.LinkedHashMap & java.util.TreeMapjava.util.HashSet & java.util.LinkedHashSet & java.util.TreeSet1.2.2. 熟悉Java中各种变量类型

4、1.2.3. 熟悉Java String的使用,熟悉String的各种函数1.2.4. 熟悉Java中各种关键字1.2.5. 学会使用List,Map,Stack,Queue,Set上述数据结构的遍历上述数据结构的使用场景Java实现对Array/List排序java.uti.Arrays.sort()java.util.Collections.sort()Java实现对List去重Java实现对List去重,并且需要保留数据原始的出现顺序Java实现最近最少使用cache,用LinkedHashMap1.2.6. Java IO&Java NIO,并学会使用java.io.*java.nio

5、.*nio和reactor设计模式文件编码,字符集1.2.7. Java反射与javassist反射与工厂模式java.lang.reflect.*1.2.8. Java序列化java.io. Serializable什么是序列化,为什么序列化序列化与单例模式google序列化protobuf1.2.9. 虚引用,弱引用,软引用java.lang.ref.*实验这些引用的回收1.2.10. 熟悉Java系统属性java.util.Properties1.2.11. 熟悉Annotation用法java.lang.annotation.*1.2.12. JMSjavax.jms.*1.2.13.

6、 JMXjava.lang.management.*javax.management.*1.2.14. 泛型和继承,泛型和擦除1.2.15. 自动拆箱装箱与字节码1.2.16. 实现Callback1.2.17. java.lang.Void类使用1.2.18. Java Agent,premain函数java.lang.instrument1.2.19. 单元测试Junit,http:/junit.org/Jmockit,https:/ Java实现通过正则表达式提取一段文本中的电子邮件,并将替换为#输出java.lang.util.regex.*1.2.21. 学习使用常用的Java工具库

7、commons.lang, commons.*guava-librariesnetty1.2.22. 什么是API&SPIhttp:/en.wikipedia.org/wiki/Application_programming_interfacehttp:/en.wikipedia.org/wiki/Service_provider_interface1.2.23. 参考资料JDK src.zip 源代码http:/ Java并发编程1.3.1. 阅读源代码,并学会使用java.lang.Threadjava.lang.Runnablejava.util.concurrent.Callablej

8、ava.util.concurrent.locks.ReentrantLockjava.util.concurrent.locks.ReentrantReadWriteLockjava.util.concurrent.atomic.Atomic*java.util.concurrent.Semaphorejava.util.concurrent.CountDownLatchjava.util.concurrent.CyclicBarrierjava.util.concurrent.ConcurrentHashMapjava.util.concurrent.Executors1.3.2. 学习使

9、用线程池,自己设计线程池需要注意什么1.3.3. 锁什么是锁,锁的种类有哪些,每种锁有什么特点,适用场景是什么在并发编程中锁的意义是什么1.3.4. synchronized的作用是什么,synchronized和lock1.3.5. sleep和wait1.3.6. wait和notify1.3.7. 写一个死锁的程序1.3.8. 什么是守护线程,守护线程和非守护线程的区别以及用法1.3.9. volatile关键字的理解C+ volatile关键字和Java volatile关键字happens-before语义编译器指令重排和CPU指令重排http:/en.wikipedia.org/w

10、iki/Memory_orderinghttp:/en.wikipedia.org/wiki/Volatile_variablehttp:/ 以下代码是不是线程安全?为什么?如果为count加上volatile修饰是否能够做到线程安全?你觉得该怎么做是线程安全的?public class Sample private static int count = 0; public static void increment() count+; 1.3.11. 解释一下下面两段代码的差别/ 代码1public class Sample private static int count = 0; syn

11、chronized public static void increment() count+; / 代码2public class Sample private static AtomicInteger count = new AtomicInteger(0); public static void increment() count.getAndIncrement(); 1.3.12. 参考资料http:/ 进阶篇2.1. Java底层知识2.1.1. 学习了解字节码、class文件格式http:/en.wikipedia.org/wiki/Java_class_filehttp:/en.wikipedia.org/wiki/Java_bytecodehttp:/en.wikipedia.org/wiki/Java_bytecode_instruction_listingshttp:/www.csg.ci.i.u-tokyo.ac.jp/chiba/javassist/http:/asm.ow2.org/2.1.2. 写一个程序要求实现javap的功能(手工完成,不借助ASM等工具)如Java源代码: public static void main(String args) int i = 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号