ZB-002-开撸准备工作

基本概念

  • 什么是JDK java development kit
  • Git 版本控制软件
  • IDEA java集成开发环境

安装java

搜索 oracle jdk

不要下载最新版java12 建议下载 java8,因为如果你是个初学者,下载最新版会遇到当前阶段你解决不了的问题。白白浪费时间。

因为下载java8需要登录,你可以搜索 oracle jdk 账号 登录下载即可

mac 配置多个版本jdk

编辑 ~/.bash_profile

1
2
3
4
5
6
7
8
9
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
export JAVA_9_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
export JAVA_10_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
export JAVA_13_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk9="export JAVA_HOME=$JAVA_9_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk13="export JAVA_HOME=$JAVA_13_HOME"

然后 source ~/.bash_profile

术语解释

  • JRE(java runtime environment) 运行
    • java运行环境
  • JDK(java development kit) 开发 + 运行
    • java开发工具包
1
2
# 粗略理解就是
JDK = JRE + javac
  • JAVA_HOME 就是 java的安装目录

java收费问题

  • 对于开发测试来说 jdk 都是免费的
  • 在生产环境里使用 jdk 是收费的,这个不该你来担心,应该由法务部操心

java版本详解

  • java对向后兼容有着谜一样的执着和坚守

java虽然现在到了12但是java的诉求就是向后兼容

1
2
3
就是java1.1的代码在 java12上跑基本没什么问题。

而python2/ python3 就有很大的差异了。

举个例子:你盖了到20层的时候,发现中间某层有个螺丝钉有问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
95年 java 1.1--> 1.2 -->1.6

2014年 java 1.8 引入了很多的特性。跨时代的成就。
乃至2019年 全国乃至全世界都是业界最广泛使用的东西


1.8之后 JEP223提议。把版本号变成了9从此之后 只有 9 / 10 / 11 /12

java9 引入了 JPMS java模块系统 还引入了 一个破坏性的改变 对向后兼容造成了一定的破坏

所以 1.8 和 9 是 java的一道鸿沟

9/10/11/12 是一脉相承的

LTS是什么 长期支持版。 意思是提供长久的功能改进和更新 目前只有 java1.8 和 11

如果是生产环境推荐使用 8

9 和 10 任何情况下都不推荐在生产环境里使用

vendor的JDK

vender(供应商)

来个例子

1
2
3
4
5
农夫山泉
怡宝
康师傅

三大矿泉水供应商

java的供应商

  • oracle jdk 官方的
  • open jdk 一份源代码(和oracle jdk 只有细微差别)
  • adopt jdk 社区维护的jdk
  • 其他公司开发的jdk

如上各种不同的jdk 被叫做 vendor

不同供应商提供的不同jdk实现

插播一个为什么想学java的原因

如果一件事情需要15年才能看到结果,此前完全没有回报,你还会去做吗?

互联网公司都采用敏捷开发,每个迭代大约是2周~6周。比三个迭代更遥远的事情,大家一般都不会去想。但是,人生是一个长期准备的过程,20岁的时候就需要定下35岁的目标,然后苦苦积累,不计得失,只为了无比遥远的多年以后,能够看到成果。互联网是一个短期行为的行业,但是人生不是。