Java的发展史
Java发展历史
Java 的历史要追溯到 1991 年, 由 Sun 公司带领的开发小组, 想设计一种小型的计算机语言,主要用于有线电视转换盒这类的消费设备。 由于这类设备的处理能力和内存都非常有限,所以语言就必须设计的非常小且能够生成紧凑的代码。 另外,由于不同的厂商会选择不同的 CPU, 因此很重要的一点就是这种语言不应该与任何特定的体系结构绑定。这个项目被命名为 “Green”。
Sun 公司的人都有 Unix 的应用背景, 所以开发的语言用了 C++ 为基础。并把这种语言称为 “Oak”, 后来, Sun 公司的人后来发现, Oak 是一种已经有的计算机语言的名字, 于是, 将其改名为 “Java”。
- 引入的新特性包括:
- 引入集合(Collection)框架;
- 对字符串常量做内存映射;
- 引入JIT(Just In Time)编译器;
- 引入对打包的Java文件进行数字签名;
- 引入控制授权访问系统资源的策略工具;
- 引入JFC(Java Foundation Classes),包括Swing 1.0、拖放和Java 2D类库;
- 引入Java 插件;
- 在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型;
- 在Applet中添加声音支持。
Java的三大平台
(1)Java SE 标准版
Java Standard Edition
开发普通桌面和商务应用程序,包括Java最核心的类库(集合、数据库连接、网络编程等等)。
1995年5月Java语言诞生,2019年9月发布Java SE 13.
Java语言中常用的包:
java.util 包含Java中大量工具类、集合类等,如Arrays、List、Set等
java.net 包含Java网络编程相关的类和接口。
java.io 包含Java输入、输出有关的类和接口。
java.awt 包含用于构建GUI的相关类和接口。
说明:GUI, Graphical User Interface 图形用户界面
(2)Java EE 企业版
Java Enterprise Edition
开发企业级应用程序,包括Servlet、JSP、JavaBean、JDBC、Web Service等技术
(3)Java ME 微型版
Java Micro Edition
开发电子消费产品和嵌入式设备。该版本还提供HTTP等高级Internet协议,使移动电话能以客户端/服务器(Client/Server, C/S)方式直接访问Internet的全部信息,提供高效率的无线交流。
使用import关键字导入某个包中的某个类:import 包名.类名
如果需要用到一个包中的多个类,可使用:import 包名.*,从而导入该包下所有的类
————————————————
版权声明:本文为CSDN博主「卢奕冰2017」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/luyibing2017/article/details/124019033
JDK,JRE,JVM是什么
- JDK(java Development Kit) Java 开发工具包
- 编译器
- 解释器
- 源代码
- JRE
- JRE(java Runtime Environment)Java 运行环境
- 源代码
- JVM
- JVM(Java Virtual Machine)Java虚拟机
JDK与JRE,JVM的关系
安装jdk后为什么要配置环境变量
这是因为我们执行java命令需要开发工具集,而这些工具文件在jdk目录下的bin目录里面,所以我们在bin目录下可以成功执行java命令,其他目录不行。去配置环境变量!!!我们配置环境变量的目的就是让java命令在任何目录下都可以执行,或者说让它执行时跳转到jdk的bin目录下。
Java的语言跨平台的原理
首先我们来说一下Java代码的运行过程:
1、首先将java文件编译成字节码(.class)文件;
2、使用Java虚拟机(JVM–Java Virtual Machine)运行运行字节码文件。
上面的步骤中,第一步中,在所有的平台上生成的字节码文件都是相同的。
上面的步骤中,第二步中,在不同的平台上运行字节码文件的Java虚拟机是不同的。
Java的开发团队针对不同的平台开发出了对应版本的java虚拟机,这使得同一个java代码文件可以再不同的平台上运行。
所以,java能实现跨平台运行是因为有各种平台对应版本的java虚拟机的支持
Java程序执行的过程
javac和Java的区别
java编译器名称是javac,是将源文件编译为字节码文件的程序,而java是java解释器的名称,也就是解释和执行字节码文件的程序。
注意:::
java源文件必须是具有 .java 扩展名
java字节码文件必须具有 .class 扩展名
Java文件和class文件的区别
.java文件,就是当前编写的代码文件
.class文件,就是编译过后的文件(jvm只识别.class文件)
比如myeclipse,我们在点run的时候,都是将.java文件先编译成.class文件 然后才能运行的
Java的基本数据类型
byte,和short,int,long四种类型的区别
一、byte
byte的表示位数为-128~127
当我们byte num01 = 128时,数字超过的byte的表示范围,会报错,因为128默认为int型;
所以我们要遵从:当表示范围大的数据类型转换成表示范围小的数据类型时,要强制转换
byte num01 = (byte)128得到-128(这里可以理解成127+1得到-128,回到最小,也表示-0)
注意:byte num01 = 1,num02 = 2;byte num03= num01+num02;也会报错
原因:int类型进行了算术运算不能直接转换为byte和short,需要进行强制类型转换。
二、short
short的表示位数是为-32768~32767
同理当我们short num04 = 32768时也需要强制类型转换:
short num04 = (short)32768得到-32768。
三、int
int的表示位数为-2147483648~2147483647
当我们用 int num05 = 2147483648来初始化变量时,也会报错:
这儿直接报的是超过表示范围而导致的错误,由于数字2147483648本身就为int类型,属于同级,所以不能进行强制类型转换来得到结果,那么:
我们可以通过int num05 = 2147483647+1 来得到-2147483648的结果(int类型进行运算,最大数+1=最小的)
四、long
long的表示位数为-9223372036854775808~9223372036854775807
当我们long num06 = 2147483648时,会报错
因为int超过了自己的范围;
我们可以通过long num06 = 2147483648L转换成long来修改,也可以long num06 = 2147483647+1来修改,会得到-2147483648(int类型<long类型,小转大直接转换,int自己内部运算得到-2147483648)
float和double的区别
ouble 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
计算机最小的存储单位,最小的空间单位
内存
硬盘
最小的单位:比特一个bit只能存储一个0或1
每8个比特是一个最小的存储空间称为byte(字节
bit,B,KB,MB,GB,TB,PB分别是什么单位,换算是什么
1.B是Byte的缩写,B就是Byte,也就是字节(Byte)
2.b是bit的缩写,b就是bit,也就是比特位(bit)
3.B与b不同,注意区分,KB是千字节,Kb是千比特位
1MB(兆字节) = 1024KB(千字节)= 1024*1024B(字节) = 1048576B(字节)
8bit(比特位)= 1Byte(字节)
1024Byte(字节)= 1KB(千字节)
1024KB(千字节)= 1MB(兆字节)
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB