1. Java中的数据类型:
(1)可分为基本数据类型和引用数据类型两大类。前者包含:byte,short,int,long,float,double,boolean,后者包含:类,数组和接口类型。可以形象地理解为引用类型相当于存折,得先去银行取现,而值类型(基本数据类型)相当于现金,直接使用。
其中对于值类型来讲,都存放在栈中,不需要程序员手工过问,由系统自动管理,而对于引用类型来讲,可以理解为需要分配两块内存,一部分是栈存放的是地址,另一部分是堆中存放的数据,两者的关系是栈存放的是地址指向堆中存放的数据。
(2)Java中以1-9开头的数为十进制,以0开头的数为八进制,以0x开头的数为十六进制。
(3)'\u????'表示一个具体的Unicode字符,????是4位十六进制数字,boolean只有两个小写的常量值:true和false。
(4)Java是一种严格的类型语言,不允许数值类型和逻辑类型之间进行转换。即字符类型(char)的数据可以自动转换为整型或浮点型,而逻辑(boolean)不可以。
(5)对象运算符“instanceof”判断某个具体对象是否是某个类的实例化对象,若是 返回true,否则返回false
2. 数据类型转换规则:
3. 数组:(1)自动类型转换:
①所有的整数转换为小数
②位数少的类型转换为位数多的类型
(2)强制类型转换:
①位数多的类型向位数少的类型进行转换
②所有的小数转换为整数
注意:(1)数组在定义时,需要直接初始化(或动态),初始化时不需要指定数组的大小。
(2)基本类型的数组初始化时其元素默认为0,而引用类型的数组初始化为其元素默认为null。
(3)二维数组的说明格式::数组元素类型[][] 数组名 = new 数组元素类型[行数][列数]。
(4)二维数组的第二维的长度可以不相等,如int b[][]={{11},{21,22},{31,32,33}};
(5)Java中不允许静态声明数组,如int errarr1[2][3]为错误。
关于二维数组的程序:
运行结果为:public class twoDArray { public static void main(String[] args) { //初始化二维数组,列数不确定 int[][] b = new int[3][]; System.out.println("二维数组b的长度为:"+b.length); int a1[] = { 11 }; int a2[] = { 21, 22 }; int a3[] = { 31, 32, 33 }; b[0] = a1; b[1] = a2; b[2] = a3; System.out.println("b[0]的长度:" + b[0].length + "\nb[1]的长度:" + b[1].length + "\nb[2]的长度:" + b[2].length); //初始化另一二维数组 int k = 0; int array2[][] = new int[3][]; for(int i=0;i<array2.length;i++){ array2[i] = new int[i+3]; //为array2的每列开辟空间 } //array2赋值 for(int i=0;i<array2.length;i++){ for(int j=0;j<array2[i].length;j++){ array2[i][j] = k++; System.out.print(array2[i][j]+"\t"); } System.out.print("\n"); } } }
3 b[0]的长度:1 b[1]的长度:2 b[2]的长度:3 0 1 2 3 4 5 6 7 8 9 10 11
(1)char的取值范围为0~65535。
(2)取余操作:20.0%6 = 2.0;