这段时间的一些笔试题。

ifvlr 2013-10-24 08:19:47
这段时间校招的高峰期,参加了各种笔试。。感觉做多了题目好多都一样。在这个贴里贴一下我最近做过的一些笔试题,可能不全,或者说得有误的地方,毕竟题目是全凭映像记下来的。当然不是今天一天的咯。
1,TreeMap,HashMap,hashtable key和value的区别(是key和value的区别,不是他们的区别)。

2,解释内部类与匿名内部类!

3,XML JSON区别

4,NoSQL是什么?

5,解释 Ant,Maven,AOP,DI,BI,REST。

------------------------------------------------------------
2013年10月20日 今天新浪Java系统工程师考试的几个题
6,Linux线程通信的方法又哪些?原理是啥?
7,动态语言像java,js存在内存泄露么?原理是什么?(可能描述不准)
8,有四条记录,两条重复的,如何去除重复记录在数据库表中。
(这个题特别求解)
1 a
2 a
3 b
4 b
如何删掉重复数据只留下1a,3b 或者2a,4b。

9,用java 实现遍历树的广度优先。
10,用java实现重复字符串剔除,但顺序不变。
11,有一个数组,有一个数x,是否存在数组中两个数之和等于x。
-------------------------------------------------------------
12 JVM加载class文件的机制

还有各种算法题。算法是我的硬伤,上次酷派考的题就是5道算法,卷子一发下来就像交卷了。。
这段时间在猛补算法,从最简单的二分法开始,对了上次考了一道 列出C盘test目录下的所有文件(这个知道要用递归,但是也忘记怎么做了) 算法不熟真是硬伤啊。。。题目少,分数高。。

各位还在学校的同学,好好补习一下算法和数据结构吧,笔试时真心有用

...全文
918 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
旁观者吗 2013-11-05
  • 打赏
  • 举报
回复
java当然有内存泄露了,给你们个内存溢出的代码看看。如果没有抛出OutOfMemoryError,则调小你的jvm内存。

String s = "ssssssssss";
for (int i = 0; i < 10; i++) {
	s += s;
}

String[] sb = new String[10000]; 
for (int i = 0; i < 10000; i++) {
	s = s + i;

        //这里是(1),下面没注释的是(2),注释(1)运行(2)与注释(2)运行(1)
        //正常理解最终sb数组里应该是一样的,但。。自己运行看吧。
	//String b= String.valueOf(i);

        //(2)
	String b = null;
	if(i<10)
		b = s.substring(s.length()-1);
	else if(i<100)
		b = s.substring(s.length()-2);
	else if(i<1000)
		b = s.substring(s.length()-3);
	else if(i<10000)
		b = s.substring(s.length()-4);
	else
		throw new RuntimeException();
	sb[i]=b;
}
你们说为什么
Mourinho 2013-10-31
  • 打赏
  • 举报
回复
引用 26 楼 zyc13701469860 的回复:
11,有一个数组,有一个数x,是否存在数组中两个数之和等于x。

static boolean isExistedSum(int num, int[] arr) {
		HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
		for (int i : arr) {
			if (!map.containsKey(i)) {
				map.put(i, 1);
			} else {
				map.put(i, map.get(i) + 1);
			}
		}
		for (int i : arr) {
			int value = num - i;
			if (map.containsKey(value)) {
				if (num != 2 * value)
					return true;
				return map.get(value) == 2;
			}
		}
		return false;
	}
最后一个判断条件写错了,应该是>=2

static boolean isExistedSum(int num, int[] arr) {
		HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
		for (int i : arr) {
			if (!map.containsKey(i)) {
				map.put(i, 1);
			} else {
				map.put(i, map.get(i) + 1);
			}
		}
		for (int i : arr) {
			int value = num - i;
			if (map.containsKey(value)) {
				if (num != 2 * value)
					return true;
				return map.get(value) >= 2;
			}
		}
		return false;
	}
Mourinho 2013-10-31
  • 打赏
  • 举报
回复
11,有一个数组,有一个数x,是否存在数组中两个数之和等于x。

static boolean isExistedSum(int num, int[] arr) {
		HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
		for (int i : arr) {
			if (!map.containsKey(i)) {
				map.put(i, 1);
			} else {
				map.put(i, map.get(i) + 1);
			}
		}
		for (int i : arr) {
			int value = num - i;
			if (map.containsKey(value)) {
				if (num != 2 * value)
					return true;
				return map.get(value) == 2;
			}
		}
		return false;
	}
tanshulin520 2013-10-31
  • 打赏
  • 举报
回复
tableName:T id name 1 a 2 b 3 a 4 b delete T where name in (select name from T group by id having count(name)>1) 第四题
  • 打赏
  • 举报
回复
我怎么好多都没有做过啊,也在笔试中
另一花生 2013-10-28
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
做多了就感觉各个公司的笔试题都那么大同小异。。 第四题我还真不会, 第五题 Ant,DI,BI,REST。不懂。 第七题很有意思,我不确定,感觉不会存在,因为内容已经被java封装好了。我们并不是直接的去使用内存地址。。
我想说我一道也不会= = 而且我已经大三了,虽然说考研但是也不见得考上= =
明缘 2013-10-28
  • 打赏
  • 举报
回复
Mark,不错。
ifvlr 2013-10-28
  • 打赏
  • 举报
回复
引用 15 楼 u011774076 的回复:
第七题 是存在内存泄露的! 《Effective java》这本书里也明确说了! 假如一个数组里面存放的是对象的引用,你可以向数组里删除和添加元素! 当你删除元素的时候只是做了 Arrays[size--] 而没有执行Arrays[size] = null的话 java垃圾回收机制是不会回收你“删除”的对象 因为它的引用并没有置空.. 这种情况下你想想 是不是内存就泄露了?
昨天没有回复成功,CSDN说不能连续回复三次,蛋疼了。。 您说的我有了解,也在李刚的疯狂Java一书中看到过,不过考试的时候忘记回答了。。非常感谢您的点醒。。
ifvlr 2013-10-28
  • 打赏
  • 举报
回复
引用 19 楼 qq14344545 的回复:
只会 1 6 8 9 11 的大二学生飘过
大神啊,大二就会这么多了。。不要忘记了,到时候校招考试有用的。。
qq14344545 2013-10-28
  • 打赏
  • 举报
回复
只会 1 6 8 9 11 的大二学生飘过
ifvlr 2013-10-27
  • 打赏
  • 举报
回复
引用 14 楼 rainbowsix 的回复:
[quote=引用 6 楼 ifvlr 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 做多了就感觉各个公司的笔试题都那么大同小异。。 第四题我还真不会, 第五题 Ant,DI,BI,REST。不懂。 第七题很有意思,我不确定,感觉不会存在,因为内容已经被java封装好了。我们并不是直接的去使用内存地址。。
NoSQL回来查了一下,是非关系型数据库。。 第五题的BI,REST没有听过,其他的有两个是Spring的东西,Ant ,Maven听说过,没用过,也不知道是啥。 第七题我是回答不存在,但是可能是由Java引起的泄露,如io流不关闭。实际是Java调用C语言的API,而C不能自己释放内存,所以可能引起泄露。。 其它题太多和数据结构有关了。 当然还有各种选择题就没有列出来了。。[/quote] Java调用C的API 造成的泄漏根本就不能算是java的泄漏。 正确的答案是 使用静态容器,然后只add 没有remove[/quote] 原来是这样。 我的说法也只是网上看来的,感觉也说的有道理,但是并不知道到底是如何实现的。。非常感谢了~
ifvlr 2013-10-27
  • 打赏
  • 举报
回复
引用 13 楼 ygycomon 的回复:
[quote=引用 6 楼 ifvlr 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 做多了就感觉各个公司的笔试题都那么大同小异。。 第四题我还真不会, 第五题 Ant,DI,BI,REST。不懂。 第七题很有意思,我不确定,感觉不会存在,因为内容已经被java封装好了。我们并不是直接的去使用内存地址。。
NoSQL回来查了一下,是非关系型数据库。。 第五题的BI,REST没有听过,其他的有两个是Spring的东西,Ant ,Maven听说过,没用过,也不知道是啥。 第七题我是回答不存在,但是可能是由Java引起的泄露,如io流不关闭。实际是Java调用C语言的API,而C不能自己释放内存,所以可能引起泄露。。 其它题太多和数据结构有关了。 当然还有各种选择题就没有列出来了。。[/quote] bi 是商业智能,类似大数据挖掘。REST是RESTful系统级别的API设计模式 Ant是打包工具,Maven是依赖包管理工具 Java有可能引起泄露的,比如你一直持有大对象,不释放,久而久之就会造成可用内存越来越少,当然java里不像c++里内存泄露那么简单,C++里一个野指针就会泄露,java还是有可能的,纯粹看写程序的人[/quote] 学习了。。。 您懂得好多哈~有些概念还真没听说过。。
ifvlr 2013-10-27
  • 打赏
  • 举报
回复
引用 12 楼 forgetsam 的回复:
8,有四条记录,两条重复的,如何去除重复记录在数据库表中。 (这个题特别求解) 1 a 2 a 3 b 4 b 如何删掉重复数据只留下1a,3b 或者2a,4b。 select min/*max亦可*/(不重复字段) from table group by 所有重复字段 这个就是把每个重复的数据保留了一份 delete from table where 不重复字段 not in ( select min/*max亦可*/(不重复字段) from table group by 所有重复字段)
原来是这样。。非常感谢
足矣有你 2013-10-26
  • 打赏
  • 举报
回复
第七题 是存在内存泄露的! 《Effective java》这本书里也明确说了! 假如一个数组里面存放的是对象的引用,你可以向数组里删除和添加元素! 当你删除元素的时候只是做了 Arrays[size--] 而没有执行Arrays[size] = null的话 java垃圾回收机制是不会回收你“删除”的对象 因为它的引用并没有置空.. 这种情况下你想想 是不是内存就泄露了?
forgetsam 2013-10-26
  • 打赏
  • 举报
回复
8,有四条记录,两条重复的,如何去除重复记录在数据库表中。 (这个题特别求解) 1 a 2 a 3 b 4 b 如何删掉重复数据只留下1a,3b 或者2a,4b。 select min/*max亦可*/(不重复字段) from table group by 所有重复字段 这个就是把每个重复的数据保留了一份 delete from table where 不重复字段 not in ( select min/*max亦可*/(不重复字段) from table group by 所有重复字段)
无聊找乐 2013-10-26
  • 打赏
  • 举报
回复
引用 6 楼 ifvlr 的回复:
[quote=引用 1 楼 AA5279AA 的回复:] 做多了就感觉各个公司的笔试题都那么大同小异。。 第四题我还真不会, 第五题 Ant,DI,BI,REST。不懂。 第七题很有意思,我不确定,感觉不会存在,因为内容已经被java封装好了。我们并不是直接的去使用内存地址。。
NoSQL回来查了一下,是非关系型数据库。。 第五题的BI,REST没有听过,其他的有两个是Spring的东西,Ant ,Maven听说过,没用过,也不知道是啥。 第七题我是回答不存在,但是可能是由Java引起的泄露,如io流不关闭。实际是Java调用C语言的API,而C不能自己释放内存,所以可能引起泄露。。 其它题太多和数据结构有关了。 当然还有各种选择题就没有列出来了。。[/quote] Java调用C的API 造成的泄漏根本就不能算是java的泄漏。 正确的答案是 使用静态容器,然后只add 没有remove
wolfguy_pan 2013-10-26
  • 打赏
  • 举报
回复
引用 7 楼 ifvlr 的回复:
[quote=引用 4 楼 huxiweng 的回复:] 对了上次考了一道 列出C盘test目录下的所有文件 这个不造轮子,用dos命令 dir /s/b c: >> c:\cross\files.txt
这个题要求是程序设计。用Java写。我记得是用递归实现,但具体操作忘记了。。[/quote] 其实就是操作树,节点是directory,child为文件,list出来即可。
致知Fighting 2013-10-26
  • 打赏
  • 举报
回复
引用 6 楼 ifvlr 的回复:
[quote=引用 1 楼 AA5279AA 的回复:] 做多了就感觉各个公司的笔试题都那么大同小异。。 第四题我还真不会, 第五题 Ant,DI,BI,REST。不懂。 第七题很有意思,我不确定,感觉不会存在,因为内容已经被java封装好了。我们并不是直接的去使用内存地址。。
NoSQL回来查了一下,是非关系型数据库。。 第五题的BI,REST没有听过,其他的有两个是Spring的东西,Ant ,Maven听说过,没用过,也不知道是啥。 第七题我是回答不存在,但是可能是由Java引起的泄露,如io流不关闭。实际是Java调用C语言的API,而C不能自己释放内存,所以可能引起泄露。。 其它题太多和数据结构有关了。 当然还有各种选择题就没有列出来了。。[/quote] bi 是商业智能,类似大数据挖掘。REST是RESTful系统级别的API设计模式 Ant是打包工具,Maven是依赖包管理工具 Java有可能引起泄露的,比如你一直持有大对象,不释放,久而久之就会造成可用内存越来越少,当然java里不像c++里内存泄露那么简单,C++里一个野指针就会泄露,java还是有可能的,纯粹看写程序的人
ifvlr 2013-10-25
  • 打赏
  • 举报
回复
引用 9 楼 AA5279AA 的回复:
[quote=引用 2 楼 ifvlr 的回复:] 对了 今天还考了一个逻辑题。 有23个硬币,有10枚是正面朝上,现在你被蒙住了眼睛,而且你不能摸出正反两面,你需要把这堆硬币分成两堆,怎么保证每堆正面朝上的硬币数量相等。(大概是这个意思。。)这题何解?
随意拿出10枚,其中包含正面的各位数N 剩余的包含正面的个数为10-N 把那10枚反过来,那么包含正面的个数为10-N。 相等了。[/quote] 好吧 原来是这样的。题目也确实没说要5个正面向上。。 我以为一定要每堆都是5个正面向上,纠结了好久。。
失落夏天 2013-10-24
  • 打赏
  • 举报
回复
引用 2 楼 ifvlr 的回复:
对了 今天还考了一个逻辑题。 有23个硬币,有10枚是正面朝上,现在你被蒙住了眼睛,而且你不能摸出正反两面,你需要把这堆硬币分成两堆,怎么保证每堆正面朝上的硬币数量相等。(大概是这个意思。。)这题何解?
随意拿出10枚,其中包含正面的各位数N 剩余的包含正面的个数为10-N 把那10枚反过来,那么包含正面的个数为10-N。 相等了。
加载更多回复(8)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧