编码
●计算机中是如何保持显示char类型
char运算:char在字符编码表中有对应的数值。 在JAVA中,对char类型字符运行时,直接当做对应编码表的整数来 对待。
答: 计算机之所以能显示字符,是因为底层有一个对照表(编码表) 过程:字符a---->97---->二进制
●Unicode:包含各个国家语言符号,也称万国码,兼容ASCLL编码。
Java底层采用unicode编码来存储字符
●UTF-8 是 Unicode 编码的一种具体实现,它规定了字符转换到二进制编码的一系列规则。它是一种变长的编码方式,可以根据不同的符号而变化字节长度.
表示英文字母 1字节
表示中文字符 3字节
package day2; /** * Demo2 演示char类型 * */ public class Demo2 { public static void main(String[] args){ /* * char 字符型 单个字符 * 字符用''表示 字符串用""表示 * 字符串是由一个个字符组成的 eg:String s = "abcd";// 'a''b''c''d' * utf-8是一种变长的,用于文件和网络传输时使用的具体编码表, * 可以根据编码值的大小动态变化长度 * */ char c = 'a'; System.out.print(c+0);//97 字符型可以参与算术运算 char z = '中'; System.out.print(z+0);//20013 } }
基本数据类型转换
● java中可以从任意基本类型转型到另外的基本类型
例外 : boolean 类型不可以转换为其他的数据类型
● 转换分为默认转换和强制转换
默认转换:容量小的转容量大的
强制转换:容量大的转为容量小的
强制转换可能造成精度降低或数据溢出
●数据类型的容量大小排序:
byte------->short------->int------>float---->long------->double
byte、short、char字面量默认为int
package day2; /** * Demo3演示基本数据类型转换 (重难点) * */ public class Demo3 { public static void main(String[] args){ /* 基本数据类型转换 例外:boolean类型不能与其他基本类型转换 byte short int long float double char 共同点:都是数值型 大小:byte<short<char<int<float<long<double byte、short、char字面量默认为int 容量小---->容量大 默认自动转换 容量大---->容量小 默认不能进行转换 可以强制转换 问题:数据溢出、精度降低 * */ byte a = 127; short b = a; short c = 258; byte d = (byte)c; System.out.print(d); //输出结果:2 即数据溢出 long e = 10;//8字节 64位 float f = e;//4字节 32位 //由于小数二进制底层结构与整数不同,4字节float表示范围大于8字节long的表示范围 float g = 10.5f; long h = (long)g; System.out.print(h);//输出结果为10 即精度降低 float x = d+g;//float x = (float) d+g 在混合运算时,自动将容量小的转为容量大的 System.out.println(x);//12.5 } }
算术运算
● 算术运算符: + - * / % ++ --
● +: 1.表示加法 : 数值+数值 数值+字符(十进制编码) 2.字符串连接 :字符串+字符串 数值+字符串
● 在混合运算时,x++ 先运算再++
++x 先++再运算
package day2; /** * Demo4 演示算术运算 * */ public class Demo4 { public static void main(String[] args) { /*