1、运算符优先级问题,下面代码的结果是多少?(笔试)
- package test;
- public class Test {
- public static void main(String[] args) {
- int k = 0;
- int ret = ++k + k++ + ++k + k;
- // ret的值为多少
- System.err.println(ret);
- }
- }
2、运算符问题,下面代码分别输出什么?(笔试)
- package test;
- public class Test {
- public static void main(String[] args) {
- int i1 = 10, i2 = 10;
- System.err.println("i1 + i2 = " + i1 + i2);
- System.err.println("i1 - i2 = " + i1 - i2);
- System.err.println("i1 * i2 = " + i1 * i2);
- System.err.println("i1 / i2 = " + i1 / i2);
- }
- }
3、下面代码的结果是什么?还是抛出异常?(笔试)
- package test;
- public class Test {
- public void myMethod(String str) {
- System.err.println("string");
- }
- public void myMethod(Object obj) {
- System.err.println("object");
- }
- public static void main(String[] args) {
- Test t = new Test();
- t.myMethod(null);
- }
- }
4、假设今天是9月8日,下面代码输出什么?(笔试)
- package test;
- import java.util.Date;
- public class Test {
- public static void main(String[] args) {
- Date date = new Date();
- System.err.println(date.getMonth() + " " + date.getDate());
- }
- }
5、下面代码的输出结果是什么?
- package test;
- public class Test {
- public static void main(String[] args) {
- double val = 11.5;
- System.err.println(Math.round(val));
- System.err.println(Math.floor(val));
- System.err.println(Math.ceil(val));
- }
- }
6、编程输出一个目录下的所有目录及文件名称,目录之间用tab。(笔试)
- package test;
- import java.io.File;
- 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++) {
- System.err.println(tab + childFiles[i].getName());
- if (childFiles[i].isDirectory()) {
- read(childFiles[i].getPath(), tab + "\t");
- }
- }
- }
- }
不要觉得很简单,最起码你要记得返回当前文件夹下的所有文件的方法是listFiles(),isDirectory别拼错了。
7、从键盘读入10个整数,然后从大到小输出。(笔试)
- package test;
- import java.util.Arrays;
- import java.util.Comparator;
- import java.util.Scanner;
- 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;
- }
- });
- System.err.println(Arrays.toString(arr));
- }
- }
自己手写排序算法的可以无视此题,如果是Arrays.sort()的,请注意Comparator与Comparable接口的区别,别搞混了。
8、下面代码的结果是什么?
- 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() {
- System.err.println("test");
- }
- }
- class Base {
- public void method() throws InterruptedException {
- System.err.println("base");
- }
- }
9、以下代码的结果是什么?
- package test;
- public class Test extends Base {
- public static void main(String[] args) {
- new Test().method();
- }
- public void method() {
- System.err.println(super.getClass().getName());
- System.err.println(this.getClass().getSuperclass().getName());
- }
- }
- class Base {
- }
10、true or false?
- package test;
- public class Test {
- public static void main(String[] args) {
- String str1 = new String("abc");
- String str2 = new String("abc");
- System.err.println(str1.equals(str2));
- StringBuffer sb1 = new StringBuffer("abc");
- StringBuffer sb2 = new StringBuffer("abc");
- System.err.println(sb1.equals(sb2));
- }
- }
11、输出的结果是什么?
- package test;
- public class Test {
- public static void main(String[] args) {
- System.err.println(new Test().method1());
- System.err.println(new Test().method2());
- }
- 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) {
- System.err.println(method());
- }
- public static boolean method() {
- try {
- return true;
- } finally {
- return false;
- }
- }
- }
12、方法m1和m2有区别吗?什么区别
- package test;
- public class Test {
- public static void main(String[] args) {
- }
- public synchronized void m1() {
- }
- public static synchronized void m2() {
- }
- }
13、true or false?理由
- package test;
- public class Test {
- public static void main(String[] args) {
- Integer i1 = 127;
- Integer i2 = 127;
- System.err.println(i1 == i2);
- i1 = 128;
- i2 = 128;
- System.err.println(i1 == i2);
- }
- }
14、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");
- System.err.println(str1 == str2);
- System.err.println(str1 == str3);
- str3 = str3.intern();
- System.err.println(str1 == str3);
- }
- }
15、true or false?理由
- package test;
- public class Test {
- public static void main(String[] args) {
- System.err.println(12 - 11.9 == 0.1);
- }
- }
16、以下代码输出是什么?
- package test;
- import java.math.BigInteger;
- 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);
- System.out.println(sum.toString());
- }
- }
17、输出的结果是什么?12345?根据单词排序?还是?
- package test;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.Set;
- 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();) {
- System.err.println(it.next());
- }
- }
- }
18、如何迭代Map容器,别所大概是......,手写个试试?
19、以下代码输出的结果(笔试选择题)
- public class Test {
- public static void main(String[] args) {
- System.err.println(args.length);
- }
- }
- /*
- A. null B. 0 C. Test
- D. Exception in thread "main" java.lang.NullPointerException
- */
20、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。
- public class Test {
- public Test instance = null;
- public static Test getInstance() {
- if (instance == null) {
- instance = new Test();
- return instance;
- }
- }
- }