数据的基本类型

194 阅读1分钟

数据类型及运算符

1.数据类型

1.1 数据的基本类

​ 数据的基本类型包括四个大类,八个小类,为: 整型,浮点型,字符型,布尔型.

​ 其中整型又可分为byte,short,int,long四个小类,其中整数默认值为int,如果超出范围,则须设为long类型,字面量后须增加L作为long类型. byte的范围为-128到127之间

​ 浮点型可分为float(单精度)和double(双精度)浮点型,需要注意float(单精度)浮点型字面量后须加F,否则报错.小数默认值为double.

1.2 引用数据类型

​ 数据的引用类型为String.

2.类型转换

2.1 不同类型范围

byte < short|char < int < long < float <double

2.2 自动类型转换

范围小的自动转为范围大的 byte a = 12; int b = a; //这里就发生了自动类型转换(把byte类型转换int类型)

2.3 表达式的自动类型转换

在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算

在表达式中,byte、short、char 小于int的直接转换成int类型参与运算

    byte b1 = 10;
    int i1 = 20;
    long l1 = 300L;
    long x = b1 + i1 + l1;
    byte b2 = 5;
    byte b3 = 6;
    int z = b2 + b3; // 在表达式中,byte、short、char 小于int的直接转换成int类型参与运算
    // 操作系统主流的是32位系统, 一次操作32位最快
2.4 强制类型转换

数据类型 变量名 = (数据类型)值;

    double d1 = 99.5;
    int i3 = (int) d1;

注意: 1.数据超出范围会丢失 2.小数转换整数会丢失小数位

3.运算符

3.1 算术运算符

​ 包括+,-,*,/,%,++和--. 其中: 1) 用+符号做连接符的情况如果是数字能运算就运算,果字符串不能运算就拼接在一起.2) 整数相除结果是整数.没有小数, 如果要得到小数,就需要有小数参与运算.

自增自减运算符: 单独使用:++/--放在变量前后没有区别 混合使用:++或者--放在变量或者前面运算规则稍有不同 ++在后:先做其他运算,再做自增 ++在前:先自增,再做其他运算

3.2 赋值运算符

​ 包括=,+=,-=,*=,/=,%=,其中注意=为赋值运算符,其作用为赋值,如表示相等,需要写==.

 byte y = 10;
 byte z = 30;
 y += z; // 等价于: y = (byte)(y + z)
3.3 比较运算符

​ 包括>,<,>=,<=,==,!=. !表示非,其余意思和数学比较运算一致

3.4 逻辑运算符

&: 两边都为true结果才为true (要求高)

|: 有一个为true结果就是true (要求低)

!: 非(取反)

^: 异或, 相同为false, 不相同为true

&&: 短路与 效果和&是一样的, 两个为true结果才是true, 左边为false右边不执行, 提高效率

||: 短路或 效果和|是一样的, 有一个true结果就为true, 左边为true右边不执行, 提高效率

短路或和短路与较为常用.

3.5 三元运算符

​ 类型 标示符 = 条件 ? 输出1:输出2

例如:

    // 找两个数的较大值
    int a = 10;
    int b = 20;
    int max = a > b ? a : b;
    System.out.println("较大值 = " + max);

注意: 运算符的优先级问题, && 和 || 一起出现在表达式中, &&的优先级高于||

4.键盘输入

4.1 步骤

​ 1) 引入api: import java.util.Scanner

​ 2) 创建对象 (创建键盘扫描器):Scanner sc = new Scanner(System.in)

​ 3) 得到用户输入的int整数:int age = sc.nextInt()

​ 4) 得到用户输入的字符串:String name = sc.next()

5.Random随机数

5.1 步骤

​ 1) 引入api: import java.util.Random

​ 2) 创建对象 (创建键盘扫描器):Random r = new Random()

​ 3) 得到用户输入的int整数:int a = r.nextint(number)===>范围从(0-number-1)

​ 4) 获取任意范围的随机数: [x,y]=> r.nextInt(y-x+1)+x