数据类型
单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
char 类型用来表示在Unicode编码表中的字符。
char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当做int类型来处理。
常用转义字符:
代码
public class TestVar03{
public static void main(String[] args){
//声明一个字符型的变量:字符型:单引号引起来的单个字符,
//在java中无论是字母汉字数字 都是占用一个字符
char ch1 = 'a';
System.out.println(ch1);
char ch2 = 'A';
System.out.println(ch2);
char ch3 = '中';
System.out.println(ch3);
char ch4 = '2';
System.out.println(ch4);
char ch5 = ' ';
System.out.println(ch5);
System.out.println("----------下面讲解转义字符:----------------------------");
char ch6 = '\n';//换行:
System.out.println("aaa"+ch6+"bbb");
System.out.println("aaa\nbbb");//这是字符串
System.out.println("aaa\tbbb");// \t代表制表符
System.out.println("aaa\bbbb");//\b 退格 aabbb
System.out.println("aaaaa\rbbb");//\r 将光标回到本行初始位置 bbbaa
System.out.println("\"你好\"");
System.out.println("“你好”");
System.out.println("------------------------------------------------------");
char ch7 = 'a';
System.out.println(ch7);//a
System.out.println(ch7+30);//127
System.out.println(127-ch7);//30
//结论:字符型我们看到的是字面常量那个字符的效果。但是参与到运算中的时候
//,底层是按照一个码进行的,当前题中 a 对应的 码 是 97 ---》ASCII码
char ch8 = '中';
System.out.println(ch8);// 中
System.out.println(ch8+30);// 20043
System.out.println(20043-ch8);// 30
//结论:字符型我们看到的是字面常量那个字符的效果。但是参与到运算中的时候
//,底层是按照一个码进行的,当前题中 中 对应的码 20013 ---》Unicode码
//Unicode码的前128位就是ASCII码
//总结:字符型底层的码就是Unicode码
System.out.println("----------------扩展:--------------------------------------");
char ch9 = 20013;
System.out.println(ch9);
int num = '中';
System.out.println(num);
//验证字符型的本质就是一个码 ,而我们看到的是字面常量
char ch10 = (char)20013;
System.out.println(ch10);
int num2 = (int)'中';
System.out.println(num2);
char ch11 = '2'+2;
System.out.println(ch11);//4
/*
'2'+2---> 50+2--->52
char ch11 = 52 ;
System.out.println(ch11);// 4
*/
}
}
类型转换
public class TestVar04{
public static void main(String[] args){
double d = 10;
System.out.println(d);
int i = (int)4.7;
System.out.println(i);
/*
【1】基本类型的类型转换:
(1)自动转换 ---》 小的给大的 --》 double d = 10;
(2)强制转换 ----》强转 ----》大的给小的 ---》int i = (int)4.7;
*/
//写一个表达式,表达式中有多种数据类型:
double d2 = 12+3.7+6.9F+'a'+true;
System.out.println(d2);
/*
【2】众多类型参与运算的时候,只有布尔类型不能参与到运算中,其余七种基本数据类型都可以。
【3】double d2 = 12+3.7+6.9F+'a';
运算的结果是什么类型:
运算级别:低--》高
byte,short,char-->int--->long--->float--->double
按照这个级别,在同一个表达式中有多种类型参与运算的时候,会将表达式中的
所有类型转换为当前表达式中级别最高的那个。
double d2 = 12+3.7+6.9F+'a';
= 12.0+3.7+6.9+97.0
= double类型的数
int d2 = (int)(12+3.7+6.9F+'a');
【4】表达式:
左=右 直接赋值即可
左<右 强制转换
左>右 直接赋值即可
*/
//【5】特殊:byte,short,char类型,只要在表数范围中不需要强转直接使用即可
byte b = 12;
System.out.println(b);
}
}
final+Scanner
Scanner扫描器,扫描你输入的数据。
//告诉你扫描器在什么位置:
import java.util.Scanner;
public class TestVar05{
public static void main(String[] args){
//圆的周长和面积:
//变量提取:
final double PI = 3.14159;
//一个变量被final修饰,这个变量就会变成一个常量,这个常量的值就不可以被修改了
//这个常量 --》字符常量
//约定俗成的规定:常量名字一般全部大写。
//拿过来一个扫描器:
Scanner input = new Scanner(System.in);
//给一个友好性的提示:
System.out.print("请录入一个半径:");
//扫描器用来接收键盘录入的数据:
int r = input.nextInt();//接收int类型数据的
//周长:
double c = 2*PI*r;
System.out.println("周长:"+c);
//PI = 7;//TestVar05.java:11: 错误: 无法为最终变量pi分配值
//面积:
double s = PI*r*r;
System.out.println("面积:"+s);
}
}
总结:
【1】感受提取变量的作用
【2】final修饰变量
【3】Scanner扫描器
Scanner录入不同类型的数据
import java.util.Scanner;
public class TestVar06{
public static void main(String[] args){
//录入 学号(int),成绩(double),家庭住址(String),性别(String,char)
Scanner sc = new Scanner(System.in);
System.out.print("学号:");
int sno = sc.nextInt();
System.out.print("成绩:");
double score = sc.nextDouble();
System.out.print("住址:");
String address = sc.next();
System.out.print("性别:");
//String sex = sc.next();
char sex = sc.next().charAt(0);//取的是字符串中的第一个字符
System.out.println(sno+"---"+score+"---"+address+"---"+sex);
}
}