活动地址:CSDN21天学习挑战赛
基本数据类型
java有8种基本数据类型:
boolean、byte、short、char、int、float、long、double
基本数据是java编程中承载信息的最小单位,是变量持有的原始单位。
其中跟整数相关的有四个:
byte、short、int、long
它们之间的区别是长度不一样,
分别为二进制的8位、16位、32位和64位,默认值都为0
简单的记住int32就好了
浮点数类型有:float和double
double是双精度的,也就是64位的,float单精度占32位,俩者默认值是0.0
boolean是真假逻辑,只占8位,默认值是false
char是16位的字符类型,默认值是空
/**
* kyf
* 2022/8/2 10:05
*/
public class Test {
static byte b;
static short s;
static int i;
static long l;
static float f;
static double d;
static char c;
static boolean bo;
public static void main(String[] args) {
System.out.println("byte的大小:"+Byte.SIZE
+";默认值:"+b
+";数据范围:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE);
System.out.println("short的大小:"+Short.SIZE
+";默认值:"+s
+";数据范围:"+Short.MIN_VALUE+" - "+Short.MAX_VALUE);
System.out.println("int的大小:"+Integer.SIZE
+";默认值:"+i
+";数据范围:"+Integer.MIN_VALUE+" - "+Integer.MAX_VALUE);
System.out.println("long的大小:"+Long.SIZE
+";默认值:"+l
+";数据范围:"+Long.MIN_VALUE+" - "+Long.MAX_VALUE);
System.out.println("float的大小:"+Float.SIZE
+";默认值:"+f
+";数据范围:"+Float.MIN_VALUE+" - "+Float.MAX_VALUE);
System.out.println("double的大小:"+Double.SIZE
+";默认值:"+d
+";数据范围:"+Double.MIN_VALUE+" - "+Double.MAX_VALUE);
System.out.println("char的大小:"+Character.SIZE
+";默认值:"+c
+";数据范围:"+Character.MIN_VALUE+" - "+Character.MAX_VALUE);
System.out.println("boolean的大小:"+Byte.SIZE
+";默认值:"+bo
+";数据范围:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE);
}
}
运行结果
`byte的大小:8;默认值:0;数据范围:-128 —— 127`
`short的大小:16;默认值:0;数据范围:-32768 —— 32767`
`int的大小:32;默认值:0;数据范围:-2147483648 —— 2147483647`
`long的大小:64;默认值:0;数据范围:-9223372036854775808 —— 9223372036854775807`
`float的大小:32;默认值:0.0;数据范围:1.4E-45 —— 3.4028235E38`
`double的大小:64;默认值:0.0;数据范围:4.9E-324 —— 1.7976931348623157E308`
`char的大小:16;默认值: ;数据范围: —— `
boolean的大小:8;默认值:false;数据范围:-128 —— 127
类型转换
自动类型转换
自动类型转换就是在不同类型转换中类型范围小的变量可以直接赋值给类型范围大的变量。
byte ——》 short ——》int ——》long ——float ——》 double ;
char——》int ——》....
表达式的自动类型转换
在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
byte 、short、char ——》int——》 long ——》float——》 double
表达式的最终结果类型由表达式中的最高类型决定。
在表达式中,byte、short、char 是直接转换成int类型参与运算的。
强制类型转换
类型范围大的数据或者变量,不能直接赋值给类型范围小的变量,会报错。
可以强行将类型范围大的变量、数据赋值给类型范围小的变量
数据类型 变量2 = (数据类型)变量1、数据
int a = 20; byte b = (byte)a; System.*out*.println(b); *// 20*
注意:
强制类型转换可能造成数据(丢失)溢出;
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。
常用运算符
基本运算符
符号 | 作用 | 说明 |
---|---|---|
+ | 加 | 俩数合并 |
- | 减 | 俩数相减 |
* | 乘 | 俩数相乘 |
/ | 除 | 俩数相除,结果和俩数类型有关 |
% | 取余 | 俩数相除,得余数 |
+符号做连接符
在我们对字符串操作时“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。
int a = 5 ;
System.out.println("abc" + 'a'); // abca
System.out.println("abc" + a); // abc5
System.out.println(5 + a); // 10
System.out.println("abc" + 5 + 'a'); //abc5a
System.out.println(15 + "abc" + 15); //15abc15
System.out.println(a + 'a’);//102
System.out.println(a + "" +'a');//5a
System.out.println(a + 'a'+" itheima ");//102 itheima
System.out.println("itheima"+ a + 'a'); itheima5a
System.out.println("itheima"+ ( a + 'a' )); itheima102
能运算的就运算,不能算的就拼接
自增自减运算符
++ 自增 变量自身的值加1
-- 自减 变量自身的值减
++ 和 -- 既可以放在变量的后边,也可以放在变量的前边。
++ 、-- 只能操作变量,不能操作字面量的。
int i = 5,y = 5;
System.out.println(i++);//5
System.out.println(++y);//6
System.out.println("i="+i+"-------------y="+y);//i=6-------------y=6
可以在例子看出,i++是先使用然后自增。++y是先自增然后在使用
相同的道理--也是如此
赋值运算
+= 加后赋值 a+=b 等价于 a = (a的数据类型)(a+b); 将a + b的值给a
-= 减后赋值 a-=b 等价于 a = (a的数据类型)(a-b); 将a - b的值给a
*= 乘后赋值 a*=b 等价于 a = (a的数据类型)(a*b); 将a * b的值给a
/= 除后赋值 a/=b 等价于 a = (a的数据类型)(a/b); 将a / b的商给a
%= 取余后赋值 a%=b 等价于 a = (a的数据类型)(a%b); 将a % b的商给a
关系运算符
== a==b,判断a和b的值是否相等,成立为true,不成立为false
!= a!=b, 判断a和b的值是否不相等,成立为true,不成立为false
> a>b, 判断a是否大于b,成立为true,不成立为false
>= a>=b, 判断a是否大于等于b,成立为true,不成立为false
< a<b, 判断a是否小于b,成立为true,不成立为false
<= a<=b, 判断a是否小于等于b,成立为true,不成立为false
逻辑运算符
& 逻辑与 必须都是true,结果才是true; 只要有一个是false,结果一定是false。
| 逻辑或 只要有一个为true、结果就是true
! 逻辑非 你真我假、你假我真。 !true=false 、 !false= true
^ 逻辑异或 如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true。
&& 短路与 判断结果与“&”一样。过程是左边为 false,右边则不执行。
|| 短路或 判断结果与“|”一样。过程是左边为 true, 右边则不执行。
注意:逻辑与 “&”、逻辑或“|”: 无论左边是 false还是 true,右边都要执行。
三元运算符
格式: a>b?a"b
执行流程: 先进行a>b表达式的半段(任意表达式),如果表达式成立结果就是a,如果不成立结果就是b
运算符优先级
实现键盘数据录入
先导入键盘录入要使用到的包,然后创建键盘录入对象,然后调用对方法。
当程序执行到,调用对象方法的时候,就可以实现键盘输入值了
想要输入不同的数据类型就需要调用不同的方法