常见Java问题

1.OutOfMemoryError

在Eclipse里选:Window->Preference->Installed JREs->Edit(选中jre),

在Default VM Arguments里输入-Xms256m -Xmx1024m,表示最小内存256M,最大1G,然后运行就可以了。

2.左声明右实现(等号),左边是引用,右边是实例化的对象

3.抽象类不可以用new创建对象。因为调用抽象方法没意义。

4.抽象类和一般类没有太大的不同。该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西。

这些不确定的部分,也是该事物的功能,需要明确出现。但是无法定义主体。通过抽象方法来表示。

抽象类可以实现方法,但是不可以实例化。(即抽象类可以包含实现的非抽象方法)

5.接口中可以含有 变量和方法。但是要注意,接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法

6.Java多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

多态存在的三个必要条件

一、要有继承;

二、要有重写;

三、父类引用指向子类对象。

7.编译时多态:

方法重载都是编译时多态。根据实际参数的数据类型、个数和次序,Java在编译时能够确定执行重载方法中的哪一个。

父类中属性只能被隐藏,而不能被覆盖;而对于方法来说,方法隐藏只有一种形式,就是父类和子类存在相同的静态方法。

“重写”只能适用于实例方法,不能用于静态方法。对于静态方法,只能隐藏,重载,继承。

8.java用于指定权限边界的关键字有三个public private 和protected。public是最广泛的访问权限,允许无条件的访问对应的域和方法;private是最严格的访问权限,只允许当前类中对该域和方法的访问;protect是一种折衷的选择,允许当前类和被继承之后的类对当前域和方法的访问。除此之外,还有一种缺省的访问权限,即不使用任何关键字指定访问权限级别,这个时候是包访问权限。

9.String 和 CharSequence 关系

String 继承于CharSequence,也就是说String也是CharSequence类型。CharSequence 是一个接口。

CharSequence与String都能用于定义字符串,但CharSequence的值是可读可写序列,而String的值是只读序列。

你可能感兴趣的:(常见Java问题)