1 throws与throw的区别

解析:throws和throw是异常处理时两个常见的关键字,初级程序员常常容易正确理解throw和throws的作用和区别,说明已经能比较深入理解异常处理。Throw用来抛出异常,如果执行了throw语句,程序将发生异常,进入到异常处理机制。Throws用来声明异常,说明这个方法可能会发生某些类型的异常,那么编译器将强制在调用这个方法的时候处理异常。API中的很多方法都使用了throws声明了异常,所以使用这些方法时编译器会提示需要处理异常。  
参考答案:throw用来在方法体内抛出异常,而throws用来在方法声明处声明异常。这两个关键字有着一定的联系。如果一个方法中使用了throw关键字抛出了异常,那么要么立即用try/catch语句进行捕获,要么就是用throws进行声明,否则将出现编译错误。然而, 
并不是只有使用了throw关键字之后才能使用throws关键字,语法上来说,任何一个方法都可以直接使用throws关键字,抽象方法也可以使用。

2 collection接口与map接口

解析:Collection和Map是Java集合框架中两个基本集合类型,要区别不同的集合首先要从Collection和Map开始。

参考答案:Collection接口是传统的集合接口,可以把单个对象存储进来。而Map接口是映射接口,存储的是键值对

3 list与set的区别

解析:List和Set是Collection接口的两个子接口,也是使用最多的两种集合类型。程序员应该熟悉这两个接口的基本特征,能够更准确地选择正确的集合类型。 
参考答案:List实现了列表类型的集合,List中的元素是有序(ordered)的,每个元素根据放入集合的顺序而对应一个索引值, 可以根据这个索引值返回集合原宿。而Set实现了不重复元素集合,即Set中的元素不能够重复,重复的元素将无法添加到集合中

4 list都有哪些实现

解析:List是用的较多的集合类型,List是一个接口,具体使用List集合类型时,需要使用时实现类。List接口的每个实现类也都实现了不同的数据结构,各自具有不同的特征,其中最常用的是List实现类。

参考答案:List接口中有以下几个常用实现

1 ArrayList:实现了动态数组的特征。

2 LinkedList: 实现了链表的数据结构,LinkedList也可以用作栈或者队列。

3 Vector:向量。

4 ArrayList  

Vector类的功能 ArrayList都可以实现,区别在于Vector是现行同步的。

5 如何创建线程对象

解析:Java 语言能够支持多线程编程,将线程封装成Thread类型的对象,只要创建Thread类型的对象,就能够便捷地启动线程、执行线程体。程序员首先必须掌握创建线程的常用方法。 
参考答案:Java语言中经常使用两种方法创建线程。①创建Thread类的子类,在子类中覆盖Thread类的run方法,实现线程的运行体,只要创建该子类对象就是线程对象。②创建Runable接口的实现类,在实现类中覆盖接口中的run方法,实现线程的运行体。使用Thread(Runable)构造方法可以创建线程对象,参数是Runable接口实现类的实例。

6  什么是泛型,作用?

解析:泛型是JDK5中增加的特性,API中有大量的泛型接口、泛型类及泛型方法等。程序员需要了解泛型的作用,尤其在使用集合框架时,往往需要使用到泛型。 
参考答案:泛型的本质就是参数化类型,也就是说把数据类型指定为一个参数。在需要声明数据类型的地方,就可以不指定具体的某个类型,而是使用这个参数。这样一来,就能够在具体使用时再指定具体类型,实现了参数的“任意化”。泛型的好处是在编译的时候能够检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率

7 自动装箱?拆箱?

解析:自动装箱/拆箱指的是八个包装器类与八个基本类型的转换问题。然而。这个特征却需要谨慎使用,因为虽然表面上看起来非常方便,而实质上依然需要创建对象、进行转换等操作,使用不恰当会降低性能。

参考答案:自动装箱指的是可以直接将基本数据类型转换为包装器类型,自动拆箱指的是可以直接将包装器类型转换为基本数据类型,如下代码所示:

int m=100; 

Integer  im=m; 

int  n=im;  

上诉代码中,直接将m赋值给包装器对象im,这就是自动装箱,然后直接将im赋值给基本数据类型n,这就是自动拆箱。虽然表面上看代码简洁方便,然而本质上装箱时候依然使用new创建了对象,而拆箱时也依然调用了方法进行运算。因此,不要在没有必要的时候,频繁使用装箱拆箱,会降低性能。

【面试虐菜】—— JAVA面试题(3)的更多相关文章

  1. 【面试虐菜】—— JAVA面试题(1)

    今天参加笔试,里面有设计模式,和一些基础题! 印象最深的是:什么不是Object的函数,我蒙的finalize,哎,无知! 还问了,接口与抽象类的不同,还有多线程的实现方式!下面基本都有. 另外还问了 ...

  2. 【面试虐菜】—— JAVA面试题(2)

    前篇推荐:http://www.cnblogs.com/xing901022/p/3975626.html 1 String = 与 new 的不同 使用“=”赋值不一定每次都创建一个新的字符串,而是 ...

  3. 【面试虐菜】—— Jboss调优

    吐血整理了以前Jboss以及JVM在生产环境下的调优参数,各种不同的案例,都是来自网友杜撰.整合后,希望对广大使用jboss作为生产应用服务器的朋友有所帮助. JBOSS参数调优 配置deploy/j ...

  4. 【面试虐菜】—— MongoDB知识整理

    为什么我们要使用MongoDB? 特点: 高性能.易部署.易使用,存储数据非常方便.主要功能特性有: 面向集合存储,易存储对象类型的数据. 模式自由. 支持动态查询. 支持完全索引,包含内部对象. 支 ...

  5. 003java面试笔记——【java基础篇】从团八百失败面试总结的java面试题(未完待续)

    8.java 线程     1)线程概念,线程与进程      线程:线程是“进程”中某个单一顺序的控制流.也被称为轻量进程.线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程.线 ...

  6. 【面试虐菜】—— Apache知识整理

    Apache性能调优1 Apache 部分:1. 移除不用的模块.2. 使用 mod_disk_cache NOT mod_mem_cache .3. 扁平架构配置mod_disk_cache.4.  ...

  7. 【面试虐菜】—— LVS负载均衡

    Load Balancer(负载均衡器): Load Balancer是整个集群系统的前端,负责把客户请求转发到Real Server上.Load Balancer通过Ldirectord监测各Rea ...

  8. 【面试虐菜】—— Oracle知识整理《收获,不止Oracle》

    普通堆表不足之处:     表更新有日志开销     表删除有瑕疵     表记录太大检索较慢     索引回表读开销很大     有序插入难有序读出   DELETE产生的undo最多,redo也最 ...

  9. 【面试虐菜】—— Oracle知识整理《DBA的思想天空》

    Inventory Oracle安装工具OUI用来管理Oracle安装目录的   Oracle的参数文件,启动后按照下面的顺序读取参数文件,如果读取失败,启动数据库 失败: 1  $ORACLE_HO ...

随机推荐

  1. Android 拍照 代码实例

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 这是我做的一个简单的利用Android手机的摄像头进行拍照的实例. 在这里我实现了基本的拍照.照片的存储 ...

  2. socket总结

    Socket简介 1,socket是什么? 2,socket的作用 3,socket怎么用 4,socket的扩展 ——————————————————- socket是什么? Socket这个名词现 ...

  3. mongdb Java demo

    接触MONGDB,感觉用起来还挺好.今天做了一个小demo. 一.启动mongdb的服务

  4. SLR,语法分析表的构建

    太累了,感觉不会再爱了.执行了跟编译原理上的一模一样的例子,输出了正确结果 #include <stdio.h> #include <malloc.h> #include &l ...

  5. Java多线程之锁

    首先是synchronized 关键字 他可以用于声明方法,也可以用于申明代码块.我们看看三个例子: public class SynchronizedDemo1 { public synchroni ...

  6. ASP.NET 状态的传递和保存

    1,HTTP协议是无状态的.服务器不会记住上次给浏览器的处理结果,如果需要上次处理结果(上次状态)就需要浏览器把处理结果值(上次状态)再次给服务器. 2,URL传值:通过URL参数或者通过Form表单 ...

  7. SharedPreferences保存用户登录信息

    UI界面:

  8. 关于DB2 SQL0805N找不到程序包的错误解决办法

    DB2在执行SQL语句的时候会使用内部定义的包(package)来保持不同级别的游标的稳定性, 包的名字就是“ULLID.SYSLH2XX“. DB2 里面默认的时候会创建3个这样的包即SYSLH20 ...

  9. [Android开发系列]IT博客应用V1.3

    首先,感谢使用这款软件并给我意见的朋友们,有你们的意见,才有了这个版本. 其次,检索功能和分类筛选功能(如果是你提的意见,记得在下面mark哦,毕竟读代码你能发现,其实发意见这个就是用自己的邮箱给自己 ...

  10. MPlayerX For Mac白屏问题

    在Mac App store下载了MPlayerX后,如果系统版本是10.10的,用MPlayerX看视屏当选择全屏后会出现白屏现象只有声音退出全屏后仍旧是白屏. 这是因为MPlayerX已经在Mac ...