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.类型转换
实心箭头表示无信息丢失的转换,虚线箭头表示可能有精度损失的转换;
clipboard.png
图片描述
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

clipboard.png

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实际没有多维数组,只有一维数组,多维数组被解释为数组的数组。


EVAO_大个子
70 声望7 粉丝