山大地纬笔试总结

收到山大地纬公司的笔试邀请,题命名出的比较基础,比较简单。

但是做的时候仍有些题目不是百分百确定,特此记录一下,巩固和复习一下自己的基础知识

单项选择
下面概念中,不属于面向对象方法的是()
A.对象、消息
B.继承、多态
C. 类、封装
D.过程调用

答案:D
[解析] 面向对象的程序设计方法,对象,方法,属性及继承与多态性。面向对象方法是—种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象,类,消息,继承等概念。

以下关于构造函数的描述错误的是 ( )
A、构造函数的返回值可以是任意类型
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同
C、构造函数的主要作用是完成对类的对象的初始化工作
D、一般在创建新对象时,系统会自动调用构造函数

答案:A
[解析]构造函数不加任何返回值,命名必须与类名一致,用于实例化类对象。

以下哪个接口的定义是正确的?( )
A、interface B
{ void print() { } ;}
B、abstract interface B
{ void print() ;}
C、abstract interface B extends A1, A2 //A1、A2为已定义的接口
{ abstract void print(){ };}
D、interface B
{ void print();}

答案:D
[解析]接口中的方法默认为public abstract,属性默认为public static final。接口中的方法不能有实现方法体,Java中类只支持单继承,而接口可以支持多继承。

A 派生出子类 B , B 派生出子类 C ,并且在 Java 源代码中有如下声明:

A a0=new A();
A a1 =new B();
A a2=new C();
问以下哪个说法是正确的? ( )

A、只有第1行能通过编译
B、第1、2行能通过编译,但第3行编译出错
C、第1、2、3行能通过编译,但第2、3行运行时出错
D、第1行、第2行和第3行的声明都是正确的

答案:D
[解析]继承具有传递性,子类可以无条件向上转型

运行下列程序,会产生什么结果()
public class X extends Thread implements Runnable {
public void run(){
System.out.println(“this is run()”);
}
public static void main(String[] args) {
Thread t = new Thread(new X());
t.start();
}
}
A、第一行会产生编译错误
B、第六行会产生编译错误
C、第六行会产生运行错误
D、程序会运行和启动

答案:D
[解析]亲测程序能运行,实现多线程既可以继承Thread类,也可实现Runnable接口

下列哪一个关键字用于实现接口来定义类? ( )  
A、extends (继承)  B、implements(实现)   C、abstract(抽象)     D、interface (接口)

答案:B
[解析]extends继承,abstract抽象,interface定义接口,implements实现接口

若在某一个类定义中定义有如下的方法:abstract void sum( );该方法属于( )
A、接口方法
B、最终方法
C、抽象方法
D、空方法

答案:C
[解析]abstract定义抽象方法

给出下面代码,关于该程序以下哪个说法是正确的?( )
public class Person{
static int arr[] = new int[5];
public static void main(String a[]) {
System.out.println(arr[0]);
}
}
A、编译时将产生错误 B、编译时正确,运行时将产生错误
C、输出零 D、输出空

答案:C
[解析]int类型数组默认初始化值为0

下列哪一个选项不属于document对象的方法?( )
A、focus()
B、getElementById()
C、getElementsByName()
D、bgColor()

答案:D
[解析]bgColor() 不属于document对象的方法

下列获取输入框值的方法正确的是( )
A、document.getElementByld(“input”).val();
B、document.getElementByld(“input’ ).value();
C、$ (”#input").val();
D、$ ("#input").value();

答案:C
[解析]获取输入框值的方法有:document.getElementByld(“input’ ).value; 和
$ (”#input").val();

SQL 语句中修改表结构的命令是()
A、MODIFY TABLE
B、MODIFY STRUCTURE
C、ALTER TABLE
D、ALTER STRUCTURE

答案:C
[解析]alter 是针对表整体,modify是对表中的某一项字段进行修改。修改表结构的操作都是用 alter table 命令来完成。

Oracle中,有一个名为seq的序列对象,以下语句能返回序列值但不会引起序列值增加的是( )
A . select seq.ROWNUM from dual
B . select seq.ROWID from dual
C . select seq.CURRVAL from dual
D . select seq.NEXTVAL from dual

答案:C
[解析]调用NEXTVAL将生成序列中的下一个序列号,CURRVAL用于产生序列的当前值,无论调用多少次都不会产生序列的下一个值。

一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是______。
A.1:M
B.1:1
C.M:1
D.M:N

答案:D
[解析] 一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是多对多的联系。

下面有关索引的描述正确的是(  ) 
A.不可以在多个列上创建复合索引。 
B.可以在多个列上创建复合索引。  
C.索引列中的数据不能重复出现。  
D.索引列中的数据必须是数值型。

答案:B
[解析] 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引)

不定项选择
下列关于java中接口的说法正确的是()
A.接口所有的方法都是public的
B.用于定义接口的关键字是expends
C.void adjust();这是一个正确的接口定义语句
D.接口类需要用interface来声明

答案:ACD
[解析] 用于定义接口的关键字是interface,接口成员方法默认修饰符为public abstract

下面正确声明一个一维数组的是()。
A . String []a
B . String a[]
C . char a[][]
D . String a[10]

答案:AB
[解析] C为二维数组,D定义长度为10的一位数组: String a[] = new String[10];

关于BufferedReader类的readLine()方法,以下说法正确的是()。
A.方法readLine( )每次读取一行数据。
B.方法readLine( )每次读取一个字节。
C.该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常。
D.如果读到流的末尾,该方法返回的结果为null。

答案:ACD
[解析] public String readLine() 读取一个文本行。通过下列字符之一即可认为某行已终止:换行 (’\n’)、回车 (’\r’) 或回车后直接跟着换行。 返回:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null 。抛出: IOException - 如果发生 I/O 错误

类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是?
(A).B x1=new B()
(B).B x1=new C()
©.C x1=new C()
(D).C x1=new B()

答案:BC
[解析]非抽象类C当然可以实例自己的对象,故C正确.
抽象父类B的对象x1也可以由非抽象的子类C来实例化,故B也正确.这种用法通常用于实现动态多态.

下列属于jsp中注释的有( )(多项选择题)
A、<%-- 与 --%>      
B、/ 
C、/** 与 **/    
D、<!- - 与 - ->

答案:AD
[解析]1.第一种注释:
这是HTML/XML的原版注释,会老老实实的发到客户端的,有什么见不得人的就别用这个写了
2.第二种注释: <%–注释内容–%>
有<% %>的东西都是写给JSP应用服务器看的,不会发到客户端的。编译器将其置之不理,html也无缘与其相见,被应用服务器打入冷宫了。这个注释感觉比较多余,不知道专门又搞一个这种注释干什么。
3.第三种注释:
<%
//当行注释
/ * * 多行注释 * /
%>

已知如下代码:
public class Test{
public static void main(String srgs[]){
int i=5;
do{
System.out.println(i);
}while(–i>5);
System.out.println(“finished”);
}
}
执行后的输出是什么()选两项
A、5
B、4
C、6
D、finished
E、None

答案:AD
[解析]do…while循环先执行一次后判断条件是否继续执行

下面哪个语句关于GROUP BY 和HAVING语句的使用是正确的?
A. SELECT JOB_ID , DEPARTMENT_ID , AVG(SALARY)
FROM EMPLOYEES GROUP BY JOB_ID HAVING AVG(SALARY) > 3000;
B. SELECT JOB_ID , DEPARTMENT_ID , AVG(SALARY)
FROM EMPLOYEES GROUP BY JOB_ID ,DEPARTMENT_ID HAVING AVG(SALARY) > 3000;
C. SELECT JOB_ID , DEPARTMENT_ID , AVG(SALARY)
FROM EMPLOYEES GROUP BY AVG(SALARY) HAVING AVG(SALARY) > 3000;
D. SELECT JOB_ID , DEPARTMENT_ID , AVG(SALARY)
FROM EMPLOYEES GROUP BY JOB_ID , DEPARTMENT_ID HAVING SALARY > 3000;

答案:A
[解析]GROUP BY 分组字段;分组之后查询的字段:分组字段、聚合函数。HAVING可以进行聚合函数的判断。

下列查询姓张的学生的语句不正确的是()
A.SELECT * FROM STUD WHERE 姓名 = “%张%”
B.SELECT * FROM STUD WHERE 姓名 LIKE “张”
C.SELECT * FROM STUD WHERE 姓名 LIKE “张%”
D.SELECT * FROM STUD WHERE 姓名 = “张”

答案:ABD
[解析]在WHERE子句中可以使用查询条件谓词LIKE实现字符匹配。谓词LIKE的一般形式为“列名 LIKE字符串常数”,其中的列名的数据类型必须是字符型,在字符串常数中可以使用一些特殊字符来匹配字符。字符%(百分号)表示可以和任意长的字符串匹配。

以下说法正确的是()
A、Spring是一个轻量级框架,大大简化了java企业级开发
B、Spring是企业级应用开发的一站式选择,可以取代其他已有框架
C、Spring框架最基本的部分是Spring Core模块,提供Ioc和依赖注入
D、Spring AOP是基于Spring Core的符合规范的面向切面编程的实现

答案:ACD
[解析]Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

打开名一个新窗口的 JavaScript 语法是? ( )
A、open(“http: //www.dfrge.cn”)
B、new.window(“http:// www.dfrge.cn”) 
C、new(“http:// www.dfrge.cn”)
D、window.open(“http:// www.dfrge.cn”)

答案:AD
[解析]open() 方法可以查找一个已经存在或者新建的浏览器窗口。

程序题
1、阅读下面程序,写出程序运行结果:
public class abc {
public static void main(String args[]) {
int i,s = 0 ;
int a[ ] = { 10 ,20 ,30 ,40 ,50 ,60 ,70 ,80 ,90 };
for ( i = 0 ; i < a.length ; i ++ ){
if ( a[i]%3 == 0 ) {
s += a[i] ;
}
}
System.out.println(“s=”+s);
}
}

2、阅读下面程序,写出程序运行结果:
public class Father{  
int a=100;  
public void miner(){ 
 a–;  
}
public static void main(String[] args){
Son y = new Son();  
System.out.println(y.a);  
System.out.println( y.getA());  
y.miner(); 
System.out.println(y.a);
System.out.println(y.getA());
}
}
class Son extends Father{  
int a = 0;
public void plus(){    
a++;  
}
public int getA() {  
return super.a;  
}

答案:
第一题:180
第二题:
0
100
0
99
每个继承了父类的子类,对变量的修改仅限于自身,不会影响到父类的变量值。
父类与子类定义同名的变量,并不会覆盖,而是各自还有自己的空间,即使变量名相同,子类中调用父类的对同名变量赋值的方法,仍然只是改变自己实例出来的父类的变量值。也就是说:子类实例出来的父类 与 一开始的父类 不相互影响 。

输入年月日(yyyyMMdd),判断是一年中的第几天

public class aaa {
	public static void main(String[] args) throws ParseException {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入年月日:");
		String d = sc.next();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		Date date = sdf.parse(d);
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		System.out.println(c.get(Calendar.DAY_OF_YEAR));
	}
}

原文摘自流年锦时

发布了113 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_42006733/article/details/105095734