Java面试宝典——学习笔记(一):Java程序设计基本概念

Java面试宝典——学习笔记(一):Java程序设计基本概念

5 第五章:Java程序设计基本概念

5.1 JVM

Java虚拟机!
该部分内容较重要,见其它博文:
Java——Java虚拟机(JVM)

5.2 i++

前++是先自加再使用而后++是先使用再自加!,左结合性,即右到左!

Java运算符的优先级和结合性:
优先级和结合性

注意:

i=j+++k;
//等价于i=(j++)+k;

5.3 类型转换

  1. 执行赋值语句时要执行自动装箱技术,调用xxxValue()方法。
  2. float z=1.0; 不对,应该为 float z=1.0f; ,因为系统默认的浮点数是double型。
  3. 在Java中,length 是属性,一般用来说明数组的长度;length()是字符串的方法,用来求数组中某个元素的字符串长度
  4. Java的数据类型转换

    4.1 Java的数据类型分类
    Java的数据类型分为三个类:布尔型(boolean)、字符型(char)和数值型(6个)(分为4种整型(byte、short、int、long)和2种浮点型(float、double))。编程时经常会用到两种类变量(String、Date)。

    4.2 简单数据类型之间的转换
    整型、字符型被称为简单数据类型,低级到高级分别为:(byte,short,char)——int——long——float——double
    1)低级到高级的自动类型转换
    charint转换,会转换为对应的ASCII码值。
    2)高级到低级的类型转换
    使用强制类型转换。可能会导致溢出或者精度的下降。
    3)包装类过渡类型转换
    包装类就是可以将简单类型的变量表示为一个类。
    Java共有6个包装类:Boolean、Character、Integer、Long、Float、Double

    例如:double型转换成int型:

    double d1=100.00;
    Double D1=new Double(d1);
    //调用包装类的构造函数,将简单类型的变量转换为相应的包装类
    int i1=D1.intValue();
    

    4.3 字符串与其它数据类型的转换
    利用toString()方法。

    4.4 字符型直接作为数值转换为其它数据类型
    字符型转换为数值型有两种对应的关系:一种是将其转换为对应的ASCII码;一种是转换关系:"1"即指数值1,此时利用CharactergetNumericValue(char ch)方法。

  5. 练习题

short s=1;
s=s+1;
//编译不通过的,提示损失精度

分析:s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换 。 所以将一个int类型赋给short就会出错。

short s=1;
s+=1; 
//编译通过

分析:s+=1不同,由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),通俗来讲就是 s+=1 等价于 s = (s的类型)(s+1)

5.4 程序结构

断言:assert ,是一个包含布尔表达式的语句。有两种形式:

assert Expression1;
assert Expression1 : Expression2;
//Expression1应该总是一个布尔值
//Expression2可以是一个值的任意表达式

42页答案:什么时候用assert

5.5 运算符

三目运算符为右结合性,即左到右的结合性。
例题1:

boolean b = true?false:true == true?false:true;

三目运算符为右结合性,同时结合运算符的优先级考虑,所以应该理解为:boolean b = true?false:((true == true)?false:true);

例题2:

char x='x';
int i=10;
int j=false?i:x;
int k=false?1:x;

分析结果:
这里写图片描述
因此最后结果为:j=120,k=x

例题3:
“&”、“|”、“^” 是位运算符,也可以做布尔逻辑运算符(前提是两边的数据类型为布尔类型),工作方式与逻辑运算符相同,但是优先级高于逻辑运算符。
&、| 逻辑运算符与&&、|| 逻辑运算符的区别:前者非短路,后者短路
这里写图片描述
答案:5,6,5,6,0

例题4:

这里写图片描述
这里写图片描述
答案:32

5.6 异常

内容太多,参见博主其它博文整理:
Java——异常处理

5.7 反射(Reflection)

开放性原因连接(Causally-connected)是反射系统的两大基本要素。
该部分内容也很重要,请参照博主其它博文整理:
Java——反射机制(Reflection)

猜你喜欢

转载自blog.csdn.net/yangxingpa/article/details/80334955