2.1Java数据类型
1. 基本数据类型(8个)
占用空间
byte 1字节=8bit 2^8
short 2字节=16bit 2^16
int 4字节=32bit 2^32
long 整数类型 8字节
-----------------------------------------
float 浮点型 4字节
double 8字节
------------------------------------------
boolean 布尔类型 1字节
--------------------------------------------
char 字符类型(底层还是整数型 2字节
1 public class Test2 2 { 3 public static void main(String[] args){ 4 byte bytevalue = 1; 5 short shortvalue = 2; 6 int intvalue = 3; 7 long longvalue = 4; 8 9 float floatvalue = 3.3f;//float类型后面必须要加f或F,否则会被默认为double类型 10 double doublevalue = 4.4; 11 boolean booleanvalue = true;//布尔类型中的值只能为TRUE或者false 12 char charvalue ='a'; 13 /* 14 注意一个问题,编写程序时,后多时候需要用到符号,例如:圆括号,大括号,分号,逗号,点号, 15 Java中涉及到以上的符号全部需要英文的符号,一旦使用中文符号,就会出问题。 16 */ 17 System.out.println("bytevalue="+bytevalue); 18 System.out.println("shortvalue="+shortvalue); 19 System.out.println("intvalue="+intvalue); 20 System.out.println("longvalue="+longvalue); 21 System.out.println("floatvalue="+floatvalue); 22 System.out.println("doublevalue="+doublevalue); 23 System.out.println("booleanvalue="+booleanvalue); 24 System.out.println("charvalue="+charvalue); 25 26 27 } 28 }
基本数据类型 包装类型(对象类型)
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
2.对象类型(引用类型,自定义类型)
2.2变量
定义变量
语法:
数据类型 变量名称;
数据类型 变量名称 = 初始值; (推荐做法)
小结:
1.变量的定义语法
有推荐的做法,还有不推荐的做法。(不推荐的原因)
2.变量的变这个字的解释。量,就是具体的值。
3.变量的名称(标示符identifier)定义规则
不能数字开头,中间可以穿插数字
通常有含义。最好不要这样:a1,a2,a3,a4
zhangsanAge,lisiAge
驼峰模型:第一个单词首字母小写外,后续单词首字母大写。
4. System.out.println
System.out.print
ln就是多了一个换行
5.字符串与任何数据的+操作,不是数学意义的加,而是字符串拼接的意思。
1 public class Test1 2 { 3 public static void main(String[] args){ 4 short salary; //声明一个short类型的变量名称salary 5 short salary2 = 3000;//声明一个short类型的变量名称salary2,并且赋初始值是3000 6 7 salary = 3001;//变量重新赋值, 8 salary2 = 3003;//对salary2变量进行赋值,赋的值是3003 9 System.out.println("重新赋值的salary2是 "+salary2); 10 }
}
2.3运算符号
一些运算的规则:
1.小于int类型的类型(byte,short,char),他们之间操作(同类,不同类),结果【自动提升】int
2.相同类型相互操作,结果就是这个类型。
int+int=int
long+long=long
float+float=float
double+double=double
3.不同类型相互操作,结果以大类型为准。
int+long=long
int+byte=int
4.float和long相互间操作结果式float(纵然long是8个字节,float式4个字节)
float = long+float
public class Test3 { public static void main(String[] args) { int num1 = 10; int num2 =3; //+,-,*,/,% int num3 = num1 + num2; int num4 = num1 - num2; int num5 = num1 * num2; int num6 = num1 / num2; int num7 = num1 % num2; System.out.println(num1+"+"+num2+"="+num3); System.out.println(num1+"-"+num2+"="+num4); System.out.println(num1+"*"+num2+"="+num5); System.out.println(num1+"/"+num2+"="+num6); System.out.println(num1+"%"+num2+"="+num7); //() 改变优先级 int num8 =10,num9=20,num10=5; int num11,num12; num11 = num8 + num9*num10; num12 = (num8 + num9)*num10; System.out.println("num11="+num11); System.out.println("num12="+num12); //1) 小于int类型的类型键操作 byte b1 = 1; byte b2 = 2; //byte b3 = b1+b2; /* Test3.java:56: 错误: 不兼容的类型: 从int转换到byte可能会有损失 */ byte b3 = (byte) (b1+b2); int b4 = b1+b2; System.out.println(b3); System.out.println(b4); //小于int类型的类型(byte,short,char), //他们之间操作(同类,不同类),结果【自动提升】int
//2) 同类型相互操作,结果就是这个类型 float f1 = 3.3f; float f2 = 7.3f; float f3 = f1 + f2; double d1=1,d2=2;//double d1=1;double d2=2; double d3=3,d4;//double d3=3;double d4; d4 = d1+d2; System.out.println(f3); System.out.println(d4); //3) 不同类型相互间操作,结果以大类型为准 long l1 =50; byte bx =3; //byte gg = l1 + bx; /* Test3.java:97: 错误: 不兼容的类型: 从long转换到byte可能会有损失 byte gg = g1+bx;//long v =long+byte */ byte gg = (byte)(l1+bx); long gl = l1+bx; //4) float和long相互间操作,结果式float, //因为float可以保存浮点数 float ff = 3.3f; long gk = 100; //gk = gk+ff;//float = long+float float ft = ff + gk; System.out.println(gl); System.out.println(ft); } }
char类型其实就是数字类型,char值背后都是以数字的形式存储的
不同类型之间(指数值类型7个),赋值,小的类型值赋值给大的类型变量是可以的,反之需要进行强制类型转换
public class Test4 { public static void main(String[] ars){ char ch = 'a'; int num = ch;//隐式转换(自动) System.out.println(ch+" 这个字符对应的数值:"+num); ch = 'A'; num = ch; System.out.println(ch+" 这个字符对应的数值:"+num); ch = '中'; num = ch; System.out.println(ch+" 这个字符对应的数值:"+num); num = 99; ch = (char)num;//错误的,必须进行强制类型转换 System.out.println(num+" 这个数字对应的字符:"+ch); //既然char值背后是数字,那么就能进行运算 ch = 'b'; num = ch+1; System.out.println(num); //不同类型的变量(值),赋值给其他类型的变量,会出现精度丢失问题 //那么浮点数赋值给整数类型会怎样(肯定式需要强制类型转换) //浮点数强制转换成整形数,就是小数部分直接截取。 float f = 3.3f; num = (int)f; System.out.println(num); num= 100; f = num;//隐式转换 System.out.println(f); } }