JAVA基础初学之数据类型以及运算符算法

自学JAVA基础初学之数据类型以及运算符算法,
内容包括数据类型及其定义
运算符及其算法
几乎每一行都有注释和知识点小结
有兴趣的初学者可以了解下!

//数据类型以及类型转换
public class Holle {
    public static void main(String[] args){
    //8大基本数据类型
    byte a1 = 127;//范围在[-128,-127],整数类型
    short a2 = 128;//整数类型
    int a3 = 125555;//整数类型
    long a4 = 124L;//后缀L定义long数值类型,整数类型
    float a5 = 1.1F;//后缀F定义float数值类型
    double a6 = 1.11D;//后缀D定义double数值类型
    char a7 = '我';//char用''号定义字符类型,''最多为2个字节,一个中文字就为2个字节.
    System.out.println(a1);//127
    System.out.println(a2);//128
    System.out.println(a3);//125555
    System.out.println(a4);//124
    System.out.println(a5);//1.1
    System.out.println(a6);//1.11
    System.out.println(a7);//我
    //String为引用数据类型,即字符串
    String a8 = "7+5" ;//String类型中""字符会原样输出
    System.out.println(7 + a8);//输出中a8为7+5
    //另符号原样输出
    String a9 = "\"7+5\"";//在需原样输出的符号前添加\符号
    System.out.println(7 + a9);
    /*
     * 重点注意事项:
     * 小数类型中,若数字后不添加后缀符号,则默认为int类型
     * 小数类型算法中,由于计算机是以二进制算法进行计算,所以会出现精度丢失问题
     * 当int类型数据+double类型数据时,被赋值的数据类型为double类型,
     * 即范围大的数据类型囊括数小的,小范围数据类型可赋值给大数据类型,反之不可
     * String引用数据类型中,""中的字符会原样输出,无法代入变量进行计算,如需符号原样输出,符号前添加\号即可
     */
    System.out.println("----------------------------------------------------------------");



    //算术符类型
    int b1 = 15;//此行表示b1原始值为15
    //此处可添加一行: b1=b1++ 帮助理解(此行不可用在前缀++的算法中)b1自增1,这是b1被赋值为16
    int b2 = b1++;// ++为后缀,则b1取原始值,算法先算赋值部分,则b2==b1的原始值==15
    System.out.println(b1);//16
    System.out.println(b2);//15

    int b4 = 15;//此行表示b4原始值为15
    int b3 = ++b4;//++为前缀,则先算自增部分,b4=++b4,则++b4==15+1==16,16赋值给b3
    System.out.println(b4);//16
    System.out.println(b3);//16
    /*
     * 重点注意事项
     * 算术运算符中,加减乘除算法与数学中一样,注意被赋值的数据类型
     * %取模,即结果为两数相处后的余数,
     * 自增(++)自减(--),++result和result++都表示result+1,区别在于赋值时前缀先算自增后赋值,后缀先赋值后自增.
     */
    System.out.println("----------------------------------------------------------------");

    //赋值运算符(=,+=,-=,*=,/=,%=)
    int c1 = 3;
    int c2 = 2;
    c1 += c2;//可看做  c1=c1+c2,以此类推
    System.out.println(c1);//5
    System.out.println(c2);//2
    System.out.println("----------------------------------------------------------------");

    //比较运算符(==,!=,<,>,<=,>=,instanceof,布尔类型的运算)
    int d1 = 10;//表达式A
    int d2 = 12;//表达式B
    boolean result = d1 >= d2;
    System.out.println(result);//输出结果只能是false或true.此行结果为false.
    /*
     * 语法格式:boolean result = 表达式A 比较运算符号 表达式B;  
     * instanceof检查是否是类的对象,学到面向对象的时候再了解
     */
    System.out.println("----------------------------------------------------------------");   

    //逻辑运算符(&,|,^,!,&&,||,也是布尔类型的运算)
    boolean result1 = true & true;//都为true
    boolean result2 = false & true;//有false
    boolean result3 = true & false;//有false
    boolean result4 = false & false;//有false
    System.out.println(result1);//true
    System.out.println(result2);//false
    System.out.println(result3);//false
    System.out.println(result4);//false 

    System.out.println("----------------------------------------------------------------");  

    boolean result5 = true | true;// |表示OR,或,只要有一个表达式为true时,结果则为true
    boolean result6 = false ^ true;// ^表示异或,XOR,判断A与B是否相同,不同则为true,相同为false
    boolean result7 = !false;// !表示取反,Not,true结果是false
    boolean result8 = false && false;//和&结果相同,具有短路效果.在算法中,若A为false,则不会运行B的运算
    boolean result9 = true|| false;//和|结果相同,具有短路效果,在算法中,若A为true,则不会运行B的运算
    System.out.println(result5);//true
    System.out.println(result6);//true
    System.out.println(result7);//true
    System.out.println(result8);//false
    System.out.println(result9);//true
    /*
     * 注意重点事项:
     * 如何验证短路效果(以||为)
     * 将表达式B替换为运行时报错的代码,不报错即未运行
     * 例如:boolean result = true || (1/0=1);运行结果并不会报错
     */
    System.out.println("----------------------------------------------------------------");  



    //三元运算符(三个参数进行运算,同样为布尔类型的运算)
    int e1 = 5;
    int e2 = 7;
    int num1 = e2 - e1;
    int num2 = num1 >= 1.5 ? e1 : e2;
    System.out.println(num2);
    /*
     * 注意事项:
     * 表达式为:boolean表达式 ? 值1 : 值2;
     * num1 >= 1.5 就是boolean类型表达式
     * 如果num1 满足boolean中的比较要求,则取冒号前的值,否则取冒号后的值
     */
    System.out.println("----------------------------------------------------------------");  



    //位运算符(&,|,^,~,<<,>>,>>>,二进制算法,遵循规则:0看作false,1看作true)
    int f1 = 3;
    int f2 = 2;
    /*
     * 二进制算法:
     *     0b00000011  =3
     *   & 0b00000010  =2
     *   ------------
     *     0b00000010  =2
     */
    System.out.println(f1 & f2);//对应位数都为1时,对应位数为1,否则为0
    /*
     * 二进制算法:
     *     0b00000011  =3
     *   | 0b00000010  =2
     *   ------------
     *     0b00000011  =3
     */
    System.out.println(f1 | f2);//对应位数只要有1个为1,则结果为1
    /*
     *     0b00000011  =3
     *   ^ 0b00000010  =2
     *   ------------
     *     0b00000001  =1 
     */
    System.out.println(f1 ^ f2);//对应位数相同为0,不同为1
    /*
     *     0b00000011  =3
     *   ^ 
     *   ------------
     *     0b11111100  =-4
     */
    System.out.println(~f1);//把每个二进制位的1换成0,0换成1

    }
}

“`

猜你喜欢

转载自blog.csdn.net/qq_42801561/article/details/81264877