1. anonymous inner class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

不行,对于匿名内部类,看到的一句话说的很到位:

new <类或接口> <类的主体>

这种形式的new语句声明一个新的匿名类,他对一个给定的类进行扩展,或实现一个给定的接口。他还创建那个类的一个新实例,并把他作为语句的结果而返回。

这就是匿名类的实质,它本身就是一个类的继承或一个接口的实现,所以继承其它类或借口是无意义的.在eclipse中冶证实了.无论是继承其它类还是实现其它借口都显示Syntax error on token

2. static nested class和innerclass的不同,说得越多越好(面试题有的很笼统)

static nested class 指静态嵌套类,或称嵌套类,是C++中常用的说法,inner class指内部类,是JAVA中的说法。

内部类是一个类内部类的统称,具体分为四种:成员类,静态成员类,局部类,匿名类。其中匿名类是局部类的特殊情况。对于成员类和静态成员类都存在于类的顶层代码中。相当于类的静态方法和非静态方法的关系。

区别在于成员类依赖于类实例而静态成员类不依赖。所以前者只能访问实例方法和成员而后者只能访问静态方法和成员。它们都用于创建一个只和当前类有关。和其它类无关的依赖类.是否静态取决于是否依赖类的实例。局部类相当于局部变量。存在于类的局部代码中。相当于在main()中随意定义和使用类。

唯一的不同是它只能使用final型的局部变量。这和垃圾回收机制有关。即局部变量会在代码块结束后被回收。而对象不一定。所以对象只能使用final的局部变量。同样,局部类存在的局部代码块也可以有静态和非静态的差别。局部类罪常见的应用就是匿名类。匿名类就是无名子的局部类。常在SWING设计中的添加监听中出现。

static nested class相当于inner class中的静态成员类

3. hashmap和hashtable的区别

常问。

hashmap可以看做是hashtable的替代者,HashMap的Value和Key都可为NULL,而HashTable不可以,同时,HashTable是线程同步的,而HashMap不是.HashTable用Iterator遍历,HashMap用Enumeration遍历。

HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。计算index的方法不同,HashTable直接利用hashcode()得出,HashMap对hashcode重新计算得出

4. collection和collections的区别

你千万别说一个是单数一个是复数。

collection是结合类的上级接口,子接口有List和Set等,Collections是java.util下的一个工具类,提供一些列静态方法对集合搜索排序线程同步化等

5. 什么时候用assert

api级的技术人员有可能会问这个。

在调试和优化中使用,用于判断逻辑表达式真假,若为假,终止程序并返回异常.assert比if的优点在于可以选择是否开启assert检查,也就是说assert产生的测试代码可以在正式发布时候选择忽略,这带来极大便利,默认assert检查是关闭的。此外,Junit相比assert来说,有着相似但更强大的测试能力

6. gc是什么?为什么要有gc?

基础。

GC 即 garbage collection(垃圾收集),是JAVA用于回收内存的一种方式,主要的实现方法有引用计数,标记回收,复制清除等,GC可以避免内存泄露和堆栈溢出,有效提高内存的利用效率,同时将程序员从繁琐的内存管理中释放出来

7. string s=new string("xyz");创建了几个string object?

2个,文字池中1个,堆中1个,先在文字池中创建1个"xyz"对象,再在堆中拷贝一个"xyz"对象,并将其赋给引用s

8. math.round(11.5)等於多少?math.round(-11.5)等於多少?

Math.round(x)相当于(int)Math.floor(x+o.5f),

故math.round(11.5)=Math.floor(11.5+0.5)=Math.floor(12)=12;

Math.round(-11.5)=Math.floor(-11)=-11

9. short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错

面试题都是很变态的,要做好受虐的准备。

s1=s1+1会出错,s1+1是int型,不能将int赋值给s1.需要显示转换,s1=(int)(s1+1).而s1+=1不会出错,至于原因,有人说和编译器的机制有关,需要看编译原理

10. sleep()和wait()有什么区别?

搞线程的最爱。

sleep()是java.lang.Thread中的静态方法,wait()是java.lang.Object中的方法;

sleep()用作当前线程阻塞自己,并在制定时间后恢复,wait()用于当前线程决定其他线程阻塞,是线程通信的表现;

sleep()不释放资源,wait()释放资源;

sleep()必须捕获异常,而wait()不需要

11. set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用hashcode()还是equals()?它们有何区别?

这个属于集合类的查找机制问题,在集合类中,确定两个元素是否相同,是用equals方法进行比较,hashcode的存在在于可以给元素快速分配一个index来存储。可以将collection看做很多个大箱子,index是箱子的编号,先将要扔进去的物品进行hash确定index,扔进响应箱子,然后再喝箱子里德其它物品equals()来比较是否相同。

此外。相等的物品一定具有相同的hashcode,不等的物品不一定。具有相同hashcode的元素不一定相等。不同的hashcode的元素肯定不等。以上规则可以想象一下相等物品一定要分在同一个箱子中的情况

12. 给我一个你最常见到的runtimeexception

如果你这个答不出来,面试的人会认为你没有实际编程经验。

NullPointerException,空引用异常

13. abstract class和interface有什么区别?

常问。

抽象类可以有抽象方法和普通方法,也可以有自己的数据成员。接口只允许有常量,抽象方法和静态类成员。接口可以被多继承,抽象类不行。接口被实现时,所有方法必须被重写。抽象类被继承时如果有抽象方法没被重写,则子类也为抽象类

14. abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

abstact方法需要子类重写,重写的概念是就实例方法而言, 所以不能是static。因为同一原因,要重写就不能native,抽象方法在抽象类中,无实例,不能被调用,也没有内容,所以synchronized没有意义。abstract方法的修饰符只有private和public

15. 接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concreteclass)?

接口可以继承接口,抽象类可以实现接口,抽象类可以继承实体类。换句话说,抽象类除了不能实例化以外和普通类没什么区别

16. 两个对象值相同(x.equals(y)true),但却可有不同的hashcode,这句话对不对?

这句话本身没有错,equals和hashcode都是Object的方法,都可以覆盖并由程序员自己决定算法,完全可以做到以上要求,但问题是如果是Collection中的元素,这样做会带来一些错误,一些不可预知的错误,所以在Collection中这样做是禁止的

17. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

引用传递,毫无疑问,对象传递只能是引用.你可以换改变引用的内容,但并不能改变引用本身

最新文章

  1. 浅谈Hybrid技术的设计与实现
  2. LeetCode之263. Ugly Number
  3. Direct3D设备管理器(Direct3D device manager)
  4. Java读取Level-1行情dbf文件极致优化(2)
  5. onSingleTapUp()和onSingleTapConfirmed()的区别
  6. 【代码笔记】iOS-检测手机翻转
  7. 递推水题 Codeforces Round #289 (Div. 2, ACM ICPC Rules) A. Maximum in Table
  8. MySQL物理文件组成
  9. check running processes in Ubuntu
  10. Delphi 程序结构
  11. vs2008如何创建DLL和使用DLL
  12. jQuery为多个元素绑定相同的事件
  13. Linux下pecl命令无法执行的解决
  14. Apache Spark 2.2.0 中文文档 - Submitting Applications | ApacheCN
  15. 关于DLL的创建与使用简单描述(C++、C#)
  16. 使用Python分析ELF文件优化Flash和Sram空间的案例
  17. 基于docker/dockerfile实现redis主从复制
  18. Kali&#160;Linux安装字典StarDict
  19. HBase2实战:HBase Flink和Kafka整合
  20. docker-compose &amp; docker 镜像/加速

热门文章

  1. vmware workstation linux虚拟机点击suspend会卡死
  2. Deformable 可变形的DETR
  3. 广播 (broadcasting)
  4. httprunner 2.5.7 下.env 文件环境变量的使用及debugtalk的使用,对test的参数化及执行
  5. oracle表ddl审计
  6. 实战SpringBoot Admin
  7. java后端知识点梳理——java基础
  8. Lombok——一款Java构建工具,“懒人”必备!!(idea版)
  9. 【NX二次开发】Block UI 选项卡控件
  10. 学习响应式编程 Reactor (5) - reactor 转换类操作符(2)