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];