Java(5):数据类型

1 数据类型

1.1 强类型语言

​ 要求变量的使用合乎规定,所有的变量都必须先定义才能使用。Java是强类型语言。

1.2 Java数据类型

​ 分为两大类:

  • 基本类型(primitive type)

    1. 数值类型

      • 整数类型

        1.)byte:占一个字节,范围:-128~127

        2.)short:占两个字节,2的15次,范围:-32768~32767

        3.)int:占四个字节,2的31次,范围:-2147483648~2147483647

        4)long:占八个字节,2的63次,范围:-9223372036854775808~9223372036854775807

      • 浮点类型

        1.)float:占四个字节,单精度,尾数可以精确到7位有效数字,范围:-3.403E38~3.403E38

        2.)double:占八个字节,双精度,精度是float的两倍,范围:-1.798E308~1.798E308

      • 字符类型

        1.)char:占两个字节,用'',声明一个字符,或者转义字符

    2. boolean类型:占1位,其值只有true和false

  • 引用类型(reference type)

    1. 接口
    2. 数组
// 整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; // long类型需要在数字的后面加一个L或l,以做声明。如果不做声明,会以int类型取存数据,在把数据自动装换为long。

long l1 = 2147483649; //不加L,编译会报错
long l2 = 2147483649L; // 正常编译

// 浮点数(小数)
float num5 = 50.1F; // float类型需要在数字的后面加一个F,因为java的浮点型常量默认是double,所以声明float时要加F或f

falot f1 = 32.2; //报错,因为不加f,会被认为时double,而double转float需要强制转换,所以报错。

double num6 = 3.12321312321321321321321321321312312;

// 字符,只能是一个字符
char name = 'A'; // 不能是AA 字符用''
char myByte = '
'; // 转义字符也用''
// 字符串,String不是关键字,是类,字符串用""
String namea = "ssm";

Q:为什么float和int都是4个字节,但是float表示的范围更大,而且还可以表示小数点?
https://zhuanlan.zhihu.com/p/84453627

位和字节

Q:什么是位?

位(bit):是计算机 内部数据 存储的最小单位,11001100是一个八位二进制数。

Q:什么是字节?

字节(byte):是计算机 数据处理 的基本单位,习惯上用大写的B来表示。

1024B = 1KB

1024KB = 1M

1024M = 1G

1024G = 1TB

Q:位和字节的联 系

1B(byte,字节)= 8bit(位)

Q:什么是字符?

是指计算机中使用的字母、数字、字、和符号。

整数拓展

// 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; // 八进制
int i3 = 0x10; // 十六进制0x

浮点数

最好完全避免使用浮点数进行比较,银行业务避免使用浮点数,可以使用BigDecimal(数学工具类)

// float  存在误差
// 最好完全避免使用浮点数进行比较

float f1 = 0.1F;
double d1 = 0.1/10;
System.out.println(f1 == d1); // false

float f2 = 2132132132132232F;
float f3 = f2 + 1;
System.out.println(f2 == f3); // true

字符

// 强制转换 (int)
char c1 = 'a';
char c2 = '沈';
System.out.println((int)c1);
System.out.println((int)c2);

// 转义字符
// 	 
....
原文地址:https://www.cnblogs.com/zhangtu/p/14450039.html