1.基本数据类型
字符类型 char
布尔类型 boolean
数值类型 byte short int long float double
其他
void 是关键字 另外一种 类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操
null 是一个关键字,用来标识一个不确定的对象
2.包装类
Boolean
Boolean.valueOf() 静态方法 装箱操作--将基本类型转化为包装类型 (Java1.5自动装箱和拆箱)
b.booleanValue() 拆箱操作
共同点: 重写了 Object 的方法 : equals() hashCode() toString()
实现了 Comparable 接口
不可变性 -- final 不可继承, 变量设置为private且没有setter方法
注意和Python中不一样
Integer
装箱操作: public static Integer valueOf(int i)
拆箱操作 public int intValue() {
public final class Integer extends Number implements Comparable<Integer> {
.java.lang.Number
01.Number类 是所有数值类的父类,其直接子类
Byte, Short, Integer, Long, Float,Double,
public final class Integer extends Number implements Comparable<Integer> {
AtomicInteger, AtomicLong,
java.util.concurrent.atomic public class AtomicInteger extends Number implements java.io.Serializable {
BigInteger, BigDecimal,
java.math.BigInteger public class BigInteger extends Number implements Comparable<BigInteger>
02.public final class Boolean implements java.io.Serializable, Comparable<Boolean>
03.public final class Character implements java.io.Serializable, Comparable<Character> {
数据类型基本内容
01.常量的形式定义在对应的包装类 位数 字节数 最大值 最小值 默认值
Byte.SIZE 最小值:Byte.MIN_VALUE最大值:Byte.MAX_VALUE
public static final int SIZE = 16;
public static final int BYTES = SIZE / Byte.SIZE;
public static final short MAX_VALUE = 32767;
public static final short MIN_VALUE = -32768;
public static final Class<Short> TYPE = (Class<Short>) Class.getPrimitiveClass("short");
其中原始数据类型和包装类 精度范围
float 最小值与 Float.MIN_VALUE 值并不相同
double 最小值与 Double.MIN_VALUE 值并不相同
原始数据
字符类型 char 空字符
布尔类型 boolean false
数值类型 byte short int long
float 0.0f
double 0.00d
封装类
Character null
Float Double 0.0
02.数据类型之间的转换 以及和String之间
getInteger
03.基本数据类型都有对应的数组类型
04.基本运算 运算的方向 优先级
算数运算 加 减 乘 除 取余 取模 自增自减
代数运算 逻辑运算 位运算
基本类型和JVM
基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明
在 类 中声明的变量是成员变量,也叫全局变量
基本类型 放在堆中
在方法 中声明的变量,即该变量是局部变量,
基本数据类型 JAVA虚拟机栈
引用变量:所声明的变量是放在JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的
基本类型字面量为常量或静态变量时,存储在常量池,为成员变量存储在堆中,为局部变量存储在栈中
字符字面量
代码
public class DataTypeTest {
public static void main(String[] args) {
System.out.println(Integer.SIZE);
System.out.println(Integer.BYTES);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.TYPE);
System.out.println(Float.MIN_VALUE);
System.out.println(Double.MIN_VALUE);
// 装箱
int data = 3;
System.out.println(Integer.valueOf(data) );
System.out.println(Integer.valueOf(data).floatValue() );
//数据类型转换
Integer data2 = 6;
System.out.println(data2.longValue() );
System.out.println(data2.doubleValue() );
//数据类型转换
String data3 = "9";
System.out.println(Integer.valueOf(data3) );
System.out.println(Integer.valueOf(data3).floatValue() );
//数组
int[] tt = {1,2,3};
// 数组变量赋值 数组变量元素赋值
int[] t2 = new int[3];
t2[0] = 1; t2[1] = 3; t2[2] = 9;
System.out.println(t2.length);
// for形式遍历数组
for(int i=0;i<t2.length;i++){
System.out.println("一维数组:for: "+t2[i]);
}
// 增强for形式 s遍历所有数组
for(int s:t2){
System.out.println("一维数组增强:for: "+s);
}
// 基本运算
// 在JVM中的情况
}
}