Java是一种强类型语言,要求变量的使用必须严格符合规定,所有变量都必须先定义才能使用。
- 安全性高
- 速度会慢
Java的数据类型分为两类:
- 基本类型(primitive type)
- 引用类型(reference type)
(1)基本类型
-
数值类型
-
boolean类型
(一)数值类型
1、整数类型
- byte占一个字节范围
- short占2个字节范围
- int占4个字节范围
- long占8个字节范围
2、浮点类型
- float占四个字节字节
- double占8个浮点字节
3、字符类型
- char占2个字节
(二)boolean类型
- 占1位其值只有true和false两个
(2)引用类型
类
接口
数组
字节
- 位(bit):是计算机 内部数据 存储的最小单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示。
- 1B(byte,字节)=8bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
拓展
public class Demo03 {
public static void main(String[] args) {
// 一、整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010; //八进制0
int i3=0x10; //十六进制0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
long i4=0x1111111111111111L;
System.out.println(i4);
System.out.println("==================================================");
// 二、 浮点数拓展 银行业务怎么表示? 钱
System.out.println("==================================================");
//BigDecimal 数学工具类
//-----------------------------------------
//float //有限的 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float a =0.1f; //0.1
double b =1.0/10; //0.1
System.out.println(a);
System.out.println(b);
System.out.println(a==b); //输出false 不相等
float d1=232322222222222223f;
float d2=d1+1;
System.out.println(d1);
System.out.println(d2);
System.out.println(d1==d2); //输出true 相等
System.out.println("==================================");
// 三、 字符拓展
System.out.println("==================================");
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
//强制转换:可以把字符转换做数字,所有的字符本质还是数字!
//编码 Unicode编码表(a=97,中=20013等等等) 2字节,最多可表示65536个字符
// U0000~uFFFF 范围
char c3='\u0065';
System.out.println(c3); //e
System.out.println("===============");
//转义字符
// 1. \t 制表符
// 2. \n 换行
//...........等等
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
System.out.println("===============");
String ab = new String("Hello World");
String ac = new String("Hello World");
System.out.println(ab==ac); //false 不等
System.out.println("========");
String sa = "HelloWorld";
String sb = "HelloWorld";
System.out.println(sa==sb); //ture 等
//对象 从内存底层进行分析
//布尔值拓展
Boolean flag =true;
if (flag==true){} //新手程序员
if (flag){} //老手程序员
//Less is More //代码要精简易读
}
}
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte:
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 例子:byte a = 100,byte b = -50。
short:
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
- 例子:short s = 1000,short r = -20000。
int:
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000。
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
float:
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
double:
- double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
- 浮点数的默认类型为double类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
- 例子:double d1 = 123.4。
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true 和 false;
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false;
- 例子:boolean one = true。
char:
- char类型是一个单一的 16 位 Unicode 字符;
- 最小值是 \u0000(即为0);
- 最大值是 \uffff(即为65,535);
- char 数据类型可以储存任何字符;
- 例子:char letter = ‘A’;。