数据类型
- 强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
- 弱类型语言
- Java的数据类型分为两大类
- 基本类型(primitive type)
- 引用类型(reference type)
public class Demo2 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1=10000000;//最常用
byte num2=10;
short num3=100;
long num4=1000L;//Long类型要在数字后面加L
//小数:浮点型
float num5=10.1F;//float类型要在数字后面加F
double num6=100.1;
//字符类型
char num7='你';
//字符串,String不是关键字,是类
String num8="鲨鱼";
//布尔值:是非
boolean flag=true;
//boolean flag=false;
}
}
类型转换
- 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
- 运算中,不同类型的数据先转化为同一类型,然后进行运算
- 强制类型转换
- 自动类型转换
- 从低到高:byte,short,char→int→long→float→double
public class Demo4 {
public static void main(String[] args) {
int num1=128;
byte num2=(byte)num1;//内存溢出
//强制转换 (类型)变量名 高→低
//自动转换 低→高
System.out.println(num1);//128
System.out.println(num2);//-128
/*
注意:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.再把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出或精度问题
*/
System.out.println((int)10.7);//10
System.out.println((int)-100.89f);//-100
char num3='a';
int num4=num3+1;
System.out.println(num4);//98
System.out.println((char)num4);//b
//操作比较打的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;//-1474836480,计算的时候溢出了
long total2=money*years;//默认是int,转换之前已经存在问题
long total3=money*(long)years;//先把一个数转换为long
System.out.println(total);//-1474836480
System.out.println(total2);//-1474836480
System.out.println(total3);//20000000000
}
}
拓展
public class Demo3 {
public static void main(String[] args) {
//整数拓展:二进制0b 八进制0 十进制 十六进制0x
int num1=10;
int num2=010;//八进制0
int num3=0x10;//十六进制0x 0~9 A~F
System.out.println(num1);//10
System.out.println(num2);//8
System.out.println(num3);//16
//浮点数拓展
/*
银行业务怎么表示钱:BigDecimal 数学工具类
double
float 有限 离散 舍入误差 大约 接近但不等于
最好完全避免使用浮点数进行比较
*/
float num4=0.1F;
double num5=0.1;
System.out.println(num4==num5);//false
float num6=123456789F;
float num7=num6+1;
System.out.println(num6==num7);//true
//字符拓展
//所有的字符本质还是数字
char num8='a';
char num9='我';
System.out.println(num8);//a
System.out.println((int)num8);//97,强制转换
System.out.println(num9);//我
System.out.println((int)num9);//25105
//转义字符
//\t 制表符
//\n 换行
//……
System.out.println("hello\tworld\nhello");
String num10=new String("hello world");
String num11=new String("hello world");
System.out.println(num10==num11);//false
String num12="hello world";
String num13="hello world";
System.out.println(num12==num13);//true
//布尔值拓展
boolean flag=true;
if(flag==true){}
if(flag){}
}
}
-
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
-
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
-
1B=8bit
-
字符:是指计算机中使用的字母、数字、字和符号。
-
1bit表示1位
-
1Byte表示一个字节1B=8b
-
1024B=1KB
-
1024KB=1M
-
1024M=1G