数据类型

单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。

char 类型用来表示在Unicode编码表中的字符。

char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当做int类型来处理。

常用转义字符:

java中a是数字几 a在java中的数字表示_java


java中a是数字几 a在java中的数字表示_ico_02

代码

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);
        }
}