2013年3月26日(面试)
一.基础知识部分
(1)String是基本类型吗?基本类型包括哪些?
答:String不是基本类型,八大基本类型包括byte,short,int,long,double,float,boolean,char
(2)取出当前时间,并格式化为如:2009-10-31 13:42:21的格式?
答:SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
df.format(new Date());
(3)请问short s1=1;s1=s1+1,short s1=1;s1+=1有错误吗?怎么修改?
答:short s1=1;s1=s1+1有错误,s1+1是int类型需要强制转换为short类型,改为s1=(short)s1+1;
short s1=1;s1+=1;没有错误
(4)String s=new String("xyz");创建了几个String Object对象?
答:两个(一个是“xyz”,一个是指向“xyz”的引用对象s)
(5)分别说明逻辑操作符:&,&&,和|,||的区别?
答:&,&&,都是逻辑运算符,&表示与,左右2边表达式都要判定,&&表示短路与,如果左边不成立,那右边就不用判定,如果左边成立再进行右边判定
|,||同上!
(6)执行如下程序代码:
a=0;c=0;
do{
--c;
a-=1;
}while(a>0);后c的值是()?
答:-1
(7)String s="will";
String s1=s;
s1="北京";
s=()?
答:will
(8) class person{
String name;
}
person p=new person();
p.name="will";
person p1=p;
p1.name="beijin";
System.out.print(p.name);
答:输出beijin
(9)简述==和equals的区别?
答:==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
(10)简述set,list和map类的区别?
答:List 可重复的有序的集合
Set 不可重复的无序集合
Map 映射集合,一个键对应一个值
二.数据库基础知识
Oracel数据库存在表person(id int,name char(20),sex char(2),score int),完成以下操作。
1.将id=1,name=张三,sex=男,score=98记录插入表中。
2.将id=1的记录删除。
答:delete from person where id=1;
3.将id=1的记录的id修改位12,name修改为“路人e甲”,score=90。
答:update person set id=12,name=‘路人e甲’,score=90 where id=1;
4.将id<100的记录查出来,结果按照name做降序排序。
答:select * from person where id<100 order by name desc;
5.查询表中前三名的成绩,不是前三人,而是如:2个99分,3个98分,4个97分。
答:select * from (select score,count(score) from person group by score desc) where rownum<4;
一个表,名称TempTable包含N个字段,包含有如表格列中列出的内容:
请用SQL语句统计:表中字段A的值相同,并且字段B的值也相同的记录的条数,并将统计结果按字段A的降序列出来,结果如下:
字段A 字段B 条数
1 1 2(字段A等于1,字段B也等于1,一共2条记录)
1 2 1
2 2 1
3 3 2
请写出完成以上功能的SQL语句:
select c.* from (select a,b,count(a) 条数 from name where a=b group by a
union
select a,b,count(a) 条数 from name where a<>b group by a)
c order by c.a;
三.Xml知识
Xml有哪些解析技术,它们有什么区别?
DOM允许对文档进行随机访问.
SAX需要较小的内存开销,并却通常更快。
StAX被设计为这两者的一个折中。在StAX中,程序的切入点是表示XML文档中一个位置的光标。应用程序在需要时向前移动光标,从解析器拉出信息。与基于事件的 API(如 SAX)将“数据推送”给应用程序不同的是,SAX需要应用程序维持时间间的状态,以保持文档内的位置信息。
四.ssh知识
1.简述hibernate无主键时如何进行文件的配置。
答:
<hibernate-mapping>
<class name="fox.math.kmust.NoId" table="noid" lazy="true">
<!-- 这里是将表的所有属性作为联合主键 -->
<composite-id>
<key-property name="name"/>
<key-property name="age"/>
</composite-id>
</class>
</hibernate-mapping>
2.什么是ioc,ioc的作用是什么?
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。 控制反转还有一个名字叫做依赖注入(Dependency Injection)。简称DI。
五.编程题
1.自己编写代码将字符串String s="11.1,56.1,2.9,34.3,1.03,24.2"按照从小到大都排序的结果放入double[]d中。注:不要使用jdk自带的排序方法。
答:
package TestFor0327; public class DemoFor转换排序 { /** * @param args */ public static void main(String[] args) { String s="11.1,56.1,2.9,34.3,1.03,24.2"; String[]str=s.split(",");//按照“,”拆分放入String数组中 double []d=new double[str.length]; for(int i=0;i<str.length;i++){ d[i]=Double.parseDouble(str[i]); } double temp; for(int i=0;i<d.length;i++){ for(int j=i+1;j<d.length;j++){ if(d[i]>d[j]){ temp=d[i]; d[i]=d[j]; d[j]=temp; } } } for(int i=0;i<d.length;i++){ System.out.print(d[i]+" "); } } }
2.请编写一个单例模式类;
答:
public class MyBean {
private static MyBean instance = null;
private MyBean(){
//do something
}
public static synchronized MyBean getInstance(){
if(instance == null){
instance = new MyBean();
}
return instance;
}
}
3.编写一个简单的socket客户端程序,向服务器端发送hello,服务器端地址为:192.251.1.1端口为7777.
答:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; public class DemoForSocket通信 { public static void main(String[] args) { Socket socket=null; try { socket=new Socket("192.251.1.1",7777); BufferedReader bf=new BufferedReader( new InputStreamReader(socket.getInputStream())); bf.readLine(); bf.close(); } catch (Exception e) { e.printStackTrace(); }finally{ try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }