Java学习–基础篇–数据类型
八大基本数据类型:byte short int long float double char boolen
**注:**String不是基本数据类型,是一个类。
数据类型默认初始化
基本数据类型:
- 数字: 0 0.0
- char: u0000
- boolen: false
引用类型:null
Java中进制表示
二进制:0b 八进制:0 十六进制:0x
int i = 10 #输出10
int i2 = 010 #输出8
int i3 = 0x10 #输出16
浮点数 数字后加f
float f = 1.0f;
long 型 数字后加L
long l = 212L;
浮点数
float f = 0.1f;
doublt d = 1.0/10
System.out.println(f==d) #输出结果为false
float d1 = 21321321f;
float d2 = d1+1;
System.out.println(d1==d2) #输出结果为true
∴ 不要用浮点类型数据进行比较
字符串比较
String sa = new String("hello");
String sb = new String("hello");
System.out.println(sa==sb) ; #输出结果为false
System.out.println(sa.equals(sb)); #输出结果为true
String sc = "hello";
String sd = "hello";
System.out.println(sc==sd) #输出结果为true
System.out.println(sc.equals(sd)); #输出结果为true
System.out.println(sa==sd);#输出结果为false
System.out.println(sa.equals(sc)); #输出结果为true
数值转换输出
数值转换输出时可能会存在精度问题
System.out.println((int)23.7); #输出结果为23
System.out.println((int)-45.89f); #输出结果为-45
注:JDK7新特性,数字之间可以用下划线进行分割
int money = 10_0000_0000
System.out.println(money);#输出结果为1000000000
int year = 20;
int total = money *year;#计算溢出 输出结果-1474836480
long total2 = money *year; # 输出结果 -1474836480
long total2 = ((long) money)*year;#输出结果 20000000000
位运算符(<< >>)
<< 左移 >>右移
# << 意为 *2
System.out.println(2<<3);#输出结果为16
# >> 意为 /2
System.out.println(16>>3);#输出结果为2
字符串 连接 +
连接符 + 号 前如果出现String型 则后面所有数据自动转为String型输出
#字符串连接符 +
int a = 20;
int b = 10;
System.out.println(""+a+b); #输出结果为2010
System.out.println(a+b+""); #输出结果为30
三元运算符
# x ? y : z
# 如果x == true 则结果为y 否则结果为z
int score = 50;
String s = score > 60 ? "及格" : "不及格";
System.out.println(s); #输出结果为不及格
int score = 80;
String s = score > 60 ? "及格" : "不及格";
System.out.println(s); #输出结果为及格