玩好JDKjava
在详细讲解JDK以前,LZ首先要强调下,本文的内容,都是LZ我的的主观判断。所以,各位猿友务必结合本身的判断以后,再决定是否要学习,以及学习到什么程度。程序员
此外,本文只是告诉你学什么,学到什么程度,本文不会包含太多具体的技术细节讲解。面试
JDK其实就是Java SE Development Kit的缩写,要玩好这东西可不简单。JDK主要包含了三部分,第一部分就是 Java运行时环境 ,这其实就是JVM。此外,第二部分就是 Java的基础类库 ,这个类库的数量仍是很是可观的。最后,第三部分就是Java的开发工具 ,它们都是辅助你更好的使用Java的利器。
最后,若是你们若是在自学遇到困难,想找一个java的学习环境,能够加入咱们的java学习圈,点击我加入吧,会节约不少时间,减小不少在学习中遇到的难题。sql
那么很显然,要玩好JDK,就是要玩好JDK的这三部分。接下来,我们就逐个的来讲一下,每个部分要学什么,学到什么程度。数据库
第一部分:Java运行时环境编程
这一部分其实就是常说的jre,而它的核心其实就一个东西,就是JVM。json
JVM这个东西,它的重要性LZ不想再强调了,JVM那本书甚至比《Thinking in java》还重要,这已经足见LZ多么看重JVM了。设计模式
固然了,只是LZ看重,固然没什么卵用,但只要Java稍微高级一点点的职位,这部分基本上都是面试必问内容,这更加说明了JVM的重要性。数组
因此,对于JVM,没什么可说的,就是往死里学,往死里研究,能有多深就多深!缓存
第二部分:Java的基础类库
Java的基础类库从你刚开始学Java就开始接触了,可是,直到你结束整个Java生涯,你都不必定能把全部的类都见一遍。
这说明了什么?是否是说明了Java基础类库的庞大?
错!大错特错!这其实真正说明的是,有不少类你彻底没必要要care它们,由于它们从你接触Java到放弃,都不必定能接触到。
因此,搞清楚哪些类重要,哪些类不重要,就很是有必要了。这可让你以最短的时间,作最有价值的事。
首先,咱们来Java基础类库的包都有哪些,为了使得本文更有表明性,咱们取JDK6的包列表。
程序员如何成就本身扎实的Java基础(玩好JDK)附赠300集学习教程
怎么样?是否是被吓到了?这么多包,并且还这么多陌生的包名,有的连见都没见过,这特么怎么玩?
不要着急,LZ先带你把这些包给分下级别,LZ将这些包一共分为四个级别。
第一级别:精读源码
该级别包含的包以下:
程序员如何成就本身扎实的Java基础(玩好JDK)附赠300集学习教程
精读源码,这是要求最高的级别。可是,要求你精读源码并不意味着,这些类就是最重要的。而是由于,LZ以为这些类比较经常使用,并且比较简单,看看它们的源码有助于锻炼你看源码的感受,也了解一下大神们写代码的风格。
看这些源码的目的,更可能是为了增长你的阅读代码能力。并且,LZ这里必需要强调一下,像Exception和Error这一类的,就不用读源码了,亲。
其实上面三个包都有一个共同点,那就是这三个包,基本上都是你最经常使用的了。lang包不用说了,你随便写点啥都得用到,io包和util包也是你平时读写文件和使用数据结构必不可少的。
看源码从这些经常使用的包下手找手感,LZ我的以为再合适不过。
第二级别:深入理解
该级别包含的包以下:
程序员如何成就本身扎实的Java基础(玩好JDK)附赠300集学习教程
深入理解,这个看似比精读源码要求低的级别,其实偏偏是最重要的。这个级别要求的类,全都是一些进阶到高级所必须了解的。
固然了,这里要强调一点的是,LZ说这些类要深入理解,而没说要看它们源码,并非说这些类的源码不能看,或者看了没用。而是这些类的源码每每很是复杂,要了解清楚细节花费的时间是很是多的,所以,花费巨量的时间去研究这么复杂的代码其实不必的。
不过,若是你在使用这些类的过程当中,遇到了问题,这个时候若是看它们源码能够解决的话,那就不要再矜持了,果断看看源码解决你的问题吧,这是最适合的看源码的契机了。
小小的透露一下,LZ看过的JDK源码,基本上全是这么看过来的。遇到了问题不要百度和谷歌,看源码能解决你90%的问题。
此外,看到这四个包的名字,不难看出它们各自表明了什么。reflect表明了反射,net表明了网络IO,nio表明了非阻塞io,concurrent表明了并发。
这四个家伙能够说每个都够面试官问上半天的,并且,这四个包的内容,若是你要深入理解的话,其实还牵扯了不少其它的知识。
举个例子,反射你要了解清楚的话,你是否是要搞明白JVM的类加载机制?网络IO要搞清楚的话,你是否是要清楚TCP/IP和HTTP、HTTPS?包括并发包,若是你要搞清楚的话,是否是要了解并发的相关知识?
所以,这四个包要完全搞清楚,仍是须要花费必定时间和精力的。
可是,请相信LZ,这绝对是值得的,甚至能够说,这四个包用的够不够叼,基本决定了一个Java程序员所处的档次。
第三级别:会用便可
该级别包含的包以下:
程序员如何成就本身扎实的Java基础(玩好JDK)附赠300集学习教程
会用便可,这个级别的要求很显然了,就是会用就能够了。这些包大部分都是在特定的状况下会用到,但却不会时刻用到。
就像sql包和transaction包,就是操做数据库时用到的。而xml、dom和sax这些,都是操做xml时用到的。其它的包也都是相似的,有使用注解时用的,有远程方法调用时用的,也有涉及到加密时用到的等等。
这些包在面试时通常不会问到,因此它们的重要性天然要低不少,并且也不太须要刻意的去学,用到了研究一下,会用便可。
第四级别:请无视它
该级别包含了全部以上没有提到的包。
这个级别就更不用解释了,到如今还没提到的包,基本上能够忽略,由于你基本上不太可能用到它们,好比swing、awt这些玩意儿。
什么?你说你常常用它们?
若是真的是这样的话,那么LZ只能遗憾的告诉你,赶忙跳槽吧,你待在这公司没啥前途的,0-0。
第三部分:Java的开发工具
这些开发工具主要就是辅助你开发的了,javac应该是最经常使用的一个了,虽然你几乎不用手动执行它。
此外,其实还有一些比较实用的工具,能够帮助你排查问题。并且有的面试官,也会问你这类问题,好比问你平时都用什么工具排查问题。
LZ以为比较实用的几个工具主要有jmap、jconsole、jstack、jvisualvm,至于这几个工具备什么做用,LZ这里就不提了,若是你要了解这些命令的详细内容,能够去谷歌或者官网上找,仍是很是好找的。
针对不少同窗提出来的想学习缺没有系统的学习资料,以及健全的java学习路线和知识体系,柠檬在这里为你们准备了 由北京尚学堂高淇老师和马士兵老师亲自录制的java自学视频教程,但愿对小伙伴们有所帮助!
资料目录
第一阶段JAVA 快速入门
章节1:JAVA 入门和第一个项目
章节2:流程控制语句和方法
章节3:数组初步
第二阶段JAVA 基础深化和提升
章节1:面向对象深化
章节2:数组深化
章节3:异常机制
章节4:经常使用类
章节5:容器
章节6:IO 流技术
章节7:多线程技术
章节8:网络编程
章节9:XML 技术
章节10:反射技术
章节11:多线程和并发编程
章节12:手写服务器项目
第三阶段数据库编程和设计
章节1:Oracle 数据库的使用
章节2:SQL 语言
章节3:Mysql 数据库的使用
章节4:JDBC技术
章节5:MyBatis框架
第四阶段网页编程和设计
章节1:HTML5
章节2:CSS3
章节3:JavaScript
章节4:Jquery
第五阶段JAVAEE 和项目开发
章节1:Servlet 技术
章节2:JSP 技术
章节3:JSP和Servlet整合案例
章节4:EL表达式和JSTL标签库
章节5:过滤器和监听器
章节6:Ajax 异步技术和json
章节7:项目:财务管理系统
第六阶段SSM 框架和项目开发
章节1:Spring 框架
章节2:Spring MVC 框架
章节3:SSM 框架整合
章节3:SSM 框架整合
第七阶段JAVA 高级技术
章节1:Linux
章节2:Maven
章节3:Dubbo
章节4:VSFTPD
章节5:Nginx
章节6:Redis
章节7:Solr
章节8:ActiveMQ
章节9:JsonP
章节10:HttpClient
章节11:MyCat
第八阶段电商高级项目_架构/编码
章节1:电商Ego-基于SOA 架构,使用Dubbo,逆向工程,分页插件完成商品查询
章节2:电商Ego-使用VSFTPD 和Nginx 完成商品新增
章节3:电商Ego-基于json 格式完成商品规格参数管理
章节4:电商Ego-使用jsonp 完成前台首页导航菜单
章节5:电商Ego-完成CMS 系统
章节6:电商Ego-添加前台大广告位数据缓存
章节7:电商Ego-完成商品搜索功能
章节8:电商Ego-显示商品详细详情
章节9:电商Ego-完成SSO 单点登陆系统
章节10:电商Ego-购物车
章节11:电商Ego-订单系统实现
章节12:电商Ego-ActiveMQ
章节13:电商Ego-MySql 读写分离+MyCat 分库分表
章节14:电商Ego-项目部署
第九阶段设计模式/框架源码分析
章节1:GOF23 设计模式
章节2:Servlet 和Tomcat 底层源码分析
章节3:Mybatis 底层源码分析
章节4:Spring 框架底层源码分析
第十阶段微服务架构
章节1:Spring Boot
章节2:Spring Data
章节3:Spring Cloud