乐趣区

Java核心技术-卷1-基础知识-学习笔记第三章-java的基本程序设计结构

1. 一个正整数除以 0 的结果为正无穷大,0/ 0 或者负数的平方根的结果为 NaN(不是一个数字);
if(x==Double.NaN)//is never true,所有非数值的值都认为是不同的
if(Double.isNaN(x))// 检查 x 是否为不是一个数字

2. System.out.println(2.0-1.1);
输出的值为 0.8999999999999999,浮点数值采用二进制系统表示,无法精确表示分数 1 /10;

3. char

public static void main(Stringu005Bu005D args)
System.out.println(“u0022+u0022”);// 表示“”+“”,输出空
// c:user 会报错,u 后面未跟着 4 个 16 进制数

4. 使用 static final 声明一个类常量
5. 运算符
15/ 2 输出 7,15%2 输出 1,15.0/ 2 输出 7.5
System.out.println(1.5/0);// 输出 Infinity
System.out.println(2/0);System.out.println(0/0);
报 Exception in thread “main” java.lang.ArithmeticException: / by zero
strictfp 关键字标记的方法必须使用严格的浮点计算来生成可再生的结果。
++i: 先加 1;i++:先获取值再加 1
a+=b+= c 等于 a +=(b+=c)

6. 在源文件顶部引入 math,使用时就不用再写 Math
import static java.lang.Math.*;
System.out.println(sqrt(2));
7. 类型转换
实心箭头表示无信息丢失的转换,虚线箭头表示可能有精度损失的转换;


System.out.println((byte)300);// 输出 44
8. 字符串
String all = String.join(“/”, “S”, “M”, “L”, “XL”, “XXL”);
输出:S/M/L/XL/XXL
9. 码点的问题

10.javaApi 地址:https://docs.oracle.com/javase/8/docs/api
11. 每次连接字符串,都会构建一个新的 String 对象。
12.Scanner,printf 的用法,printf 的详细用法请看书

        Scanner in = new Scanner(System.in);

        // get first input
        System.out.print("What is your name?");
        String name = in.nextLine();

        // get second input
        System.out.print("How old are you?");
        int age = in.nextInt();

        // display output on console
        System.out.printf("Hello,%s. Next year, you'll be %d",name,age+1);
        System.out.println();
        Double x = 100000.0 / 3;
        System.out.println(x);
        System.out.printf("%8.2f", x);
Scanner in = new Scanner(Paths.get("C:\\Users\\yr\\Desktop\\3.txt"), "UTF-8");// 读取文件
PrintWriter out = new PrintWriter("C:\\Users\\yr\\Desktop\\3.txt", "UTF-8");// 写文件

13.

    public static void main(String\u005B\u005D args) throws IOException {for (double i = 0; i != 10; i += 0.1) {System.out.println(i);
        }

    }// 这个循环可能永远无法停止,因为二级制无法精确表示 0.1

14.switch 语句
编译代码时,可以考虑加上 -Xlint:fallthrough 选项
如:javac -Xlint:fallthrough Test.java
如果某个分支缺少一个 break 语句,编译器就会给出一个警告信息
15. 带标签的 break

        int n = 1;
        lable: while (true) {if (n < 5)
                break lable;
        }

16. 对象数组的元素初始化为一个特殊值 null
17.java 实际没有多维数组,只有一维数组,多维数组被解释为数组的数组。

退出移动版