`
adapterofcoms
  • 浏览: 75386 次
  • 性别: 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面试题2022

    以上是Java面试中常见的知识点,掌握并能深入解释这些内容,将大大增加你成功通过面试的可能性。同时,面试不仅仅是对技术的考察,还包括问题解决能力、团队合作精神以及项目经验等软技能,全面展现自己才能赢得理想...

    1000道Java 程序员必备面试题-V1版.pdf

    Java 程序员必备面试题-V1版.pdf 本资源是一个 Java 面试题集,涵盖了 Java 基础、集合、并发、MySQL、Kafka 等高频知识点。下面是对标题和描述中所说的知识点的详细说明: 动态代理 在 Java 中,动态代理可以...

    Java 面试题全集

    在面试准备中,掌握这些基础知识是至关重要的,它们能帮助面试者展示自己的编程能力和对Java语言的熟练应用。而Java技术面试题集的复习,有助于加深对这些知识点的理解和记忆,从而在面试中表现出色。

    北大青鸟JAVA面试题

    从给定的文件信息中,我们可以提炼出一系列与北大青鸟JAVA面试相关的知识点,这些知识点...以上知识点覆盖了JAVA面试中常见的技术领域,对于准备JAVA面试的求职者来说,熟练掌握这些知识点将大大提高通过面试的可能性。

    Java 面试题 Java 面试题

    根据给定的文件内容,我们可以总结出一系列与Java面试相关的知识点。下面将详细解析每一道题目涉及的关键概念。 ### 第一部分:基础知识 #### 1. final, finally, finalize的区别 - **final**: 用于声明变量、方法...

    (2020最新)Java面试题.pdf

    下面是对Java面试题的知识点总结: Java基础 1. JDK和JRE的区别:JDK(Java Development Kit)是Java开发工具包,包括JRE和开发工具,而JRE(Java Runtime Environment)是Java运行环境,仅包括Java虚拟机和核心...

    java面试题大全好多经典的试题

    ### Java面试题详解 #### 一、Core Java基础 **1. Java中对象的引用有哪些类型?** 在Java中,对象引用主要分为四种类型:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)以及...

    java 面试题大全 各大公司面试题总汇

    这份"java面试题大全"集合了各大公司的面试题目,对于准备Java开发者面试的求职者来说是一份宝贵的资源。下面,我们将深入探讨Java面试中常见的知识点,以及如何通过这些题目来提升自己的技能。 1. **基础语法**:...

    Java 面试题32问

    Java 面试题32问涵盖了多个核心的Java概念,下面是对这些知识点的详细解释: 1. **final, finally, finalize的区别**: - `final` 关键字用于声明一个类、变量或方法不可变。当应用于类时,它表示该类不能有子类;...

    java程序员面试面试题

    Java程序员在面试中可能会遇到各种各样的问题,涵盖了语言基础、数据结构、并发编程等多个方面。下面我们将深入探讨这些知识点。 首先,对于Java语法规范,这是每个Java开发者的基础。这包括但不限于变量声明、数据...

    java 面试题

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

    java面试题大全(阿里面试题)

    Java面试题大全,尤其是阿里面试题,是求职者准备Java开发者职位面试的重要参考资料。这份资料集涵盖了广泛的Java编程、设计模式、数据结构、算法、框架、数据库、并发等多个领域的知识点,旨在帮助求职者全面理解...

    Java 最常见的 208 道面试题.pdf

    Java 面试题解析 Java 是一种广泛应用的编程语言,了解 Java 的基础知识是面试的必备条件。本文将对 Java 面试中常见的问题进行解析,并提供详细的解释和示例代码。 JDK 和 JRE 的区别 JDK(Java Development Kit...

    java面试题--反射机制

    ### Java反射机制详解 #### 一、引言 在Java面试中,经常会出现与反射...以上内容不仅解释了Java反射机制的相关知识点,还通过示例代码进行了实践演示,希望能够帮助你在Java面试中更好地理解和运用这一重要特性。

    JAVA面试题.docx

    在Java面试中,考察的知识点广泛且深入,包括基础语法、类与对象、内部类、继承、异常处理、多线程、集合、I/O流以及虚拟机原理等多个方面。下面是对这些知识点的详细解释: 1. **基本语法**:Java的基本语法包括...

    一线互联网大厂完整Java面试题.pdf

    标题和描述中提到的Java面试题包含多个方面的知识点,涵盖Java基础、算法、架构设计、设计模式等。下面详细说明各方面的知识点。 Java基础知识点: 1. 关于Java中为什么等待和通知是Object类的成员方法而不是Thread...

    JAVA面试题150

    【JAVA面试题150】涉及的Java基础知识广泛,涵盖了多个关键知识点,下面将逐一解析。 1. **作用域**:在Java中,作用域决定了变量的可见性和生命周期。`public`、`private`、`protected`和无修饰符的作用域分别为:...

    sql面试题,JAVA常见面试题120道

    在准备Java和SQL面试时,理解并掌握这两个领域的核心概念是至关重要的。...同时,文档“java面试常见问题 120道.doc”和压缩包中的“sql试题.rar”将提供具体的题目和解答,进一步巩固你的理解和应用能力。

    腾讯Java面试题

    【腾讯Java面试题】 在Java领域,面试是评估求职者技术实力的重要环节,而腾讯作为中国互联网巨头之一,其Java面试题往往具有很高的参考价值。这些题目不仅涵盖基础语法、数据结构、算法、多线程、JVM优化等多个...

    java面试题总结

    ### Java面试题总结 #### 一、面向对象的特征有哪些方面? 面向对象编程(OOP)是一种编程范式,它强调将程序结构组织成一组对象,每个对象都可以接收其他对象发送的消息、处理数据、以及执行动作。Java作为一种典型...

Global site tag (gtag.js) - Google Analytics