Java数据类型和扩展
数据类型
强类型语言,要求变量的使用要严格符合规定,所有变量都必须定义后才可以使用
Java的数据类型主要分为两大类
-
基本类型(Primitive Type)
-
数值类型
-
byte占一个字节:-128~127
-
shot占两个字节:-32768~32767
-
int占四个字节:-2147483648~2147483647 常用类型
-
long占八个节:-9223372036854775808~9223372036854775807
-
-
浮点类型(也就是小数)
-
float占四个字节
-
double占八个字节 常用类型
-
-
boolean 类型(布尔类型用于判断对错)
-
占用一位且值只有两个true(对)false(错)
-
-
-
引用数据类型(Reference Type) 前期只做了解
-
类
-
接口
-
数组
-
public static void main(String[] args) {
//八大基本类型
int num1=10;//最常用
byte num2=20;
short num3=30;
long num4=40L;//long类型用的时候加L
//小数:浮点数
float num5=50.1f;//float类型使用的时候要加f
double num6=3.1415926;//最常用
//字符
char a='邓';//定义单个字符
//字符String不是关键字,是类
String name="邓毅";//String字符串可以定义多个字符
//布尔值
boolean b=true;//真
boolean c=false;//假
}
整数拓展
在计算机中分别有二进制,八进制,十进制和十六进制。
-
二进制:二进制是计算机可以读懂的进制每逢2进1,在IDEA中以0b开头
public static void main(String[] args) {
int a=0b10;//定义a为二进制10
System.out.println(a);}//输出a的结果
//运行结果为2 -
八进制:八进制为每逢8进1,在IDEA中以0开头
public static void main(String[] args) {
int b=010;//定义b为八进制10
System.out.println(b);}//输出b的结果
//运行结果为8 -
十进制:十进制为每逢10进1我们平常用的就是十进制而十进制前面则不能其他字符为开头
public static void main(String[] args) {
int c=10;//定义c为十进制10
System.out.println(c);}//输出c的结果
//运行结果为10 -
十六进制:十六进制为每逢16进1(0~9,A~F总共十六位)在IDEA中以0x或0X开头
public static void main(String[] args) {
int d=0x10;//定义d十六进制10
System.out.println(c);}//输出d的结果
//运行结果为16IDEA运行结果为平时用的十进制
浮点数(小数)拓展
上面我们知道浮点数有两个类为float,double
-
我们来设置 float a=233333.1111111f 和 double b=233333.1111111他们两个的结果都为0.1看他们是不是相等并且输出一行他们的值
public static void main(String[] args) {
float f=233333.1111111f;/*定义f为233333.1111111*/
double d=233333.1111111;/*定义d为233333.1111111*/
System.out.println(f==d);
System.out.println(f);
System.out.println(d);}
//运行结果为:false
// 233333.11
// 233333.1111111 -
我们在来设置 float b1=233333.1111111f,float b2=0.0000001f,float b3=b1+b2 看看b1是否等于b3并且输出b1和b2
public static void main(String[] args) {
float b1=233333.1111111f;/*定义b1为233333.1111111*/
float b2=0.0000001;//定义b2为0.0000001
System.out.println(b1==b3);
System.out.println(b1);
System.out.println(b3);}
//运行结果为teue(真)
// 233333.11
// 233333.11
从上面两个结果我们可以得出,float和double的精度比较有限,比较的离散而且一般会舍入。
字符拓展
public static void main(String[] args) {
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//强制转换为int
System.out.println(c2);
System.out.println((int)c2);}//强制转换为int
//运行结果为:a
// 97
// 中
// 20013
从上面可以得出,所有字符的本质还是数字。
而且在IDEA中编码Unicode相当于一个表:(97代表字符a),(20013代表字符中)。而他的字节为两个字节 0~65536。并且它的范围是u0000~ufff。而且它在IDEA中以\开头
public static void main(String[] args) {
char c3='\u0061';//正常的Unicode编码表示
System.out.println(c3);
//运行结果为:a
从这我们可以看出输出Unicode中的0061是字符中的a
下面是我在IDEA中上面讲到的所有代码可以看下
public static void main(String[] args) {
//整数拓展:二进制 0b 八进制 0 十进制 十六进制0x
int a=10;//十进制的十
int b=010;//八进制
int c=0x10;//十六进制 0~9 A~F
System.out.println(a);
System.out.println(b);
System.out.println(c);
//=====================================================================================
//浮点数拓展 ? 银行业务怎末表示?钱
//BigDecimal 这是一个数学工具类这是Java自定义好的可以直接用
//=======================================================================================
//float 的小数位是有限的 比较离散一般会四舍五入
//double 小数位比float长一些但也是有限的
//最好不要用浮点数去比较
float f=233333.1111111f;
double d=233333.1111111;
System.out.println(f==d);//输出结果为false假
System.out.println(f);//输出结果为233333.11
System.out.println(d);//输出结果为233333.1111111
float d1=233333.1111111f;
float d2=0.0000001f;
float d3=d1+d2;
System.out.println(d1==d3);//输出结果为true真
System.out.println(d1);//输出结果为233333.11
System.out.println(d3);//输出结果为233333.11
//=====================================================================================
//字符拓展
//=======================================================================================
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//强制转换为int
System.out.println(c2);
System.out.println((int)c2);//强制转换为int
//所有的字符本质还是数字
//编码 Unicode相当于一个表:97 = a 20013 代表 中 2字节 0 ~ 65536
//Unicode 的 范围u0000~ufff
char c3='\u0061';//正常的Unicode编码表示
System.out.println(c3);//结果输出为字符'a'
}

浙公网安备 33010602011771号