一、选择题
1.
解析:
A是静态方法,可以直接用如下形式调用 Test.method();
B是普通public方法,必须实例化类,Test test = new Test(); test.method();
C是protected方法,用法同B,只是对于其他的外部class,protected就变成private;
D是抽象方法,必须被子类继承并重写,然后调用的方式同B。
故答案:选 A
2.
解析:
这题考的是对方法重载(overload)的理解。
重载要求:在同一个类中,有两个或两个以上的方法,
1、方法名一致;
2、形参列表不一致,即:形参个数不一致 或 形参类型不一致 或 不同类型的形参的顺序不一致(其中有一项不一样即可),并且与形参变量名是否相同无关;
3、方法返回值类型可以一样,也可以不一样
3.
解析:
值为1的a属于类变量也叫作成员变量,值为10的a是局部变量 首先a++时就近原则,用局部变量10来加,Text.a直接用类名调用成员变量的情况,只能是static 修饰的成员变量1来加,然后又实例化了对象,在输出中第一个a= 用就近原则输出11,第二个t.a 对象只能调用类变量输出2
4.
解析:
init 初始化,start启动运行,paint 窗口最小化等时候需要暂停,stop 停止,destory 销毁;
5.
解析:
[://]
这是个很明显的陷阱
[ ] 里面是不重复的,所以等价于[:/]
如果[ ]后面没有带+号的话,是不会贪婪匹配的,就只能匹配到://中的其中一个
6.
解析:
希尔排序最后一趟已经基本有序,比较次数和移动次数更少。
7.
解析:
java中接口只能使用public修饰,接口内方法默认为public abstrac
8.
解析:
局域网主要涉及物理层和数据链路层两个层次。
不过IEEE802这一系列标准或协议则主要只讨论数据链路层问题,属于数据链路层协议。
9.
解析:
临界区是指进程访问临界资源的那段代码。临界资源指的是互斥访问的资源
10.
解析:
请注意 400~499 这个范围的报文段没有接受到,所以确认号应该是400
11.
解析:
在源码中 toLowerCase 是重新 new String()
所以为 == 是比较对象是否是同一个对象,所以为 false 。
12.
解析:
一般的ISP会对宽带账号进行MAC地址绑定,故通常的做法有两种,1.清除MAC地址绑定2.克隆MAC地址
13.
解析:
链接分硬链接和符号链接。
符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。
硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。
二、编程题
解析:
利用一个变量num记录'L'('R')的数量,遍历字符串s,如果字符为'L'('R'),则num++,否则num--
当num为0时,之前出现的'L'和'R'的数量必定相等,此时将记录子串数量的count++,遍历完后返回count即可
class Solution {
public int balancedStringSplit(String s) {
char a = s.charAt(0);
int count = 0;
int num = 1;
for(int i = 1; i < s.length(); i++) {
if(s.charAt(i) == a) {
num++;
}else {
num--;
}
if(num == 0) {
count++;
}
}
return count;
}
}
代码带解析:
class Solution {
public String freqAlphabets(String s) {
StringBuilder res = new StringBuilder();
// 从后往前遍历
for (int i = s.length() - 1; i >= 0; i--) {
char chars = s.charAt(i);
// 遇到 '#' 则取在该字符前 2 位的字符串来进行转换成字母操作
if (chars == '#') {
String cur = s.substring(i - 2, i);
int num = Integer.parseInt(cur);
char tmp = (char)(num + 'a' - 1);
res.insert(0, tmp);
i = i - 2;
} else {
// 如果是单个字符进行转换成字母的操作
// 先将该字符转换成字符串形式
String cur = chars + "";
// 再转换成对应字符串内容的数字
int num = Integer.parseInt(cur);
// 最后转换成对应的字母
char tmp = (char)(num + 'a' - 1);
res.insert(0, tmp);
}
}
return res.toString();
}
}
代码:
class Solution {
public boolean judgeCircle(String moves) {
char[] chars = moves.toCharArray();
int col = 0;
int row = 0;
for (char x : chars) {
if (x == 'U') {
row++;
} else if (x == 'D') {
row--;
} else if (x == 'L') {
col++;
} else {
col--;
}
}
return col == 0 && row == 0;
}
}