JAVA Date 01

一、JAVA发展史

时间版本事件说明
1991Sun公司将以C++为基础的语言命名为Java
1995浏览器演变为HotJava浏览器,并在网页中执行内嵌Java代码。
1996Java1.0Java1.0发布,开发代号Oka缺陷型局限性很大,不能用于开发
1997Java1.1
  • 引入JDBC(Java Database Connectivity);

  • 支持内部类;

  • 引入Java Bean;

  • 引入RMI(Remote Method Invocation);

  • 引入反射(仅用于内省)

1998J2SE1.2J2SE 1.2发布, Java正式改名为J2SE
Sun公司推出了Java三大平台版本
1. J2SE: Java标准版(Standard Edition)
2. J2EE: 服务器端开发得企业版(Enterprise Edition)
3. J2ME: 手机嵌入式设备微型版(Micro Edition)- 引入的新特性包括:
- 引入集合(Collection)框架;
- 对字符串常量做内存映射;
- 引入JIT(Just In Time)编译器;
- 引入对打包的Java文件进行数字签名;
- 引入控制授权访问系统资源的策略工具;
- 引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D类库;
- 引入Java 插件;
- 在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型;
- 在Applet中添加声音支持。
J2SE、J2EE、J2ME中的"2"是英文单词"to"的意思
J2SE: Java To Standard Edition 
J2EE: Java To Enterprise Edition
J2ME: Java To Micro Edition 
1999HotSpot虚拟机发布
2000J2SE 1.3

开发代号为Kestrel(红隼)

- 引入的新特性包括:
- 引入Java Sound API;
- jar文件索引;
- 对Java的各个方面都做了大量优化和增强。

2001J2EE1.3
2002J2SE 1.4发布, Java成为服务器端开发的首选平台
  • 引入的新特性包括:

  • XML处理;

  • Java打印服务;

  • 引入Logging API;

  • 引入Java Web Start;

  • 引入JDBC 3.0 API;

  • 引入断言;

  • 引入Preferences API;

  • 引入链式异常处理;

  • 支持IPv6;

  • 支持正则表达式;

  • 引入Image I/O slot machine API。

2004J2SE1.5这是一个里程碑版本
Sun公司直接对外宣布JavaSE5.0
2005Java SE 6J2EE改名为 Java EE
J2SE改名为 Java SE
J2ME改名为 Java ME
2006

Sun公司宣布JDK开源
并且建立了 OpenJDK 组织对这些源码进行独立管理

  • 引入的新特性包括:

  • 支持脚本语言;

  • 引入JDBC 4.0 API;

  • 引入Java Compiler API;

  • 可插拔注解;

  • 增加对Native PKI(Public Key Infrastructure)、Java GSS(Generic Security Service)、Kerberos和LDAP(Lightweight Directory Access Protocol)的支持;

  • 继承Web Services;

  • 做了很多优化。

2009

Oracle 以 74 亿美元收购 Sun 公司
取得了 Java 的商标版权

  • 引入的新特性包括:

  • switch语句块中允许以字符串作为分支条件;

  • 在创建泛型对象时应用类型推断;

  • 在一个语句块中捕获多种异常;

  • 支持动态语言;

  • 支持try-with-resources;

  • 引入Java NIO.2开发包;

  • 数值类型可以用2进制字符串表示,并且可以在字符串表示中添加下划线;

  • 钻石型语法;

  • null值的自动处理。

2011JavaSE 7
2014JavaSE 8
2017jJavaSE 9JavaSE 9发布
Oracle 决定将JavaEE移交给开源组织,最后 Eclipse 基金会接手
JavaEE更名为Jakarta EE(雅加达)
2018JavaSE 10 
JavaSE 11 LTS
从这一年开始, 每6个月就会发布一个 Java 版本
并区分了最新版和LTS版, 生产环境最好使用LTS版本
JavaSE 10 发布
JavaSE 11 LTS发布
LTS: Long Time Support (长期稳定支持版本)
非LTS版本的可能会随时停更弃用
2019JavaSE 12 
JavaSE 13 
2020JavaSE 14 
JavaSE 15 
2021~2022

JavaSE 16 
JavaSE 17 LTS 

Java SE 18 

二、JAVA三大平台

J2SE (Java Standard Edition Java 标准版 (Standard Edition)

J2EE:Java To Enterprise Edition  服务器开发端的企业版 (Enterprise Edition)

J2ME: Java To Mircro Edition 手机嵌入式设备微型版 (Mricro Edition)

三、JDK 、JRE 、JVM 是什么

JDK:(Java Development Kit)是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序的开发。jdk是java开发的核心,包括了Java运行环境、一堆Java工具和Java基础的类库。
JRE:(Java Runtime Environment)是Java运行环境,包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
 

JVM:(Java Virtual Machine)是java运行环境的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现

四、安装jdk后,为什么要配置环境变量

配置环境变量可以在所有目录下执行java命令,系统通过环境变量可以找到java编译器
 

五、JAVA语言跨平台原理

一次编译、到处运行

1、Java程序的运行要经过编辑、编译、解释并执行三个阶段。
2、Java源代码经过编译生成字节码文件(.class)。字节码文件与平台无关,不面向任何具体平台,只面向虚拟机。
3、字节码文件需要解释成相应平台的机器码并运行。解释是通过Java虚拟机来执行的。Java虚拟机是可运行Java字节码文件的虚拟计算机。Java虚拟机(中的Java解释器)负责将字节码文件解释成为特定的机器码来运行。不同平台的虚拟机是不同的,但它们都提供了相同的接口。
 

六、JAVA执行过程 

编写:在Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。
编译:用 Java 编译器对源文件进行错误排査后,进行编译,编译后将生成后缀名为 .class 的字节码文件。
运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。
七、Java JAVAC区别

1. javac命令:执行javac.exe程序,负责编译,将程序员写的.java文件编译成JVM能读懂的.class字节码文件
2. java命令:执行java.exe程序,负责运行,会启动一个JVM进程,将运行时所需的类库和编译后的.class文件加载到内存中,将字节码翻译为机器码后执行.class文件

八、Java文件和class文件的区别

java文件是源文件,也就是我们自己写的代码。
class文件是虚拟机编译得到的,虚拟机需要把我们写的java文件编译成它可执行的字节文件。
九、java基本数据类型

整型byte 、short、 int 、long
字符型char
浮点数double 、float
布尔型boolean

 

十、byte short int long的区别

类型内存取值范围
byte8-128~127
short16-2^15~2^15-1
int32-2^31~2^31-1
long64-2^63~2^63-1

 

十一、计算机最小存储单位 , 最小空间单位

最小的存储单位:bit  比特

最小的空间单位:byte 字节

十二、Bit、B 、KB 、GB 、TB 、PB  分别是什么单位,换算关系

内存存储单元
b bit 比特位=二进制位  每一个比特位上只可能是0或1  最小单位  
B byte 字节  1个byte=8个bit 每8个比特是一个最小的存储空间称为byte(字节)
KB 千字节  1KB=1024byte
MB 兆字节  1MB=1024KB
GB 吉字节  1GB=1024MB
TB  1TB=1024GB
PB  1PB=1024TB

十二、自己预习的内容和复习内容整理

复习

计算机四大核心:CPU: 运算 ,     网络 :与外界交换数据,数据通信  ,内存:运算+临时存储

    硬盘:永久存储

基本数据类型:

整型byte 、short、 int 、long
字符型char
浮点数double 、float
布尔型boolean

不同的包内可以有相同的文件名。同一个包不可以。如下图所示

 

 

 输入端可以直接用psvnm+回车实现

输出端用sout+回车实现

注:所有的字符都应该用英文的形式

运行程序的方法有多种如:

1:直接点击public前面的绿色三角

2:右击空白处运行

3:点击左上角的File运行

预习

1、注释

单行注释:在程序中注释一行代码将//放在需要注释的内容之前

多行注释:一次性地将程序中多行代码注释掉 以/*开始,*/结束

文档注释/**开始,*/结束

2、标识符和关键字

  标识符: 分号(;)、花括号({})、方括号([])、圆括号(())、空格(  )、原点(.)、                                             

                   关键字

 

3、数据类型分类

基本类型和引用类型

4、基本数据类型

整型byte、short、int、long
字符串型char
浮点数型float、double
布尔型boolean

5、基本类型的类型转换

 

6、直接量

直接量是指在程序中通过源代码直接给出的值。
能指定直接量的通常只有三种类型:基本类型,字符串类型和null类型。java支持以下8种类型的直接量:

 

7、运算符

算术运算符

+ - * / %

当表达式中的数值都是整数int, 则运算结果也是整数int

当表达式中有一个数值是浮点数double, 则整个表达式所有数值全部提升为浮点数double, 运算结果为浮点数double

赋值运算符

=  +=  -=  *=  /=  %=

比较运算符

>  >=  <  <=  ==  !=

所有的比较运算符, 运算结果都是boolean类型, 要么是true, 要么是false

注意: 一个等于号  =  是赋值运算符 (可以是直接量赋给变量, 也可以是变量赋给变量)

  两个等于号  == 才是是否相等的比较运算符

逻辑运算符

&  &&  |  ||  !

逻辑运算符是对两个boolean条件做逻辑(与、或、非)运算, 运算结果也是boolean

与(并且关系and, 两个条件都成立, 结果才成立, 有一个条件不成立, 结果就是不成立)

左右两边都为true, 运算结果为true, 有一边是false, 运算结果就是false

或(或者关系or, 两个条件都不成立, 结果才不成立, 有一个条件成立, 结果就是成立)

左右两边都为false, 运算结果为false, 有一边是true, 运算结果就是true

非(成立变为不成立, 不成立变为成立)

取反, true取反后得到false, false取反后得到true

与和或有短路和不短路的区别

短路与: 左边不成立, 右边就不会运算了, 因为与要求两边都成立, 如果左边已经为不成立, 右边就没有运算的意义了, 因为无论右边是否成立, 也不会影响最终结果

不短路与: 左边不成立, 右边就失去了运算的意义, 但是也会运算一下

短路或: 左边成立, 右边就不会运算了, 因为或要求两边都不成立, 如果左边已经成立了, 右边就失去了运算的意义了, 因为无论右边是否成立. 也不会影响最终结果

不短路或: 左边成立, 右边就失去了运算的意义, 但是也会运算一下

位运算符 (平时写代码用不到, 1. 面试可能会问, 2. 官方源代码中可能会出现)

位 => 二进制比特位

什么是位运算符? 因为运算符会将数字转为二进制, 对二进制的比特位做运算

左移<<   右移>>

单目运算符 (单目的意思是表达式中只有一个操作数, 例如 a++ 表达式只有一个操作数a)

++   --

运算符++或--在变量前面和后面的区别是什么?

如果表达式中只有 ++或--运算, 则在变量前面或后面没有区别

如果表达式中除了 ++或--, 还有其他运算

则在变量前面, 先运行++或--, 再运行其他运算

在变量后面, 先运行其他运算, 再运行 ++ 或 --

三目运算符

?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值