某公司的java笔试题,来测测你的基础如何吧

这是一套提供给中级以上程序员使用的笔试题:

1。

public class Test {

	public static boolean get() {
		try {
		       return  false;
		} finally {
		       return  true;
		}
	}
	
	public static void main(String[] args) {
		System.out.println(get());
                }
}

 

求打印结果?

2。以下哪些变量名的定义是不合法的?

String a , a.b , 0a , _a , a_ , a0 ;

 

3。

public static void main(String[] args) {
         String classPath = "java.lang.String";
         System.out.println(classPath.replaceAll(".", "/"));
}

 

求打印结果?

4。

public static void main(String[] args) {
         StringBuilder sb = new StringBuilder();
         switch(1) {
	case 1 : sb.append("Hello a");
	case 2 : sb.append("b");
	case 3 : sb.append("c");
	default : sb.append("d");
          }
          System.out.println(sb.toString());
}

 求打印结果?

5。

public class Increment {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 100; i++)
            j = j++;
        System.out.println(j);
    }
}

 

求打印结果?

6。

public class HelloGoodbye {
    public static void main(String[] args) {
        try {
            System.out.println("Hello world");
            System.exit(0);
        } finally {
            System.out.println("Goodbye world");
        }
    } 
}

 

写出打印结果并给出简单描述。

7。

import java.util.*;

public class DatingGame {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        cal.set(1999, 12, 31); // Year, Month, Day
        System.out.print(cal.get(Calendar.YEAR) + " ");

        Date d = cal.getTime();
        System.out.println(d.getDay());
    }
}

 

写出打印结果?

 

。。。。。。

总共20多个题吧,太多了,后续再加上

主要还有涉及内部类、异常处理、final方法、final域、浮点数的精度问题、集合类HashMap、HashSet的操作,泛型、包装类、char、short和int值的混合计算、静态变量和方法的初始化(类的初始化)

接口和抽象类的区别,还有写sql的,比较简单。

另外,有两个上机笔试题,上机测试是在笔试通过之后才有的流程,二选一

1。 编写一个类,将指定路径下的所有文件的名称打印出来(递归方法)

2。 给你一个文本文件,请找出文件中数据的规律,并且将指定日期范围内的数据列表抽取出来(io操要比较熟悉)

记不起来了,以上是我在机器里跑了一遍的,拿过来跟大家分享下

写了这么多,好辛苦啊,希望朋友们别抨我口水哈,欢迎投精,我会继续补充剩下的那些笔试题的。

展开阅读全文

测测你对java内存的理解

12-05

java的内存大致划分:rn栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。rn堆:存放用new产生的数据rn静态域:存放在对象中用static定义的静态成员rn常量池:存放常量rn试试下面的题目,并且给出分析rn1.rnString str1 = "abc";rn  String str2 = "abc";rn  System.out.println(str1==str2); rn2.rn String str1 =new String ("abc");rn  String str2 =new String ("abc");rn  System.out.println(str1==str2); rn3.rnString s0="kvill";rn  String s1="kvill";rn  String s2="kv" + "ill";rn  System.out.println( s0==s1 );rnSystem.out.println( s0==s2 );rn4.rnString s0="kvill";rn  String s1=new String("kvill");rn  String s2="kv" + new String("ill");rn  System.out.println( s0==s1 );rn  System.out.println( s0==s2 );rn  System.out.println( s1==s2 );rn5.rnString s0= "kvill";rn  String s1=new String("kvill");rn  String s2=new String("kvill");rn  System.out.println( s0==s1 );rn  System.out.println( "**********" );rn  s1.intern();rn  s2=s2.intern(); //把常量池中"kvill"的引用赋给s2rn  System.out.println( s0==s1);rn  System.out.println( s0==s1.intern() );rnSystem.out.println( s0==s2 );rn6.rnString s1=new String("kvill");rn  String s2=s1.intern();rnrn  System.out.println( s1==s1.intern() );rn  System.out.println( s1+" "+s2 );rn  System.out.println( s2==s1.intern() );rn7.rnfinal StringBuffer a = new StringBuffer("111");rn  final StringBuffer b = new StringBuffer("222");rn  a=b;//此句编译不通过rn  final StringBuffer a = new StringBuffer("111");rn  a.append("222");// 编译通过rn8.rnString a = "a1";rn  String b = "a" + 1;rnSystem.out.println((a == b)); rnString a = "atrue";rn  String b = "a" + "true";rnSystem.out.println((a == b)); rnString a = "a3.4";rn  String b = "a" + 3.4;rn  System.out.println((a == b)); rn9.rnString str1 = "ab";rn  String str2 = "b";rn  String str = "a" + str2;rnSystem.out.println((str1 == str));rn10.rnString a = "ab";rn  final String bb = getBB();rn  String b = "a" + bb;rn  System.out.println((a == b)); rn  Public static String getBB() return "b"; rn11.rnpublic class Test4 rn  private static String a = "ab";rn  public static void main(String[] args)rn  String s1 = "a";rn  String s2 = "b";rn  String s = s1 + s2;rn  System.out.println(s == a);rn  System.out.println(s.intern() == a);rn  rn  rn 论坛

测测你的算法设计能力

09-24

请写出下面两题的C++实现:rnProblem A:Euclid's Game(欧几里德游戏)rnrn题目的大意为:在 一块板上一开始写有两个不相等的正整数。两个玩家交替写数字,每一次,当前玩家都必须在板上写出任意两个板上数字的差,而且这个数字必须是新的,也就是 说,不能与板上任何一个已有的数字相同。当玩家再也写不出新数字时,他就输了。假设有A、B两个玩家,A先写,B后写。对于给定的两个数字,写程序判断是 A赢还是B赢。rnrn  提示:A赢还是B赢的关键是找出能写在板上的数字的个数,如果是奇数个数字可写,则A赢, 如果是偶数个,则B赢。能写在板上的数字个数刚好可以用欧几里德算法(GCD)得到,假设开始数板上的两个数字为M和N,且M>N,则能写在板上的 数字个数=M/GCD(M,N),因此,只需要判断该数字的奇数还是偶数即可。(算法略) rnrnrnProblem B:Locker doors(带锁的门)rnrn题目大意:在 走廊上有n个带锁的门,从1到n依次编号。最初所有的门都是关着的。我们从门前经过n次,每一次都从1号门开始。在第i次经过时(i=1,2,..., n)我们改变i的整数倍号锁的状态:也就是如果门是关的,就打开它;如果门是打开的,就关上它。举例来说,第一次经过后,所有的门都是打开的;第二次经过 后,偶数门是关着的,奇数门是开着的;以此类推,在最后一次经过后,有多少门是开着的。rnrn提示:门的状态只有两 种,没经过一次,状态就会发生变化。如果一道门经过奇数次,那么结果状态和原始状态就会不一样,而经过偶数次则不会发生变化。因此问题的关键就是找出那些 经过奇数次的门有多少道。很幸运,那些门的编号正好是整数i的完全平方数即1,4,9,16,...,因此只需要找出这样的数字有多少个即可。(算法略) rn 论坛

没有更多推荐了,返回首页