下文所有字符仅为个人观点,如有错误恳请指正。
All the characters below is a personal opinion, if there is any mistake, please correct me.
1)类中的静态成员属于类本身。
2)String类的concat方法需要返回值。
3)考核java异常机制:
- 改进项目结构,分离错误处理代码与正常函数。
- 选择处理错误的位置。
- 自定义异常。
4)this关键字表示调用构造方法,题中this方法没有参数,而类中没有无参构造器从而发生错误。
5)B选项super方法在main函数中调用出错(静态方法只能调用静态方法),且参数应为n1与n2
C选项子类使用父类默认构造方法定义出错。
E选项非静态方法。
6)关于日期的格式。
7)略。
8)ISO_DATE_TIME精确到时间。
9)args[0]为用控制台编译时候传入的第一个参数。
10)题目有问题。
11)略。
12)这里的indexOf是属于ArrayList类的方法,功能如下:
- 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。更确切地讲,返回满足 (o==null ? get(i)==null : o.equals(get(i))) 的最低索引 i ,如果不存在此类索引,则返回 -1。
- 是否包含元素不是根据值是否相等判定,而是根据地址的比较。
13)Super关键字的用法:
1.普通的直接引用,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。
2.子类与父类同名方法的区别调用。
3.引用父类的构造器,例如super(参数),需要注意的是此语句只能出现在子类构造器的第一条。
14)正确答案应为AB。
15)正确答案为BCF。知识点:一个类有唯一的私有构造器。
16)正确答案为A。
17)略。
18)switch语句规范。
19)Product p3创建了一个引用,之后初始化的过程中,将这个引用指向了p1的内存地址。p1和p3共同引用一个内存地址(引用相等),此时对p3或者p1进行的操作都会反映在两者身上。
对象的“==”与equals(没经过重写,继承于object基类)方法比较的都是内存地址。
20)关于java基本类型以及其默认值:
- boolean false
- char '\uoooo'(null)
- byte (byte)0
- short (short)0
- int 0
- long 0L
- float 0.0f
- double 0.0d
21)关于抛出异常的方式:
- println方法:普通默认toString方法将打印异常名以及异常详细消息(无消息将只打印异常),getMessage方法只会打印异常详细消息(无消息打印null)。
- printStackTrace方法:将打印异常的栈轨迹(以红色字符打印toString的内容以及报错位置)。
22)23)24)25)26)27)略。
28)正确输出应为“A B C C ”,replace方法返回替代后的字符串需要变量接收。
29)关于异常的处理方式:
- 捕获:通过try、catch、finaly关键字的语句块捕获处理检查性异常。
try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }finally{ // 程序代码 }
- 抛出:处理不了的异常或者要转型的异常,在方法的声明处通过throws语句声明异常throw关键字抛出异常。
public class className { public void withdraw(double amount) throws RemoteException, InsufficientFundsException { // Method implementation } //Remainder of class definition }
30)31)32)略。
33)关于foreach循环的语法糖(Syntactic Sugar)。
34)略。
35)pdf中解析说的很清楚,就翻译一下:当一个抽象类被继承的时候,子类往往实现了其父类的所有抽象方法,如果不这么做,子类必须也为抽象类。
36)二维数组length方法返回行数。
37)对象"="是更换引用地址,nums1=nums2;使nums1的引用指向了nums2的内存地址,与之前的引用地址(包括限制的长度)不再有关联。
38)参数生命周期。
39)见第20提题解析。
40)41)略。
42)答案错误,应该选择B。
43)关于Java8的lambda表达式与函数式接口的应用。
44)见第29题对异常的处理方式。
45)详见https://www.cnblogs.com/jtlgb/p/5985120.html
Runtime Exception:
在定义方法时不需要声明会抛出runtime exception; 在调用这个方法时不需要捕获这个runtime exception(被JVM处理); runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。 例如:nullpointexception,IndexOutOfBoundsException就属于runtime exception。
Exception:
定义方法时必须声明所有可能会抛出的exception; 在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去;exception是从java.lang.Exception类衍生出来的。例如:IOException,SQLException就属于Exception。
46)args[0]是用命令行编译运行java程序时,传入的第一个参数。
47)Java运算符优先级
48)StringBuilder的append方法:
StringBuilder sb=new StringBuilder("abc");
sb.append("123");
System.out.println(sb);//输出abc123
insert方法:
StringBuilder sb=new StringBuilder("abc");
sb.insert(0,"123");//第一个参数是位置
System.out.println(sb);//输出123abc
49)trim方法返回值需要变量来接收。
50)略。
Comments | 1 条评论
stun 博主
11题: 答案是A?
16题:答案是B ?
18题: 答案是CD? 题目是made independently,而且加不加break,程序都是正常compile和run。D 当然也有D的问题,但是觉得比其他的要好
就看了前20题,后面的我会继续看,希望交流指正