Java题库

来源:互联网 发布:乎的反义词是什么字 编辑:程序博客网 时间:2024/04/29 15:57

1.join等待其他的完成后执行

2.exceptionstatemoniter不是当前线程的持有对象

3.illegalThreadStateException:运行的时候发现在循环第二遍的时候出现了java.lang.IllegalThreadStateException异常
通过上网查询发现同一个Thread不能重复调用start方法,做如下修改就好了:
将自己定义的HubRobot extends Thread 线程类改成HubRobot implements Runnable,后用new Thread(robot).start 就可以启动多次了

4.go(string...y,int x)可变参数必须是最后一个参数,编译错误

5.内部类的引用的必须,分层引用

6.返回类型必须兼容,对于函数多态不能从返回值来判断

7.继承必须调用super父类的方法

8.Enum指定的必须使用.来引用

9.可变参数main(string.*...a)和main(string...[] a)是错误的

10.构造函数必须从上往下构造

11.system.out.pirntln(类)如果以类为参数,必须重写类的tostring方法

12.try{

                 float f;}

catch(){

            f=0}

compilation fails.

13.

 子类覆盖父类要遵循“两同两小一大”
“两同”即方法名相同,形参列表相同
“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等
“一大”指的是子类方法的访问权限应比父类方法的访问权限更大或相等。
注意:覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法一个是实例方法,否则编译出错。

14.如果存在同名,内存中将会同时存在父类的同名成员和子类的同名成员。由于Java的多态性只针对方法来说的,成员变量不存在多态,因此成员变量只与访问的变量类型有关,而方法的调用遵从多态的规则。


                       1、首相要了解的知识是,成员变量绑定的是引用的类型,方法绑定的是对象的类型,


                        2、在继承中子类可以重写父类的方法,引用指向的是父类的对象就调用父类的方法,引用指向子类的对象就调用子类重写的方法,相反,成员变量看         的是引                                 用的类型,父类型调用父类的成员变量,子类型调用子类的成员变量。

                        3、简单说 方法看对象,变量看类型。属性是静态绑定在类上,方法是动态绑定到对象上 

15.this的使用方法:

                       1.当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)

                       2.把自己当作参数传递时,也可以用this.(this作当前参数进行传递

                       3. 有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿名类中用 this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和                               变量的话,则应该加上外部类的类名

                      4.在构造函数中,通过this可以调用同一类中别的构造函数

16.java中类的修饰符:

                      外部类的修饰符有:
                                       default(缺省,不写):类定义时前面未加任何修饰符,表示同一个包中可见。
                                       public:修饰类时表示该类能被项目中所有类可见
                                       abstract:表示是抽象类
                                       final:表示类不可以被继承
                                         scrictpf:(java关键字) 当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约                                      束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示

17.松耦合能够做到减少API函数的数目但是没有减少任何功能性。

18.继承对序列化的影响 
我们现在把上面的例子做点变换,变成如下的形式。 
1)首先创建一个Interface。 
package serialtest; 
public interface SuperInterface 

public int getA(); 
public String getB(); 
public void setA(int a); 
public void setB(String b); 

2)创建一个抽象类实现SuperInterface接口,注意,这个类没有实现Serializable接口。 
package serialtest; 
public abstract class AbsSuperClass implements SuperInterface 

public int a; 
public String b; 
public int getA() {return a;} 
public String getB(){return b; } 
public void setA(int a) {this.a = a;} 
public void setB(String b) {this.b = b;} 

3)SerialClass类继承了AbSuperClass,同时它也实现了Serializable接口。 
package serialtest; 
import java.io.Serializable; 
public class SerialClass extends AbsSuperClass implements Serializable 

private static final long serialVersionUID = -190734710746841476L; 
private String c; 
public String getC(){return c; } 
public void setC(String c) {this.c = c;} 

这时候我们在运行Test,将会发现结果和第一节的例子不一样了,这时候结果将变成: 

null 
world 
而导致这个结果的原因就在AbSuperClass上,因为AbSuperClass没有实现Serializable接口,所以它不可被序列化;但 SerialClass由于实现了Serializable接口而成为一个可序列化的类,这时候,属性c因为是SerialClass的类所以c的值在序列化时将被保存,而属性a和b是从AbSuperClass中继承而来,他们因为AbSuperClass的缘故而导致了它们的值不能在序列化是被保存。 

0 0
原创粉丝点击