第三章 变量

        变量是程序的基本组成单位

                变量有三个基本要素(类型 + 名称 + 值)

        概念 :

                变量相当于内存中一个数据存储空间的表示

        使用步骤:

                1) 声明变量  2)赋值 3)使用 System.out.print(a);

class Triangle{
                                 public static void main(String [] args){
                                     int age = 30;
                                     double score = 88.9;
                                     char gender = 'B';
                                     String name = "king";
                                     System.out.println("A man information:");
                                     System.out.println(age);
                                     System.out.println(score);
                                     System.out.println(gender);
                                     System.out.println(name);
                                      }
                         }

        注意事项:

                1.变量表示内存中的一个存储区域,不同的变量,类型不同, 占用的空间大小不同

                2.该区域有自己的名称 [ 变量名 ] 和类型 [ 数据类型 ]

                3. 变量必须先声明, 后使用

                4.该区域的数据可以在同一类型范围内不断变化

                5. 变量在同一个作用域不能重名

                6.变量 = 变量名 + 值 + 数据类型

        ‘ + ’ 的使用

       1. 当左右两边都是数值型时,做加法运算

                 2. 当左右两边有一方为字符串,则做拼接运算

class sum{
                             public static void main(String [] args)
                             {
                                 System.out.println("100" + 98);
                                 System.out.println(100 + 98);
                                 System.out.println(100 + 3 + "hello");
                                 System.out.print("hello" + 3 +100);
                             }
                         }

        数据类型:基本数据类型   引用数据类型

        整数类型 : byte  short  long int

        整型的使用细节

                1.Java各整数类型有固定的范围和字段长度, 不受具体操作系统的影响

                2.Java的整型常量默认是int型, 声明long型常量须后加‘l’ 或者 ‘L’

                3.Java程序中变量长声明为int型, 除非不足以表示大数,才使用long

                4.bit:计算机中的最小存储单位 byte:计算机中基本存储单元 1byte = 8 bit

        浮点类型:
                表示一个小数

                        float(4字节)  double(八字节)

                关于浮点数在机器中存放形式  :  浮点数 = 符号位 + 指数位 + 尾数位

                尾数部分可能丢失,造成成精度损失

                java 默认是double 声明float 须后加 ‘f’ 或 ‘F’

                浮点型常量有两种表现形式

                        十进制表现形式   科学计数法形式

      

public class FloatDetail{
                     public static void main(String[] args)
                     {
                                 //float num1 = 1.1;  //error java is double not float 
                                 float num2 = 1.1f;
                                 double num3 = 1.1;
                                 double num5 = 0.123;
                                 double num6 = .123;
                                 System.out.print(5.12e2);  //512.0
                                 System.out.print(5.12e-2);  //0.0512
                                 double num9 = 2.131651561561;
                                 float num10 = 2.131651561561F;
                                 System.out.print(num9);
                                 System.out.print(num10);
             
                     }
                 }

        陷阱 : 当我们对运算结果是小数的结果进行运算时要小心

                例如:

if (2.7 == (8.1 / 3))  //Java中这两个数字的结果不等
                                                               //因为java不知道8.1后面有没有数字                               {
                                     System.out.println(" equal ");
                           }

                        所以在Java中判断小数是否相等采用绝对值Math.abs()两个数字的差值在一定                        范围内就认为是相等的

        字符类型(char)

                字符类型可以表示单个字符,字符类型是char char是两个字节

                字符常量用 ‘ ’括起来的单个字符

                java中还允许使用转移字符 ‘ \ ’ 来将其后的字符转变为特殊字符型常量

                在java中,char的本质是一个整数,在输出时,是unicode码对应的字符 

                char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode编码

                        System.out.print('a' + 10);  // 107

                字符类型本质

                         1.字符型 存储到计算机中,需要将字符对应的码值找出来

                                存储: ‘a’ ==> 码值 97 ==> 二进制(110 0001) ==> 存贮

                                读取: 二进制(1100001)=> 97 ===> 'a' => 显示

                          2.字符和码值的对应关系是通过字符编码表决定的

                                ASCII(可以表示256个字符,但只用了128个)

                          UNICODE(固定大小的编码,使用两个字节来表示字符,字母和汉字同意都                                是占用两个字节)

                                UTF-8(字母一个字节 汉字三个字节)

                                GBK(字母一个字节,汉字两个字节)

        布尔类型 boolean

                布尔类型也叫boolean类型,boolean类型数据只允许取值true和false

                boolean类型占1个字节

                boolean类型适用于逻辑运算

                不可以使用非零来代表True 零代表False

        基本数据类型转换

                1.有多种类型的数据混合运算时,系统首先自动将所有的数据转换成容量最大的那种数据类型,然后再进行计算

                2.当我们把精度大的数据类型赋值给精度小的数据类型是,就会报错

                3.(byte,short)和char之间不会相互自动转换

                4.boolean不参与转换

                5.byte  short  char 他们三者可以计算,在计算时首先转换为int类型

        强制类型转换

                使用时加上强制转换符()只对最近的操作数有效

                1.当进行数据大 ----> 小 需要使用强制类型转换