Java学习日记 2022.6.21

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Java学习
    • Java的发展简史
    • Java的三大平台
    • JDK,JRE,JVM是什么
    • 安装JDK后为什么要配置环境变量
    • Java语言跨平台的原理
    • Java程序执行的过程
    • javac和java的区别
    • java文件和class文件的区别
    • Java的基本数据类型
    • byte,short,int,long四种类型的区别
    • 计算机最小的存储单位,最小的空间单位是什么
    • bit,B,KB,MB,GB,TB,PB分别是什么单位,换算是什么
    • 预习和复习整理


Java学习

Java的发展简史

年份 版本或重大事件 补充说明
1996 Java 1.0发布, 但是缺陷性和局限性很大, 并不能用于开发
1997 Java 1.1发布, 引入了JDBC、内部类、反射
1998 J2SE 1.2发布, Java正式改名为J2SESun公司推出了Java三大平台版本1. J2SE: Java标准版(Standard Edition)2. J2EE: 服务器端开发得企业版(Enterprise Edition)3. J2ME: 手机嵌入式设备微型版(Micro Edition) J2SE、J2EE、J2ME中的"2"是英文单词"to"的意思J2SE: Java To Standard Edition J2EE: Java To Enterprise EditionJ2ME: Java To Micro Edition
1999 HotSpot虚拟机发布
2000 J2SE 1.3发布
2002 J2SE 1.4发布, Java成为服务器端开发的首选平台
2004 J2SE 1.5发布, 这是一个里程碑版本Sun公司直接对外宣布JavaSE5.0
2005 Java SE 6发布;J2EE改名为 Java EE;J2SE改名为 Java SE;J2ME改名为 Java ME
2006 Sun公司宣布JDK开源;并且建立了 OpenJDK 组织对这些源码进行独立管理
2009 Oracle 以 74 亿美元收购 Sun 公司取得了 Java 的商标版权
2011 JavaSE 7发布
2014 JavaSE 8发布
2017 JavaSE 9发布Oracle 决定将JavaEE移交给开源组织,最后 Eclipse基金会接手JavaEE更名为Jakarta EE(雅加达)
2018 从这一年开始, 每6个月就会发布一个 Java 版本并区分了最新版和LTS版, 生产环境最好使用LTS版本JavaSE 10 发布JavaSE 11 LTS发布 LTS: Long Time Support (长期稳定支持版本)非LTS版本的可能会随时停更弃用
2019 JavaSE 12 发布;JavaSE 13 发布
2020 JavaSE 14 发布;JavaSE 15 发布
2021 JavaSE 16 发布;JavaSE 17 LTS 发布
2022 JavaSE 18 发布

Java的三大平台

针对不同的开发市场划分为三个技术平台:Java SE、JavaEE、JavaME。
Java SE:
全称为JAVA Standard Edition(也曾简称为J2SE)JAVA标准版或JAVA标准平台,是JAVA技术的核心和基础,同时也是JAVA ME和JAVA EE的基础。它提供了标准的JAVA开发工具包(JDK),通过它能够实现桌面应用程序、低端服务器和JAVA Applet程序等功能的开发,目前该平台官方已经更新到JDK17版本。
Java EE:
全称为Java Enterprise Edition(也曾称为J2EE)JAVA企业版或JAVA 企业平台,通过它能够构建企业级服务应用。实际上,JAVA EE包含了JAVA SE,并在这个基础上添加了许多功能强大的类库,用于支持企业级别的业务开发如目录管理、消息管理等,目前该平台官网最新版本为JAVA EE8。
Java ME:
全称JAVA Micro Edition(也曾称J2ME)JAVA微型版或JAVA小型平台,与JAVA EE主要构建企业级应用相反,JAVA ME是一种很小的JAVA运行环境,它主要是应用在嵌入式的产品中,如移动电话,掌上电脑、电视机机顶盒等,使得编译好的JAVA程序能够在上面执行,目前该平台官网最新版本为JAVA ME8。

JDK,JRE,JVM是什么

JDK(Javadevelopment Kit)Java开发工具包,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
JRE(Java runtime environment)java运行环境,是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM(Java Virtual Machine)java虚拟机,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。
三者的关系
Java学习日记 2022.6.21_第1张图片

安装JDK后为什么要配置环境变量

环境变量可以简单理解为一个变量,是整个计算机的全局变量,可以更快的找到JDK的安装路径。

Java语言跨平台的原理

Java程序是通过java虚拟机(JVM)在系统平台上运行的,只要该系统可以安装相应的JVM,该系统就可以运行java程序。
Java源程序经过编译器编译后变成字节码(.class文件,Android 中是 .dex文件),字节码由JVM解释执行,字节码只面向虚拟机,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码(二进制码),然后在特定的机器上运行。

Java程序执行的过程

编写、编译和运行java执行过程

javac和java的区别

javac 可以将java源文件编译为class字节码文件

javac HelloWorld.java

java 可以运行class字节码文件

java HelloWorld

java文件和class文件的区别

Java文件是源文件,通过javac命令编译后产生.class文件,
class文件时字节码文件,是通过编译后产生的文件。

Java的基本数据类型

Java学习日记 2022.6.21_第2张图片

byte,short,int,long四种类型的区别

byte		8bit	-128~127
short		16bit	-2^15~2^15-1
int			32bit	-2^31~2^31-1
long		64bit	-2^63~2^63-1

计算机最小的存储单位,最小的空间单位是什么

··最小的单位:比特 一个bit只能存储一个0或者是1
··每8个比特是一个最小的存储空间称为byte(字节

bit,B,KB,MB,GB,TB,PB分别是什么单位,换算是什么

bit(binary digit)比特,这是表示信息的最小单位,它只能表示 0 或 1。
byte(字节),其表示的值范围是0~255(无符号) 或 -127~127(有符号),1 byte = 8 bit,一个英文字母1字节,一个汉字需要2字节(GBK编码)。
KB(Kilobyte),1 KB = 1024 byte,大约四五百个汉字的短篇小说。
MB(Megabyte),1 MB = 1024 KB,五十万多字的内容,《西游记》82万字2 MB就存完。
GB(Gigabyte),1 GB = 1024 MB,大约5.37亿个汉字,历史上字数最多的《永乐大典》有3亿7千万字。
TB(Terabyte),1 TB = 1024 GB,约1.1万亿字节,在线看的720P电影每部大概500MB~1GB大小,可以存放1000多部。
PB(Petabyte),1 PB = 1024 TB,按上例,可以存放100万部电影,人活到100岁也不到90万小时。

预习和复习整理

java所有的关键字都是小写的

Java的语言的浮点数有两种表示形式。
十进制树形式:例如 5.12,3.0.浮点数必须包含一个小数点,否则会被当成整数处理。
科学计数法形式:例如5.12e2(5.12*10^2)。
只有浮点数除以0才会得到正无穷大或负无穷大,因为java语言会自动把和浮点数运算的0(整数)当成0.0处理。如果一个整数除以0,则会抛出一个异常。

数值可以使用下划线分割
例如:int binVal = 0B1000_0000_0000_0000_0000_0000_0000_0011;

Java学习日记 2022.6.21_第3张图片
注意:自动转换只支持范围小的数值或变量直接赋给另一个支持范围大的变量。
当如果想要大范围向小范围转换,需要进行强制转换,但是可能会造成溢出,从而导致数据丢失。
例如

        int iValue = 233;
        //将int转换成byte
        byte bValue = (byte)iValue;
        //将输出-23
        System.out.println(bValue);

+号的使用

        //下面语句输出7Hello!
        System.out.println(3 + 4 + "Hello!");
        //因为Hello!+3会把3当作字符串处理
        //而后再把4当成字符串处理
        System.out.println("Hello" + 3 + 4);

string是一个典型的不可变类,因此String对象被创建就不能被改变。

自增,自减都是对变量的操作,不能用于数值。

<<=:x>>=y,即x=x>>y

&与&&的区别:&会计算前后两个操作树,而&&先计算左边的操作数,如果左边的操作为false,那么将直接返回false,不计算右边的操作数
|和||的逻辑类似

运算符是优先级的,但为了保证可读性,过于复杂的表达式分成几步来完成,尽量使用()来控值表达式的顺序。

你可能感兴趣的:(学习日记,java,学习)