Day08 -- Java基础02_数据类型

数据类型

  • 强类型语言

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

  • 弱类型语言

Java的数据类型分为两大类

  • 基本类型(primitive type)

    1)数值类型:byte占1个字节范围:-128-127

    ​ short占2个字节范围

    ​ int占4个字节范围:-21亿-21亿

    ​ long占8个字节范围

    ​ float占4个字节;double占8个字节

    ​ 字符类型char占2个字节

    2)boolean类型:占1位,只有true/false两个

  • 引用类型(reference type)

    类、接口、数组

浮点拓展

float 有限&离散 有舍入误差 接近但不等于

最好完全避免使用浮点数进行比较!!!

字符拓展

所有的字符本质还是数字

编码 Unicode 2字节 65536 表:97 = 'a';65 = 'A';

char c3 = '\u0061';
System.out.println(c3);   //a

转义字符

转义字符 意义 ASCII码值(十进制)
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\ 代表一个反斜线字符''' 092
' 代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
\0 空字符(NULL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\uhhhh 1到2位十六进制所代表的任意字符 二位十六进制
// \t 制表符
// \n 换行符

引申:计算机基础知识科普

电脑的32位和64位的区别是什么

32位的cpu只能装32位的操作系统,但64位的电脑即可以装32位的系统也可以装64位的操作系统,区别是寻址能力(内存中)

64位最多可以支持128G的内存,而32位最多只能支持4GB的内存

类型转换

低 ------------------------------------------------------->高

byte,short,char-->int-->long-->float-->double

运算中,不同类型的数据先转换为同一类型,然后进行运算。

  • 强制型类型转换

    (类型)变量名 高 -- 低

  • 自动类型转换

​ 低 -- 高

int i = 128;
byte b = (byte)i;           //Byte max_value = 127;因此内存溢出,此处为强制转换
double d = i;               //自动转换不需要加类型

注意点:
1.不能对布尔值进行转换 位
2.不能把对象类型转换为不相干的类型
3.在把高容量转到到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题(小数)

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

//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
System.out.println(money);
int years = 20;
int total = money*years;   //-1474836480,计算时候溢出了
long total2 = money*years; //结果默认是int,转换之前已经存在问题

long total3 = ((long)money)*years;
System.out.println(total3);
posted @ 2021-02-11 17:04  筠亭之  阅读(37)  评论(0编辑  收藏  举报