1.概念
变量是程序的基本组成单位,变量都是其程序的基本组成单位,比如//变量有三个基本要素(类型+名称+值)
![](https://i-blog.csdnimg.cn/blog_migrate/63e43f4c9525d04cf37a12fb62523d1e.png)
2.变(变化)量(值)的介绍
变量相当于内存中的一个数及存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)
3.变量使用注意事项
变量表示内存中一个存储区域【不同变量,类型不同,占用空间大小不同,比如:int 4个字节, double8个字节】
该区域有自己的名称【变量名】和【数据类型】
变量必须先声明,后使用,即有顺序
该区域的数据可以在同一类型范围内不断变化
变量在同一个作用域内不能重名
变量三要素:变量=变量名+值+数据类型
4.程序中 + 的使用
当左右两边都是数值型时,则做加法运算
当左右两边都有一方为字符串,则做拼接运算
运算顺序从左到右
5.数据类型
每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)。
![](https://i-blog.csdnimg.cn/blog_migrate/825348e3c64061a18473ea4bc9f565a0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/83084ce9817a4691ce2fe07b0b25920b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/abff7eb0c3c75221998ae6ed94b480ff.png)
![](https://i-blog.csdnimg.cn/blog_migrate/42561510da7ecc903a781d030cf825c7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7ca27a06e8b243922cc3f10fa4a6f55b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1ac5c66fa9e64826563bb89adea066d6.png)
另外:如若为直接查询得到的小数或者直接赋值,是可以判断相等。
6.java API 文档
![](https://i-blog.csdnimg.cn/blog_migrate/91d66c4650d370aa02d73b261e823575.png)
中文索引:Java 8 中文版 - 在线API中文手册 - 码工具 (matools.com)
7.字符类型(char)
![](https://i-blog.csdnimg.cn/blog_migrate/a6afd91c69099b77018954ba51f024de.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9e86adabe03ed9f983639a12603a252c.png)
char类型是可以进行运算的相当于一个整数(双引号代表字符串,输入则会报错)
字符类型本质探讨
字符型 存储到计算机中,需将字符对应的码值(整数)找出来比如‘a’
存储:'a'-->码值97-->二进制(1100 001)-->存储
读取:二进制(1100 001)-->97-->'a'-->显示
字符和码值对应关系是通过字符编码表决定的(是规定好的)
ASCII(ASCII编码表由一个字节表示,一共128个字符,实际上一个字节可以表示256个字符,只用128个)
Unicode(Unicode编码表固定大小的编码使用两个字节来表示字符,字母和汉字统一都是占用两个字节,浪费空间)
utf-8(编码表,大小可变的编码,字母使用一个字节,汉字使用3个字节)
gbk (可以表示汉字而且范围广,字母使用一个字节,汉字使用2个字节)
gb2312(可表示汉字范围相较gbk更小)
BIG5(繁体中文,台湾香港)
8.常用编码
![](https://i-blog.csdnimg.cn/blog_migrate/4f34027cd2df6fd4c01731f4d9279830.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d2c0ae195d6ef053a2be5d78b703add0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/99981ff1bcf254f2ab7aa881fc3d9860.png)
9.boolearn类型
只允许取值ture 和false无null
只占一个字节
boolearn类型适用于逻辑运算,一般用于程序流程控制
不可以0或非0的整数代替false和ture,与c语言不同
10.基本数据类型转换
![](https://i-blog.csdnimg.cn/blog_migrate/cd7f402f29692b43eb95041a4bc9b90c.png)
当java程序员在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这就是自动类型转换
【注意细节】
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据然后进行计算
当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错
(byte,short)和char之间不会相互转换
byte,short,chart 他们三这个可以计算在计算时首先转为int类型【不论是不是混合运算都会转换成int】
boolearn类型不参与转换
自动提升原则:表达式结果的类型自动提升为操作数中最大的类型[错误示范]
强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或溢出,格外注意。
![](https://i-blog.csdnimg.cn/blog_migrate/e05e74d1eab03983b3aae6aace8029d6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7c52c246eb0136e1452cdab61b59a6b9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d267745825eef37fbabf90f5cc9feef.png)