java数据类型
基本数据类型 (8种)
基本数据类型,不牵扯到内存分配问题
数值型
- 整形: byte short int long 默认值 0
- 浮点型 float,double 默认值 0.0
字符型
- char ,默认值 ‘\u0000’
布尔型
- boolean 默认值 false
引用数据类型 (3种)
引用数据类型需要由开发者为其分配空间
- 数组,类,接口 默认值 null
byte的特殊性
当直接为byte赋值时,虽然任何整数都属于int类型,java编译的时候发现是为byte赋值会判断赋值的整数在byte的范围里面时,会自动转化,但是如果不在这个范围,会提示用户
浮点数
浮点数就是小数,Java中只要是小数,那么对应的数据类型就是double,默认的小数类型就是double
public static void main (String[] args){
float a = 10.2f;
float b= 10.2f;
System.out.println(a*a);
}
//结果是 104.03999
这个bug在jdk1.0就存在,解决不了,之能通过后期处理
最早开发的时候考虑到内存的问题都使用float,往往能使用float就不使用double,以前内存苛刻,所有往往压缩数据范围,节省空间
在开发过程中要考虑整型做除法时,是会舍去小数的,一点记得要做数据类型转换。
字符型 char
byte属于字节,一个字符=2个字节,字符除了与字节存在关系外,最主要的是可以和int进行转换
字符型用单引号“’” 表示
public static void main (String[] args){
char a = 'A';
int b = a;
System.out.println(b);
}
字符 ‘A’~’Z’ 对应数字 65~90
字符’a’~’z’ 对应数字97-122
布尔型
只有两种取值,true或者false
数据类型选取原则(99%适用)
- 表示整数用int,表示小数用double;
- 描述日期时间或者表示文件(内存)大小用long;
- 如果实现内容传递或者时编码转换用byte;
- 如果实现逻辑控制用boolean
- 如果使用中文,可以使用char 避免乱码问题
运算符
四则运算
取模 %
++、—操作,++在前,表示先把该变量做加1操作,再去运算,++在后,表示先拿该变量进行计算,然后=1
逻辑运算,短路&& (与)、短路||(或),!(非) &(与)、|(或),短路与和短路或只要前面的条记不满足后面就不执行了,单个与单个或,全部都会执行
10进制转2进制采用的方式就是 除二取余,倒序
例如:25的2进制计算过程 11001
25
2 余1
----
12
2 余0
---
6
2 余0
----
3
2 余1
---
1
2 余1
----
0
swith
swith支持int和char类型
swith不支持布尔表达式
从jdk1.5开始支持enum类型
从jdk1.7后支持字符串
字符串区分大小写
数组
数组初始化时。会在堆内存空间中初始化对应的数据类型的默认值,
int[] array = new int[3];
System.out.println(array[0]);//结果0 没有赋值之前,默认值时对应类型的默认值,int的默认值时0
System.out.println(array[1]);//结果0
System.out.println(array[2]);//结果0
- 静态初始化两种形式
- int[] array = {1,2,3,4,5};
- int[] array = new int[] {1,2,3,4,5};
- 动态初始化 int[] array = new int[3];