JAVA语言描述

1.开发步骤

Java程序开发三步骤:编写、编译、运行。
    将 Java 代码编写到扩展名为 .java 的源文件中
    通过 javac.exe 命令对该 java 文件进行编译,生成一个或多个字节码文件
    通过 java.exe 命令对生成的 class 文件进行运行

JAVA语言描述_第1张图片

2.Java程序的结构与格式

源文件名与类名
(1)源文件名是否必须与类名一致?public呢?
如果这个类不是public,那么源文件名可以和类名不一致。但是不便于代码维护。如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。
(2)一个源文件中是否可以有多个类?public呢?
一个源文件中可以有多个类,编译后会生成多个.class字节码文件。但是一个源文件只能有一个public的类。

3.Java API

·API (ApplicationProgramming Interface,应用程序编程接口)是 Java 提供的基本编程接口。
·Java语言提供了大量的基础类,因此 Oracle也为这些基础类提供了相应的说明文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。大多数Java书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料。
·Java API文档,即为JDK使用说明书、帮助文档

4.Java语言的优缺点

1.优点

1.1跨平台性:
这是Java的核心优势。Java在最初设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。
• 通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”。
• 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM ,Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。
JAVA语言描述_第2张图片

1.2面向对象性:
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚,低耦合的标准。
1.3健壮性:
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。
1.4安全性高:
Java适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。如:安全防范机制(ClassLoader类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。
1.5简单性:
Java就是C++语法的简化版,我们也可以将Java称之为“C+±-”。比如:头文件,指针运算,结构,联合,操作符重载,虚基类等。
1.6高性能:
– Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。
– Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

2.缺点

语法过于复杂、严谨,对程序员的约束比较多,与python、php等相比入门较难。但是一旦学会了,就业岗位需求量大,而且薪资待遇节节攀升。
• 一般适用于大型网站开发,整个架构会比较重,对于初创公司开发和维护人员的成本比较高(即薪资高),选择用Java语言开发网站或应用系统的需要一定的经济实力。
并非适用于所有领域。比如,Objective C、Swift在iOS设备上就有着无可取代的地位。浏览器中的处理几乎完全由JavaScript掌控。Windows程序通常都用C++或C#编写。Java在服务器端编程和跨平台客户端应用领域则很有优势。

5.JVM功能说明

JVM(Java Virtual Machine ,Java虚拟机):是一个虚拟的计算机,是Java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。
JAVA语言描述_第3张图片

功能1:实现Java程序的跨平台性
我们编写的Java代码,都运行在JVM 之上。正是因为有了JVM,才使得Java程序具备了跨平台性。
JAVA语言描述_第4张图片

使用JVM前后对比:
JAVA语言描述_第5张图片

功能2:自动内存管理(内存分配、内存回收)
• Java程序在运行过程中,涉及到运算的数据的分配、存储等都由JVM来完成
• Java消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。
• GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄漏。

6.JDK,JRE,JVM

JDK (Java Development Kit):是Java程序开发工具包,包含JRE 和开发人员使用的工具。
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库。
JVM(Java Virtual Machine ,Java虚拟机):是一个虚拟的计算机,是Java程序的运行环境。

JDK包含JRE和JAVA的开发工具
JRE包含JVM和JAVA的核心类库

JAVA语言描述_第6张图片
JAVA语言描述_第7张图片

小结:
JDK = JRE + 开发工具集(例如Javac编译工具等)
JRE = JVM + Java SE标准类库

你可能感兴趣的:(Java(尚硅谷),java,开发语言)