java中的数据类型:
-
基本数据类型:
①数值型:数字
-
整型:byte、short、int、long
public static void main(String[] args) { //整型:byte、short、int、long // 1G=1024m 1m=1024k 1k=1024bit // byte :字节 1字节=8bit 1字节 8位 -2^7~2^7-1 byte b1=20; // byte b2=128; System.out.println(b1); //short:2字节 16位 -2^15~2^15-1 short s1=12312; //int:4字节 32位 -2^31~2^31-1 //**注意:java中默认的整型为int int i1=13271; //long:8字节 64位 //注意:long类型的数据需要在其后面加上“L” long l1=1234;// int --long long l2=1234L; //十进制:不能以0开头 int i2=01312; System.out.println(i2);//714 i2=5464; System.out.println(i2);//5464 //八进制:必须以0开头 int i3=013121; // 1*8^0+2*8^1+1*8^2+3*8^3+1*8^4=5713 System.out.println("i3:"+i3);//i3:5713 //十六进制:必须以0x开头 后面的数据只能是0 ~ 9 A ~ F int i4=0xba3;// 3*16^0+10*16+11*16^2 System.out.println("i4:"+i4);//i4:2979 //二进制:必须以0b开头 int i5=0b01010110; //0*2^0+1*2^1..... System.out.println("i5:"+i5);//i5:86 // jdk1.7之后使用“_”提高代码的可阅读性 i5=0b1010_0101_1111; System.out.println("i5:"+i5);//i5:2655
-
浮点型:float、double
// 浮点型:float、double // float :4字节 32位 值后面需要加F或f float f1=1234.5F; // float f2=1234.5; // double:8字节 64位: // double是java中默认的浮点型 double d1=12345.567; double d2=12345.567d;
②字符型:char
//char:字符类型 //①接收字符,表示的是单个字符,只能接收一个字符 char c1='中'; System.out.println(c1);//中 //②接收整型,最大2字节16位 表示的是:JVM会去查找ascii码表数值对应的字符 char c2=49; char c3=65; System.out.println("c2:"+c2+" c3:"+c3);//c2:1 c3:A char c4=97; System.out.println("c4:"+c4);//c4:a //③接收Uncode字符 以\ u开头的字符:JVM会去查找Uncode码表数值对应的字符 char c5='\u03A6'; System.out.println(c5);//Φ //④接收16进制就是接收整型:将16进制转为10进制再对应的ascii码值 char c6=0x23; System.out.println(c6);//# // 转义字符:使用”\”把其转化成字符的本身输出,那么使用”\”的字符称作为转义字符。 System.out.println("\"");//" System.out.print("你好");//不换行输出 System.out.println("\n");//换行 System.out.print("中国");//你好中国 System.out.println("在吗"); System.out.println("中国:在"); //你好”中国” System.out.println("你好\"中国\"");//你好"中国"
③布尔型:boolean
//布尔型:false true boolean temp=false; boolean temp1=true; // boolean temp2=1; System.out.println(temp);//false
-
-
引用数据类型:类、接口、数组
-
基本数据类型的转换
/**
* 精髓:看数据类型的大小
* 浮点型比整型大
* @author Administrator
*
*/
public class _基本数据类型转换 {
public static void main(String[] args) {
//隐式转换 :小精度--大精度
short s1=321;
int i1=s1;
System.out.println("i1:"+i1);//i1:321
// int和float之间转换:int--float
float f1=i1;
//long<float
float f3=1231L;
double d1=123L;
System.out.println("f3:"+f3);//f3:1231.0
System.out.println("d1:"+d1);//d1:123.0
//显示转换(强制转换) :强制转换,大精度--小精度,需要注意当大精度数据中的值大于小精度能够接受的最大范围会出现精度丢失
int i2=10;
byte b2=(byte) i2;
System.out.println(b2);//10
int i3=129;
byte b3=(byte)i3;
System.out.println(b3);//-127
//double --float
float f2=(float) 123.45;
System.out.println(f2);//123.45
//float--int
int i4=(int) 1945.5F;
int i5=(int) 1945.9F;
System.out.println(i4);//1945
System.out.println(i5);//1945
// 算术运算符 +
int m=10;
int n=m+10;
System.out.println(n);
//不同基本数据类型进行计算时,会先转为其中最大精度的数值类型再做计算
double dd1=123.3F+123+1.0;
int ii1=(int) (123.3F+123+1.0);
//在计算时byte、short、char之间不会相互转换,他们三者在计算时首先会转换为int类型。
byte bb1=90;
short ss1=80;
short ss2=(short) (bb1+ss1);
int ii2=bb1+ss1;
int c0='A';
System.out.println(c0);//65
int ii3='B'+bb1+ss1;
System.out.println(ii3);//236
//int--char
int ii4=56;
char c1=(char) ii4;
System.out.println(c1);//8
System.out.println((char)ii4);//8
}