java学习
48 字符型细节
1:字符常量用单引号(’ ')括起来的单个字符。例如:char c1 = ‘a’; char c2= ‘中’; char c3 = “9”; 如果用双引号括起来就是一个字符串而不是字符 ‘表示字符串类型’
2:java中允许使用转义字符’’ 将\后面的字符转变为特殊字符型常量 例如: char c3 = ‘\n’ ; // '\n’表示换行符号
3:java里 char的本质是一个整数 ,在输出的时候对应unicode码对应字符
4:可以直接给char赋一个整数,输出时,会对应unicode字符输出[97]
5:char类型可以进行运算,相当一个整数,因为它都有对应unicode码
案例1:
class Char01{
//编写一个main方法
public static void main (String[]args){
char c1 ='a'; //字符常量 //97
char c2 ='\t' //表示转义
char c3 ='韩';//
char c4 = 97; //字符型可以直接存放一个数字 //a
System.out.prinln(c1)
System.out.prinln(c2)
System.out.prinln(c3)
System.out.prinln(c4)
//char 类型可以进行计算
System.out.println('a' + 10);
//结果会输出 97+10的答案
//课堂测试
char c5 = 'b' + 1;
System.out.println((int)c5);
System.out.println(c5); //输出99对应的字符 -->编码表ASCALL
结果会输出99因为转换过来的b值就是98
在unicode a 里面存放了97 还有其他很多的 如果想输出整型 System.out.println((int)c4) 就可以输出97了
49字符串本质
字符串char
1:字符型 存储到计算机中,需要将字符对应的码值(整数)找出来 比如’a’ --> 97 --> 二进制(110 0001) ==>存储
逆向 二进制 ==> 97 ==>‘a’ ==>打印
2:字符和码值对应的关系 是ASCALL值编码规定的
常见字符编码表
ASCII表:(一个字节表示 128个字符)
Unicode :(固定编码大小用两个字节表示字符 字母和汉字都占两个空间 太浪费空间)
utf-8表:目前用中文的表大部分都使用中个 utf-8支持中文可以表示汉字 (字母表示一个字节 汉字使用三个字节
50常用编码
ASCLL码:上个世纪60年代,美国制定一套字符编码(使用一个字节),对英语字符和二进制位关系 做了统一规定 称为ASCLL码 ASCLL一共规定123个字符编码 ,只占用了一个字节的后面七位 最前面的1位统一规定为0
缺点 :不能表示所有字符
Unicode编码:优点 将世界上所有符号都纳入其中每个符号都给一个单独编码用unicode没有乱码问题
缺点:一个英文字母和一个汉字都占2个字节,这很浪费空间
编码范围:2的16次方 65536 编码最多 65536字符
编码0-127的字符是和Ascll编码意义 比如’a’在ASCII码是0x61,在unicode码也是0x0061,都对应97.因此unicode码兼容ASCII码
Utf-8
1:Utf-8是互联网最广泛使用编码 浏览器也在用 是Unicode改进版本 (有些汉字可能两个字节也够用)根据不同符号变化字符长度
2:可变长编码方式它可以使1-6字节 表示一个符号, 根据不同符号变化字节长度
51布尔类型boolean
1介绍: 只有两个值 true or false 没有空值
2: boolean 布尔(占一个字节)
3:boolean应用场景 :常见于逻辑运算中 一般用在程序流程控制中 if条件 while do-while for 循环
案例1:
class Boolean01{
//编写一个main方法
public static void main (String[]args){
//演示成绩是否通过
//定义一个布尔变量
boolean isPass = true;//
if(isPass == true) {
System.out.println("考试通过,恭喜");
{
else{
System.