JavaSE - 01Java语言概述
(1)软件开发
软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。
人机交互方式: 图形化界面(Graphical User Interface,GUI) 命令行方式(Command Line Interface,CLI)
Pascal之父 Nicklaus Wirth: "Algorithms + Data Structures = Programs"
常用DOS命令: dir 、 md 、 rd、 cd 、 cd .. 、cd \、 del 、 exit
(2)计算机编程语言介绍
第一代语言: 机器语言。指令以二进制代码形式存在。
第二代语言: 汇编语言。使用助记符表示一条机器指令。
第三代语言: C、Pascal、Fortran面向过程的语言、C++面向过程/面向对象、Java 跨平台的纯面向对象的语言、.NET 跨语言的平台、Python、Scala等。
(3)Java简史
由SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。面向Internet的编程语言。
- 1991年,Green项目,开发语言最初命名为 Oak(橡树)
- 1994年,开发组意识到Oak非常适合于互联网
- 1996年,发布JDK 1.0,约8.3万个网页使用Java技术来制作
- 1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最
- 1998年,发布JDK 1.2,同年发布企业平台J2EE
- 1999年,Java 分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生
- 2004年,发布里程碑式版本: JDK 1.5, 为突出此版本的重要性,更名为JDK 5.0
- 2005年,J2SE -> JavaSE, J2EE -> JavaEE, J2ME -> JavaME
- 2009年,Oracle 公司收购SUN,交易价格74亿美元
- 2011年,发布JDK 7.0
- 2014年,发布JDK 8.0,是继JDK 5.0 以来变化最大的版本
- 2017年,发布JDK 9.0,最大限度实现模块化
- 2018年3月,发布JDK 10.0, 版本号18.3
- 2018年9月,发布JDK 11.0,版本号18.9
(3.1)Java技术体系平台
JavaSE(Java Standard Edition) 标准版: 支持面向桌面级应用的Java平台,提供了完整的Java核心API。
JavaEE(Java Enterprise Edition)企业版: 为开发企业环境下应用程序提供的解决方法。
JavaME(Java Micro Edition) 小型版: 支持Java程序运行在移动终端上的平台,对JavaAPI有所精简。
(3.2)Java在各领域的应用
企业级应用: 复杂的软件系统、各种类型的网站。
Android平台应用:
大数据平台开发: Hadoop、spark、storm、flink
移动领域应用: 消费和嵌入式领域,小型设备上的应用。手机、机顶盒、汽车通信设备等。
(3.3)Java语言的诞生
java之父 James Gosling团队在开发"Green"项目时,发现C语言缺少垃圾回收系统、可移植的安全性、分布式程序设计和多线程功能。
Java确实是从C语言和C++语言继承了很多成份,甚至可以将Java看做是类C语言发展和衍生的产物。
比如Java语言的变量声明、操作符形式、参数传递、流程控制等方面和C语言、C++语言完全相同。
同时Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。
Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特征,
增加了垃圾回收器用于回收不再被引用的对象所占据的内存空间。JDK 1.5又引入了 泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装箱/拆箱。
(3.4)Java语言主要特性
- Java语言是安全的。 安全机制以防恶意代码的攻击。安全防范机制(类ClassLoader)、字节代码检查。
- Java语言是体系结构中立的。Java程序(后缀为java)被编译成字节码格式(后缀为class),可以在Java平台的任何系统中运行。
- Java语言是解释型的。 字节码格式在任何系统的解释器中运行。编译与解释并存。
- Java语言是性能略高的。
- Java语言是原生支持多线程的。(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言却提供了多线程支持)
- 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设 计的,因此 Java 语言不仅支持网络编程而且很方便);
(4)运行机制及运行过程
(4.1)Java语言特点
- 面向对象: 类、对象; 封装、继承、多态
- 健壮性: 继承C/C++语言的优点,去掉了影响程序健壮性的部分(指针、内存申请与释放等),提供了相对安全的内存管理和访问机制。
- 跨平台性: Write once, Run Anywhere。 Java虚拟机(Java Virtual Machine,JVM)。
(4.2)核心机制
- Java虚拟机(Java Virtual Machine):具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
- 对于不同的平台,有不同的虚拟机
- 只有平台提供了对应的Java虚拟机,java程序才可以在平台运行。
- Java虚拟机机制屏蔽了底层运行平台的差异,实现了"一次编译,到处运行"
- 用户user -> 字节码文件 -> JVM -> 操作系统 -> 硬件
- 垃圾收集机制(Garbage Collection)
- 不再使用的内存空间应该及时回收,也就是垃圾回收。
- 垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。
(5)Java语言的环境搭建
(5.1)JDK、JRE、JVM的关系
JDK = JRE + 开发工具集(javac编译工具、java.exe、javadoc.exe等)
JRE = JVM + JavaSE 标准类库
(5.2)下载安装JDK
JAVA_HOME
JRE_HOME
(6)入门HelloWorld
- 将Java代码编写到扩展名为.java的文件中。
- 通过 javac 命令对该 java文件(源文件) 进行编译。 javac.exe HelloWorld.java
- 通过 java 命令对生成的 class文件(字节码文件) 进行运行。 java HelloWorld
class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!"); } }
在一个java源文件中可以声明多个class。但是,只能最多有一个类声明为public,且声明为public的类的类名必须与源文件名相同。
(7)常见问题及解决
(8)注释(comment)
单行注释: //
多行注释: /* ...... */ 单行注释和多行注释 注释内容不参与编译。
文档注释: /** ...... */ @author @version 注释内容可以被javadoc解析,生成一套以网页形式体现的说明文档。
javadoc -d mydoc -author -version HelloWorld.java
(9)JavaAPI文档
API文档: https://docs.oracle.com/en/java/javase/15/docs/api/index.html

(10)良好的编程风格
(11)Java开发工具
文本编辑工具: 记事本、UltraEdit、EditPlus、TextPad、NotePad
Java集成开发环境(Integrated Development Enviroment、IDE): JBuilder、NetBeans、Eclipse、MyEclipse、IntelliJ IDEA
IntelliJ IDEA: JetBrains公司产品,捷克布拉格,IDEA整合众多功能,智能提示错误,调试工具,Ant、JavaEE支持。
浙公网安备 33010602011771号