第三章 Java的基本程序设计结构

Posted 吞吞吐吐鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三章 Java的基本程序设计结构相关的知识,希望对你有一定的参考价值。

2021/7/29

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

一、简单的程序

  1. 关键字 public

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

  2. 关键字 class

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

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

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

  5. 编译源代码后会得到一个包含这个类字节码的文件,并命名为 文件名.class,与源文件存储在同一目录下

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

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

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

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

二、注释

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

三、数据类型

  1. 整形

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

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

    类型存储需求取值范围
    float4字节
    double8字节
  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)

四、变量

  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);
          }
      }
      

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

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

以上是关于第三章 Java的基本程序设计结构的主要内容,如果未能解决你的问题,请参考以下文章

Python的基本库与第三方库

Java 第三章

Java 第三章 选择结构

Java基础第三章(选择结构一)

----Java的基本程序设计结构重难点总结

Java回顾一,基础语法