1、Java 支持的8种基本数据类型:
java的四种整数数据类型:byte 1 short 2 int4 long8
byte 8位带符号整数 -128到127之间的任意整数 即-2的7次方 到 2的7次方减1
short 16位无符号整数-32768~32767之间的任意整数 即-2的15次方 到 2的15次方减1
Int 32位带符号整数 -2^31到2^31-1之间的任意整数
Long 64位带符号整数 -2^63到2^63-1之间的任意整数
浮点型:float4 double8
Float 32位单精度浮点数 根据IEEE754-1985标准
Double 64位双精度浮点数 根据IEEE754-1985标准
布尔型:boolean1/8
字符型:char2 一个字符能存储一个中文汉字
备注:
1)自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把 int 转化成 Integer,double 转化成 double,等等。反之就是自动拆箱。
2)在栈中可以直接分配内存的数据是基本数据类型,而引用数据类型是数据的引用在栈中,但是它的对象在堆中。
3)java中默认的整数类型是int类型,如果要定义为float类型,则要在数值后加上l或者L,默认的浮点型是双精度浮点,如果要定义为float型,则要在数值后加上f或者F
2、数据类型转
转化分为默认转化和强制转化
1)默认转换:容量小的类型会默认转化为容量大的类型。
byte->short->int->long->float->double
float,double是带小数的,带小数的任何一个数据不管是4个字节还是8个字节,统一比所有的整数类型都大,所以排序为此
char->//short 和char 在同一个等级上面
byte short char 之间计算不会相互转化,首先转换成int
备注:小数型默认的是double类型,如果是float要在小数的后面加f 例如:1.23f;
在java中基本数据类型可以相互转化;boolean类型比较特殊不可以转化成其他类型;
2)强制转换:
将容量大的类型转成容量小的类型,需要强制转化。 在多种类型混合运算过程中,首先选择将所有数据转化成容量最大的那种,再运算。
注意只要不超出范围可以将整数类型直接赋值给byte, short,char
3、3种引用数据类型
String类型(8种基本数据类型里面并没有提到String类型,说明String类型属于引用类型)
数组
类
接口
4、java中八种基本数据类型对应的包装类型:
基本数据类型 包装类型
byte java.lang.Byte
short java.lang.Short
int java.lang.Integer
long java.lang.Long;
float java.lang.Float
double java.lang.Double
boolean java.lang.Boolean
char java.lang.Charcter; //性格,特性,字符
5、常见的字符编码:
ASCII:采用一个字符编码,主要针对英文编码。列如:'a': 97 'A':65 '0':48
ISO-8859-1:又称Latin-1是国际化标志组织,ISO指定的,主要是为了西欧语言中的字符编码,和ASCII字符编码兼容
GB2312<GBK<GB18030:主要是汉子编码,三种编码从容量上看是包含关系
Unicode:Unicode 统一了世界上所有的文字编码,Unicode 有几种实现UTF-8,UTF-16,UTF-32
备注:java采用的是Unicode 码,char是字符类型,java中的char可以储存1个汉字;
6、转义字符
//斜线即\,在java语言中有转义的功能,可以将普通的t字符,转换成“制表符”
1) char c1='\t'; //输出:一个制表符
System.out.print(c1);
System.out.println("abd");
2)
/* char c2=''';
System.out.println(c2);//无将'即单引号输出,因为'即单引号在java语言中有特殊的含义,所以无法将其当做普通的字符输出
*/
char c3='\''; //输出:'
System.out.println(c3);//可以将'即单引号输出,因为\作为转义字符,可以将java中有特殊含义的字符,作为普通的字符输出。
3)
/* char c4='\';
System.out.println(c4);//无法将\即斜线输出,因为\即斜线在java语言中有特殊的含义,所以无法将其当做普通的字符输出。
*/
char c5='\\';//输出:\
System.out.println(c5);//可以将\即斜线输出,因为\作为转义字符,可以将java中有有特殊含义的字符,做为普通的字符输出。
5)char c6='中';
char c7='\u4e2d';//可以得出结论,'中'字对应的Unicode码是 4e2d
System.out.println(c7);//输出:\中