Java语言基础

Java语言基础的学习和整理。

Java编程简介

Java语言基础——Java平台上的面向对象编程

OOP——面向对象程序设计(Object-oriented programming):对象则指的是类的实例。OOP将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。


Java 平台概述

Java语言

  1. Java语言是C语言的一种衍生语言,所以它的语法规则与C非常相似。例如,代码块被模块化为方法并用花括号{}分隔,变量在使用之前需要进行声明。
  2. 在结构上,Java 语言以包作为开头。包是 Java 语言的名称空间机制。包中包含类,而类中包含方法、变量、常量等。

Java API

大部分 Java 开发人员常常查阅官方在线 Java API 文档— 也称为 Javadoc。

如上图,默认情况下,会在 Javadoc 中看到 3 个窗格。左上侧的窗格将显示该 API 中的所有包,左下侧的窗格将显示每个包中的类。(右侧)主窗格将显示当前选择的包或类的详细信息。例如,如果单击左上侧窗格中的 java.util 包,然后单击它下方列出的 ArrayList 类,就会在右侧窗格中看到 ArrayList 的详细信息,包括对它的用途、使用方式及其方法的描述。

Java相关文件

字节码是一组将在 Java 虚拟机 (JVM) 上运行的指令。JVM 像 CPU 解释汇编语言指令一样解释字节码。

通过一个.class文件探究java的字节码文件结构

垃圾收集器(Java的内存回收管理机制)

Java 平台不会强迫您时刻关注内存分配(或使用第三方库来完成此工作),而是提供了开箱即用的内存管理功能。Java 应用程序在运行时创建了一个对象实例时,JVM 会自动从为该对象分配内存空间— 堆是一个专门为您的程序留用的内存池。Java 垃圾收集器在后台运行,跟踪记录应用程序不再需要哪些对象,并回收它们占用的内存。这种内存处理方法称为隐式内存管理,因为它不要求编写任何内存处理代码。

java内存管理机制+垃圾回收机制

Java开发环境

JDK(Java Development Kit)

JDK中包含以下内容——

  • 一个包含预构建的实用程序的完整类库(可帮助完成大部分常见的应用程序开发任务)
  • 编译器和其他工具
Java 运行时环境(JRE)

JRE包含运行使用 Java 语言编写的程序所需的 JVM、代码库和运行用 Java 语言编写的程序所需的组件。


面向对象编程OOP的概念和原理

什么是对象?

  1. 面向对象的语言遵循的编程模式不同于结构化编程语言(如C)。
  2. 结构化编程范例是高度面向数据的:您拥有数据结构,然后程序指令会处理该数据。
  3. 面向对象的语言(比如 Java 语言)将数据和程序指令组合到对象中。
  4. 对象是一个独立的实体,它仅包含属性(“名词”)行为(“动词”),不含其他任何东西。
  5. 在面向对象的语言中,数据和程序逻辑被组合在一起,而不是通过字段(属性)提供一个数据结构,并将该结构传递给处理它的所有程序逻辑(行为)
  6. 这种组合可能出现在完全不同的粒度级别上,从细粒度的对象(比如 Number)到粗粒度的对象(比如一个大型银行应用程序中的 FundsTransfer 服务)。
父对象和子对象
  1. 父对象用作派生更复杂的子对象的结构基础。
  2. 子对象看起来类似于父对象,但更加特殊化。
  3. 在面向对象的范例中,可以重用父对象的通用属性和行为,也可以向子对象添加不同的属性和行为。

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 构造。