收到山大地纬公司的笔试邀请,题命名出的比较基础,比较简单。
但是做的时候仍有些题目不是百分百确定,特此记录一下,巩固和复习一下自己的基础知识
单项选择
下面概念中,不属于面向对象方法的是()
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));
}
}
原文摘自流年锦时。