Java基础01-04:注释、标识符和关键字、数据类型、类型转换

Java基础01:注释

public class Hello{  //单行注释
    public static void main(String[] args){  //快捷键psvm
        System.out.println("Hello world!");  //快捷键sout
    }
}  /*多行注释
语句结尾一定要有分号*/

/**
 * 文档注释,可以定义功能
 * @Description Hello world
 */

Java基础02:标识符和关键字

public class Hello{  //关键字在Java语言中具有专门的意义和用途,不能当作一般的标识符来使用
    public static void main(String[] args){
        String class = "This is a wrong grammar!";  //不能和关键字重复
        int num = 10;  //以字母、$或下划线开头
        int NUM = 20;  //大小写敏感
    }

Java基础03:数据类型

Java是强类型语言,所有变量必须先声明类型才能使用!

基本类型

数值类型

整数类型

public class Hello{
    public static void main(String[] args){
        byte num1 = 10;  //1个字节
        short num2 = 20;  //2个字节
        int num3 = 30;  //4个字节,最常用
        long num4 = 40L;  //8个字节,数值后要加L
    }

整数类型拓展:十进制、八进制和十六进制的表示

public class Hello {
    public static void main(String[] args) {
        int i1 = 10;  //十进制
        int i2 = 010;  //八进制,0开头
        int i3 = 0x10;  //十六进制,0x开头
        System.out.println(i1);  //10
        System.out.println(i2);  //8
        System.out.println(i3);  //16
    }
}

浮点类型

public class Hello{
    public static void main(String[] args){
        float num1 = 1.5F;  //4个字节,数值后要加F
        double num2 = 1.5;  //8个字节,最常用
    }

浮点类型拓展:float和double精度有限,不能用来比较数值大小!(银行业务采用BigDecimal工具类来表示数值)

public class Hello {
    public static void main(String[] args) {
        float f = 0.1F;
        double d = 1.0/10;
        System.out.println(f == d);  //false
        float f1 = 215154151454545f;
        float f2 = f1 + 1;
        System.out.println(f1 == f2);  //true
    }
}

字符类型

public class Hello{
    public static void main(String[] args){
        char word = ‘中‘;  //2个字节,只能是一个字符,注意是单引号,双引号代表字符串
    }

字符类型拓展:int强制类型转换时,会将字符转化为Unicode编码

public class Hello {
    public static void main(String[] args) {
        char c1 = ‘A‘;
        char c2 = ‘中‘;
        System.out.println(c1);  //A
        System.out.println(c2);  //中
        System.out.println((int)c1);  //65(强制类型转换见后)
        System.out.println((int)c2);  //20013,Unicode编码
    }
}

注意:字符串String是类(引用类型见后),不是数值类型!

boolean类型

public class Hello{
    public static void main(String[] args){
        boolean flag1 = true;  //1位
        boolean flag2 = false;  //只有两种值
    }

引用类型(见后)

接口

数组

Java基础04:类型转换

Java数据类型转换,分为强制类型转换和自动类型转换。一般遵循由低到高的优先级顺序,也就是自动类型转换,否则可能会发生内存溢出的后果。顺序优先级为byte,short,char——int——long——float——double

public class Hello {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i ;  //强制类型转换,高容量转为低容量,容易发生内存溢出
        double c = i;  //自动类型转换,低容量转为高容量
        System.out.println(i);  //128
        System.out.println(b);  //-128,内存溢出
        System.out.println(c);  //128.0
        /* 强制类型转换规则:类型A 变量A = (类型B)变量B */
        
	System.out.println((int)23.7);  //23,损失精度
        System.out.println((int)-45.89F);  //-45

        char d = ‘a‘;
        int e = d + 1;
        System.out.println(e);  //98,字符转换成了Unicode编码
        System.out.println((char)e);  //b,数字转换成了Unicode编码对应的字符

        //操作比较大的数的时候,注意溢出问题
        int money = 10_0000_0000;   //JDK7新特性,数字之间可以用下划线分割
        int years = 20;
        int total1 = money * years;
        long total2 = money * years;
        long total3 = money * ((long)years);
        System.out.println(total1);  //-1474836480,计算结果过大,发生溢出
        System.out.println(total2);  //-1474836480,计算结果已经是int类型,再转换成long类型也没用
        System.out.println(total3);  //20000000000,先自动转换一个计算因子,结果也会自动转换,因此正确
    }
}
/**
  * 注意点:
  * 1. 不能对布尔值进行转换
  * 2. 不能把对象类型转换为不相干的类型
  * 3. 在把高容量转换到低容量的时候,使用强制转换
  * 4. 转换的时候可能存在内存溢出,或者精度问题!
  */

Java基础01-04:注释、标识符和关键字、数据类型、类型转换

上一篇:C语言程序分析


下一篇:数据结构与算法——查找算法-插值查找