Java面精彩试题(带问题详解)
世杰Java工程师面试题
选择题:
单选题
1,以下java程序代码,执行后的结果是( )
java.util.HashMap map=newjava.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.size());
A: 0 B: null C: 1 D: 2
答案:C
2,执行以下程序后的输出结果是( )
Public class Test {
Public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operator(a, b);
System.out.println(a +","+ b);
}
Public static void operator(StringBuffer x, StringBuffer y) { x.append(y); y = x;
}
}
A: A,A B: A,B C: B,B D: AB,B
答案:D
3,关于依赖注入,下列选项中说法错误的是( )
A:依赖注入能够独立开发各组件,然后根据组件间关系进行组装
B:依赖注入使组件之间相互依赖,相互制约
C:依赖注入提供使用接口编程
D:依赖注入指对象在使用时动态注入
答案:B
4,关于spring说法错误的是( )
A: spring是一个轻量级JAVA EE的框架集合
B: spring是“依赖注入”模式的实现
C: 使用spring可以实现声明事务
D: spring提供了AOP方式的日志系统
答案:D
5,要在session对象中保存属性,可以使用以下哪个语句( ) A: session.getAttribute(“key”,”value”)
B: session.setAttribute(“key”,”value”)
C: session.setAttribute(“key”)
D: session.getAttribute(“key”)
答案:B
6,关于以下程序代码的说明正确的是?( )
Public class HasStatic{
Private static int x = 100;
Public static void main(String args[]){
HasStatic hs1= new HasStatic();
hs1.x++;
HasStatic hs2= new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x--;
System.out.println("x="+x);
}
}
A: 程序通过编译,输出结果为:x=103
B: 10行不能通过编译,因为x是私有静态变量
C: 5行不能通过编译,因为引用了私有静态变量
D: 程序通过编译,输出结果为:x=102
答案:D
7,以下哪一项不是使用mvc模式设计的web应用程序所具有的优点( ) A:可维护行强
B:可扩展性强
C:代码重复少
D:大大减少代码量
答案:D
8,在 myjsp.jsp 中,关于下面的代码说法错误的是: ( )
<% page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>
A: 该页面可以使用 exception 对象
B: 该页面发生异常会转向 error.jsp
C: 存在 errorPage 属性时,isErrorPage 是默认为 false
D: error.jsp 页面一定要有isErrorPage 属性且值为 true
答案:A
9,关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是()A:它负责接收HTTP请求
B:加载配置文件
C:实现业务操作
D:初始化上下应用对象ApplicationContext
答案:C
10,下面的类图表示的是哪个设计模式?( )
A:代理模式(Proxy)
B:装饰模式(Decorator)
C:桥接模式(Bridge)
D:观察者模式(Observer)
答案:D
11,java如何接受request域中的参数? ( )
A: request.getRequestURL()
B: request. getAttribute()
C: request.getParameter()
D: request.getWriter()
答案:C
12,对下面Spring声明式事务的配置含义的说明错误的是( )
"org.springframework.transaction.interceptor.TransactionProxyFact oryBean">
A:定义了声明式事务的配置模板
B: 对get方法采用只读事务
C: 缺少sessionFactory属性的注入
D: 配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:
答案:C
13,下面的输出结果是什么?( )
Public class Demo {
Public static void main(String args[]){
String str = new String("hello");
if(str=="hello"){
System.out.println("true");
}else{
System.out.println("false");
}
}
}
A: true
B: false
C:编译不通过
D:执行报错
答案:B
14,下面属于java合法变量定义的是?( )
A: final
B:1var1
C: _var2
D: var3&
答案:C
15,下面有关JSP置对象的描述,说法错误的是?( )
A: session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
B: request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应
C: application对象:application对象实现了用户间数据的共享,可存放全局变量,可以有多个
D: response对象:response对象包含了响应客户请求的有关信息
答案:C
16,Please choice the output result ( )
public class Test
{
Public static void changeStr(String str)
{
str ="welcome";
}
Public static void main(String[] args)
{
String str ="1234";
changeStr(str);
System.out.println(str);
}
}
A: 1234
B: welcome
C: 空
D: 不确定
答案:A
17,for(i=0;i<10;++i,sum+=i);i的最终结果是?( ) A: 10
B: 9
C: 11
D: 以上答案都不正确
答案:A
18,对于下面这段代码,以下说确的是:( )
Public class Test
{
Public int x;
Public static void main(String args[]
{
System. out. println("Value is"+ x);
}
}
A: 程序会打出 "Value is 0"
B: 程序会抛出 NullPointerException
C: 非静态变量不能够被静态方法引用
D: 编译器会抛出 "possible reference before assignment"的错误
答案:C
19,HashMap和HashTable的描述,错误的是? ( )
A: 他们都实现了Map接口。
B: HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。
C: HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
D: 通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。
答案:D
20,在Web应用程序的文件与目录结构中,web.xml是放置在( )中。
A: WEB-INF目录
B: conf目录
C: lib目录
D: classes目录
答案:A
多选题
21,下面有关java的instanceof、?、&、&&说确的有?( )
A: instanceof :用来判断某个实例变量是否属于某种类的类型。
B: ?:三目运算符
C: &:位运算:按位与
D: &&:逻辑运算:逻辑与
答案:A B C D
22,下面哪些属于java的基本数据类型? ( )
A: byte
B: string
C: boolean
D :void
答案:A C
23,判断下列数据类型转换的正确选项( )
A: int i=0;object o1=i;object o2=(object)i;
B: int i=0;object o=i;int i1=o;int i2=(object)o;int i3=(int)o;
C: int i=0; long l1=i;long l2=( long)i;
D: int i=0; object o1=i;long l1=( int)o1;long l2=(long)o1;
答案:A C
24,在Java中,关于HashMap类的描述,以下正确的是 ( ) A: HashMap使用键/值得形式保存数据
B: HashMap 能够保证其中元素的顺序
C: HashMap允许将null用作键
D: HashMap允许将null用作值
E: HashMap 的长度为length
答案:A C D
25,下列关于JavaBean的说法错误的是( )
A: Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写B: 在JSP文件中引用Bean,其实就是用语句
C: 被引用的Bean文件的文件名后缀为.java
D: Bean文件放在任何目录下都可以被引用
答案:B C D
简答题:
Java 简答题
1.以下语句是否能正确执行?
abstract class Name
{
private String name;
public abstract boolean isStupidName(String name) {} }
答案: 错。abstract method必须以分号结尾,且不带花括号。
2.以下语句是否能正确执行?
public class Something
{
void doSomething ()
{
private String s = "";
int l = s.length();
}
}
答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量
3.以下语句是否能正确,如果正确输出是什么?
class Something
{
int i;
public void doSomething()
{
System.out.println("i = " + i);
}
}
答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。
4:如何将String类型转化成Number类型?请用代码说明答案:Integer类的valueOf方法可以将String转成Number。下面是代码示例:?
1 2 String numString = “1000”;
intid=Integer.valueOf(numString).intValue();
5,如何交换两个变量的值?请用代码说明
答案:先把两个值相加赋值给第一个变量,然后用得到的结果减去第二个变量,赋值给第二个变量。再用第一个变量减去第二个变量,同时赋值给第一个变量。代码如下:
inta=5,b=10;a=a+b; b=a-b; a=a-b;
SQL简答题:
Student(S#,Sname,Sage,Ssex) 学生表
S#:学号;Sname:学生;Sage:学生年龄;Ssex:学生性别
Course(C#,Cname,T#) 课程表
C#,课程编号;Cname:课程名字;T#:教师编号
SC(S#,C#,score) 成绩表
S#:学号;C#,课程编号;score:成绩
Teacher(T#,Tname) 教师表
T#:教师编号; Tname:教师名字
问题1、查询”001”课程比”002”课程成绩高的所有学生的学号;
答案: select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
from SC where C#='002') b
where a.score>b.score and a.s#=b.s#;
问题2、查询平均成绩大于60分的同学的学号和平均成绩;
答案: select S#,avg(score)
from sc
group by S# having avg(score) >60;
问题3、查询所有同学的学号、、选课数、总成绩;
答案: select Student.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC on Student.S#=SC.S#
group by Student.S#,Sname
问题4、查询所有课程成绩小于60分的同学的学号、;
答案: select S#,Sname
from Student
where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);
问题5、删除“002”同学的“001”课程的成绩 ;
答案: delete from Sc where S#='002'and C#='001';
JS简答题:
1:实现函数,输出九九乘法表。
参考答案:
window.onload = function(){
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
document.write(i+"x"+j+"="+i*j +" ");
}
document.write("
")
}
};
2,编写一个方法去掉一个数组的重复元素
例子数组:var arr=["abc",85,"abc",8,8,1,2,5,85,4,7,8];
参考答案: