数据类型
基本数据类型
整数型
byte,short,int,long
1,2,4,8 字节
默认值0,0,0,0
1.java 语言中的整数型字面值被磨人当做int形来处理,要让整数型字面值被当做long形来处理,需要在整数型字面值后面加上1/L
2.整数型字面值有三种表示方式
十进制 缺省默认
八进制 以0开始
十六进制 以0x开始
练习:
public class Lianxi2
{
public static void main(String[] args)
{
int a=10;
int b=010;
int c=0x10;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(a+b+c);
long x=2552222222222255456L;//int类型转换成long类型,存在类型转换,int是小容量,long是大容量小容量可以转换成大容量,称为自动类型转换机制
System.out.println(x);//2552222222222255456字面值超出int类型范围,在字面值后面加L,字面值就被当做long类型来处理
}
public class Lianxi3
{
public static void main(String[] args)
{
long k=4545458787878784L;
int m=(int)k;///大容量转换成小容量,需要进行强制类型转换,强制类型转换需要加强制类型转换符
//加上强制类型转换符之后,编译通过,但是运行阶段,可能会损失精度
System.out.println(m);
byte a=11;//在实际编译时,编译通过,没有超出byte类型取值范围的话,该字面值可以直接赋值给byte类型的变量
System.out.println(a);
byte b=(byte)128;//超出byte 类型字面值范围,进行强制类型转换,输出补码-128
System.out.println(b);
}
}
当一个证书字面值没有超出byte,short,char的取值范围,这个字面值可以直接赋值给byte,short,char类型的变量,这种机制sun允许了,目的是为了方便程序员编程
浮点型
float,double
4,8 字节
其实java程序中SUN提供了一整套庞大的类库,java程序员是基于这套基础的类库来进行开发的,所以要知道java的SE类库的字节码在哪,要知道java的SE类库的源码在哪。
在java 语言当中,左右的浮点型字面值都当做double类型来处理,若果要当做float类型来处理,则需要在字面值后面加f/F。
double 和float在计算机内部二进制存储的都是近似值
布尔型
boolean 1字节
在java语言当中,boolean只有两个值ture和false.
public class Lianxi5
{
public static void main(String[] args){
boolean loginSuccess=true;
if(loginSuccess){
System.out.println("我是你大爷");
}else{
System.out.println("我不是你大爷");
}
}
}
字符型
char 2字节
一字节等于八比特
各数据类型的取值范围
符号位0表示正数,1表示负数
byte类型 1字节 -128到127
short 2 -32768-32767
int 4
long 8
float 4
double 8
char 2 0-65535
boolean 1
char可以表示更大的正整数
字符编码:
java语言采用unicode编码方式,标识符可以用中文,在实际开发当中,使用UTF-8编码方式较多。
转义字符:\是转义字符,转义字符出现在特殊字符之前会将特殊字符转换成普通字符。
\n 换行符
println表示输出之后换行,print表示输出但是不换行
\t是制表符
public class Lianxi1
{
public static void main(String[] args){
char c1='n';
System.out.println(c1);
char c='\n';
System.out.print("nida");
System.out.println("ye");
char x='t';
System.out.println(x);
char y='\t';
System.out.print("A");
System.out.print(y);
System.out.println("B");
char k='\\';//输出一个反斜杠
//char k='k';
//反斜杠将后面的单引号字符转义成不具备特殊含义的普通单引号字符
System.out.println(k);
char a='\'';//输出一个单引号
System.out.println(a);
System.out.println("\"HelloWorld\"");
char m='中';
System.out.println(m);
}
}
数据类型转换
关于基本数据类型之间的互相转换,转换规则
1.八种基本数据类型当中除布尔类型之外剩下的7中类型之间都可以互相转换;
2.小容量向大容量转换,称为自动类型转换,容量从小到大顺序:
byte<short<int<long<float<double ,char<
注:任何浮点类型不管占用多少字节,都比整数型容量大。char和short表示的种类数量相同,但是char可以获取的更大的正整数。
3.大容量转换成小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用;
4.当整数字面值没有产出byte,short,char的取值范围,可以直接赋值给byte,short,char类型的变量;
5.byte,short,char混合运算的时候,各自先转换成int类型再做运算;
6.多种数据类型混合运算,先转成容量最大的那种类型再做运算。