Java数据类型可以分为基本数据类型和引用数据类型

一 八种基本数据类型
| 数据类型 | 大小(字节) | 默认值 | 包装类 |
|---|---|---|---|
| byte | 1 | 0 | Byte |
| short | 2 | 0 | Short |
| int | 4 | 0 | Integer |
| long | 8 | 0 | Long |
| float | 4 | 0.0f | Float |
| double | 8 | 0.0d | Double |
| char | 2 | ‘\u0000 ’ | Character |
| boolean | 1(bit) | false | Boolean |
Java的各种数据类型占用固定的内存空间,与具体的软硬件平台环境无关,体现了Java的跨平台性
void 不是基本数据类型
引用数据类型有 类 接口 数组,字符串底层是字符数组
布尔型,只有两个值即true和false,在Java中布尔值是不能与整数相互转换的,这一点与C有区别
Java中成员变量如果不赋初始值,系统才会自动赋一个默认值,局部变量必须赋值,否则会报错
public class justfortest {
static float t;
public static void main(String[] args) {
System.out.println(t);
}
}
//输出
0
二 基本数据类型自动转换
Java 是强类型语言,要求参与“赋值运算”和“算术运算”的数据类型保持一致.
1.隐私类型转换(自动) 原则是低字节向高字节提升.
—— byte -> short-> int -> long -> float-> double
—— char -> int
1)赋值运算:从低字节向高字节提升.
特例:int类型常量赋值给byte、short、char类型的变量时,属于隐私类型转换的特例, 只需要赋值的结果不超过其数表示的范围就行
final int num = 10;
byte num1 = num;
2)算术运算:
将两个操作数中有一个是double类型,则将另一个也转换为double类型.
否则,如果有一个是float类型,则将另一个也转换为float类型.
否则,如果有一个是long类型,另一个也转换为long类型.
否则,两个操作数都转换为int类型.
2.强制类型转换(手动)
八大基本数据类型中,除了boolean类型外,其余的数据类型都可以相互转换
但前面的隐私类型转换搞不定的时候,就使用强制类型转换.如:
int num = (int)12.3;
强制转换的底层实现?
强制转换可能会失去精度.
int a = 200;
byte b = (byte)a;
System.out.println(b);
//输出
-56
三 数组
数组的定义
Java中用数组保存固定大小的相同类型的元素
定义数组的语法有两种:
type arrayName[];
type[] arrayName;
比如:
String arr[];
String[] arr;
与C、C++不同,Java在定义数组时并不为数组元素分配内存,因此[ ]中无需指定数组元素的个数,即数组长度。而且对于如上定义的一个数组是不能访问它的任何元素的,我们必须要为它分配内存空间,这时要用到运算符new,其格式如下:
arrayName=new type[arraySize];
其中,arraySize 为数组的长度,type 为数组的类型。如:
demoArray=new int[3];
通常,你可以在定义的同时分配空间,语法为:
type arrayName[] = new type[arraySize];
例如:
int demoArray[] = new int[3];
数组的初始化
可以在声明数组的同时进行初始化(静态初始化),也可以在声明以后进行初始化(动态初始化)。
//静态初始化
int intArray[] = {1,2,3,4};
//动态初始化
float floatArray[] = new float[3];
floatArray[0] = 1.0f;
floatArray[1] = 132.63f;
floatArray[2] = 100F;
数组的引用
可以通过下标来引用数组,引用前一般要检查是否越界:
arrayName[index];
每个数组都有一个length属性来指明它的长度,例如 intArray.length 指明数组 intArray 的长度。
数组的遍历
可以使用for 循环,也可以使用foreach 循环
高维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:
String str[][] = new String[3][4];
二维数组的初始化:
//静态
int intArray[ ][ ] = { {1,2}, {2,3}, {3,4,5} };
//动态
String s[][] = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");
Arrays 类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
值得注意的是Arrays是一个类,不是一个数组,它的作用是为了方便操作数组。
Arrays.toString(arr) 返回一个数组字符串,方便打印
Arrays.sort(arr) 给数组arr排序
Arrays.copyOf() 复制一个数组
Arrays.copyOfRange(T[] orignal, int from, int to) 复制一个数组的一个范围
Arrays.binarySearch(Object[] arr,Object key) 二分查找,要求arr增序排列,否则查询结果不准确
四 类和接口
这一部分在后面的章节 面向对象 中再详细阐述

926

被折叠的 条评论
为什么被折叠?



