Skip to content

Latest commit

 

History

History
135 lines (81 loc) · 5.64 KB

读书笔记之《Java核心技术》.md

File metadata and controls

135 lines (81 loc) · 5.64 KB

一、Java 程序设计概述

(一)Java 程序设计平台

​ 本来对于这些介绍性的话确实没有做个总结的必要,但是看到本章的第一段不得不感叹国外对编程语言的重视,而且还是在90年代的时候。书中提到,Java 的出现在国外引起了非常大的轰动,某著名平台还花了10分钟来介绍 Java,并且 Java 还得到了一亿美元的风险投资基金。这些基金全部用来支持 Java 开发产品。

(二)Java 白皮书

Java 设计者编写的白皮书用于解释设计的初衷以及完成的情况,并且发布了一个简短的摘要。这个摘要就是下面的 11 个关键字:

1. 简单性

​ 从语法上看,Java 可以说是 C++ 的一个纯净版本,因为 Java 提出了 C++ 中很少使用、难以理解、易混淆的特性。在 Java 中没有了头文件、指针运算、结构、联合、操作符重载、虚基类等。

​ 简单的另一方面是小。Java 的目标之一是支持开发能够在小型机器上独立运行的软件。基本的解释器以及类支持大约为40K,再加上基础的标准类库和对线程的支持大于需要增加175K。

​ 所以,简单性可以从两个方面理解,一方面是针对 C++ 而言的,剔除了复杂的语法;另一方面是针对体积而言的。

2. 面向对象

​ 面向对象设计时一种程序设计技术,一种编程思想或者说是解决问题的方式。它的重点是数据和对象的接口。

3. 分布式

Java 有一个丰富的例程库,用于处理像 HTTPFTP 之类的协议。Java 应用程序能够通过 URL 打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

4. 健壮性

Java 的设计目标之一在于使得 Java 编写的程序具有可靠性。

5. 安全性

Java 适用于网络/分布式环境。在安全方面投入了很大精力。使用 Java 可以构建防病毒、防篡改的系统。

6. 体系结构中立

7. 可移植性

8. 解释型

9. 高性能

10. 多线程

11. 动态性


二、Java 的基本程序设计结构

(一)一个简单的 Java 应用程序

public class FirstSample{
    public static void main(String[] args){
        System.out.println("Hello Java");//注释内容
    }
}

通过上面这段代码进行如下总结:

  • 严格区分大小写
  • publicJava 中的一个关键字,访问修饰符的一种,用于控制程序的其他部分对这段代码的访问级别(后面详细介绍)。
  • class 也是 Java 中的关键字,用于声明一个类。
  • FirstSample 是类名,类名是开发者自定义的,但是要遵循大驼峰命名法;此外,使用 public 声明的类必须与源文件名一致
  • 运行已编译的程序时,虚拟机将从指定类中的 main 方法开始执行。
  • System.out.println("Hello Java"); 是常用的输出语句,表示在终端中输入内容并换行。
  • 单行注释:// 多行注释:/**/

(二)数据类型

Java 是一种强类型语言。这就意味着必须为每个变量声明一种类型。在 Java 中,一共有8种基本类型,其中有4种整型、2种浮点类型、1种用于表示 Unicode 编码的字符类型 char 和1种用于表示真值的 boolean 类型。

1. 整型

​ 整型用于表示没有小数部分的数值,允许是负数。Java 提供了4种类型用于表示整型数据。

  • 长整型数值后面需要带后缀 Ll
  • 默认数值为十进制的 int 类型
  • 八进制以 0b 开头,十六进制以 0x 开头
  • 可以为数字字面量添加下划线增强可读性,例如:1_000_000 。这些下划线只是为了增加可读性,编译器会将这些下划线去除掉。

2. 浮点类型

​ 浮点类型用于表示有小数部分的数值。

  • 默认浮点数为 double 类型

  • float 类型的数值后面需要带上后缀 fF

  • 用于表示溢出和出错情况的特殊值:

    • 使用常量 Double.POSITIVE_INFINITY 表示正无穷大,具体值为 Infinity
    • 使用常量 Double.NEGATIVE_INFINITY 负无穷大,具体值为 -Infinity
    • 使用常量 Double.NaN 表示非法数值,具体值为 NaN
  • 浮点数的运算还是存在精度问题,如果需要精确的运算,则不能使用浮点值,而是大数值。

3. charUnicode 类型

char 类型原本用于表示单个字符。不过,现在情况并不是这样的,有些 Unicode 字符则需要两个 char 值。char 类型的字面量值要用单引号括起来。

4. boolean 类型

boolean 类型只有两个值:truefalse ,用于判断逻辑条件。在 Java 中,数值与布尔值不能进行转换。

(三)变量

​ 在 Java 中,每个变量都有一个类型,在声明变量时,变量的类型位于变量名之前。例如:

double salary;
boolean done;
int x;
  • 变量名遵循小驼峰命名,可以使用大小写字母、数字、下划线以及 $ ,但不能以数字开头。
  • 若使用未初始化的变量,则会报错。

(四)常量

​ 在 Java 中,利用关键字 final 指示常量:

find double PI = 3.14;

关键字 final 表示这个变量只能被赋值一次,一旦初始化后,就不能进行修改了。在习惯上,常量名一般使用大写字母,多个单词之间通过下划线连接。


三、对象与类