牛客网专项练习(八)——选择题(错题&不懂的题)

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:这里不是this调用语句,应该是this()。

1. 构造器中第一行默认是super(),如果直接父类中没有无参构造方法,那么必须显式调用父类的某个有参构造方法。

2. 构造器中第一行的super()可以换成this(),但是this()和super()只能出现一个。

3. super,this关键字与super(),this()不是一个概念,前者表示当前调用者的父类与其本身,后者是为了构造器相互调用。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:这里考的是值传递和引用传递。

值传递,只在该方法内有效,所以var2指向不发生改变,它的值还是1,var1和var2指向的还是堆当中Integer1。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁;

而CGI对每个请求都产生新的进程,服务完成之后就进行销毁,故在效率上低于servlet。

CGI不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。每一个CGI应用存在于一个由客户端请求**的进程中,并且在请求被服务后被卸载。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:额做完之后才发现被坑爹了,String里面压根没有decode()和encode()这两个方法。

其实就是先解码再编码。

new String(src,"GBK")解码得到字符串;

getBytes("UTF-8")得到UTF8编码字节数组。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:Integer和Long类型之间不能进行比较。

包装类都重写了equals()方法,所以比较值,都是相等的。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:声明异常用的是throws关键字;

抛出异常用的是throw关键字,throw new Exception("自定义异常");

try是用于检测被包住的语句块是否出现异常,如果有异常,则进行抛出,用的是throw关键字,并执行catch语句。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:在局部内部类的方法中,要求方法的局部变量必须声明为final的。
jdk 7及之前版本:要求此局部变量显式的声明为final的。
jdk 8及之后的版本:可以省略final的声明。

内部类分为成员内部类和局部内部类,成员内部类在外部类的内部,可以直接调用外部类的静态方法和非静态方法。

匿名内部类和和局部内部类的用法不一样,最显著的区别就是匿名内部类只能使用一次。

D、静态内部类不能直接访问外部类的非静态成员,但是可以通过new外部类().非静态成员的方式访问。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:C选项,两个遍历方式的内部实现有些不同。

Hashtable、HashMap都使用了 Iterator。但是Hashtable还使用了Enumeration的方式 。

牛客网专项练习(八)——选择题(错题&不懂的题)

分析:A和D肯定是对的

其次对于B选项,数组命名时名称与[ ]可以随意排列。所以B也正确。

E选项,在声明二维数组时,第一个中括号中必须要有值,因为它代表的是在该二维数组中有多少个一维数组,而第二个中括号可以先不写。