数据类型
-
强类型语言
- 要求变量的使用要严格
-
弱类型语言
-
Java的数据类型分为两大类
-
基本数据类型(primitive type)
整数类型:byte ,short ,int ,long ;浮点类型:folat ,duoble ;字符类型:char ;布尔类型:boolean
- 引用数据类型(reference type)
===========================================
一个二进制=1位(bit)【负数的二进制是原正数的取反加一】
-
一个字节(byte)=8位(0011-1000)
- 变量值取值范围(超出会损失精度)
byte :范围=——负2的7次幂~~2的7次幂 -1
short:范围=负2的15次幂~2的15次幂-1
int:范围=负2的31次幂~2的31次幂-1
long:范围=负2的63次幂~2的63次幂-1
进制转换
进制:二机制0b 十进制 八进制0 十六进制0x
public static void main(String[] args){
//整数扩展:进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;//八进制0
int i3=0x10;//十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
}
}
结果i=10(十进制)
i2=8(八进制10》二进制001000》十进制》8)
i3=16(十六进制10》二进制00010000》16)
三个二进制=一个八进制 四个二进制等于一个十六进制
基本数据拓展及面试题
- 整型
public class Demo03 {
public static void main(String[] args){
//整数扩展:进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;//八进制0
int i3=0x10;//十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
}
- 浮点类型(做比较会有 误差)
public class Demo03 {
public static void main(String[] args){
//==============================================================================
//浮点数扩展!! 银行业务怎么表示?钱
//BigDecimal 教学工具类
//浮点数 有限 离散 舍入误差 大约 接近但等于
//最好不要使用浮点数进行比较
//最好不要使用浮点数进行比较
//最好不要使用浮点数进行比较
//=============================================================================
float f=0.1f;
float f1=1.0f/10f;
System.out.println(f==f1);//ture
float f3=0.1f;
double d=1.0/10;
System.out.println(f3==d);//false
float f4=73284328964f;
double d1=f4+1;
System.out.println(f4==d1);//ture
}
- 字符(本质数字)和转义字符(作用)
public class Demo03 {
public static void main(String[] args){
//字符拓展?
//==============================================================================
System.out.println("============================================");
char c='a';
char c1='学';
System.out.println(c);
System.out.println((int)c);//强制转换
System.out.println(c1);
System.out.println((int)c1);//强制转换
//所有字符本质还是数字
//编码 (表)Unicode表 2字节 97=a
//其表示为U0000~UFFFF例:
char c3='\u0062';
System.out.println(c3);//b
//转义字符\t(制表符TAB) \n(换行) \b(退格)相当于backspace \r(按下回车键)windos系统中回车符有两个
System.out.println("Hello\tWorld");//相当于结果按下制表符
System.out.println("Hello\nWorld");//相当于结果换行
System.out.println("Hello\bWorld");//相当于结果删了一个(backspace)
System.out.println("Hello\rWorld");//相当于结果敲了下回车,但没有换行,如果输出则可能会覆盖原有的已经输出的字符
}
- 布尔值扩展(精简易读 经验)
public class Demo03 {
public static void main(String[] args){
//boolean布尔值扩展
boolean flag= true;
if (flag==true){}//新
if(flag){}//结果一样(默认)老
//代码要精简易读 Less is More!
//从对象 从内存分析
}
从对象 从内存分析!!!