美文网首页
day2_数据类型与运算符

day2_数据类型与运算符

作者: OmewSPG | 来源:发表于2021-12-05 22:12 被阅读0次

关键字与保留字

关键字

image.png image.png

保留字

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
goto 、const

标识符与命名规范

标识符

Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
即:凡是自己可以起名字的地方都叫标识符。

定义合法标识符规则:

  • 由26个英文字母大小写,0-9 ,_或 $ 组成
  • 数字不可以开头。
  • 不可以使用关键字和保留字,但能包含关键字和保留字。
  • Java中严格区分大小写,长度无限制。
  • 标识符不能包含空格。

命名规范

Java中的名称命名规范:

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

注意:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。

变量与声明

image.png
/*
    注意:变量必须先声明,后使用
          变脸都定义在其作用域内,且仅在当前的作用域生效
          同一个作用域内,不可声明两个相同的变量
*/

class VariableTest{
    public static void main(String[] args){
        // 变量定义
        int myAge = 12;
        // 变量使用
        System.out.println(myAge);

        // 变量声明
        int myNumber;
        // 变量赋值
        myNumber = 1001;
        System.out.println(myNumber);
    }
}

基本数据类型

image.png

整型

image.png

1byte = 8bit ;
bit: 计算机中的最小存储单位。byte:计算机中基本存储单元。

class VariableTest1{
    public static void main(String[] args){
        // 如果使用整型,建议使用int
        byte b1 = 12;
        byte b2 = -128;
        // byte b3 = 128;
        System.out.println(b1);
        System.out.println(b2);
        // System.out.println(b3);  错误: 不兼容的类型: 从int转换到byte可能会有损失

        short s1 = 1333;
        int i1 = 24254358;
        long l1 = 2749832863875L;
        System.out.println(l1);
    }
}

浮点型

image.png
class VariableTest1{
    public static void main(String[] args){
        // 如果要使用浮点型,建议使用double
        double d1 = 123.2323;
        float f1 = 23.34f;
        System.out.println(d1);
        System.out.println(f1);
    }
}

字符型

image.png
class VariableTest1{
    public static void main(String[] args){
        // 字符
        char c1 = 'a';
        char c2 = 'B';
        System.out.println(c1);
        System.out.println(c2);
        // 转义字符
        // 严格区分,单个字符用单引号,字符串用双引号
        char c3 = '\t';
        System.out.println("Hello" + c3 + "World" + '!');
        // utf-8
        char c4 = '\u0044';
        System.out.println(c4);
    }
}

布尔型

image.png
class VariableTest1{
    public static void main(String[] args){
        // 布尔型
        boolean bl = true;
        System.out.println(bl);
        if(bl){
            System.out.println("domo,my name is Omew!");
        }else{
            System.out.println("see you!");
        }
    }
}

基本数据类型转换

自动类型提升运算

image.png
/*
    自动类型提升运算
*/
class VariableTest2{
    public static void main(String[] args){
        byte b1 = 2;
        int i1 = 129;
        // byte b2 = b1 + i1;   编译不通过
        int b2 = b1 + i1;
        System.out.println(b2);   // 131
        long l1 = b1 + i1;
        float f = b1 + i1;
        System.out.println(l1);  // 131
        System.out.println(f);   // 131.0

        // java运算时,如果操作数均在int范围内,那么一律在int的空间内运算
    }
}

字符串

image.png
字符串拼接规则: image.png

强制类型转换

image.png
/*
    强制类型转换:
    可以看做自动类型提升运算的逆运算
    需要使用强转符
    强制类型转换,可能导致精度损失
*/
class VariableTest3{
    public static void main(String[] args){
        double d1 = 12.99;
        int i1 = (int)d1;  // 截断操作
        System.out.println(i1);  // 12

        int i2 = 128;
        byte b = (byte)i2;
        System.out.println(b);  // -128
    }
}

运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

  • 算术运算符
  • 赋值运算符
  • 比较运算符 (关系运算符)
  • 逻辑运算符
  • 位运算符 (暂不做要求)
  • 三元运算符

算数运算符

image.png
class AriTest{
    public static void main(String[] args) {
        // 除法
        // 两个int型的变量做运算,结果默认也是int型
        int num1 = 12;
        int num2 = 5;
        System.out.println(num1 / num2);   // 2
        System.out.println(num1 / num2 * num2);   // 10

        // 如何让除法结果保留小数?
        // 核心思路,只要让被除数或除数之间的某一个转换成浮点型就可以了
        // 浮点型参与算数运算,结果会转变为double型
        System.out.println(num1 / (num2 + 0.0));  // 2.4
        System.out.println((double)num1 / num2);  // 2.4

        //*****************************************************
        // 取余运算
        // 余数的符号取决于与被余数的符号
        // 一般用来判断一个数能否被除尽
        System.out.println(12 % 5);    // 2
        System.out.println(-12 % 5);   // -2
        System.out.println(12 % -5);   // 2
        System.out.println(-12 % -5);  // -2

        //*****************************************************
        // 自增运算
        int a1 = 10;
        int b1 = a1++;
        System.out.println("a1:" + a1 + ", b1:" + b1);  // a1:11, b1:10

        int a2 = 10;
        int b2 = ++a2;
        System.out.println("a2:" + a2 + ", b2:" + b2);  // a2:11, b2:11

        // 注意,自增运算不会改变数据类型
        short s = 10;
        // short ss = s + 1;   // 错误: 不兼容的类型: 从int转换到short可能会有损失
        short ss = ++s;
        System.out.println(ss);  // 11

    }
}

练习:

/*
随意给出一个整数,打印显示它的个位数,十位数,百位数的值。
格式如下:
数字xxx的情况如下:
个位数:
十位数:
百位数:
-----------------------------
例如:
数字153的情况如下:
个位数:3
十位数:5
百位数:1
*/

class AriExer {
    public static void main(String[] args) {
        int num = 255;
        System.out.println("这个数的是:" + num);
        System.out.println("这个数的个位是:" + (num % 100 % 10));
        System.out.println("这个数的十位是:" + (num % 100 / 10));
        System.out.println("这个数的百位是:" + (num / 100));
    }
}

赋值运算符

image.png
class AriTest1{
    public static void main(String[] args) {
        // 连续赋值
        int i1,i2,i3;
        i1 = i2 = i3 = 10;

        // 或者
        int j1 = 20, j2 = 30;


        // ******************************
        // 扩展赋值运算
        int num = 10;
        num += 2;  //相当于 num = num + 2
        System.out.println(num);  // 12

        int num1 = 12;
        num1 *= 2; //相当于 num1 = num1 * 2
        System.out.println(num1);  // 24

        // 注意:与自加相同,扩展赋值运算不会改变数据类型
        short s = 10;
        // s = s + 2;   // 错误: 不兼容的类型: 从int转换到short可能会有损失
        s+=2;
        System.out.println(s);  // 12
    }
}

比较运算符

image.png

逻辑运算符

image.png image.png
/*
逻辑运算符
1.逻辑运算符操作的都是布尔类型的变量
2.短路运算的特点
*/

class AriTest2 {
    public static void main(String[] args) {
        // 逻辑与 和 短路与 的区别
        // 两者的逻辑运算结果并没有任何区别
        boolean flag1 = false;
        int num1 = 10; 
        if(flag1 & (num1++ > 0)){
            System.out.println("Domo,my name is Omew!"); 
        }else{
            System.out.println("See you next time~");
        }
        System.out.println(num1);  // 11;


        boolean flag2 = false;
        int num2 = 10; 
        if(flag2 && (num2++ > 0)){
            System.out.println("Domo,my name is Omew!"); 
        }else{
            System.out.println("See you next time~");
        }
        System.out.println(num2);  // 10; 短路与运算中,若第左边判定为false,则不再执行条件后面的运算

        // 同理,逻辑或 和 短路或 也有类似的区别
        // 短路或运算中,若左边判定为true,则不再执行条件后面的运算

    }
}

三元运算符

image.png
/*
三元运算符
注意:
三元运算符可以转换为if——else语句,并且执行效率比if——else语句更高...
*/
class Sanyuan{
    public static void main(String[] args) {
        int i = 5, j = 10;
        int max = i > j ? i : j;
        System.out.println("The Max number is: " + max);

        //****************************************************
        //从三个数中选出最小的数:
        int a = 5, b = 10, c = 15;
        int temp = a < b ? a : b;
        int min = temp < c ? temp : c;
        System.out.println("The Min number is: " + min);
    }
}

运算符优先级

image.png

相关文章

网友评论

      本文标题:day2_数据类型与运算符

      本文链接:https://www.haomeiwen.com/subject/wyjwxrtx.html