JAVA-SE:
1.数据类型:
1.1 引用数据类型
引用数据类型的种类 :
引用数据类型包括:类(class)、接口类型(interface)、数组类型(list)、枚举类型、注解类型,字符串型(String,String的衍生类,如StringBUilder等)
需要注意的是 :
1、引用数据类型是由类加载器创建的,他们是用于访问对象的
2、任何引用数据类型的默认值都为空
3、不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)
4、一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)
5、一个引用数据类型可以被用于任何生命类型和兼容类型的对象;
1.2 基本数据类型
- 类型 说明 长度 最小值 最大值
- byte 带符号字节型 8位 -128 127
- short 带符号字节型 16位 -215 215-1
- int 带符号字节型 32位 -231 231-1
- long 带符号字节型 64位 -263 263-1
- float 带符号字节型 32位 -2-149 (2-2-23) * 2127
- double 带符号字节型 64位 2-1074 (2-2-52) * 21023
类型 | 内存 | 长度 | 范围 | 补充 |
---|---|---|---|---|
byte | 1字节 | 8位 | -2^7 , 2^7-1 | |
short | 2字节 | 16位 | -2^15, 2^15-1 | |
int | 4字节 | 32位 | -2^31, 2^31-1 | 一般地整型变量默认为 int 类型 |
long | 8字节 | 64位 | -2^63, 2^63-1 | 这种类型主要使用在需要比较大整数的系统上 |
float | 4字节 | 32位 | 单精度,且在储存大型浮点数组的时候可节省内存空间 | |
double | 8字节 | 64位 | 双精度,但double类型不能表示精确的值,如货币; | |
char | 2字节 | 16位 | char 数据类型可以储存任何字符 | |
boolean | 单独:4,数组:1 | 默认值是 false; |
2.switch循环 :
注意 :
1、switch中的括号可选的变量有 byte short int char String(JDK1.7) enum (枚举)
2、case穿透:当匹配执行到一条case后的语句时,如果没有break,就会继续执行下一个case中的语句,不再进行对case值的判断
补充 :
三目运算符将布尔类型运用在switch中
boolean b = false;
switch (b?1:0){
case 1 :
System.out.println("1");
break;
case 0:
System.out.println("0");
break;
}
3.Scanner:
sc.nextInt();//从有效数据开始接收,空格属于无效数据,输入符号及其他非int类型会报错
sc.next();//从键盘接收String类型数据,依旧从有效数据开始接收,开始接收后再遇像空格这种无效数据会停止接收,即接收完成
sc.nextLine();//可接收包括空格在内的一行内的所有数据
由next()可知,**结束其接收数据的方式不只有enter键,在其接收时出现无效数据也会使其停止,此时程序还未结束,**空格后面再输入的内容就被紧邻的nextLine()直接接收,从而导致用户无法进行 nextLine 模块的 键盘录入行为
4.Random :
总结 :
1、要获得[min,max)内的随机整数 : random.nextInt(max-min)+min
例:[5,8)
System.out.println(random.nextInt(4)+5);
2、要获得[min,max]内的随机整数,全闭区间 : random.nextInt(max-min+1)+min
例:[5,8]
System.out.println(random.nextInt(5)+5);
5.数据类型转换
分为两种:
5.1、自动类型提升
5.1.1
在算数表达式中含有int、long、float或double型的数据,如果在算数表达式中含有int、long、float或double型的数据,java首先会将所有变量的数据类型转换为表达式中最高的数据类型,然后再进行计算,并且计算结果的数据类型也时表达式中最高的数据类型。
5.1.2
在算数表达式中只含有byte、short或char型的数据,如果在算数表达式中只含有byte、short或char型的数据,java会首先将变量的数据类型自动转换为int型,然后在进行计算,并且计算结果为int型。
5.2、强制类型转换
如果要把数据类型相对较高的数据或变量赋值给数据类型相对较低的变量,就必须进行强制类型转换。