涉及到的基础知识点:
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.文中图片来自哔站韩顺平老师的课程,如有侵权,联系删除.










