Java语言基础的学习和整理。
Java编程简介
Java语言基础——Java平台上的面向对象编程
OOP——面向对象程序设计(Object-oriented programming):对象则指的是类的实例。OOP将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。
Java 平台概述
Java语言
- Java语言是C语言的一种衍生语言,所以它的语法规则与C非常相似。例如,代码块被模块化为方法并用花括号
{
和}
分隔,变量在使用之前需要进行声明。 - 在结构上,Java 语言以包作为开头。包是 Java 语言的名称空间机制。包中包含类,而类中包含方法、变量、常量等。
Java API
大部分 Java 开发人员常常查阅官方在线 Java API 文档— 也称为 Javadoc。
如上图,默认情况下,会在 Javadoc 中看到 3 个窗格。左上侧的窗格将显示该 API 中的所有包,左下侧的窗格将显示每个包中的类。(右侧)主窗格将显示当前选择的包或类的详细信息。例如,如果单击左上侧窗格中的 java.util 包,然后单击它下方列出的 ArrayList 类,就会在右侧窗格中看到 ArrayList 的详细信息,包括对它的用途、使用方式及其方法的描述。
Java相关文件
字节码是一组将在 Java 虚拟机 (JVM) 上运行的指令。JVM 像 CPU 解释汇编语言指令一样解释字节码。
垃圾收集器(Java的内存回收管理机制)
Java 平台不会强迫您时刻关注内存分配(或使用第三方库来完成此工作),而是提供了开箱即用的内存管理功能。Java 应用程序在运行时创建了一个对象实例时,JVM 会自动从堆为该对象分配内存空间— 堆是一个专门为您的程序留用的内存池。Java 垃圾收集器在后台运行,跟踪记录应用程序不再需要哪些对象,并回收它们占用的内存。这种内存处理方法称为隐式内存管理,因为它不要求编写任何内存处理代码。
Java开发环境
JDK(Java Development Kit)
JDK中包含以下内容——
- 一个包含预构建的实用程序的完整类库(可帮助完成大部分常见的应用程序开发任务)
- 编译器和其他工具
Java 运行时环境(JRE)
JRE包含运行使用 Java 语言编写的程序所需的 JVM、代码库和运行用 Java 语言编写的程序所需的组件。
面向对象编程OOP
的概念和原理
什么是对象?
- 面向对象的语言遵循的编程模式不同于结构化编程语言(如C)。
- 结构化编程范例是高度面向数据的:您拥有数据结构,然后程序指令会处理该数据。
- 面向对象的语言(比如 Java 语言)将数据和程序指令组合到对象中。
- 对象是一个独立的实体,它仅包含属性(“名词”)和行为(“动词”),不含其他任何东西。
- 在面向对象的语言中,数据和程序逻辑被组合在一起,而不是通过字段(属性)提供一个数据结构,并将该结构传递给处理它的所有程序逻辑(行为)。
- 这种组合可能出现在完全不同的粒度级别上,从细粒度的对象(比如 Number)到粗粒度的对象(比如一个大型银行应用程序中的 FundsTransfer 服务)。
父对象和子对象
- 父对象用作派生更复杂的子对象的结构基础。
- 子对象看起来类似于父对象,但更加特殊化。
- 在面向对象的范例中,可以重用父对象的通用属性和行为,也可以向子对象添加不同的属性和行为。
OOP的优势
封装、继承和多态性
Java不是纯面向对象的语言
有两种性质可区分 Java 语言与纯粹的面向对象语言。
首先,Java 语言是对象和原语类型的 一种混合。
其次,可以使用 Java 编写代码,将一个对象的内部情况向其他任何使用它的对象公开。
Java语言入门
Java中的保留字/关键字
像任何编程语言一样,Java 语言指定了一些编译器认为具有特殊意义的关键字。出于该原因,您不能使用它们来命名您的 Java 构造。
- abstract
- assert
- boolean
- break
- byte
- case
- catch
- char
- class
- const
- continue
- default
- do
- double
- else
- enum
- extends
- final
- finally
- float
- for
- goto
- if
- implements
- import
- instanceof
- int
- interface
- long
- native
- new
- package
- private
- protected
- public
- return
- short
- static
- strictfp
- super
- switch
- synchronized
- this
- throw
- throws
- transient
- try
- void
- volatile
- while
也不能使用 true、false 和 null(严格意义上讲,它们是字面常量(值的源代码表示)而不是关键字)来命名 Java 构造。