Java基础——JDK初探

Java入门基础第2天《java jdk下载与安装教程》 Java入门基础第2天《Java jdk下载与安装教程》 阅读详情

 

本文来自于一次和群里猿友的交流,具体的情况且听LZ慢慢道来。

  一日,LZ在群里发话,“招人啦。”

  然某群友曰,“群主,俺想去。”

  LZ回之,“你年几何?”

  群友曰,“两年也。”

  LZ憾言之,“惜了,三至五为佳。然如汝有扎实之基础,且附一技之长,倒也并非不可呀。”

  群友惑,问之,“何为一技之长?”

  LZ抚须答曰,“皆可,吾之一技即为写。”

  群友又问之,“何为基础扎实?”

  LZ抚**答曰,“玩好JDK!”

  

引言

  

  好了,LZ终于特么可以说人话了,请原谅LZ的文言文不好,这逼装的好累。其实很多人对于公司的招聘要求中写的,要有“扎实的Java基础”,都很迷茫。

  这特么到底啥意思?什么东西算作Java基础?学到什么程度才算扎实?

  这些问题的答案,LZ已经用文言文告诉你了,咳咳,答案就是玩好JDK就可以了。

  不过JDK这东西包含的东西实在太多,群里的猿友还是拎不清到底应该学哪个,所以,LZ就专门写一篇文章,来讲一讲JDK应该怎么玩。

  或许有的猿友会问,“林萧是谁?”

  恩,问得好!林萧就是某程序员小说的主角啦,传言无所不知,看看你就知道咯。

  

玩好JDK

  

  在详细讲解JDK之前,LZ首先要强调下,本文的内容,都是LZ个人的主观判断。因此,各位猿友务必结合自己的判断之后,再决定是否要学习,以及学习到什么程度。

  此外,本文只是告诉你学什么,学到什么程度,本文不会包含太多具体的技术细节讲解。

  JDK其实就是Java SE Development Kit的缩写,要玩好这东西可不简单。JDK主要包含了三部分,第一部分就是Java运行时环境,这其实就是JVM。此外,第二部分就是Java的基础类库,这个类库的数量还是非常可观的。最后,第三部分就是Java的开发工具,它们都是辅助你更好的使用Java的利器。

  那么很显然,要玩好JDK,就是要玩好JDK的这三部分。接下来,咱们就逐个的来说一下,每一个部分要学什么,学到什么程度。

 

  第一部分:Java运行时环境

  这一部分其实就是常说的jre,而它的核心其实就一个东西,就是JVM。

  JVM这个东西,它的重要性LZ不想再强调了,在之前的那篇《回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议》中,LZ就说过,JVM那本书甚至比《Thinking in java》还重要,这已经足见LZ多么看重JVM了。

  当然了,只是LZ看重,当然没什么卵用,但只要Java稍微高级一点点的职位,这部分基本上都是面试必问内容,这更加说明了JVM的重要性。

  所以,对于JVM,没什么可说的,就是往死里学,往死里研究,能有多深就多深!

 

  第二部分:Java的基础类库

  Java的基础类库从你刚开始学Java就开始接触了,但是,直到你结束整个Java生涯,你都不一定能把所有的类都见一遍。

  这说明了什么?是不是说明了Java基础类库的庞大?

  错!大错特错!这其实真正说明的是,有很多类你完全不必要care它们,因为它们从你接触Java到放弃,都不一定能接触到。

  所以,搞清楚哪些类重要,哪些类不重要,就非常有必要了。这可以让你以最短的时间,做最有价值的事。

  首先,我们来Java基础类库的包都有哪些,为了使得本文更有代表性,我们取JDK6的包列表。

 View Code

  怎么样?是不是被吓到了?这么多包,而且还这么多陌生的包名,有的连见都没见过,这特么怎么玩?

  不要着急,LZ先带你把这些包给分下级别,LZ将这些包一共分为四个级别。

 

  第一级别:精读源码

  该级别包含的包如下:

java.io
java.lang
java.util

  精读源码,这是要求最高的级别。但是,要求你精读源码并不意味着,这些类就是最重要的。而是因为,LZ觉得这些类比较常用,而且比较简单,看看它们的源码有助于锻炼你看源码的感觉,也了解一下大神们写代码的风格。

  看这些源码的目的,更多是为了增加你的阅读代码能力。而且,LZ这里必须要强调一下,像Exception和Error这一类的,就不用读源码了,亲。

  其实上面三个包都有一个共同点,那就是这三个包,基本上都是你最常用的了。lang包不用说了,你随便写点啥都得用到,io包和util包也是你平时读写文件和使用数据结构必不可少的。

  看源码从这些常用的包下手找手感,LZ个人觉得再合适不过。

 

  第二级别:深刻理解

  该级别包含的包如下:

 View Code

  深刻理解,这个看似比精读源码要求低的级别,其实恰恰是最重要的。这个级别要求的类,全都是一些进阶到高级所必须了解的。

  当然了,这里要强调一点的是,LZ说这些类要深刻理解,而没说要看它们源码,并不是说这些类的源码不能看,或者看了没用。而是这些类的源码往往非常复杂,要了解清楚细节花费的时间是非常多的,因此,花费巨量的时间去研究这么复杂的代码其实没必要的。

  不过,如果你在使用这些类的过程中,遇到了问题,这个时候如果看它们源码可以解决的话,那就不要再矜持了,果断看看源码解决你的问题吧,这是最适合的看源码的契机了。

  小小的透露一下,LZ看过的JDK源码,基本上全是这么看过来的。遇到了问题不要百度和谷歌,看源码能解决你90%的问题。

  此外,看到这四个包的名字,不难看出它们各自代表了什么。reflect代表了反射,net代表了网络IO,nio代表了非阻塞io,concurrent代表了并发。

  这四个家伙可以说每一个都够面试官问上半天的,而且,这四个包的内容,如果你要深刻理解的话,其实还牵扯了很多其它的知识。

  举个例子,反射你要了解清楚的话,你是不是要搞明白JVM的类加载机制?网络IO要搞清楚的话,你是不是要清楚TCP/IP和HTTP、HTTPS?包括并发包,如果你要搞清楚的话,是不是要了解并发的相关知识?

  因此,这四个包要彻底搞清楚,还是需要花费一定时间和精力的。

  但是,请相信LZ,这绝对是值得的,甚至可以说,这四个包用的够不够叼,基本决定了一个Java程序员所处的档次。

  

  第三级别:会用即可

  该级别包含的包如下:

复制代码

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

复制代码

  会用即可,这个级别的要求很显然了,就是会用就可以了。这些包大部分都是在特定的情况下会用到,但却不会时刻用到。

  就像sql包和transaction包,就是操作数据库时用到的。而xml、dom和sax这些,都是操作xml时用到的。其它的包也都是类似的,有使用注解时用的,有远程方法调用时用的,也有涉及到加密时用到的等等。

  这些包在面试时一般不会问到,所以它们的重要性自然要低很多,而且也不太需要刻意的去学,用到了研究一下,会用即可。

  

  第四级别:请无视它

  该级别包含了所有以上没有提到的包。

  这个级别就更不用解释了,到现在还没提到的包,基本上可以忽略,因为你基本上不太可能用到它们,比如swing、awt这些玩意儿。

  什么?你说你经常用它们?

  如果真的是这样的话,那么LZ只能遗憾的告诉你,赶紧跳槽吧,你待在这公司没啥前途的,0-0。

  

  第三部分:Java的开发工具

  这些开发工具主要就是辅助你开发的了,javac应该是最常用的一个了,虽然你几乎不用手动执行它。

  此外,其实还有一些比较实用的工具,可以帮助你排查问题。而且有的面试官,也会问你这类问题,比如问你平时都用什么工具排查问题。

  LZ觉得比较实用的几个工具主要有jmap、jconsole、jstack、jvisualvm,至于这几个工具有什么作用,LZ这里就不提了,如果你要了解这些命令的详细内容,可以去谷歌或者官网上找,还是非常好找的。

  当然,如果你有兴趣的话,也可以自己去JDK的bin目录下找找,看有没有什么更好玩的工具。

  

小结

  

  好了,到这里基本上就把“玩好JDK”这件事说完了。

  总的来说,第一级别和第二级别是最重要的。

  更简单的说,可以把第一级别的那些包称作基础,第二级别的那些包称为进阶。至于第三级别和第四级别的那些包,就没什么可说的了。

  当然了,最重要的还是那万年不变的JVM,请记住了,JVM才是你Java根基的根本,就是再牛逼的类,没了JVM它也就是一个无用的class文件而已。

  如果你想拥有扎实的Java基础,那就抓紧玩好JDK吧。玩好JDK以后,不要忘了学个一技之长,就可以来LZ的公司面试咯。

  嗯,这波招聘广告插入的,很隐晦,没毛病,0-0。

  下期咱们屌程见了,各位!

 

基于centos、alpine制作Java JDK基础镜像 基于centos、alpine制作Java JDK基础镜像。在日常开发中,但凡项目需要docker容器化部署,制作项目镜像前都需要在Dockerfile中配置Java基础镜像。为什么不直接拉取使用docker hub中别人上传的镜像呢,因为在企业开发中,往往需要一些个性化配置(比如设置时区、中文字符集等等)。本文将分别使用CentOS、Alpine基于JDK制作基础镜像提升效率。将构建镜像的过程进行拆解,找到和其它服务的共同点并将其定制为一个基础镜像,有利于镜像的重复利用,提升工作效率。 阅读详情

相关推荐

ESP32实战:破解校园网WPA2-Enterprise认证的完整指南

本文详细介绍了如何使用ESP32开发板破解校园网WPA2-Enterprise认证的完整指南。通过硬件准备、环境搭建、核心代码实现及常见问题排查,帮助开发者解决企业级WiFi连接难题,特别适用于校园网环境下的物联网设备开发。

weixin_29194817的博客 454

jdk与jre的区别

首先笔者想阐明的是:JDK和JRE没想象中的那么简单。 相信大家都知道JDK和JRE是什么,但是具体干什么用不妨先试问下自己,如果能说出个所以然来,那么这篇文章大神请自觉忽略,呵呵,或者可以温故一下。 如果有哪里说的不对的地方还望指出,谢谢。 下面来简单说明下 先上张图,宏观的看一下 从图中可以看出JDK包含JRE包含JVM... JDK:java developmen...

你只管努力, 8万+

无人机室内悬停如何稳?光流与IMU数据融合实战解析

在无GPS的室内环境中,无人机自主悬停依赖多传感器融合,其中光流与IMU是核心组合。光流传感器通过图像像素位移估算相对地面的速度,长期无漂移,但易受光照和纹理影响;IMU高频响应出色,却存在积分累积漂移。两者在频率与误差特性上天然互补,融合后可实现高精度位置估计。工程实践中,需合理选型、正确处理坐标变换与时间对齐,并通过互补滤波或扩展卡尔曼滤波将光流速度修正引入状态估计,进而支撑位置环与速度环控制。这一技术不仅解决室内定点悬停,也为视觉惯性里程计等更复杂的自主定位提供基础。本文结合真实调试案例,梳理从硬件安

weixin_33314040的博客 293

仅靠一文便火爆全网,开源京东绝密800页JDK源码笔记:霸榜GitHub

JDK是什么? JDK 是Java开发工具包 (Java Development Kit ) 的缩写。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了JVM、Java编译器、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,作为后续版本发布。要成为一名程序员,JDK是一种最基本的工具。 JDK包括三部分: (1)jre(即java开发环境); (2)java工具(包括编译器javac.

m0_64435718的博客 555

Fluent后台计算中Journal文件的自动化编写与优化实践

本文深入探讨了Fluent在Linux/Unix环境下进行后台计算时,Journal文件的自动化编写与优化实践。Journal文件作为Fluent后台计算的“灵魂”,是实现仿真流程自动化、保证计算可重复性与准确性的关键。文章从基础脚本骨架搭建、命令简写技巧,到进阶的参数化研究与批量计算实现,提供了详实的实战指南,帮助工程师大幅提升仿真效率。

postgres8guard的博客 756

h5页面调用微信JS-SDK分享到微信好友或者朋友圈的配置

1.引入js <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> 2.在页面添加配置 <script type="text/javascript"> var url = location.href..

tiantiandashi的博客 2万+

JDK的组成

JRE:JRE(Java Runtime Enviroment),意思是Java的运行环境;核心类库:它是Java本身写好的一些程序,给程序员调用的。Java程序员并不是凭空开始写代码,是要基于核心类库提供的一些基础代码,进行编程。JVM:JDK最核心的组成部分是JVM(Java Virtual Machine),它是Java虚拟机,真正运行Java程序的地方。JDK:java开发工具包,提供给程序员使用,内部包含:编译器,运行器,JRE。如果配置java运行库需要设置的是JDK的安装目录。

sunyu7的博客 1100

手把手教你用TI MOSFET搭建0-100mA恒流源电路(附避坑指南)

本文详细介绍了如何使用TI MOSFET SI1204D搭建0-100mA恒流源电路,包括基础原理、电路设计、PCB布局和热管理技巧。通过分步指导和避坑指南,帮助工程师实现高精度、低成本的电流控制方案,适用于LED驱动、传感器激励等多种应用场景。

weixin_29310631的博客 482

jdk的基本构成

一、JDK是什么 JDK :Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment),Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 JRE:Java Runtime Environment,它为Java提供了运行环境,其中重要的一环就是通过JVM将字节码解释成可执行的机器码。JRE由JVM,Java运行时类库,动态链接库等组

liwangcuihua的博客 5012

485芯片AB波形正负半周的问题探讨

      本人做的一个产品,产品的其中一个接口是RS485的,我们使用的芯片是MAX13487E。MCU是STM32F103,MCU的USART通过光耦隔离后,接到MAX13487E。因为STM32F103的VCC是3.3V的,MAX13487E的VCC是5V。      部分原理图如下,上述部分电路参考了官方的参考设计,现在测试的AB波形时候发现如下问题。1.把R10和R16改为1k,示波器C...

qq_26308521的博客 1万+

【转录调控网络】代谢组学与其他组学的联合分析经典模式简介

多组学联合分析经典模式转录组学&代谢组学联合分析 转录组学&代谢组学联合分析 转录组是获得生物体内基因表达的重要方法,代谢组是生物体表型的基础和直接体现者。 转录组测序可以得到大量差异表达基因和调控代谢通路,但由于基因与表型之间很难之间关联,导致关键的信号通路难以确定,因此往往达不到预期的研究目的。代谢产物是生物体在内外调控下基因转录的最终结果,是生物体表型的物质基础。 在系统生物学研究时代,生物过程复杂多变,基因调控网络复杂。针对特定的生理、病理等表型进行研究,利用转录组的数据获得大量差异

小哲的博客 6194

什么是 JDK?

JDK 是 Java Development ToolKit 的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。 最主流的 JDK 是 Oracle 公司发布的 JDK,除了 ...

沉默王二 4万+

【WRF实操】四层嵌套网格设计-以粤港澳大湾区GBA为例

四层嵌套网格设计-以粤港澳大湾区GBA为例

WW、forever的博客 820

Java入门教程(一):从零开始理解Java编程

本篇带你完成了Java的环境搭建、第一个程序、基础语法和OOP初探。接下来,我们会深入方法、异常处理等主题。保持动手实践,编程能力会飞速提升!Java自1995年诞生以来,一直是全球最受欢迎的编程语言之一。Java开发需要JDK(Java Development Kit),它包含编译器(:第二篇将讲解《Java方法与异常处理:写出健壮的代码》。如果你刚入门编程,Java是一个既能打基础又能实战的绝佳选择!Java的核心是面向对象,我们通过一个。类,实现加减乘除方法,并在。(长期支持版本),从。

2501_92939528的博客 1145

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA基础初探(一)核心概念(JVM,JDK,JRE)、流程控制语句、基本数据类型、关键字、标识符、常量与变量、类型转换、Debug处理

学完了一遍java,现在打算回过头,从头再来一遍并通过博客记录java初探。 该篇博客目录 1、核心概念:JVM,JDK,JRE 2、使用Eclipse初写java程序 3、java关键字 4、java标识符 5、java变量 6、java数据类型 7、java自动类型转换 8、java强制类型转换 9、java常量 10、jav

浅然的专栏 1037

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Java基础】如何安装JDK

JDK(Java Development Kit,Java开发工具包)是用于开发Java应用程序的工具集。它不仅包含了Java编程语言所需要的核心类库,还包括了一些开发和调试工具,如编译器、调试器、打包工具等。JDK是Java开发者必不可少的工具。

无名小卒的博客 1411

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JDK基础原理及作用

什么是JDK? JDK简介 JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组...

qq_24662345的博客 4084

java jdk基础包说明

Java、javax、org、sun包都是jdk提供的类包,且都是在rt.jar中。rt.jar是JAVA基础类库(java核心框架中很重要的包),包含lang在内的大部分功能,而且rt.jar默认就在根classloader的加载路径里面,所以放在classpath是多此一举 。他们之间的区别具体如下: 1. java.* JavaSE的标准库,是java标准的一部分,是对外承诺的java...

赵英超的博客 2625

【Java】JDK安装及java语法基础

JAVA入门与配置

DevFrank的博客 5545

Java的JDK基础

https://www.oracle.com/technetwork/java/javase/jdk-8-readme-2095712.htmlOracle中文官网:https://www.oracle.com/cn/index.htmlJDK下载:https://www.oracle.com/technetwork/cn/java/javase/downloads/index.htm(有JDK也有JDK文档说明)JDK文档说明:https://docs.oracle.com/javase/8/docs/

William_fang的博客 1228

Java基础——JDK下载与安装

在 Java 开发的世界里,JDK(Java Development Kit)是一切的基础,它是 Java 开发人员用于开发 Java 程序的核心工具包。下面就详细介绍一下 JDK 的下载与安装步骤。

jukuya的博客 2403

【JAVA基础】JVM vs JDK vs JRE

JVM、JDK和JRE是Java平台的重要组成部分,它们在Java应用程序的生命周期中发挥着不同的作用。JVM是Java程序运行的核心,负责执行Java字节码;JRE为Java程序的运行提供了必要的环境;而JDK则是Java开发的全套解决方案,包含了JRE和用于开发的工具。了解这三者的定义、功能和关系,有助于更好地理解和使用Java平台。

2403_87669205的博客 1539

学java需要装jdk吗_JAVA基础之JDK安装

JDK的安装与环境变量配置是JAVA开发之路的第一步,很多新人在这一步上就卡了很久,浪费了很多时间,甚至有些人就轻易地“从入门到放弃”了。今天我们就来一步步教你如何打倒这第一只拦路虎。1.JDK下载百度搜索jdk关键字,找到第一个英文的链接:点进去后找到 JAVA SE 8u211,点击JDK下面的DOWNLOAD标志进入下一页。注意这里,有很多人直接下载了最新版本的JAVA 12,实际上JAVA...

weixin_42355013的博客 3023

Java笔记——【Java】JDK安装及java语法基础

JDK(JavaDevelopment Kit):是指Java开发套件,类似gcc/g++,有了它就可以编译运行java程序。Swing是一个为Java设计的GUI工具包,属于Java基础类的一部分。JDK8好像是大家最常用的版本,这里我用的JDK17,也是一个长期支持版。此处以JDK17为例,其他版本可能还需要配置CLASSPATH,在此说明。一直听说Java是C++的升级和优化,却一直没用过,今天来简单学习一下。类似C++,java的程序也有编写、编译和运行三步骤。插件,下载好后就可以运行程序了。

a25847a的博客 1428

Java和JDK的关系;以及JDK版本

包含了编译器(javac)、解释器(java)、调试器(jdb)、文档生成工具(javadoc)等开发工具,以及Java运行环境(JRE)和Java基础类库(Java API)。JRE中包含了Java虚拟机(JVM)和Java标准类库,是运行Java程序所必需的环境。因此,可以说JDK是Java开发者用来编译、运行、调试和维护Java程序的完整开发工具集。同时,每个版本的具体发布日期和特性可能随着Oracle的计划有所变动,建议查阅Oracle官方发布的最新信息以获取最准确的版本详情。

qq_42802219的博客 4203

什么是java jdk?

JDK 是用于开发 Java 应用程序的软件开发工具包,为 Java 开发者提供了编译、运行、调试和打包 Java 程序所需的一切资源,是开展 Java 编程的基础环境。比如想开发一个 Java Web 应用、手机 APP 里的 Java 模块,都得先安装对应版本的 JDK。

2401_83708850的博客 1453
上一篇: oracle数据库,表空间,数据文件的关系
下一篇: Java基础——类成员变量不初始化默认值
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值