目录
常量的概述和使用
- 显示
- System.out.println("string"); //字符串常量
- System.out.println(123); //整数常量
- System.out.println(12.3); //小数常量
- System.out.println('a'); //字符常量 ,‘’内仅有单个字符
- System.out.println(true); //布尔常量:true和flase
- 空常量 (数组中演示)
数据类型
- 基本数据类型
- 整数型
- byte ——1个字节-128~127
- short——2字节
- int ——4字节
- long——8字节
- 数字输入时,默认为int类型,赋值过程包含数值转换的过程。将数字赋值给long,需要在数字末尾加上L
- 整数型
- 浮点型
- float——4字节
- 小数默认数据类型是double
- double精度更高,转化为float会有精度损失。直接赋值会报错,无法从double转为float。
- double——8字节
- float——4字节
long赋值给double,显示为科学计数法的形式
- 布尔型
- Boolean——1bit。
- 字符型
- char——2字节
- 引用数据类型
数据类型转换
- 隐式转换
- 实际赋值的过程就有隐式转换(整数默认int,浮点数默认double)
- 低精度转高精度
- 高精度不能直接转为低精度
- 强制转换
- 高精度转低精度不能隐式转换,需要强制转换
- 强制转换时需要注意范围,可能产生范围溢出(正数符号位为0,进位后,符号位变为1,此时以补码的形式读入)
- long和float相比,float精度更大,long可以转float,float不能转long。
- long再大,也不能描述小数点后面的数字,float转long必然会有精度损失。更何况,float还能写成科学计数法的形式
- 题目
- 面试题:看下面的程序是否有问题,如果有问题,请找出来并说明理由
- byte 相加,默认转为int类型;不能直接定义为byte类型
- 两个变量相加,可能会有结果溢出
char数据类型计算
- char类型参与+
- ‘a’+1——结果为数字
- “string”+‘a’+1——结果为字符串
- “string”+5+5——结果为字符串
- “String”+(5+5)——结果为数字
- char可以存储中文字符(java是Unicode编码的)
运算符
- 算数运算符
- +:加法、正号、连接
- /:整数相除结果是整数。小数参与运算,结果会是小数
- %:取余
- ++a,--a:先加减,再读取a的值,保存
- a++,a--:读取a的值保存后,再加减
- b先读取了a的值,再加减
-
- 练习
- 第一题
-
- 第二题(x++先读取操作,再加减。
-
- 有++和--,可能不符合加法交换律
-
- 有++和--,可能不符合加法交换律
-
- 第三题
-
- 此处 b++相当于 b=(byte)b+1;
- byte参与+运算,且与int计算,默认转为int,不能赋值给byte格式
-
- 第一题
- b先读取了a的值,再加减
- =,+=
- /*No.1 程序是否有问题,有问题,说明理由
- * short s=1; s=s+1;
- short和int相加,short默认转为int类型,不能赋值给short类型。
- * s=1;s+=1;
- s+=1相当于s=(short)s+1;
- * short s=1; s=s+1;
- /*No.1 程序是否有问题,有问题,说明理由
- 关系运算符
- ==,!=
- >=,>,<,<=
练习题
- 1、计算出十进制46对应的二进制,八进制,十六进制的值。
- 二进制:101110
- 八进制:56
- 十六进制:2E
- 2、Java中的数据类型分几类?基本数据类型有哪些?
- 基本数据类型
- 整数型:byte、short、int、long
- 浮点型:float、double
- 布尔型:boolean
- 字符型:char
- 引用数据类型
- 基本数据类型
- 3、面试题
- 第一题:哪句是编译失败的呢?为什么呢?
- byte b1=3,b2=4,b;
- b=b1+b2;
- b=3+4;
- 第二题:有没有问题?有问题如何解决?结果是多少呢?
- byte by = 130;
- byte 的数值范围是 -128~127
- 结果会变成-126
- byte by = 130;
- 第三题:哪句是编译失败的呢?为什么呢?
- byte b = 10;
- b++;
- b = b + 1;
- 第一题:哪句是编译失败的呢?为什么呢?
- 4、运算符
- 常见的算术运算符有哪些?
- +,-,*,/,%,++,+=,=,-=,/=
- +运算符的作用有哪些?
- 加法、正号、字符串连接
- 除法和取余的区别?
- 除法 / ;取余 %
- ++和--的使用规则?
- a++ 先读取a值,再运算
- ++a 先运算,再读取a值
- 常见的算术运算符有哪些?
- 5、赋值运算
- 常见的赋值运算符有哪些?
- =,+=,-=,/=,*=
- +=运算的作用是什么?
- a+=1:a=(type a)a+1
- 常见的赋值运算符有哪些?