【学习笔记】数据类型

数据类型

强类型语言:java、C、C++等

要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。

弱类型语言:vb,php,JavaScript等

弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。

比如在JavaScript中,

“12” + 3 结果有两种可能性,一是“123” 二是123

 

Java的数据类型分为两大类:基本类型、引用类型

 

 

 

long 类型要在数字后面加L,用来区分是什么类型

long num1 = 100L;

float类型要在数字后面加F,用来区分是什么类型

float num2 = 10.2F;

要注意String 不是关键字

 

除了基本数据类型之外,其他都是引用数据类型 (类、接口、数组)


什么是字节

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

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

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

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

 

1bit 表示1位

1Byte表示一个字节 1B = 8bit

1024B = 1KB

1024KB = 1M

1024M = 1G

1024G = 1T

1024T = 1P

1024P = 1E

1024E = 1Z

1024Z = 1Y


 

整数拓展

进制: 二进制0b开头 十进制 八进制0开头 十六进制0x开头

int i = 10;     //10
int i2 = 010;   //8
int i3 = 0x10;  //16

 


浮点数扩展

小数具有 有限、离散、舍入误差、大约、接近但不等于 的特点

尽量避免使用浮点数进行比较

尽量避免使用浮点数进行比较

尽量避免使用浮点数进行比较

float f = 0.1f;     //0.1
double d = 1.0/10;  //0.1
//但是 f 不等于 d
​
​
float d1  = 2356895689f;
float d2 = d1 + 1;
//结果是 d1 = d2
​

在银行业务中,使用数学工具类BigDecimal来比较


字符扩展

char c1 = 'a';
char c2 = '中';
System.out.println(c1);    //a
System.out.println((int)c1);    //97
System.out.println(c2);    //中
System.out.println((int)c2);    //20056
//所有字符的本质是数字
//编码  Unicode表:(97 = a   65 = A)
​
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3); //a
​

Unicode表

Unicode表

 

 

转义字符

 

---

类型转换

强制类型转换 (类型)变量名 高-->低

自动转换 低-->高

 

注意

1.转换时可能存在内存溢出问题

public class Demo01 {
    public static void main(String[] args) {
        int i = 128;
        System.out.println((byte) i);
    }
​

 

 

 

原因是byte类型最大到127,把128强制转换成byte类型后,出现了内存溢出问题

 

2.转换时可能存在精度问题

 System.out.println((int) 23.6);
 System.out.println((int) -56.6236f);

 

 

 

3.不能对布尔值进行转换

4.不能把对象类型转换成不相干的类型


常见错误

操作比较大的数时,注意溢出问题

比如:

int money = 10_0000_0000;
int year = 20;
int total = money * year;
System.out.println(total);

 

 

计算的结果超出了int能表示的最大范围。

解决方案:

​
        int money = 10_0000_0000;
        int year = 20;
        //int total = money * year;
        long total2 = money * ((long) year);
        System.out.println(total2);

 

 

 

 

 

posted @ 2022-07-13 19:03  GrowthRoad  阅读(50)  评论(0编辑  收藏  举报