23.What is the result?____________
public class Foo {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a + "." + b);
}
static void operate(StringBuffer x, StringBuffer y){
x.append(y);
y=x;
}
}
A. The code compiles and prints “A.B”
B. The code compiles and prints “A.A”
C. The code compiles and prints “AB.B”
D. The code compiles and prints “AB.AB”
StringBuffer是可变的字符串类,operate方法接受的是StringBuffer对象引用的复制,原始引用并未改变(基本类型传递是值的复制,对象传递是引用的复制),方法运行完后该复制自动消失,打印的是原始引用的对象信息,这里对引用a的对象添加b,而引用b的对象不变。故结果为AB,B。
x.append时操作的是x所引用的对象,y=x是吧y的引用指向了x,但b的引用还是指向B,而a的引用也还是指向A,不过在A的后面被添加了一个append了一个B罢了.
image
24.对象使用时,下面描述错误的是____________
A. 通过”.”运算符调用成员变量和方法
B. 通过成员变量的访问权限设定限制自身对这些变量方法的调用
C. 将一个对象申明为类的成员时,必须在使用前为其分配内存
访问权限并不是为自己访问而设置的,大多是不同类之间的相互引用限制。
二.数据库题
26.请写出SQL分页查询语句(可选ORACLE,SQL Sserver,MySQL任意一种数据库均可)
MySQL分页可直接通过limit实现:select * from 表名 limit m,size;从m+1条查询size条记录。SQLServer可以使用Top和not in实现:select top 10 * from 表名 where 主键 not in(select top 10 主键 from 表名);–查询显示11-20条记录(10条)。
27.设有如下4个关系模式:
S(SN,SNAME,CITY)
P(PN,PNAME,COLOR,WEIGHT)
J(JN,JNAME,CITY)
SPJ(SN,PN,JN,QTY)
其中:
S表示供应商,SN为供应商编码,SNAME为供应商名字,CITY为供应商所在城市
P表示零件,PN为零件编码,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量
J表示工程,JN为工程编码,JNAME为工程名字,CITY为工程所在城市
SPJ表示供应关系,QTY表示供应的零件数量
写出实现一下各题功能的SQL语句
(1)查出所在城市为南京的所有工程的全部细节.
select * from J where CITY=’南京’;
(2)取出所在城市为上海的工程提供零件的供应商编码
select SPJ.SN from SPJ,J where SPJ.JN=J.JN AND J.CITY=’上海’;
(3)取出所在城市为上海或北京的工程提供红色零件的供应商的编码
SELECT SPJ.JN FROM SPJ,J,P WHERE SPJ.JN=J.JN AND SPJ.PN=P.PN AND J.CITY=’上海’or J.CITY=’北京’AND P.COLOR=’红色’;
(4)取出供应商与工程所在城市相同的供应商提供的零件编码
SELECT SPJ.PN FROM SPJ,J WHERE SPJ.JN=J.JN AND SPJ.SN=S.SN AND J.CITY=S.CITY;
(5)取出至少由一个和工程不在同一城市的供应商提供零件的工程编码.
SELECT SPJ.JN FROM SPJ,J,S WHERE SPJ.JN=J.JN AND SPJ.SN=S.SN AND J.CITY <>S.CITY
(6)取出上海供应商不提供任何零件的工程编码
SELECT SPJ.JN FROM SPJ,S WHERE SPJ.SN=S.SN AND SPJ.QTY=0 AND S.CITY =‘上海’
(7)取出所有这样的一些二元组,使得第一个城市的供应商为第二个城市的工程提供零件.
SELECT S.CITY,J.CITY FROM SPJ,J,S WHERE SPJ.JN=J.JN AND SPJ.SN=S.SN;
三.Android题
28.Android的四大组件是哪些,他们的作用?
Android四大组件:http://www.eoeandroid.com/thread-33435-1-1.html
Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑
service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事务,定义好需要接受的Intent提供同步和异步的借口
Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提 供了更方便的途径
BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。
29.请介绍下Android中常用的五种布局.
Android五大布局:http://mobile.51cto.com/android-229801.htm
四.Java题
30.用java写一个冒泡排序
常见的七种排序算法:快速、归并、堆、选择、冒泡、插入和希尔。
Github代码
31.使用jdbc进行数据库查询操作的步骤,比如有一个职工信息表(Staff),它有以下几个field(ID,NAME,PHONE,ADDRESS,AGE),请查询ID为001的雇员的信息并且打印出来,数据库的driver为”sun.jdbc.odbc.JdbcOdbcDriver”,数据库的url使用jdbc:odbc:people
Github代码
32.请用自己的理解简单描述一下面向对象的三个特点:封装、继承、多态
封装:就是用一个自主式框架把对象的数据和方法连在一起形成一个整体。对象是封装的基本单位,相互之间通过接口访问。目的是隐藏细节,代码模块化。
继承:子类拥有父类非private的属性和功能,通过继承的代码复用是一种“白盒式代码复用”,重写和覆盖会破坏封装性。目的是扩展代码模块,实现代码复用。
多态:允许父类声明指向子类对象。即同一方法获得不同的行为特征(重载和覆盖)。目的是接口重用,是面向对象的核心。