变量/数据类型/表达式

来源:互联网 发布:外国人上淘宝感觉 编辑:程序博客网 时间:2024/05/16 07:48
1. 变量 [变量的定义=重点]
① 概念:计算中一块内存空间,是数据存储的单元.[理解]
② 组成:数据类型 变量名 数据.
③ 声明:指定变量的数据类型和变量名:
         数据类型 变量名;
   赋值:通过变量名对变量进行赋值:
         变量名=值;
④ 其他的定义语法:
a. 声明的同时赋值:
    数据类型 变量名=值;  //int a=12;
b. 同时声明多个相同数据类型的变量:
    数据类型 变量名1,变量名2=值,变量名; 
//int a,b=12,c=13,d;
2. 数据类型[重点]
① 基本数据类型(原始数据类型/简单数据类型):8种
    整数类型: byte      1B      -128~127  
          short     2B
  int       4B
  long      8B      
      注意:long字面值后面需要加L或是l(建议用L).
            字面值:程序中可以给一个数据类型的变量赋的值.

小数类型:(浮点类型):
          单精度浮点数: float    4B                   7位精确位
                注意:字面值后面必须加F或是f.
  双精度浮点数: double   8B                    16位精确位
                注意:字面值需要加D或是d,也可以不加.
    浮点数采用科学计数法存储,存数的是近似值
字符类型:  char   2B   采用Unicode编码(十六进制)->万国码
        字面值: a.以''引起来的单个字符   例如:char c= 'A';
                                      char c4='中';
        b.以整数的形式存储:
                               char c2=65;
                        c.以uncode编码形式存储: 
       char c3='\u0041';
                转义字符:
                        ① \' :单引号
                        ② \" : 双引号
③ \\ : 反斜杠
                        ④ \n : 换行
                        ⑤ \t : 水平跳格
                            注意:以上符号都是英文符号.
           
布尔类型: boolean  字面值:只有 true 和 false 
② 引用数据类型(对象数据类型):
    类/数组/接口等都是对象数据类型.
String :字符串,用""引起来一个或是多个字符.

3. 数据类型转换[重点]
① 自动类型提升:
      a. 数据类型相互兼容
  b. 目标类型 大于 源数据类型:
      源数据类型 变量名1=值;
  目标数据类型 变量名2=变量名1;
两个数据类型的变量相互赋值的规则:
              I. byte--->short--->int--->long--->float--->double
  II.char--->int--->long--->float--->double
  int i=10;
  long l=i;
面试题目: 
  ① char c3=65;        ② int a2=65;
正确                  char c4=a2;  //编译报错
② 强制类型转换
   a.数据类型相互兼容
   b.目标类型小于源数据类型(目标类型的数据存储范围小于源类型):
      源数据类型 变量名1=值;
  目标数据类型 变量名2=(目标数据类型)变量名1;
   c. 强转的结果:
   I. 数据合适,数据完整: int i=12;
                         byte b=(byte)i;//12   
   II. 整数不合适,数据被截断:  int i=257;
                                            byte b=(byte)i;//1
   III. 小数强转为整数,数据被截断(精度丢失) 
               double d=12.8;
                       int i=(int)d;//12
               IV. 布尔类型的数据不参与强转    
    ③ 当两个数值或是变量参与运算时,如果两个变量的数据类型不一致,
   转换规则如下:
            a. 如果有一个double,结果就是double;
            b. 如果没有double,有一个是float,结果就是float;
            c. 如果没有double,float,有一个是long ,结果就是long;
            d. 其余的情况(没有double/float/long),结果都是int 类型.
        
4. 表达式:由变量/字面值/运算符组成的一个式子,会有结果产生. [理解即可]
5. 运算符:
   ① 算数运算符:+  -  *(乘法)  /(除法)   %(取模/取余数)
              
      注意:参与运算的数值或是变量,+两端如果有一个是String类型,
       表达式的结果一定是String类型.
   ② 赋值运算符: =   +=  -=   *=  /=   %=
   
注意:+=不存在自动类型提升.
   ③ ++(自加)   --(自减)  --->一元运算符 (开发重点是a++的应用)
      
  
      a++:先使用a原有的数据,再将a加1. (面试难点,不是开发重点)
  ++a:先将a加1,再使用a的数据.
   ④ 关系运算符
       ==  :  等于
   >   :  大于
   >=  :  大于等于
   <   :  小于
   <=  :  小于等于
   !=  :  不等于
   
   注意:用关系运算符连接的表达式结果是true或是false,所以这类的
           表达式称为布尔表达式.
   ⑤ 逻辑运算符
       && :  逻辑与,只有当两边的布尔表达式结果都是true,结果才为true.
                    如果有一个结果false,表达式的额结果就是false.
       || :  逻辑或,两边有一个结果为true,表达式的结果就是true,              只有当两边同时为false,表达式的结果才为false.!!
       !  :  逻辑非,对布尔表达式的结果取反.
        
        面试题目:
          &&和&的比较?
            &&:短路运算符,逻辑与.
            &: 非短路运算符,与.
          || 和 | 的比较?
    ⑥ 条件运算符(三目运算符)(了解)
        布尔表达式 ? 表达式1:表达式2;  
      执行原理:如果布尔表达式的结果为true,执行表达式1,否则执行表达式2.
  
    面试题目:
        ①  byte b1=3;
    b1=b1+1;
    System.out.println(b1);   
    分析以上代码编译是否通过?解释原因或是给出结果.
编译不通过.b1+1结果类型是int类型
②  byte b2=3;
    b2+=1;
System.out.println(b2);  
分析以上代码编译是否通过?解释原因或是给出结果.
编译通过,4.  +=没有自动类型提升
阅读全文
0 0
原创粉丝点击