知识点1:
抽象类总结规定
-
-
抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
-
-
-
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
-
-
-
抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
-
-
-
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
-
-
-
抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
-
知识上2:
假设有以下代码String s = "hello";String t = "hello";char c [ ] = {'h','e','l','l','o'};下列选项中返回false的语句是?
t.equals (c);
首先==与equals是有明显区别的。 ==强调栈中的比较,可以理解为地址比较 equals强调对象的内容比较 String s=“hello”;会在栈中生成hello字符串,并存入字符串常量池中。 String t=“hello” ;创建时,会在字符串常量池中寻找,当找到需要的hello时,不进行字符串的创建,引用已有的。 所以,s==t返回true,s.equals(t)也是true。 char c[]={'h','e','l','l','o'}; c==s这个是不存在的,==两边类型不同 t.equals(c)这个语句在anObject instanceof String这步判断不会通过,也就是cha[] 压根不能与String相比较,类型不是相同的。返回false
知识点3:
能单独和finally语句一起使用的块是( )
try
处理异常常用的两种方式: 1、try...catch(捕获处理机制); 2、throws(冒泡处理机制). 注意细节:使用try...catch块捕获时可以没有catch块,但当没用catch块的时候必须得有finally块
知识点4:
有如下4条语句:()
以下输出结果为false的是:
Integer i01=59; int i02=59; Integer i03=Integer.valueOf(59); Integer i04=new Integer(59);
System.out.println(i03==i04);
知识点5:
下面赋值语句中正确的是()
double d=5.3e12;
float f=11.1; int i=0.0; Double oD=3;
java中整型默认的是int,浮点默认的是double.
B: double类型的11.1 转成 float,是需要强制转换的
C: double类型的0.0 转成 int,也是需要强制转换的
D: int 转为 封装类型Double,是无法编译的
Double oD = 3.0, 会把double类型的3.0自动装箱为Double,没有问题
知识点6:
list是一个ArrayList的对象,哪个选项的代码填到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?()
Iterator it = list.iterator(); int` `index = ``0``; while` `(it.hasNext()) { ``Object obj = it.next(); ``if` `(needDelete(obj)) ``//needDelete返回boolean,决定是否要删除 ``{ ``//todo delete ``} ``index ++; }
it.remove();
知识点7:
在Java中,关于HashMap类的描述,以下正确的是 ()
HashMap使用键/值得形式保存数据 HashMap允许将null用作键 HashMap允许将null用作值
Map集合类 | key | value |
---|---|---|
HashMap | 允许为null | 允许为null |
TreeMap | 不允许为null | 允许为null |
ConcurrentMap | 不允许为null | 不允许为null |
HashTable | 不允许为null | 不允许为null |
知识点8:
下面有关Java的说法正确的是( )
一个类可以实现多个接口 protected成员在子类可见性可以修改 通过super可以调用父类构造函数 String是不可修改的,且java运行环境中对string对象有一个对象池保存