博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JavaSE - 01Java语言概述

Posted on 2020-11-26 21:45  Kingdomer  阅读(160)  评论(0)    收藏  举报

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支持。