- 变量原理(一个程序,就是一个世界)
- 加号使用
- 整数类型
- 注意事项
- 浮点类型
- 注意事项
- Java类的组织形式
- 字符型
- 相关注意
- 布尔类型
- 基本数据类型
- 注意事项
- String和基本数据类型互相转换
- 注意事项
- 本章作业
变量是程序的基本组成单位(变量三要素:类型+名称+值)
变量相当于内存中一个数据存储空间的表示,可以看作门牌号,通过门牌找到房间,通过变量访问变量值。
变量使用的基本步骤:
- 声明变量
- 赋值
- 使用
数据类型:
- int
- double
- char
- String
变量的注意事项
- 不同变量,类型不同,占用的空间大小不同
- 该区域有自己的名称【变量名】和类型【数据类型】
- 变量必须先声明后使用
- 该区域的数据可以在同一类型范围内不断变化
- 变量在同一个作用域内不能重名
- 变量 = 变量名 + 值 + 数据类型
- 当左右是数值类型,做加法运算
- 当左右有一方为字符时,做拼接运算
- 运算顺序从左到右
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KrYYCXrb-1635735011424)(C:UsersCYSDesktopQQ图片20211020094421.png)]
整数类型- byte,1字节,-128~127
- short,2字节,-3276832767(-2的15次方2的15次方减1)
- int,4字节,-21474836482147483647(-2的31次方2的31次方减1)
- long,8字节,-2的63次方~2的63次方减1
- java各整数类型有固定的范围和字段长度
- java的整型常量默认为 int 型,声明 long 型常量须后加 l 或 L
- Java程序中变量常声明为 int 型,除非数太大不够用才声明为long
- bit,计算机中最小存储单位,byte,计算机中基本存储单位,1 byte=8bit
- 单精度float,4字节,-3.403E38~3.403E38
- 双精度double,8字节,-1.798E308~1.798E308
浮点数存放形式:浮点数=符号位+指数位+尾数位
尾数部分可能丢失,造成精度损失(小数都是近似值)
注意事项-
java各浮点类型有固定的范围和字段长度
-
java的浮点型常量默认为 double 型,声明 float 型常量须后加 f 或 F
-
浮点型常量有两种表示形式,十进制数形式(5.12 512.0f .512)和科学计数法形式5.12e2 5.12E-2
-
通常情况使用double,因为它比float的精度更高
-
浮点数使用陷阱:2.7和8.1 / 3比较(当我们对运算结果是小数的进行相等判断要小心,应该是以两个数的差值的绝对值在某个精度范围内)
ctrl+/多行注释,取消注释再次按键
小可以转换成大的,大的不能转换成小的
Java类的组织形式JDK下面有很多包,包里有接口、类和异常那个,类下有字段、构造器(构造方法)、成员方法。
按照包找类,再去找方法,也可以搜索。
字符型字符类型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字),多个字符用字符串String
当给char赋值一个数字的时候,输出的是该数字对应的字符。
- 字符常量是用单引号括起来的单个字符;
- Java中允许使用转义字符 ‘’ 来将其后的字符转变为特殊字符型常量;
- Java中char本质是一个整数,在输出时,是unicode码对应的字符;
- 可以直接赋给char一个整数,输出时按照对应unicode字符输出;
- char类型可以进行运算,相当于一个整数。
- ASCII编码表,一个字节表示,一个128个字符,实际上一个字节可以表示256个字符,只用128个
- Unicode编码表,固定大小的编码,使用两个字节来表示字符,字母和汉字统一都是占用两个字节,这样浪费空间
- utf-8编码表,大小可变的编码,字母使用一个字节,汉字使用3个字节
- gbk,可以表示汉字,而且范围广,字母使用1个字节,汉字2个字节
- gb2312,可以表示汉字,gb2312 < gbk
- big5 码,繁体中文,台湾,香港
- boolean,只允许取值为true或false,无null
- 占一个字节
- 适用于逻辑运算,一般用于程序流程控制
不可以用0和非0的整数替代false和true
基本数据类型自动类型转换:精度小的类型自动转换为精度大的数据类型
数据类型按精度(容量)大小排序为(自动类型转换):
char->int->long->float->double
byte->short->int->long->float->double
比如说: int a = ‘c’;
double d=80;
注意事项- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算;比如(int n1 = 10; float n2 = n1 + 1.1; 因为1.1是double类型)
- 当我们把精度大的数据类型赋值给精度小的数据类型时,就会报错,反之,进行自动类型转换
- (byte,short)和char之间不会进行自动类型转换
- byte b1 = 10; 当把具体数据赋给byte时,先判断该数字是否在byte的范围内,结果是可以
- byte short char 他们三者可以计算,在计算时首先转换成int类型(byte b2 = 1; byte b3 = 2; byte b4 = b2 + b3;这是错误的,b2 + b3 是int型)
- boolean不参与转换
- 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型
强制类型转换:将容量大的数据类型转换成容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意
注意事项
- 当进行数据的大小从大——>小,需要使用强制转换
- 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
- char类型可以保存int的常量值,但不能保存int的变量值,需要强转
- byte和short,char类型在进行运算时,当作int类型处理
基本类型转String类型:将基本类型的值+“”即可
String类型转基本数据类型:通过基本类型的包装类调用parseXX方法即可
int num1 = Integer.parseInt(“123”);
Double.parseDouble、Float.parseFloat…
把字符串转成字符是把字符串的第一个字符赋给字符,char c1 = s5.charAt(0),将s5的第一个字符给c1
注意事项- 在将String类型转换成基本数据类型时,要确保String类型能够转成有效的数据,比如可以把“123”转成一个整数,但不能把“hello”转成一个整数
- 如果格式不正确,就会抛出异常,程序就会终止
String s1 = “红楼梦”;String s2 = “西游记”;System.out.println(s1 + s2);
得 红楼梦西游记
char c1 = ‘男’;char c2 = ‘女’;System.out.println(c1 + c2);
得 男 字符码 + 女 字符码
double d1 = 123.3; double d2 = 190.3; System.out.println(d1 + d2);
得313.6



