版权声明:本文为博主原创文章,未经博主允许不得转载,如需转载请在明显处标明出处! https://blog.csdn.net/qq_36291682/article/details/86640663
1. 字节 字符
- “字节”是一个8位的物理存贮单元,一个字节由8个二进制位组成
- “字符”则是一个文化相关的符号
- UTF-8
Unicode :一个字符是两个字节 汉字/字母都是一个字符
UTF-8是Unicode的实现方式之一
UTF-8是一种变长的编码方式,他可以使用1~4个字节来表示一个字符,根据不同的符号来变化字节的长度
UTF-8 中文都是3个字节
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度 - GBK
gbk 中文是2字节 英文是一个字节 GBK是国人发明的为了存储自己文字的编码方式(Unicode出现之前就有了)
~~ 关于这个字符之间的相互转换,我是没搞明白 ~~
点击 推荐看一篇博客
2. 基本数据类型
基本类型 | 包装类型 | 字节数 |
---|---|---|
byte | Byte | 1 |
boolean | Boolean | 1 (理论上不是0就是1 用1/8字节就行) |
short | Short | 2 |
char | Character | 2 |
int | Integer | 4 |
float | Float | 4 |
double | Double | 8 |
long | Long | 8 |
1.有了基本的数据类型 为什么还需要包装类型?
-
核心:让基本类型具备对象的特征,实现更多的功能
-
int没有办法判断一个值存在与否 用Integer值与null比较就可以判断对象是否存在
例子:
比如说你一年花费的时候,null可能就表示没有收入也没有支出;但是0表示支出==收入 这个意思是不一样的 所以需要用到null来表示 这个时候就需要用到封装类 -
缓存值:对象缓存 Integer i = 12; Integer j = 12 ; 这个时候 i == j ---->true;
-
最大值Integer.MAX_VALUE,最小值 Integer.MIN_VALUE
-
Java是面向对象的编程语言,基本类型并不具备对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型,它将基本类型包装起来,使得它具有了对象的性质,并为其添加了属性和方法,丰富了基本类型的操作。
2.Java的两大数据类型
- 基本类型(或者叫做内置类型)
基本类型不存在引用的概念,基本类型都是直接存储在内存栈上,数据本身的值就是存储在栈空间里面的 - 引用数据类型
引用数据类型:引用是存储在有序的内存栈上的,而对象本身存储在内存堆上。
3. java 基本类型 和 包装类的转换
例子:
int 和 Integer - int转Integer 装箱 Integer i = Integer.valueOf(1234);
- 自动装箱:i =1234; //编译的时候调用valueOf
- Integer 转 int 拆箱 int j = i.intValue();
- 自动拆箱:int j = i; //编译的时候 调用intValue
- Integer一般做类型转换的时候用的比较多
- Integer是int的封装类,Integer本身有很多进行处理的静态方法
- Integer 是对象而 int不是,内存的分配位置也不一样