资源描述
(完整版)java软件中级工程师笔试题复杂逻辑
J2EE部分
1、运算符优先级问题,下面代码的结果是多少?(笔试)
package test;
public class Test {
public static void main(String[] args) {
int k = 0;
int ret = ++k + k++ + ++k + k;
// ret的值为多少
}
}
2、运算符问题,下面代码分别输出什么?(笔试)
package test;
public class Test {
public static void main(String[] args) {
int i1 = 10, i2 = 10;
}
}
3、下面代码的结果是什么?还是抛出异常?(笔试)
package test;
public class Test {
public void myMethod(String str) {
}
public void myMethod(Object obj) {
}
public static void main(String[] args) {
Test t = new Test();
t。myMethod(null);
}
}
4、假设今天是9月8日,下面代码输出什么?(笔试)
package test;
public class Test {
public static void main(String[] args) {
Date date = new Date();
}
}
5、下面代码的输出结果是什么?
package test;
public class Test {
public static void main(String[] args) {
double val = 11.5;
}
}
6、下面代码的结果是什么?
package test;
public class Test extends Base {
public static void main(String[] args) {
Base b = new Test();
b.method();
Test t = new Test();
t。method();
}
@Override
public void method() {
}
}
class Base {
public void method() throws InterruptedException {
}
}
7、以下代码的结果是什么?
package test;
public class Test extends Base {
public static void main(String[] args) {
new Test()。method();
}
public void method() {
}
}
class Base {
}
8、true or false?
package test;
public class Test {
public static void main(String[] args) {
String str1 = new String(”abc”);
String str2 = new String("abc”);
StringBuffer sb1 = new StringBuffer("abc”);
StringBuffer sb2 = new StringBuffer("abc”);
}
}
9、输出的结果是什么?
package test;
public class Test {
public static void main(String[] args) {
}
public int method1() {
int x = 1;
try {
return x;
} finally {
++x;
}
}
public int method2() {
int x = 1;
try {
return x;
} finally {
return ++x;
}
}
}
这样呢?输出什么
package test;
public class Test {
public static void main(String[] args) {
}
public static boolean method() {
try {
return true;
} finally {
return false;
}
}
}
10、方法m1和m2有区别吗?什么区别
package test;
public class Test {
public static void main(String[] args) {
}
public synchronized void m1() {
}
public static synchronized void m2() {
}
}
11、true or false?理由
package test;
public class Test {
public static void main(String[] args) {
Integer i1 = 127;
Integer i2 = 127;
i1 = 128;
i2 = 128;
}
}
12、true or false?理由
package test;
public class Test {
public static void main(String[] args) {
String str1 = "a";
String str2 = ”a”;
String str3 = new String("a");
str3 = str3。intern();
}
}
13、true or false?理由
package test;
public class Test {
public static void main(String[] args) {
}
}
14、以下代码输出是什么?
package test;
public class Test {
public static void main(String[] args) {
BigInteger one = new BigInteger("1");
BigInteger two = new BigInteger("2");
BigInteger three = new BigInteger(”3");
BigInteger sum = new BigInteger(”0");
sum.add(one);
sum。add(two);
sum。add(three);
}
}
15、输出的结果是什么?12345?根据单词排序?还是?
package test;
public class Test {
public static void main(String[] args) {
Set〈String> set = new HashSet〈String〉();
set.add("one");
set.add("two");
set.add(”three");
set。add("four");
set。add(”five");
for (Iterator<String> it = set.iterator(); it.hasNext();) {
}
}
}
16、以下代码输出的结果(笔试选择题)
public class Test {
public static void main(String[] args) {
}
}
A. null B。 0 C. Test
17、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。
public class Test {
public Test instance = null;
public static Test getInstance() {
if (instance == null) {
instance = new Test();
return instance;
}
}
}
18、编程输出一个目录下的所有目录及文件名称,目录之间用tab。(笔试)
19、从键盘读入10个整数,然后从大到小输出。(笔试)
20、如何迭代Map容器,手写个试试?
答案:
1、
8
2、
i1 + i2 = 1010
语法错误
i1 * i2 = 100
i1 / i2 = 1
3、
string
4、
5
19
5、
12
11。0
12。0
6、
test
test
7、
test.Test
test.Base
8、
true
false
9、
1
2
false
10、
A: synchronized static是某个类的范围,synchronized static cSync{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。???
B: synchronized 是某实例的范围,synchronized isSync(){}防止多个线程同时访问这个实例中的synchronized 方法。
11、
true
false
12、
true
false
true
13、
false
14、
0
15、
two
five
one
three
four
16、
B
17、
getInstance 无默认返回值
instance?必须是static
18、
package test;
public class Test {
public static void main(String[] args) {
new Test()。read(”D:/test", "”);
}
public void read(String path, String tab) {
File file = new File(path);
File[] childFiles = file。listFiles();
for (int i = 0; childFiles != null && i 〈 childFiles。length; i++) {
if (childFiles[i]。isDirectory()) {
read(childFiles[i]。getPath(), tab + "\t");
}
}
}
}
19、
package test;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意这里的数组,不是int的
Integer[] arr = new Integer[10];
for (int i = 0; i < 10; i++) {
arr[i] = in。nextInt();
}
Arrays.sort(arr, new Comparator〈Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 > o2) return —1;
if (o1 〈 o2) return 1;
return 0;
}
});
}
}
20、
package test;
public class Test {
public static void main(String[] args) {
Map<Class, String〉 m = new HashMap<Class, String〉();
Set<Entry〈Class, String>> set = m。entrySet();
Iterator〈Entry〈Class, String〉〉 it = set。iterator();
while (it。hasNext()) {
Map.Entry〈Class, String〉 entry = it。next();
Class key = entry.getKey();
String value = entry.getValue();
}
}
}
展开阅读全文