涉及到的基础知识点:
1. 字符类型
2.数据 的自动类型转换,数据的强转,string转换为其他类型方法.
*字符类型
//演示char的基本使用 public class char01{ //编写一个main方法 public static void main(String [] args){ char c1 = 'a'; char c2 = '\t';//构成了一个转义字符 char c3 = '冉'; char c4 = 97;//说明:字符可以直接存放一个数字;这里会输出97表示的字符 //修改快捷键,Ctrl +F快速定位,Ctrl+shift+d //删除当前行 Ctrl+shift +k System.out.println(c1); System.out.println(c2); System.out.println(c3); System.out.println(c4); System.out.println((int)c1); System.out.println('a'+10);//输出107; } }
ps.char的本质是一个整数,输出的是unicode码对应的字符;
字符类型的本质探讨
1`字符型 储存到 计算机中, 需要将字符对应的码值(整数)找出来,比如'a';
储存:'a'==>码值97==>二进制(110 0001) ==> 储存;
读取:二进制=>97 ==> 'a' 显示;
2`字符和码值的对应关系是通过字符编码决定的(是规定好的);
3`介绍一下字符编码表[sublime测试]
ASCII(一个字符用一个字节来表示,一共128个字符,实际上一个字节可以表示256个字符[2的八次方,1b=8bit,1bit就是一个0 or 1]);
Unicode(Unicode 编码表 固定大小的编码 使用两个字节来了表示字符,字母和汉字统一都是占用两个字节,这样浪费空间)没有乱码问题
utf-8(编码表 大小可变的编码可使用1-6个字节表示一个符号 字母使用一个字节 汉字使用三个字节)[对unicode改进]
gbk(可以表示汉字,而且范围广,字母使用一个字节,汉字两字节)
gb2312(可以表示汉字,gb2312<gbk)
big5码(繁体中文,香港,台湾)
布尔类型:boolean(1)
1`true or false
2`boolean占一个字节
pubulic class Boolean01{ public static void main(String [] args){ boolean ispass = true; if(ispass = true){ System.out.println(); }else{ System.out.println(); } } }
ps:在Java中不可以用0 和 非0 的数字来代替true 和 false;
基本数据类型转换
######################################
精度小的可以自动转换为精度大的,这就是自动类型转换
######################################
容量大小排序(背)
char(2) -> int ->long -> float -> double
byte(1) -> short(2) -> int(4) ->long(8) -> float (4)-> double(8)
float精度比long高,他们的底层结构不同;前者数据范围大于后者;
public class AutoConvert{ pubulic static void main(String [] args){ //演示自动转换 int num ='a';//char -> int double d1 = 80;//int -> double System.out.println(num); System.out.println(d1); } }
ps细节:
public class AutoConvertDetail{ public static void main(String [] args){ //演示自动转换 int num ='a';//char -> int double d1 = 80;//int -> double System.out.println(num); System.out.println(d1); int n1 = 10; float d2 = n1 + 1.1F;//此处注意体会 byte b1 = 10;//对,先判断数据范围,如果是就可以 //int b2 = 10; //byte b3 = b2;这两句就错了; //char c2 = b1;此句也错; } }
PS.char和 [short以及byte]不能相互转换
PS:byte ,short 和 char 可以互相运算 他们会上升到int进行计算
(注意用int 接收)**(注意上诉是无论混合运算还是单独间运算都会上升到int)**
ps:boolean不参与自动类型转换
######################################
强制类型转换
######################################
PS:注意后果,精度损失 or 数据溢出
end:强制转换只对最近的数据有效!
基本数据类型和String类型的转换4
1.基本类型转String类型:+""即可
eg
public calss StringToBasic{ public static void main(String[] args){ //基本数据类型->String int n1 = 100; float f1 = 1.1F; double d1 = 4.5; boolean b1 = true; String s1 = n1 +""; String s2 = f1 +""; String s3 = d1 +""; String s4 = b1 +""; System.out.println(s1 + " " + s2 + " " + s3 + " " + s4); } }
2.String类型转基本数据类型
通过基本类型的包装类调用parseXX方法即可
eg:
public class StringToBasic{ public static void main(String[] args){ //String ->对应的基本数据类型 String s5 = "123"; int num1 = Integer.parseInt(s5); double num2 = Double.parseDouble(s5); //...... //把字符串转换为字符 char-> 含义是指 把字符串的第一个字符得到 //解读 s5.charAt(0) 得到s5字符串的第一个字符'1' System.out.println(s5.charAt(0)); } }
一定确保String是可以转换的.
否则会出现异常
ps.文中图片来自哔站韩顺平老师的课程,如有侵权,联系删除.