码迷,mamicode.com
首页 > 编程语言 > 详细

Java这点事

时间:2015-08-26 11:55:11      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

1--代码片段: 
1
2
3
4
5
byte b1=1,b2=2,b3,b6; 
final byte b4=4,b5=6
b6=b4+b5; 
b3=(b1+b2); 
System.out.println(b3+b6);
关于上面代码片段叙述正确的是()
  • 输出结果:13
  • 语句:b6=b4+b5编译出错
  • 语句:b3=b1+b2编译出错
  • 运行期抛出异常

 

分析:

表达式的数据类型自动提升, 关于类型的自动提升,注意下面的规则。

①所有的byte,short,char型的值将被提升为int型;

②如果有一个操作数是long型,计算结果是long型;

③如果有一个操作数是float型,计算结果是float型;

④如果有一个操作数是double型,计算结果是double型;
而声明为final的变量会被JVM优化,第6行相当于 b6 = 10
 
没有final修饰的变量相加后会被自动提升为int型,与目标类型byte不相容,需要强制转换(向下转型)。
 
C.
被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了
而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。
Java中的byte,short,char进行计算时都会提升为int类型。
 
1.需要强制转换(向下转型)。
2.没有final修饰的变量相加后会被自动提升为int型,与目标类型byte不相容,要向下转型。
 
 
 
2--下面代码运行结果是()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Test{ 
    public int add(int a,int b){   
         try {
             return a+b;      
         
        catch (Exception e) {  
            System.out.println("catch语句块");
         }
         finally
             System.out.println("finally语句块");
         }
         return 0;
    
     public static void main(String argv[]){ 
         Test test =new Test(); 
         System.out.println("和是:"+test.add(934)); 
     }
}

  • catch语句块,和是:43
  • 编译异常
  • finally语句块,和是:43
  • 和是:43,finally语句块

分析:

答案是C
对于try块中的return,先计算return 后面的表达式,缓存结果
跳到finally语句块中执行,如果finally语句块中有return语句,则不会再去执行try中的语句。
如果finally中没有return语句,则会再次去try语句块中执行return
 
 
3--以下java程序代码,执行后的结果是()
1
2
3
4
java.util.HashMap map=new java.util.HashMap(); 
map.put("name",null);      
map.put("name","Jack");
System.out.println(map.size());

  • 0
  • null
  • 1
  • 2
    分析:
C.HashMap是Map接口的实现类,并且不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性
HashMap允许null键和null值
使用put方法向HashMap中添加元素时,如果键不存在,则添加该元素,并返回null;如果键已经存在,则把该键对应的值进行覆盖,返回原来的键,由于键都是"name",所以第二次添加的会把第一次的值覆盖,并返回第一次的键,所以HashMap中还是只有一个元素
 
Map Set无重复,List按顺序存储。

Java这点事

标签:

原文地址:http://www.cnblogs.com/xuan52rock/p/4759936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!