美文网首页Java
[Java]重学Java-Java平台

[Java]重学Java-Java平台

作者: AbstractCulture | 来源:发表于2021-03-17 00:01 被阅读0次

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

点我前往

相关文章

  • [Java]重学Java-Java平台

    Java的诞生 Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级We...

  • [Java]重学Java-Java中的数据类型

    Java是强类型语言 什么是强类型语言?就是一个变量只能对应一种类型。而不是模棱两可的类型符号。下面我通过一个例子...

  • Java-Java注解(Annotation)

    一.内置注解 1.元注解(用于修饰注解定义) 2.原生注解 二.自定义注解(例) 1.定义注解 2.使用注解 3....

  • Java-Java反编译工具

    一、旧Java反编译工具 JAD JD 二、新Java反编译工具 Fernflower Procyon CFR 简...

  • Java-Java泛型(Generic)

    一.定义泛型 1.泛型类(作用范围是整个类) 2.泛型方法(作用范围是整个方法) 二.泛型边界 简书: http:...

  • 重学Java

    为什么要学 首先是Java应用广泛,Java无疑是应用最广泛的一门语言,不仅可以开发桌面型应用,也可以开发Web应...

  • 死磕java-java内部类

    定义: 定义在一个类内部的类,其中的方法可以访问外部类的域 使用原因: 1、内部类可以访问该类定义的所在作用域的数...

  • java-Java 集合 List总结(LinkedList,

    List概括 先回顾一下List的框架图 List 是一个接口,它继承于Collection的接口。它代表着有序的...

  • Java-Java 8新特性指南(合集)

    接口的默认方法 Java 8使我们能够通过使用default关键词。此功能也称为虚拟可拓方法. 下面是我们的第一个...

  • java重学之路

    工作了几年 把java的很多基本知识已经忘了 今天开始java的重新学习 整理些基本资料 以备翻阅 2017年06...

网友评论

    本文标题:[Java]重学Java-Java平台

    本文链接:https://www.haomeiwen.com/subject/gbzjcltx.html