Java学习指导————如何做到基础扎实
原文出处:《一篇文章教会你,如何做到招聘要求中的“要有扎实的Java基础”》
引言
不少同学总会产生这样的疑问:
“请问,如何才叫基础扎实?”
答案是:“玩好JDK!”
JDK学习内容主要包含三部分:
1、Java运行时环境,其实就是JVM;
2、Java基础类库;
3、Java开发工具,辅助Java的利器。
第一部分:Java运行时环境
这一部分其实就是常说的JRE,而它的核心其实就是一个东西:JVM,Java虚拟机
JVM这个东西,它的重要性原作者认为甚至比《Thinking in Java》还重要。而这部分的知识和内容,只要是Java稍微高级一点点的职位,基本上是面试必问的内容,这更说明了JVM的重要性。
所以,对于JVM,没有什么可说的,就是往死里学,往死里研究,能有多深就多深。
第二部分:Java的基础类库
Java虽然拥有庞大的类库系统,但是并不是所有都需要掌握和知道,原作者列出Java6的包列表,并将其分为四个等级,对待的程度也是分为四个等级。
第一级别:精读源码
java.io
java.lang
java.util
精读源码,这是要求最高的级别。
但是,要求精读源码不意味着这些类是最重要的。而是因为这些类比较常用,而且比较简单,阅读这些类的源码有助于锻炼看源码的感觉,也了解一下大神们写代码的风格。
Exception和Error这一类的,可以忽略。
看源码从这些常用的包下手找手感,在合适不过。
第二级别:深刻理解
java.lang.reflect
java.net
javax.net.*
java.nio.*
java.util.concurrent.*
深刻理解,这个级别看似比精读源码要求低,但所选类库确实最重要的。这个级别的类,全都是一些进阶到高级所必须了解的。
但是,由于这些类的源码往往非常复杂,要了解清楚细节花费的时间是非常多的,因此,花费巨量的时间去研究这么复杂的代码其实没必要。
不过在使用这些类库遇到问题时,可以通过阅读源码的方式尝试解决问题。这种学习方式不仅可以加深对类库的理解,还会帮助解决90%的问题。
reflect代表反射,net代表网络IO,nio代表非阻塞io,concurrent代表并发。
这四个家伙可以说每一个都能够面试官问上半天的,而且,这四个包的内容,如果要深刻理解的话,其实还牵扯了很多其他的知识。
举个栗子:反射你要了解的话,就需要搞明白JVM的类加载机制;网络IO要搞清楚的话,你就要搞清楚TCP/IP和HTTP、HTTPS。
第三级别:会用即可
java.lang.annotation
javax.annotation.*
java.lang.ref
java.math
java.rmi.*
javax.rmi.*
java.security.*
javax.security.*
java.sql
javax.sql.*
javax.transaction.*
java.text
javax.xml.*
org.w3c.dom.*
org.xml.sax.*
javax.crypto.*
javax.imageio.*
javax.jws.*
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.zip
会用即可,这个级别要求很明显,就是会用就可以了,这些包大部分都是在特定的情况下会用到,但却不会时刻用到。
仅仅是用的时候稍微研究一下,知道其具体的用法即可,不需要深究。
第四级别:无视
所有以上没有提到的包。比如swing,awt这些玩意儿。
第三部分:Java 开发工具
这些开发工具主要就是辅助开发,javac应该是最常用的一个,虽然你几乎不用手动执行它。
此外,其实还有一些比较实用的工具,可以帮助你排查问题。而且有的面试官,也会问你这类问题。比如问你平时都用什么工具排查问题。
原作者觉得比较实用的几个工具主要有jmap、jconsole、jstack、jvisualvm,至于这几个工具有什么作用,请参考百度。
还可以自己去JDK 的bin目录下找一找,看有没有什么更好玩的工具。
Java学习指导————如何做到基础扎实相关推荐
- java学习笔记:零基础java学习路线+配套资料+书籍推荐
公众号菜鸟名企梦2018年,精品文章汇总: 01 我的秋招 我的秋招offer 我的offer选择 秋招全面总结-必读宝典 求职必读 02 零基础学习路线 零基础-java学习路线(上) 零基础-ja ...
- invader的java学习第三天基础篇
invader的java学习第三天基础篇 一.整数的取值范围表 类型名称 数据类型 所占空间 表数范围 字节型 byte 1字节 -128-127 短整型 short 2字节 +-3w(-2^15-2 ...
- invader的java学习第五天基础篇
invader的java学习第五天基础篇(持续更新中-) 一.位运算符 ^.&.|.~.>>.<<.>>>,位运算符就是基于二进制直接进行运算(0为f ...
- invader的java学习第四天基础篇
invader的java学习第四天基础篇(持续更新中-) 一.类型转换 自动转换(数值之间在进行四则运算时,数据类型会自动向大类型靠拢) byte num=10; short a=num; Syste ...
- JAVA学习笔记(1)【基础知识】
JAVA学习笔记DAY_1 提示:关于java系列的内容只是本人在老师的指导下和自学过程中的一些学习笔记,如果存在错误敬请批评指正! 文章目录 JAVA学习笔记DAY_1 前言 一.Java语言未来的 ...
- Java学习路线(语法基础+算法与数据结构部分)
后端开发学习经验 首先,对于软件基础知识的学习,建议尽可能地去看一些经典的书籍,看第一遍的时候可以不用太过细致,快速地看,重在了解这本书的知识框架,在把握了整体的逻辑框架之后,第二遍就可以详细学习各章 ...
- java学习需要具备什么基础,大量教程
大学生学习Java需要注意些什么?大学生学习Java需要注意些什么?互联网行业,零基础也能学习.只要你肯努力,有真才实学,就会体会到敲代码的快乐.为什么Java行业吸引了大学生前来学习呢?一是因为就业 ...
- 【Java学习笔记】JavaSE基础全程笔记
前言 该文章为Java自学笔记:JavaSE基础全程笔记,导航部分 学习视频为https://www.bilibili.com/video/av250694651 Java基础语法 Java面向对象基 ...
- Java学习之JavaSE-Java语言基础
第一章:初识计算机和Java语言 一.计算机的体系结构 (一)计算机的基本概念 计算机(Computer)俗称电脑,是现代一种用于高级计算,使用非常广泛的设备,主要由计算机硬件和计算机软件两个部分组成 ...
最新文章
- 2022-2028年中国钽酸锂单晶行业市场调查分析及投资发展潜力报告
- 链接mysql_使用python链接mysql及redis(缓存型数据库)
- Leangoo卡片和列表完成状态上线
- python曲线拟合笔记
- aspose java_Aspose.Cells for Java
- shell scripts 之 代码量统计
- Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环
- linux安装elasticsearch5.5
- c# out关键字 vb_c# 关键字:ref 和 out
- js中 var a= b || c;
- java内存stack heap_java内存解析-------stack(栈)和heap(堆)的理解
- EasyUI 1.5.1 美化主题大包 Insdep Theme 1.0.3 正式版已发布,开源下载
- 第十三届蓝桥杯A组Python组心得分享
- 微信公众号后台开发---永久素材失效
- google 搜索语法总结
- java实现百度网盘爬虫
- 平面内有N个点,如何快速求出距离最近的点对?
- malloc,calloc和realloc。
- 最轻的5号电池------耐时锂电池
- 【leetcode】快乐数
热门文章
- java中get接口示例_Java LocalDateTime类| 带示例的get()方法
- java enummap_Java EnumMap containsValue()方法与示例
- Spring Boot(十三)RabbitMQ安装与集成
- 转:ORA-01126: 数据库必须已装载到此实例并且不在任何实例中打开
- IP地址与二进制转换
- HashMap的put方法(Java7)和putVal方法(Java8)
- python asyncio 并发编程_asyncio并发编程
- android按钮旋转,单击一个按钮在android中顺时针旋转图像
- linux+基因组字符替换,liftover基因组版本直接的coordinate转换
- 电脑温度检测软件哪个好_重装电脑,用哪个软件重装系统比较好?