笔记整理之java数据类型
作者:互联网
关于java中的数据类型:
1.数据类型的作用是什么?
程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间大小不同。
数据类型的作用是指导jvm运行程序的时候该数据分配多大的内存空间
2.java数据类型包括两种:
*基本数据类型
*引用数据类型【后边讲】
-类
-接口
-数组
…
3.关于基本数据类型:
*基本数据类型包括四大类八小种:
第一类:整数型
byte,short,int,long
第二类;浮点型
float,double
第三类:布尔型
boolean
第四类;字符型
char
4.字符串不属于基本数据类型,属于引用数据类型,字符属于基本数据类型:
*字符串使用双引号"abc"
*字符串使用单引号 ‘a’
5.八种基本数据类型各自占用空间大小是多少?
基本数据类型 占用空间大小【单位;字节】
-------------------------------------------
byte 1
short 2
int [用得最多] 4
long 8
float 4
boolean 1
char 【用二进制表示不了 2
6.计算机在任何情况下都只能识别二进制,例如:只认识10101010101010101010101010…
【现代的计算机底层采用交流电的方式,接通和断开就两种状态,计算机就只识别1或0,其他不认识】
7.什么是二进制?
*数据的一种表示形式,十进制表示满十进一原则,二进制表示满二进一原则。
例如: 十进制
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
例如:二进制
0 1 10 11 100 101 110 111 1000 1001…
0 1 2 3 4 5 6 7 8 9
理解: 例如:97
2的6次方 2的5次方 2的4次方 2的3次方 2的2次方 2的1次方 2的0次方
64 32 16 8 4 2 1
那么97=64+32+1
所以, 1 1 0 0 0 0 1
或者 例如:34
34/2=17 17/2=8…1 8/2=4 4/2=2 2/2=1 1/2=0…1
0 1 0 0 0 1
8.字节(byte)
1 byte = 8 bit [1个字节 = 8个比特位]【1个比特位就是一个1或0 就是二进制位】
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 TB = 10241024102410248 Byte
9.整数型当中的byte类型,占用1个字节,所以byte类型的数据占用8个比特位。那么byte类型的取值范围是什么?
*关于Java中的数字类型,数字都有正负之分,所以在数字的二进制当中有一个二进制位,被称之为“符号位"。并且在这个’符号位‘在所有的二进制的最左边,0表示正数,1表示负数。
*byte类型最大值:01111111 为【00000000 000000000 000000000 100000000(二进制) - 1】的结果----2的7次方-1,结果是127=128-1
*byte的最小值:-128【位运算,具体的怎么用二进制表示,这个和原码,反码,补码有关】
*byte类型取值范围:【-128~127】
*byte类型可以表示256不同的数字,表示256个不同的二进制
10.二进制和十进制之间的转换规则:
*二进制转换成十进制
*十进制转换成二进制
11.计算机只认识二进制,那么计算机怎么表示现实世界当中的文字的呢?
*八种基本数据类型当中,byte,short,int,float,double,boolean这七种数据类型计算机在表示的时候比较容易,因为底层都是数字,十进制的数字和二进制之间存在一种固定的的转换规则。
*但是八种基本数据类型当中char类型表示的是现实世界中的文字,文字和计算机二进制之间“默认”情况下是不存在转换关系的。
*为了让计算机可以表示现实世界当中的文字,我们需要进行人为的干涉,需要人负责提前制定好”文字“和”二进制“之间的对照关系。这种对照转换关系被称为:字符编码。
*计算机最初只支持英文,最先出现的字符编码是:ASCII码
’a‘ -->97 【01100001】
’A‘ -->65
’o‘ -->18
关于八种基本数据类型的默认值
数据类型 默认值
byte,short,int,long 0
float,double 0.0
boolean flase 【在c语言中,true是1,flase是0】
char \u0000
八种基本数据类型的默认值是一切向0看齐。
关于Java语言当中的整数型;
数据类型 占用空间 默认值 取值范围
byte 1 0 -128~127
short 2 0 -32768~32767
int 4 0 -2147483648~2147483647
long 8 0L
1.Java语言中的“整数型字面值"被默认当作int类型来处理,要让这个”整数型字面值“被当作long类型来处理的话,需要在”整数型字面值“后面添加L,建议大写的L
2.Java语言当中的整数型字面值有三种表示方式:
第一种方式;十进制【是一种缺省[就是前面不需要加什么东西]默认的方式】 //常用
第二种方式;八进制【在编写八进制整数型字面值的时候需要以0开始】
第三种方式;十六进制【在编写十六进制整数型字面值的时候需要以0x开始】
计算机二进制有三种表示形式:
原码
反码
补码
计算机在任何情况下底层表示和存储数据的时候采用补码形式。
正数的补码:和原码相同
负数的补码:负数的绝对值对应的二进制码所有二进制位取反【0变1,1变0】,整个数字再加1
补码:10000000
原码计算过程:
*10000000 - 1 —>01111111
*10000000 —> 128
-128
/
//0000000 00000000 00000000 11000111
//强制类型转换之后:11000111
//110001111现在在计算机当中存储,他是一个补码,将补码转换成原码就是该数字。
//11000111 - 1 ---->110000101
//00111010 【2 + 8 + 16 + 32】
//-58
byte m = (byte)198; 128 64 32 16 8 4 2 1
System.out.println(m); //-58 1 1 0 0 0 1 1 1
short s = 32767; //通过
short s1 = 32768; //编译报错
//65535是int类型,4个字节
//cc是char类型,2个字节
//按照以前所学的知识点来说,以下程序编译报错
// char cc = 655535; //通过
//cc = 65535; //编译报错
/*
byte x = (byte)120;
当一个整数字面值没有超出byte,short,char的取值范围,这个字面值可以直接赋值给byte,short,char类型的变量。
这种机制sun允许了,目的是为了方便程序员的编程。
*/
标签:short,java,补码,二进制,整数型,数据类型,笔记,byte 来源: https://blog.csdn.net/weixin_62130805/article/details/121595557