【JAVA】数据类型,类型转换与提升,运算符,标识符命名规则

内容专栏:【JAVA】

本文脉络:数据类型,类型转换与提升,运算符,标识符命名规则

本文作者:Melon_西西

发布时间 :2023.7.12

目录

 1. 字面常量

2. 数据类型:四类八种

 3.类型转换

3.1 自动类型转换(隐式) 自动类型转换:

3.2 强制类型转换(显式) 强制类型转换:

4.类型提升

4.1 不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

4.2. byte与byte的运算

5. 字符串类型

5.算术运算符

5.1. 基本四则运算符:加减乘除模(+ - * / %)

5.2. 增量运算符 += -= *= %=

5.3.自增/自减运算符 ++  --

5.4. 关系运算符

5.5. 逻辑运算符(重点)

5.5.1                                 布尔表达式1  &&  布尔表达式2(有一个假就是假)

5.5.2.                               布尔表达式1    ||   布尔表达式2  (有一个真就是真)​编辑

 5.5.3. 逻辑非 !               

6. 位运算符

 7. 条件运算符

 8. 运算符的优先级

9.标识符


 1. 字面常量

常量即程序运行期间,固定不变的量称为常量,分类:

1. 字符串常量:由""括起来的,比如“12345”、“hello”、“你好”。

2. 整形常量:程序中直接写的数字(注意没有小数点),比如:100、1000

3. 浮点数常量:程序中直接写的小数,比如:3.14、0.49 4. 字符常量:由 单引号 括起来的当个字符,比如:‘A’、‘1’

5. 布尔常量:只有两种true和false

6. 空常量:null

2. 数据类型:四类八种

在Java中数据类型主要分为两类:基本数据类型和引用数据类型

四类:整型、浮点型、字符型以及布尔型

八种:【JAVA】数据类型,类型转换与提升,运算符,标识符命名规则_第1张图片

 分别输出long表示的数值的取值范围:

public class Test01 {
    public static void main (String []args){
        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.MIN_VALUE);//L要大写
    }
}

 关于小数:

Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)

        float y=12.5;//会报错,不安全,因为大雨了4字节
        float y1=12.5f;//这样就不会报错了
        double num=1.1;
        System.out.println(num*num);//结果不是1.21,而是1.2100000000002     
        //除法运算小数点:
        int a1=1;
        int a2=2;
        System.out.println(a1/a2);//结果是0,不是0.5,不能够保存小数
        double b1=1;
        double b2=2;
        System.out.println(b1/b2);//结果是0.5,能够保存小数

字节是计算机中表示空间大小的基本单位.
计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte).
我们平时的计算机为 8GB 内存, 意思是 8G 个字节.
其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.
所以 8GB 相当于 80 多亿个字节.

 3.类型转换

3.1 自动类型转换(隐式) 自动类型转换:

代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。

特点:数据范围小的转为数 据范围大的时会自动进行。

3.2 强制类型转换(显式) 强制类型转换:

当进行操作时,代码需要经过一定的格式处理,不能自动完成。

特点:数据范围大的到数据范围小的。

        int a = 10;
        long b = 100L;
        //a = b; // 编译失败,不可以把8个字节的给四个字节的
        //强制转换(显式):可能丢失数据,用于把大的转为小的
        a=(int)b;
        //隐式类型转换,编译器自动把a 从int升级为double
        b = a; // 可以通过编译
        //类型提升
        int a1 = 10;
        long b1 = 20;
        //int c = a1 + b1; // 编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据
        long d = a1 + b1; // 编译成功:a + b==>int + long--->long + long 赋值给long

注意:

1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型

2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失

3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查

4. 强制类型转换不一定能成功,不相干的类型不能互相转换

4.类型提升

4.1 不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的

. int与long之间:int会被提升为long

4.2. byte与byte的运算

对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算

        byte a2 = 125;
        byte b2 = 123;
        //byte c2 = a2 + b2;//报错,因为小于4字节的内容,会提升为int参与运算
        byte c2=(byte)(a2+b2);
        System.out.println(c2);//强转换,这样可能丢失数据。会截断,结果是-8
        int d2=a2+b2;
        System.out.println(d2);//结果是228,不发生截断

5. 字符串类型

 在Java中使用String类定义字符串类型

        String str="HELLO";
        System.out.println(str);
        //string与int的转换
        int a5=100;
        //调用String这个类型的方法
        String s5=String.valueOf(a5);
        System.out.println(s5);
        //拼接
        String s6=a+"afternoon";//输出100afternoon
        System.out.println(s6);
        String s7=10+20+"xixi";
        String s8="xixi"+10+20;
        System.out.println(s7);//输出30xixi
        System.out.println(s8);//输出xixi1020
        //调用Integer这个类型的方法,来实现转换
        String str2="1009";
        int t2=Integer.valueOf(str2);
        System.out.println(t2+1);//输出1010

5.算术运算符

5.1. 基本四则运算符:加减乘除模(+ - * / %)

都是二元运算符,使用时必须要有左右两个操作数

int / int 结果还是int类型,而且会向下取整

做除法和取模时,右操作数不能为0

% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的

详细看下面例子:

public class Text03 {
    public static void main(String[] args) {
        //除余的数不可以为0
        System.out. println(5/2);        //结果是2
        System.out.println((float)5/2);  //相当于把5转成5.0除以2=2.5
        System.out.println(5/(float)2);  //相当于2转成2.0,5除以2.0=2.5
        System.out.println((float) (5/2));//相当于5/2等于2,把2转成2.0

        System.out.println(10%3);   //1
        System.out.println(10%-3);  //1
        System.out.println(-10%3);  //-1
        System.out.println(-10%-3); //-1
        System.out.println(11.5%2); //1.5
    }
}

5.2. 增量运算符 += -= *= %=

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

int a = 1;
a += 2;                // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1;                // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3;                // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3;                // 相当于 a = a / 3
System.out.println(a); // 输出2
a %= 3;                // 相当于 a = a % 2
System.out.println(a); // 输出2

5.3.自增/自减运算符 ++  --

++是给变量的值+1,--是给变量的值-1。

如果单独使用,前置++和后置++没有任何区别;如果混合使用:

        int a1 = 10;
        int b1 = ++a1 ;  //a=a+1 ,b=a
        System.out.println(a1);  //11
        System.out.println(b1);  //11
        int a2 = 10;
        int b2 = a2++;   //b=a ,a=a+1
        System.out.println(a2);  //11
        System.out.println(b2);  //10

【前置++】先+1,然后使用变量+1之后的值,

【后置++】先使用变量原来的值,表达式 结束时给变量+1

只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

5.4. 关系运算符

关系运算符主要有六个: == != < > = ,其计算结果是 true 或者 false,没有0或1

        int a = 10;
        int b = 20;
        // 注意:在Java中 = 表示赋值,要与数学中的含义区分
        // 在Java中 == 表示相等
        System.out.println(a == b); // false
        System.out.println(a != b); // true
        System.out.println(a < b); // true
        System.out.println(a > b); // false
        System.out.println(a <= b); // true
        System.out.println(a >= b); // false
        //注意这种是错的:
       //System.out.println(3

5.5. 逻辑运算符(重点)

逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。

5.5.1                                 布尔表达式1  &&  布尔表达式2(有一个假就是假)

【JAVA】数据类型,类型转换与提升,运算符,标识符命名规则_第2张图片

5.5.2.                               布尔表达式1    ||   布尔表达式2  (有一个真就是真)【JAVA】数据类型,类型转换与提升,运算符,标识符命名规则_第3张图片

 5.5.3. 逻辑非 !               

语法规则:! 表达式                                  真变假,假变真。

int a = 1;
System.out.println(!(a == 1)); // a == 1 为true,取个非就是false
System.out.println(!(a != 1)); // a != 1 为false,取个非就是true

 短路求值 && 和 || 遵守短路求值的规则

对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.

对于  || ,如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式

& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值

6. 位运算符

位运算符主要有四个: & | ~ ^ ,~ 是一元运算符外,其余都是二元运算符。

位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位 的每一位依次进行计算. 1。

按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

按位或: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

.按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.

 

 7. 条件运算符

 表达式1 ? 表达式2 : 表达式3

当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值

; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.

也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.

/ 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;

 8. 运算符的优先级

运算符之间是有优先级的., 在可能存在歧义的代码中加上括号即可

9.标识符

标识符:在程序中由用户给类名、方法名或 者变量所取的名字。

标识符中可以包含:字母、数字以及 下划线和 $ 符号等等。

标识符不能以数字开头,也不能是关键字,且严格区分大小写

建议:

类名:   每个单词的首字母大写(大驼峰)

变量名、方法名:首字母小写,后面每个单词的首字母大写(小驼峰)

你可能感兴趣的:(java,开发语言)