2023年8月25日
北京
píng lán kē jì
答案仅供参考,博主仅记录发表,没有实际查询,不保证正确性。
面试题:
一.选择题
1.下面哪些是不合法的标识符
A.$persons B.TwoUsers C.*point D._endline
2. 下列语句执行后,k的值为
int1=6,j=8,k=10,m=7;if(l@>jm>k++))k++;
A.12 B.11 C.10 D.9
3.关于下列程序段的输出结果,正确的是
public cass MyCass(
static int i;
public static void main(String argv[]){
System.outprintin(i);
}}
A.有错误,变量i没有初始化 B.null C.1 D.0
4.欲构造ArrayList 的一个实例,此类继承 Lst 接口下列哪个方法是正确的?A.ArrayList mylist = new Object()
B.LIst mylist = new ArayList()
C.ArayList myLIst = new List()
D.List myList = new List()
5.下列哪个类声明是正确的?
A.abstract final dass HI{...}
B.abstract private move(){...}
C.protected private number;
D.public abstract class Car{...}
6.下列叙述中,错误的是
A.接口与类的层次无关
B.通过接口说明类所实现的方法
C.通过接口可了解对象的交互界面
D.接口与存储空间有关
7.下列代码的执行结果是:
public dass Test5(
public static void main(String argv[]){
String s1 = new String("hello");
String s2 = new String("hello");
System.outprint(s1==s2);
System.out.print(",");
System.out.print(s1.equals(s2));
}}
A.ture,false B.true,true
C.false,true D.false,false
8.下列说法正确的是为()
A.在java 中类和接口是都多继承的
B.在java 中一个类只能实现一个接口
C.在 java 中一个类不能同时继承一个类和实现一个结构
D.java的单一继承使代码更可靠
9.下面一段程序第十行的声明将通用哪行的方法()
1}class Person{
2}public vold printValue(int l,int j){/*...*/}
3}public void printValue(int i){/*...*/}
4}}
5}publlc dass Teacher extends Person(
6}public void printValue(){/*...*/}
7}public void printValue(int i){/*...*/}
8}public static vold main(String args[]){
9}Person t = new Teacher();
Teacher t1 = new (Teacher)Person();
10}tprintValue(10);
11}}
12}}
A.第2行
B.第1行
C.第6行
D.第7行
10.下列说法正确的有()
A.在类方法中可用this 来调用本类的类方法
B.在类方法中调用本类的类方法是可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
11.下列不正确的有()
A.call by value不会改变实际参数的数值
B.call by reference 能改变实际参数的参考地址
C.call by reference不能改变实际参数的参考地址
D.call by reference能改变实际参数的内容
12.下列说法正确的是()
A.数组是一种对象
B.数组属于一种原生类
C. int number[] = {31,23,33,43,35,63}
D.数组的大小可以任意改变
13.阅读下列代码
public class Test{
private static int j = 0;
private static boolean methodB(int k){
j+= k;
return true;
}
public static void methodA(int i) {
boolean b;
b =i< 10 | methodB(4);
b =i < 10 ll methodB(8);
}
public static void main(String[] args)
{
methodA(0);
System.out.printin(j);
}
}
正确的说法是:()
A.The program prints "0"
B. The program prints "4"
C. The program prints "8"
D.The code does not complete
14.假设部Tomcat 服务器上的 helloapp应用中有一个hello.jsp,它的文件路径如下:%CATALINA_HOME%/webapps/heloapp/hello/hello.jsp 如果Tomcat 采用默认配置,那么在浏览器端访问 hello.jsp 的 URL 是什么?()A.http://localhost:8080/hello.jsp
B.http://localhost:8080/helloapp/hello.jsp
C.http://localhost:8080/helloapp/hello/hello.jsp
D.http://ocalhost:8080/elloapp/helloapp/hello.jsp
15.在MVC体系架构中,承担显示功能(VIEW 层)的组件是:()
AJSP
B.JavaBean
C.Servlet
D.JDBC
16.下面哪个函数是public void example(){...}的重载函数?()
A. public void example(int m){...}
B. public void example(){...}
C. public vold example2(){...}
D. public void example2(int m,float f){...}
17.已知如下代码:
switch(m){
case 0:System.out.printn("Condition 0");
case 1:System.outprintin("Condition 1");
case 2:System.out.printin("Condition 2");
case 3:System.out.printin("Condition 3");
break;
default:System.out.printin("Other
Condition");
}
当m的值为什么时输出”Condition 2”?
A.4
B.1
C.None
D.3
18.以下哪个方法用于定义线程的执行体 ?
A.start() B.init() C.run() D.main()
19.下段代码的输出值为( )
public class Test(
vold printValue(int m){
do{
System.out.println("The Value
is"+m);
}while(-m>10);
}
public static void main(String[] args){
int i=10;
Test t = new Test();
tprintValue(i);
}
}
A. The Value is8
B. The Value is9
C. The Value is10
D. The Value is11
20.下列语句哪一个正确()
A.Java 程序经编译后会产生 machine code
B.Java 程序经编译后会产生 byte code
C.Java 程序经译后会产生 DLL
D.以上都不正确
21.典型的JDBC程序按( )序编写(排序)
A.释放资源
B.获得与数据库的物理连接
C.执行SQL命令
D.注册JDBC Driver
E.创建不同类型的 Statement
F.如果有结果集,处理结果集
22.请编写一个Java类Testjava,求出100以内既能被 2除又能被 3 除的数,并输出到控制台上。
23.有3个表:
Employee职工(工号,姓名,性别,年龄,部门(num,name,sex,age,departmentno )Wage 工资(编号,工资金额)( No,amount)
Attend出勤(工号,工资号,出勤率)( num,No,attendance )请根据要求,编写相应的 SQL语句
(1) 写一个SQL语句,查询工资金额为 8000的职工工号和姓名
(2) 写一个SQL语句,查询职工张三的出勤率
(3) 写一个SQL语句,查询出勤率为 10并且工资金额小于 2500 的职工信息。
24.String 类是否可以继承?为什么?
25.请给出至少2个常见运行时异常。
答案:
1C 2A 3C 4A 5D 6D 7C 8B 9C 10B 11C 12A 13A 14B 15A 16A 17C 18C 19C 20B 21BCEFA
22.
public class TestJava {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0 && i % 3 == 0) {
System.out.println(i);
}
}
}
}
23
(1) 写一个SQL语句,查询工资金额为 8000的职工工号和姓名
SELECT E.工号, E.姓名
FROM Employee E
JOIN Wage W ON E.工号 = W.编号
WHERE W.工资金额 = 8000;
(2) 写一个SQL语句,查询职工张三的出勤率
SELECT A.出勤率
FROM Attend A
JOIN Employee E ON E.工号 = A.工号
WHERE E.姓名 = '张三';
(3) 写一个SQL语句,查询出勤率为 10并且工资金额小于 2500 的职工信息
SELECT E.*
FROM Employee E
JOIN Wage W ON E.工号 = W.编号
JOIN Attend A ON A.工号 = E.工号 AND A.工资号 = W.No
WHERE A.出勤率 = 10 AND W.工资金额 < 2500;
24.在Java中,String类是不可继承的,原因如下:
1. String类被设计为不可变(immutable)的:String对象一旦创建,其值就不能被修改。这种不可变性是通过将String类中的字符数组声明为final来实现的。如果String类可以被继承,子类可能会改变字符串的值或状态,违反了String类的设计初衷。
2. 安全性和线程安全性考虑:由于字符串的不可变性,它们可以在多个线程之间共享,而无需担心数据被修改。如果String类可以被继承并修改,那么可能会破坏线程安全性,导致潜在的并发问题。
3. API设计决策:Java的设计者有意将String类声明为final,以避免继承带来的复杂性和潜在的问题。String类提供了丰富的方法和操作符用于处理字符串,使得继承String类的需求相对较少。
总结起来,String类的不可变性、安全性和API设计决策是阻止其被继承的主要原因。
25.
NullPointerException(空指针异常):当尝试访问一个空对象的成员或调用空对象的方法时,会抛出空指针异常。例如,在没有初始化的情况下使用了一个对象引用,或者调用了一个返回空值的方法。
ArrayIndexOutOfBoundsException(数组越界异常):当尝试访问数组中不存在的索引位置时,会抛出数组越界异常。例如,如果数组长度为5,但我们尝试访问索引为6的元素,就会导致数组越界异常。
ClassCastException(类转换异常):当试图将一个对象强制转换为不兼容的类型时,会抛出类转换异常。例如,当尝试将一个父类对象转换为子类类型时,如果实际对象类型与转换的目标类型不匹配,就会抛出该异常。
请注意,以上答案仅供参考,博主仅记录发表,不保证正确性。
原题:
下课。