JavaSE 发展史及HelloWorld

  • csdn:

JavaSE 发展史及HelloWorld

1、语言的发展

  • 机器语言

   机器语言是用二进制代码表示的一种机器指指令系统的集合,里边就包含 0 和 1 ,能被计算机能直接识别和执行。每一个计算机只能理解他自己的机器语言。

  • 汇编语言

   在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址,也称为符号语言。

  • 高级语言

   高级语言是一种指令集的体系。高级语言允许程序员使用接近日常英语的指令的编写程序。像c,c++,java都是高级语言。

2、Java发展史

  在1991年时候,James Goslingsun公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品,这些电子产品有一个共同的特点:计算处理能力和内存都非常有限。所以要求:语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行。

  另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。所以,将这个语言命名为 “Green” ,类似于绿色软件的意思。 后来,改名将OAK。橡树的意思。改名后发现已经有一种语言叫这个名字了,再改名叫JAVA。

2.1 发展

发展史新功能
1991年,Sun公司的Green项目,Oak
1995年,推出Java测试版
1996年,JDK1.0
1997年,JDK1.1
1998年,JDK1.2,改进了缺陷,是一个革命性的版本,更名为Java2。改进了缺陷,是一个革命性的版本,更名为Java2。
2004年,J2SE 5.0 (1.5.0)①引入泛型; ②增强循环,可以使用迭代方式;③自动装箱与自动拆箱;④类型安全的枚举;⑤可变参数;
2006年,J2SE 6.0 (1.6.0)①Mustang;②自动加载驱动;③Desktop类;④SystemTray类;⑤对脚本语言的支持;
2011年,J2SE 7①Dolphin;② switch语句块中允许以字符串作为分支条件; ③在创建泛型对象时应用类型推断; ④在一个语句块中捕获多种异常; ⑤访问文件系统; ⑥Socket通道绑定和配置; ⑦异步I/O;
Java 8=JDK1.8(2014)①函数式接口 ②Lambda表达式 ③方法引用/构造器引用 ④更强的Strean API. ⑤接口的增强 ⑥Optional. ⑦ 新的时间和日期API. ⑧其它新特性,如注解中的重复注解、类型注解,HashMap底层的变化,JVM中Metaspace取代PermGen空间等
Java 9=JDK1.9(2017)//已无法下载
Java 10=JDK 10(2018.3月)//已无法下载
Java 11=JDK 11(2018.9月)①字符串加强;②HttClient Api; ③用于 Lambda 参数的局部变量语法;④ZGC并发回收器;
Java 12=JDK 12(2019.3月)//已无法下载
Java 13=JDK 13(2019.9月)
Java 14=JDK 14(2020.3月)

2.2 Java各版本

  简而言之,javase是基础,必须要先学;javaee是企业级,接着学,然后可以转到javaweb方向,javame是做移动应用的。基础必须先学,然后再考虑下一步Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发。

  • J2EE(Java 2 Enterprise Edition):定位在服务器端的应用。

    J2EE是J2SE的扩展,增加了用于服务器开发的类库。如:javax.servlet Enterprise JavaBeans 是一种用来代表企业逻辑的软件组件;JDBC则是让程序人员能直接在Java内使用 的SQL的语法来访问数据库内的数据;Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的 请求;JSP是一种可以将Java程序代码内嵌在网页内的技术;另外还有包括XML、email及transaction等各 种应用于服务器端的API
    
  • J2SE(Java 2 Standard Edition):定位在个人计算机上的应用。

    这个版本是Java平台的核心,它提供了非常丰富的API来开发一般个人计算机上的应用程序,包括用户接口 AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。在互联网上大放异彩的Applet也属于 这个版本。
    
  • J2ME(Java Micro Edition):定位在消费性电子产品的应用上。

    J2ME是J2SE的内伸,包含J2SE的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库: javax.microedition.io.*等。
    

2.3 Java特点及优势

  • 简单性:

  就是c++语法的纯净版。没有头文件,指针运算,结构,联合,操作符重载,虚基类等等。

  • 面向对象:

  面向对象是一种程序设计技术,他将重点放在数据(即对象)和对象之间的接口上。

  • 可移植性:

  这是JAVA的一个重要的优势。JAVA代码或者说字节码、二进制码可以跨平台的移植,而不用管具体的操作系统和硬件环境。

“一次编写,随处运行”:“write once, run anywhere”

  • 高性能:

  JIT(JUST IN TIME)即时编译。将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。

  • 动态性:

  Java的动态特性是其面向对象设计方法的扩展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。

  • 多线程

    多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

  • 安全性

  Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以构建防病毒,防篡改的系统。

  • 健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。

3、Java运行机制

计算机的高级编程语言类型: 编译型 ,解释型。

Java 语言是两种类型的结合;

利用编辑器编写 Java源程序à源文件名:主类名.java

利用编译器(javac)将源程序编译成字节码文件,字节码文件名:源文件名.class

利用虚拟机(解释器,java)解释执行:

运行过程:载入、代码校验、解释执行。
java运行机制

3.1 JVM虚拟机

  JVM是指在一台计算机上由软件或硬件模拟的计算机;它类似一个小巧而高效的CPU。

  JVM负责将 java字节码 解释运行,边解释边运行,这样,速度就会受到一定的影响。JAVA提供了另一种解释运行的方法JIT(just in time),可以一次解释完,再运行特定平台上的机器码。

  不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

3.2 JRE运行环境

Java Runtime Environment (JRE) 包含:Java虚拟机、库函数、运行Java应用程序和Applet所必须文件

Java运行环境的三项主要功能:

  • 加载代码:由class loader 完成;
  • 校验代码:由bytecode verifier 完成;
  • 执行代码:由 runtime interpreter完成。

3.3 JDK Java开发工具包

  sdk(Software Development Kit)(也就是jdk)是jre的超集,是在jre的基础上增加了编译器及其他一些开发工具。jre就是java运行时环境,包括了jvm和其它一些java核心api,任何一台电脑,只有安装了jre才可以运行java程序.

  Java2SDK (Development Kit)包含:JRE的超集,包含编译器和调试器等用于程序开发的文件

总结:

  • 如果只是要运行JAVA程序,之需要JRE就可以。 JRE通常非常小,也包含了JVM。
  • 如果要开发JAVA程序,就需要安装JDK。

4、java开发与环境搭建

4.1 安装

https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载

  可以从官网下载也可通过其他途径获取,只要最终得到JDK的安装包即可。可下载JDK8(JDK1.8)与JDK11。

双击安装,注意: 安装目录不要包含中文,也不要包含空格。

安装完成在安装目录会看到这样两个文件夹JDK与JRE(JDK11没有JRE)。

4.2 测试

  进入到安装目录中使用 java **-**version javac **-**version 命令测试
java安装

4.3 设置环境变量

  安装好JDK之后,我们可以并且只可以在安装目录调用java和javac命令。要在其他地方使用则需要配置环境变量。环境变量的作用就是告诉操作系统“我”可能在哪。

作用: 为了在cmd中任意路径下使用java|javac命令
   配置: 计算机->右键属性->高级系统设置->环境变量->系统变量->path->把jdk的bin目录路径配置到path中

path: 主要配置的位置,配置jdk的bin目录
JAVA_HOME:  
	作用:
		1) 为了不频繁操作path,避免经常修改删除不必要的内容
		2) 为了避免未来使用一些组件等出现问题(因为有可能默认要去寻找JAVA_HOME) 
	步骤:
		1) 新建变量JAVA_HOME:D:\install_path\Java\jdk-11.0.7
		2) path中 %JAVA_HOME%\bin
classpath : 设置class文件的位置,现在不需要配置,否则需要经常修改。

注意: 修改环境变量了,需要重新打开cmd

第一步:

右键我的电脑 -> 属性-> 高级系统设置-> 高级|环境变量

第二步:

JAVA_HOME = JDK的安装目录bin的上一层(包含java和javac命令的上一层)

第三步:

path中新增 %JAVA_HOME%\bin

第四步:

测试,任意目录下输入 java -version 或 javac -version 命令 OK

5、常见DOS命令

命令操作示例
盘符加冒号盘符的切换d:回车
cd 加路径切换目录cd 文件名
cd…目录返回上一层cd…
cd \退回到当前磁盘根目录cd \
dir查看当前目录内容dir
Tab自动填充
↑ ↓再次使用之前用过的命令
cls清屏
exit退出

6、HelloWorld

HelloWorld一般指的是我们学习一门新技术的第一个例子,统称为HelloWorld。

6.1.java的执行流程

​ 1.编写.java为结尾的源文件
​ 2.到文件所在路径下打开cmd
​    通过javac命令对源文件进行编译 javac HelloWorld.java
​    通过java命令对字节码文件解释执行 java HelloWorld

注意: 所有符号使用英文状态下的
修改环境变量了,需要重新打开cmd

6.2HelloWrold实现步骤

新建文本文档,以HelloWorld.java命名

注意显示文件后缀,修改后缀为 .java

编辑文本内容

public class HelloWorld{ 
  public static void main(String[] args){ 			
    	System.out.println("HelloWorld!!"); 
  } 
}

编译

在dos窗口中进入代码所在目录,输入 javac HelloWorld.java 命令。

运行看结果

再继续输入 java HelloWorld 命令。

7、常见问题

  • 文件后缀名

  文件扩展名也称为文件的后缀名,是操作系统用来标志文件类型的一种机制。有了文件的后缀名,方便操作系统判定使用何种软件打开文件。注意:文件的后缀名并不改变文件本身的内容。文件的后缀名可隐藏,一旦隐藏了后缀名,则我们无法直接更改后缀(即使改了也不成功),所以当文件后缀名被隐藏时,我们需要将其进行显示。

  • javac后跟文件完整名

  .java文件当中的类名(class 后面跟的名称)经过编译过后,会将类名作为.class文件的文件名称。但是注意: javac后面跟的是文件名+扩展名。

Java语言严格区分大小写

见到非法字符:肯定是中文问题

javac -encoding UTF-8 文件名.java,出现中文乱码可以用这条语句解决。

  • 通过命令生成jdk11的jre
    cmd进入jdk安装路径下,输入命令自动生成
    bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
    注意: 应该用管理员身份登录cmd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值