【Java 核心技术卷 I】(1)注释、数据类型、变量

前言:
从今天开始我将对《Java 核心技术卷I》该书进行阅读学习,并对每次学习写出读书笔记,以加深记忆、巩固学习。也希望给大家带来一些收获,一起加油进步!!!

1. 简单的程序

  1. 关键字 public

    访问修饰符:用于控制程序的其他部分对这段代码的访问级别

  2. 关键字 class

    表明 Java 程序中的全部内容都包含在类中

  3. 关键字 class 后面紧跟类名

  4. 源代码的文件名必须与公共类的名字相同,并且以 .java 作为扩展名

  5. 编译源代码后会得到一个包含这个类字节码的文件(注意:不是一个 Java 文件就得到一个字节码文件,而是这个 Java 文件里面有几个类,就会得到几个字节码文件),并命名为 文件名.class,与源文件存储在同一目录下

  6. 因为 Java 虚拟机将从指定类中的 main 方法开始执行,所以为了代码能够执行,在类的源文件中必须包含一个 main 方法

  7. 点号( . )用于调用方法

    System.out.println("Hello World!");
    

    在这里使用了 System.out 对象并调用了它的 println 方法

2. 注释

  1. 单行注释://
  2. 段落注释:以 /* 开始,以 */ 结束 (不能嵌套)
  3. 可自动生成文本文档的注释:以 /** 开始,以 */ 结束

3. 数据类型

  1. 整形

    1. 整形的范围与运行 Java 代码的机器无关
    2. Java 没有任何无符号(unsigned)形式的整形
    • 后缀 L 或 l,表示长整型
    • 前缀 0X 或 0x,表示十六进制
    • 前缀 0,表示八进制
    • 前缀 0b 或 0B,可以写成二进制,如 0b1001 就是 9
    • 数字字面量加下滑线,为了让人更易读懂,如 1_000_000 就是一百万
    类型 存储需求 取值范围
    int 4字节 -2147483648 ~ 2147483647(-21以亿 ~ 21亿)
    short 2字节 -32768 ~ 32767
    long 8字节
    byte 1字节 -128 ~ 127
  2. 浮点型

    1. float 类型的数值后有后缀 F 或 f,没有后缀的浮点数默认为 double 类型,也可后缀 D 或 d

    2. 溢出或者出错时会有三个特殊的浮点数的值:Infinity(正无穷大)、-Infinity(负无穷大)、NAN(不是一个数字)

    3. 浮点数值不适用于无法接受舍入误差的金融计算中,例如

      System.out.println(2.0-1.1);
      //结果为0.89999999999999,而不是0.9
      

      舍入误差的主要是因为浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数

    类型 存储需求 取值范围
    float 4字节
    double 8字节
  3. char 类型

    1. char 类型原本用于表示单个字符,但如今有些 Unicode 字符可以用一个 char 值描述,有些则需要两个 char 值

    2. char 类型的字面量值要用单引号括起来

    3. char 类型的值可以表示为十六进制值,其范围从 \u0000\Uffff

    4. 所有的转义序列都可以出现在加引号的字符字面量或字符串中

    5. 转义序列 \u 还可以出现在加引号的字符字面量或字符串外,如

      public static void main(String\u005B\u005D args);
      

      因为 \u005B\u005D,是 [ 和 ] 的编码

    6. Unicode 转义序列会在解析代码之前得到处理,如一个隐秘的错误

      // \u000a is a newline
      

      这是一个注释对吧,按理说注释怎么写对代码也没有影响,但是读程序时 \u00A0 会替换为一个换行符,并且在解析代码之前就得到了处理,所以语法会报错

      再看一个错误

      // Look inside c:\users
      

      因为 \u 后面没有跟4各十六进制数,而转义序列会在解析代码之前处理,则会产生语法错误

特殊字符的转义序列
转义序列 名称 Unicode 值
\b 退格 \u0008
\t 制表 \u0009
\n 换行 \u000a
\r 回车 \u000d
\ ‘’ 双引号 \u0022
\ ’ 单引号 \u0027
\ \ 反斜杠 \u005c
  1. boolean 类型

    1. boolean(布尔)类型的值有两个:false 和 true

    2. 整型值和布尔值之间不能进行互相转换(和 C/C++ 不同,Java 中0不相当于 false,非0不相当于 true)

4. 变量

  1. 变量名

    1. 变量名必须是一个以字母开头,并由字母或数字构成的序列
    2. Java 中的字母包括 ‘A’‘Z’、‘a’‘z’、’_’、’$’ 或在某种语言中表示字母的任何 Unicode 字符
    3. Java 中的数字包括 ‘1’~‘9’ 和在某种语言中表示数字的任何 Unicode 字符
    4. ’+‘、‘©’ 和空格不能出现在变量名中
    5. 不能使用 Java 保留字作为变量名
    6. ‘$’ 不要使用在自己代码中,它只用在 Java 编译器或其他工具生成的名字中
  2. 在 Java 中,不区分变量的声明与定义

  3. 常量

    1. 在 Java 中,利用关键字 final 指示常量,如

      final double CM_PER_INCH=2.54;
      
    2. 关键字 final 表示这个常量只能被赋值一次,不可更改

    3. 习惯上,常量名使用全大写

    4. 可以使用关键字 static final 设置一个类常量,使其在一个类的多个方法中使用,如

      public class Constants2 {
          public static final double CM_PER_INCH=2.54;
      
          public static void main(String[] args) {
              double paperWidth=8.5;
              double paperHeight=11;
              System.out.println("Paper size in centimers:"
              + paperWidth * CM_PER_INCH + "by" + paperHeight * CM_PER_INCH);
          }
      }
      

5. 阅读时发现的该书的一些小错误

  1. 《Java核心技术卷 I》的34页底部的警告中,所述:因为读程序时 \u00A0 会替换为一个换行符。根据代码上机发现并没有报错,经过查询,\u00A0 是不间断空格的含义,而改成 \u000a 换行,就会产生语法错误。

猜你喜欢

转载自blog.csdn.net/weixin_51367845/article/details/119301596