Java数据类型
基本数据类型
基本数据类型分为三大类:数值型,字符型,布尔型。其中数值型又分为整数类型和浮点类型。
布尔型boolean
boolean,表示一位的信息,返回true和false两个值,这种类型只作为一种标志来记录true/false两种情况,默认值是false
字符型char
char,是一个单一的16位Unicode字符,字符常量为用单引号括起来的单个字符,每个字符占两字节例如:
-
char eChar = "A" char cChar = "马"
char类型最小值是\u0000 (十进制等效值为 0) 最小值:Character.MIN_VALUE=0
最大值是\uffff(即为 65535) 最大值:Character.MAX_VALUE=65535
整数类型
整数类型包括byte,short,int,long。
byte
byte数据类型是8位,有符号的,以二进制补码表示的整数。btye数据类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int变量的1/4;byte变量的默认数值为0。
-
byte a = 100; byte b = -50;
byte类型最小值是-128(-2^7) 最小值:Byte.MIN_VALUE=-128
最大值是 127(2^7-1) 最大值:Byte.MAX_VALUE=127
short
short数据类型是16位,有符号的,以二进制补码表示的整数。short数据类型也可以像byte那样节省空间,一个short变量是int变量的1\2;short变量的默认数值为0。
-
short s = 1000; short r = -20000;
short类型最小值是-32768(-2^15) 最小值:Short.MIN_VALUE=-32768
最大值是32767(2^15 - 1) 最大值:Short.MAX_VALUE=32767
int
int数据类型是32位,有符号的,以二进制补码表示的整数。一般的整型变量默认为int型,默认值为0。
-
int a = 100000; int b = -200000;
int类型最小值是-2,147,483,648(-2^31 ) 最小值:Integer.MIN_VALUE=-2147483648
最大值是2,147,483,647(2^31 - 1) 最大值:Integer.MAX_VALUE=21474836477
long
long数据类型是64位,有符号的,以二进制补码表示的整数。这种类型主要使用在需要比较大整数的系统上。默认值为0L。
-
long a = 100000L; long b = -200000L; //"L"理论上不分大小写,但是小写"l"与数字"1"混淆,不容易分辨,所以最好大写
long类型最小值是-9,223,372,036,854,775,808(-2^63) 最小值:Long.MIN_VALUE=-9223372036854775808
最大值是9,223,372,036,854,775,807(2^63 -1) 最大值:Long.MAX_VALUE=9223372036854775807
浮点类型
浮点类型包括float,double。
float
float数据类型是单精度,32位,符合IEEE 754标准的浮点数。float在储存大型浮点数组的时候可节省内存空间。浮点数不能用来表示精确的值,如货币。默认值是0.0f。
-
float f1 = 234.5f;
float类型最小值是1.4E-45 最小值:Float.MIN_VALUE=1.4E-45
最大值是Float.MAX_VALUE=3.4028235E38 最大值:Float.MAX_VALUE=3.4028235E38
double
doublet数据类型是双精度,64位,符合IEEE 754标准的浮点数。浮点数的默认类型是double类型。double类型同样不能用来表示精确的值,如货币。默认值是0.0d。
-
double d1 = 7D ; double d2 = 7.; double d3 = 8.0; double d4 = 8.D; double d5 = 12.9867;
7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。
基本数据类型实例:
public class PrimitiveTypeTest {
public static void main(String[] args) {
// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println("包装类:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
System.out.println("包装类:java.lang.Short");
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
System.out.println("包装类:java.lang.Character");
// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("最小值:Character.MIN_VALUE="
+ (int) Character.MIN_VALUE);
// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
System.out.println("最大值:Character.MAX_VALUE="
+ (int) Character.MAX_VALUE);
}
}
运行实例:
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
引用数据类型
-
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为-个特定的类型,比如Employee、Puppy等。变量一旦声明后,类型就不能被改变了。
-
对象、数组、接口都是引用数据类型。
-
所有引用类型的默认值都是null。
-
一个引用变量可以用来引用任何与之兼容的类型
类(class)
类是一个模板,它描述一类对象的行为和状态。
接口(interface)
intenface 关键字
-
在接口中所有方法都是public abstract可省可不省
-
理解:接口本身没有实现任何功能,接口表示一种能力 ,拓展很方便(通过此口实现具体的功能)
-
接口是一种约定(体现在名称和注释上)
-
接口不能包含字段,但可以包含属性使用: 实现
接口的特性?
public static final
接口是一个特殊的抽象类
接口中的属性都是公共的静态的常量
接口中的方法都是公共的抽象方法
接口跟抽象类-样不能被实例化。
接口不能被final修饰
接口中没有构造方法
接口来定义功能
java中只支持单继承(只能有一个父类)
接口可以多实现(相当于继承了多个父类)弥补了单向继承的缺点!
数组(array)
语法:数据类型[] 数组名称= new 数据类型[数组长度];
举例:int [] s1= new int[8];
使用for循环和增强for循环(for-Each)遍历
for循环: for (int i = 0; i < size; i++) { total += myList[i]; }
-
增强for循环:for(type element: array) {System.out.println(element);}
)弥补了单向继承的缺点!
### 数组(array)
语法:数据类型[] 数组名称= new 数据类型[数组长度];
举例:int [] s1= new int[8];
使用for循环和增强for循环(for-Each)遍历
for循环: for (int i = 0; i < size; i++) { total += myList[i]; }
- ```java
增强for循环:for(type element: array)
{System.out.println(element);}