`
adapterofcoms
  • 浏览: 72281 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

你能通过下面的3道java面试题吗?

阅读更多

1.java static inner class 和 non-static inner class的区别?

   有人会说静态的只能访问外部类的静态成员,非静态的对应非静态的.不错是这样的,可是你知道为什么会这样吗?
有人会说这个是java语法规则,是的.可还是没有讲出实质性的内容.这种题目在面试的时候一下子就可以判断出你对java的熟悉深度了.

 

2.请写出一个singleton模式的class.

你如果写出下面的2种样式,我会问你:

请问你如何在同一个jvm中并且在同一个classLoader中得到它的多个实例?(请不要奇怪)

样列1:

public class Singleton {  
 private final static Singleton instance=new Singleton();
 private Singleton(){} 
 public static Singleton newInstance(){  
  return instance;  
 } 
}

样列2:

public class Singleton { 
 private static volatile int instanceCounter=0; 
 private Singleton(){
  if(instanceCounter>0)
   throw new RuntimeException("can't create multi instances!");
  instanceCounter++;
 }
 
 private final static Singleton instance=new Singleton();
 public static Singleton newInstance(){  
  return instance;  
 }
}

 

3.java 的exception 分checked,unchecked.像RuntimeException,Error都不用显式try-catch,直接可以throw,

但是一般的exception是必须catch的:

throw new Exception("..."),如果这句不在try-catch体内,或者方法的声明没有throws,那么编译是通不过的.

ok,请看如下的代码:

 

public class TestClass { 
 
 public void  testMethod()/*这里没有throws 哦!*/{  

          ......
           throw new Exception("force throw the exception...");

          ......
 }


}

很明显上面的方法如果这样的话是通不过编译的,但是如果非得要你在testMethod体中在运行时throw一个很一般的Exception,请问你有办法吗?除强制类型转换 throw (RuntimeException)new Exception(); 之外呢?

 

 

这3道题可不是sun出的考题哦!不信你搜搜......

 

 

 

 

 

 

1
1
分享到:
评论
5 楼 Copperfield 2012-04-11  
A non-static nested class (or 'inner class') has full access to the members of the class within which it is nested. A static nested class does not have a reference to a nesting instance, so a static nested class cannot invoke non-static methods or access non-static fields of an instance of the class within which it is nested.

Technically, there is no such thing as a static inner class. According to "Effective Java", the correct terminology is a "static nested class". A non-static nested class is indeed an inner class, along with anonymous classes and local classes.

And now to quote: "Each instance of a nonstatic [nested] class is implicitly associated with an enclosing instance of its containing class... It is possible to invoke methods on the enclosing instance."

A static nested class does not have access to the enclosing instance. It uses less space too.
4 楼 airfan 2010-06-07  
嗯, 更正一下, 应该是volatile关键字和“线程间的”同步没关系
所以第二题第二种写法加上volatile一点用也没有
3 楼 airfan 2010-06-07  
第一题,不确定,个人觉得由ClassLoader来保证,在Class连接(Link)之前,其他类的modifer似乎没法知道,也就没法根据modifer数来判定是否违反java语法或者其他规则;

第二题,第一种写法正确,但反射强制new一个肯定没问题,但算是走了歪门邪路了;第二个写法有误,有误导新手之嫌volatile关键字和同步毛的关系都没有;

第三题,因为很少手动编译java源码,所以还不能确定是IDE扼杀了throw还是编译器扼杀掉的,但可以肯定直接生成读二进制字节码,再用一般的ClassLoader加载可以通过,不排除有特别严格的ClassLoader加载类会深入方法体内部审查是否合乎方法签名
2 楼 2022228 2010-05-12  
第二题:clone?
1 楼 2022228 2010-05-12  
没有答案?

相关推荐

    java 面试题

    这是面试中常出现的java面试题 ex:【考题题干】类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符 获得需要的访问控制。 A .public B .no modifier C .protected D .private 【试题...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...

    java面试题收集集锦

    java面试题集锦。word文档共103页。希望能对大家有用。不下的话记住下面一句话,已经能应付很多题目了: Java 编译和运行程序的机制:“数据是什么”是由编译时决定的;而“方法是哪个”则在运行时决定。

    java面试题大全(2012版)

    82、能不能自己写个类,也叫java.lang.String? 57 83. Java代码查错 57 二. 算法与编程 61 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt...

    JAVA面试题集合面试技能大全

    JAVA面试题集合面试技能大全 JAVA面试题集 基础知识: 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况...

    2023阿里java面试题

    1.1.1 如何实现一个高效的单向链表逆序输出? 出题人:阿里巴巴出题专家:昀龙/阿里云弹性人工智能负责人 参考答案:下面是其中一种写法,也可以有不同的写法,比如递归等。供参考。

    Java面试,你遇到哪些困境

    这些同学说自己也做了精心准备,网上搜集了不少Java面试题。 然而实际去互联网公司面试才发现,人家问的,和你准备的根本对不上号,面试现场经常弥漫着尴尬的气氛,最后的面试结果也是不言而喻! 先来体验一个真实的...

    java常见面试题,面试专用笔记,非常全面

    最近抽时间整理了一份Java面试题。或许这份面试题还不足以囊括所有 Java 问题,但有了它,我相信足以应对目前市面上绝大部分的 Java 面试了,因为这篇文章不论是从深度还是广度上来讲,都已经囊括了非常多的知识点了...

    JAVA面试题解惑系列

    JAVA面试题解惑系列 藏圩人 JAVA面试题解惑系列(一)——类的初始化顺序 大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里...

    Java面试题集_1

    很好的一份JAVA面试题集,共分十部分,从基础到高级,core Java OOAD&UML JDBC&Hibernate EJB&Spring WEB C++ WEBligic 及其他

    Java面试题和试题答案

    本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能的常见问题,...

    java基础面试题

    java基础面试题,1、下面程序的运行结果是() String str1 = "hello"; String str2 = "he" + new String("llo"); System.err.println(str1 == str2); A.True B. false 2、下面程序的运行结果:() public static ...

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    JAVA面试题 对JAVA面试有帮助!

     第三,Static Nested Class和Inner Class的不同,说得越多越好(面试题有的很笼统)。  第四,&和&&的区别。  这个问得很少。  第五,HashMap和Hashtable的区别。  常问。  第六,Collection和Collections...

    收藏的JAVA面试题大全

    收集了许多公司的java面试题 基础知识: 1.C++或Java中的异常处理机制的简单原理和应用。 当 JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA...

    Java经典面试题(答案解析)

    在 Java 当中,有 3 种修饰符: public, private 和 protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。下面列出了使用封装的一些好处: 1) 通过隐藏对象的属性来保护对象内部...

    Java体系最新面试题及解答(2023版)-阿里内部资料(266页).pdf

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ Java面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来...

    可拿高薪的Java面试题

    这是我设计的几道面试题,要求是题目尽量少,可以在5分钟内完成,但能基本反映出面试者的知识层次.所以我设计了六道题. 如果你能独立完成(不用看资料,不借助调试)回答在60分以上,找个6000元以上的工作由我来给你介绍 1...

    程序员JAVA常见面试题小集

    JAVA这门语言含蓄细腻,下面我给大家推荐几道软件开发企业的JAVA面试题,希望喜欢!

    JAVA面试题

    老师给的面试题 解释下面关于J2EE的名词 (1)JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和...

Global site tag (gtag.js) - Google Analytics