初识JAVA

1 计算机基本知识

1.1 计算机分类

1 PC机:个人电脑

2 服务器:处理大量数据的高性能计算机

3 智能终端:手机、ipad、掌上电脑

4 嵌入式设备:只要有芯片但是没有系统运行的

1.2 操作系统

windows系统主要服务于个人电脑

还有个Linux系统,主要服务于服务器、智能终端、嵌入式式设备,纯命令行操作,

优点:稳定、安全

缺点:上手复杂

2 进制

2.1 常用进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
我们在用的是十进制,逢10进1 9 + 1 --> 10

二进制,逢2进1 1 + 1 --> 10
java中,0b开头表示二进制

八进制,逢8进1 7 + 1 --> 10
java中,0开头表示八进制

十六进制,逢16进1
0 ~ 9, A B C D E F
F + 1 --> 10
java中,0x开头表示十六进制
*/

2.2 十进制转二进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
6 --> 110

8421法:
6 2 0
64 32 16 8 4 2 1
1 1 0

1. 按照2的倍数从1开始排列数字
2. 6比8小,从4开始推
3. 6>=4,4的位置给1,
4. 6-4得2,放在下一位,2>=2,2的位置给1
5. 2-2得0,放在下一位,0<1,1的位置给0
*/

2.3 二进制转十进制

1
2
3
4
5
6
7
8
9
10
11
12
/*
101

8421法:
1 0 1
8 4 2 1
4 + 1 == 5

1. 按照2的倍数从1开始排列数字
2. 将2进制数据放在对应位置,靠右对齐
3. 只要对应的位置是1,该数字相加
*/

3 数据存储

1
2
3
4
5
6
7
8
9
10
/*
计算机中最小的信息单位是bit(位),也就是一个二进制位,因为硬件只能表示开、关两种状态

最小的存储单位B(字节),1字节等于8位
1KB --> 1024B
1MB --> 1024KB
1GB --> 1024MB
1TB --> 1024GB
...
*/

4 JAVA历史

image-20230306095607090

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
1996年,sun公司发布了java的第一个开发工具包,意味着java独立了,可以拥有自己的整个生态链

1998年,sun公司发布了第二代java平台,这个平台中包含了3个版本的java

javaME 应用于移动端,无线及有限资源环境
用的很少,做机顶盒,光猫这种微型设备的一些开发,市场占有率很少,几乎淘汰

javaSE 应用于桌面环境
java基础,面向对象,反射,多线程

javaEE 应用于java的应用服务器, 用于B/S架构的javaweb项目开发 (Browser/Server浏览器/服务器)
jsp,servlet,web框架

2004年,sun公司为上面几个版本做了一次重大更新,并且取名为Tiger(老虎)

2009年,Oracle以70多亿美元总值收购了sun

2014年, Java1.8发布, 大多数公司都在使用
(具体是在JDK8 u221之前可以免费商用, 后面的新版本商用都需要付费授权,Oracle公司为了推广新版本一般都是先免费几年再收费)
*/

5 JAVA跨平台特性

当年JAVA问世时,SUN推广口号:==一次编译,到处运行!==

6 JAVA的编译和执行过程

1
2
3
4
5
/*
1. 编写java程序代码(.java)
2. 通过javac.exe(JDK中的开发工具)编译成.class字节码文件
3. 通过java.exe启动JVM虚拟机并加载有main()方法的类,从main()方法作为程序入口开始执行
*/

7 了解 JDK

7.1 JDK中包含JRE,它们都有java.exe

7.2 JAVA核心类库包 rt.jar

7.3 JDK中的java开发工具

image-20230306211914748

8 JVM、JRE、JDK分别是什么

1
2
3
4
5
6
7
8
9
10
/*
JVM(JAVA Virtual Machine - JAVA虚拟机)
在操作系统中通过程序虚拟出的一台计算机,将字节码翻译成具体的机器码,交给当前系统平台执行

JRE(JAVA Runtime Environment - JAVA运行环境)
运行java的最小环境,包含JVM虚拟机和JAVA核心类库

JDK(JAVA Development Kit - JAVA开发工具)
开发java的最小环境,包含JRE以及一些开发工具javac.exe(编译代码)、javap.exe(反编译字节码)、javadoc.exe(生成文档)
*/