浏览 2050 次
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-23
java基础非常重要,最近一段时间面试碰到的问题,现在做了个总结 1、关于接口方面 1-1、接口中的所有属性都是final类型的 1-2、接口中不能含有静态方法,抽象类中也不能。可以总结为,static方法只能存在于具体实现类中(static,abstract 不能同时修饰一个方法)
2、关于构造函数 2-1
class MyClass2{ public static void main(String[] args) { new MyClass2(); } public MyClass2() { MyClass2 m1=this; MyClass2 m2=this; synchronized (m1) { System.out.println("enter in synchronized"); try { m2.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("class load all"); } }
以上程序运行后会一直阻塞
2-2、
class MyClass2{ public static void main(String[] args) { new MyClass2(); } public MyClass2() { System.out.println("..."); MyClass2 m=new MyClass2(); // MyClass2 m1=this; // MyClass2 m2=this; // synchronized (m1) { // System.out.println("enter in synchronized"); // try { // m2.wait(3000); // } catch (InterruptedException e) { // e.printStackTrace(); // } // } // System.out.println("class load all"); } } 以上函数运行一段时间后会抛出java.lang.StackOverflowError,堆栈溢出,若换成以下版本则不会抛异常
class MyClass2{ static long i=0; public static void main(String[] args) { new MyClass2(); } public MyClass2() { System.out.println("..."); i++; MyClass2 m=null; if(i<1000) m=new MyClass2(); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-23
zk1878 写道 1-2、接口中不能含有静态方法,抽象类中也不能。
抽象类可以有静态方法呀。倒是内部类不能有静态方法。 |
|
返回顶楼 | |
发表时间:2011-06-24
都不怕新手贴啊
|
|
返回顶楼 | |