Java学习笔记 01 | 概论

相关文章

Java学习笔记 02 | 快速之旅:Java环境配置及HelloWorld程序

Java学习笔记 03 | 基础语法总结

目录

一、解释型语言和编译型语言

编译型语言

解释型语言

Java是解释型语言 or 编译型语言?

二、Java语言的特点

三、Java的发展历史

四、Java官网

五、Java平台的三大版本

Java SE ( Java Platform,Standard Edition)

Java EE ( Java Platform,Enterprise Edition )

Java ME ( Java Platform,Micro Edition)

六、Java开发环境

JDK(Java Development Kit)

JRE(Java Runtime Environment)

JVM(Java Virtual Machine)

七、Java的版本

八、Java程序的执行过程 


一、解释型语言和编译型语言

编译型语言

程序在执行之前需要一个专门的编译过程,把源代码编译成机器语言,运行时不需要再次翻译,直接使用之前编译的结果就行。代表性的编译型语言有C、C++、Pascal等

特点:程序执行效率高;依赖编译器,因此跨平台性要一差些

解释型语言

源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。代表性的解释型语言有Python、JavaScript、Shell等

特点:运行效率一般较低,依赖解释器,跨平台性好

Java是解释型语言 or 编译型语言?

Java究竟是解释型语言还是编译型语言,在程序界依然讨论不休

Java同时具有解释型语言和编译型语言的特点,说Java是编译型语言,主要是因为现在的JVM为了效率,都有一些JIT(Just In-Time Compiler,即时编译器)优化,它又会把热点代码(被多次调用的方法、被多次执行的循环体)的.class的二进制代码编译为本地的机器码直接运行

说Java是解释型语言,是因为Java代码编译后的字节码文件不能直接运行在操作系统上,还需要经过JVM解释为机器码才能在对应操作系统上运行

从Java语言的特点来看,其实它更偏向于解释型语言。Java具有很多解释型语言的特点,比如它的运行效率相比C、C++等语言要低一些、它的跨平台性较好等。事实上,随着现代语言的发展,以及即时编译等技术的出现,解释型语言和编译型语言的差距已经逐渐缩小,不必太过纠结于此


二、Java语言的特点

官方列出的Java语言特点:

简单性(Simple)

Java是用C++编写的,吸收了C++语言的各种优点,还摒弃了C++中难以理解的多继承、指针等概念

面向对象(Object oriented)

Java是一门面向对象的语言,它只支持类之间的单继承,但是可以使用接口来实现多继承

分布式(Distributed)

Java支持分布式开发 

多线程(Multithreaded)

Java是天生的多线程语言 

动态性(Dynamic)

Java虽然是一门静态语言,但是具有一些动态语言的特性,比如它的反射机制。此外,在网上下载已经编译好的Java代码之后,可以直接使用JRE运行

跨平台性(Architecture neutral)

虚拟机的引入使得Java成为一门“一次编译,到处运行”的语言,即Java源代码编译之后,无需再次编译就可以在不同的平台上运行

可移植性(Portable)

Java的可移植性体现在三个层面:源代码级、操作系统级、CPU硬件级

高性能(High performance)

相比于其他脚本语言,Java具有较高的性能,随着虚拟机技术的发展,Java会越来越快

健壮性(Robust)

Java的强类型机制、异常处理、垃圾回收机制保证了它的健壮性

安全性(Secure)

Java的安全性体现在:它严格遵循面向对象的规范;剔除了指针;对数组边界进行检查,有效防止了缓存溢出等安全漏洞;强制类型转换;对线程安全的支持;通过编译器、检验器、类装载器建立安全策略等方式保证程序的安全性


三、Java的发展历史

Java的前身:1991年4月,Sun公司成立了Green项目小组,专攻智能家电的嵌入式控制系统,由James Gosling博士领导的绿色计划(Green Project)开始启动,这个计划的产品就是Java语言的前身:Oak(橡树)

Java的诞生:1995年5月23日,Oak语言改名为Java,并且在SunWorld大会上正式发布Java 1.0版本。Java语言第一次提出了“一次编译,到处运行”的口号

JavaOne大会:1996年5月底,Sun公司于美国旧金山举行了首届JavaOne大会

Java的三个版本:1999年6月,发布Java的三个版本:J2SE、J2EE、J2ME

命名的重大更新:2005年6月,Java SE6.0发布,J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME

Oracle公司收购Sun:2009年4月20日,Oracle公司宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有

JDK1.8发布:2014年3月18日,Oracle公司发布Java SE 1.8

Java最新版本:2022年,JDK19发布


四、Java官网

因为Sun公司被Oracle公司收购了,现在是Oracle公司负责Java的发行


五、Java平台的三大版本

Java SE ( Java Platform,Standard Edition)

Java平台标准版,以前称为 J2SE。JavaSE主要用于桌面应用开发,同时也是Java的基础

Java EE ( Java Platform,Enterprise Edition )

Java平台企业版,以前称为 J2EE。JavaEE主要用于Web项目的开发,包括十三种核心技术:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF

Java ME ( Java Platform,Micro Edition)

Java平台微型版,以前称为 J2ME。JavaME主要为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供开发环境


六、Java开发环境

JDK(Java Development Kit)

Java开发工具包,其中包括编译工具(javac)打包工具(jar)等,也包括JRE

JRE(Java Runtime Environment)

Java运行时环境,其中包括JVM和Java核心类库,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可

JVM(Java Virtual Machine)

Java虚拟机,JVM可以把字节码解释成具体平台上的机器指令执行,这是Java能够“一次编译,到处运行”的原因


七、Java的版本

Java的版本有两种描述,一种是这样的,比如Java 8;另一种是这样的JDK1.8,它们是一个意思。通常程序员口中的Java版本,指的其实是Java的JDK版本,我们只需要知道

JDK1.8 == JDK8 == Java 8 == Java SE 8 

JDK1.9 == JDK9 == Java 9 == Java SE 9

至于为什么JDK1.9 == JDK9,这其实是一个历史遗留问题,Java最早的版本是JDK1.0,命名为了Java1.0,后面的版本是Java1.1、J2SE 1.2等等;到JDK1.5的时候,命名更改为了Java SE 5.0;到了JDK1.9的时候,下一个版本没有命名为JDK2.0,而是命名为了JDK10,对应着Java 10

有兴趣的同学可以参考这篇博客——Java版本和JDK版本_MinggeQingchun的博客_java最新版本是多少 

目前Java最新版本是JDK19 (JDK19 即 Java 19 即JavaSE 19)

可以到Oracle的官网查看Java的最新版本:​Java Platform, Standard Edition Documentation - Releases


八、Java程序的执行过程 

在Java中,所有源代码都首先以纯文本文件编写,以.Java扩展名结尾。然后javac编译器将这些源文件编译为.class文件。*.class文件不包含处理器本机代码,而是包含字节码——JVM的机器语言。Java启动工具使用JVM的实例运行应用程序

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易水卷长空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值