Java

[Java]重学Java-Java平台

2021-03-17  本文已影响0人  AbstractCulture

Java的诞生

Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

任职于Sun微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的编程语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,太阳计算机系统(Sun公司)放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。Sun微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”

Java不同于一般的编译语言或解释型语言。它首先将源代码编译成字节码,再依赖各种不同平台上的虚拟机来解释执行字节码,从而具有“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。

与传统类型不同,Sun公司在推出Java时就将其作为开放的技术。全球的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C#语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。

现时,移动操作系统Android大部分的代码采用Java编程语言编程。

以上信息来自维基百科-点我前往

类库

Java提供了强大且具备安全性、跨操作系统的类库。同时Java平台的生态及其完善,你可以使用Java操作数据库、NoSQL、实现网络编程、绘图、操作文件......

垃圾回收

Java程序的内存分配交由JVM(Java虚拟机)进行管理,在Java平台编程中,大多数你无需担心内存的分配问题,因为JVM会帮你进行"垃圾自动回收",通常我们也称垃圾回收的过程称为GC.

面向对象

Java语言的编程范式为面向对象(Object Oriented),它关注如果对一件事情进行抽象,在面向对象的世界里,一切事物皆为对象,对象间通过方法来传递消息,进而改变对象的状态。Java编程中的三大特点皆为面向对象的实践:
封装继承多态.
其次,Java语言多使用C++语言进行开发,所以Java也具备很多C++有的特性,但是Java也剔除了一些C++的特性,使得Java使用起来更加简单,比如:操作符重载、虚基类、多重继承、指针......
还有一款面向对象的编程语言也经常与Java进行对比:C#,C#是微软推出的一种面向对象的编程语言,它在许多地方与Java都比较类似,许多人认为C#从语法上比Java更加简洁,但是由于早期C#仅能运行在Windows系统上,所以在Linux的平台上,Java更胜一筹.

解释型执行

Java编译器将代码编译成字节码文件(class),然后由JVM来解释执行这些字节码文件,最终翻译成本地机器代码执行。
但是,通过虚拟机一条条地解释字节码的速度跟直接编译的二进制机器代码肯定是无法相提并论的,所以JVM也提供了一种即时编译技术,将执行最频繁的热点代码直接编译成机器码来加快运行速度。

平台无关性

通过编译器编译后的字节码文件,可以通过JVM运行在每一种操作系统下,例如:Windows、Linux、Unix等
你可以认为JVM帮你打通了操作系统和硬件资源,而你最终只需要将符合字节码规范的class交由JVM执行即可。

多线程

Java的原生类库提供了对多线程编程的支持,这使得Java在一些高并发的应用场景下也能发挥很好的性能,并发编程也往往成为初级Java工程师成长为中级Java工程师的必备知识之一。

JDK和JRE

JDK(Java Development Kit)是Java平台提供的Java开发工具包,它不仅提供了JRE(Java Runtime Environment)、同时提供编译器、诊断工具等。
JRE:如上文所述,JRE是Java运行起来所需要的基础设施,包含了Java类库、JVM等。

使用命令行编译与运行Java文件

javac HelloWorld.java
java HelloWorld

注意这里的区别,编译需要指明文件名->HelloWorld.java
运行时则直接使用类名即可->HelloWorld

如果你使用javac指令对HelloWorld.java进行了编译,那么你会看到一个HelloWorld.class的字节码文件,通过javap指令你可以了解JVM是如何解析字节码文件的.

javap -l HelloWorld

Java中常见的一些概念

术语 解释 英文
JDK Java开发工具包 Java Development Kit
OpenJDK JavaSE的开源版本,不包含JavaFX -
JRE Java程序运行时候需要的基础环境 Java Runtime Environment
Java EE 用于复杂服务器应用的Java平台 Java Enterprise Edition
Java SE 用于桌面或者简单应用的Java平台 Java Standard Edition
Java ME 用于手机或者其他终端的Java平台 Java Micro Edition

安装JDK

点我前往

上一篇下一篇

猜你喜欢

热点阅读