JavaSE(二)—— 数据类型

Java数据类型可以分为基本数据类型和引用数据类型
在这里插入图片描述
一 八种基本数据类型

数据类型大小(字节)默认值包装类
byte10Byte
short20Short
int40Integer
long80Long
float40.0fFloat
double80.0dDouble
char2‘\u0000 ’Character
boolean1(bit)falseBoolean

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增序排列,否则查询结果不准确

四 类和接口

这一部分在后面的章节 面向对象 中再详细阐述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值