chain.doFilter()
1.数据库的触发器
2.枚举
3.多表的更新
多表的删除
4.绑定机制;
5.forward 与 redirect的区别;
6.struts 机制
7.内部类的访问:
8.栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴)
9.为什么java程序的运行不依赖与操作系统,类似的语言还有哪些
12.final的用法
9.包装类
--------------------------上海同邦软件笔试题----------
13.为什么java程序的运行不依赖于操作系统,类似的语言还有哪些?
java编译产生的是字节码文件 在java虚拟机中执行 字节码文件不依赖于操作系统 但是虚拟机依赖于操作系统 所以是“一次编译 到处执行”
ava语言是通过JVM(java虚拟机)来进行编译和执行的,所以,不管是Windows还是Linux,只要是有相应的虚拟机就可以了,操作系统本身对java没什么影响。
标准C和标准C++都是源代码级跨平台的, 也就是说你用标准C/C++写的代码在windows下编译后就可以windows下运行, 在unix/linux下编译后就可以在unix/linux下运行.
14.j2ee中,web.xml的作用。
j2ee中的web.xml充当的是一个“调度”的角色,它是web系统的一个载体。来处理类关系之间的映射,达到用户请求到服务器响应的一个转载过程。
WEB工程的描述文件,例如WEB工程所用到的Servlet、Filter、Tablib等等等等都在这个里面进行描述,WEB工程启动的时候会在这个里面找到具体所用到的类的路径,由此进行加载。
15.将一个字符串“abcd”反转输出为“dcba”
1) String name="abcd";
StringBuffer b = new StringBuffer(name);
b.reverse();
System.out.println("hou:"+b);
2)String str = "abcd";
StringBuffer strb = new StringBuffer();
for(int i = str.length()-1; i >= 0; i--){
strb.append(str.charAt(i));
}
System.out.println(strb.toString());
16.实现线程有哪些方式,写出程序说明
有两种实现方法,分别是继承Thread 类与实现Runnable 接口;
用synchronized 关键字修饰同步方法
1).
public class MyThread implements Runnable {
@Override
public void run() {
for(int i = 0;i<10;i++){
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("anotherThread say hello!");
}
}
public static void main(String[] args){
new Thread(new MyThread()).start();
for(int i=0;i<10;i++){
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("Main Thread doSM");
}
System.out.println("Main Thread end!!!");
}
}
2)public class MyThread extends Thread{
@Override
public void run() {
for(int i = 0;i<10;i++){
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("anotherThread say hello!");
}
}
public static void main(String[] args){
new MyThread().start();
for(int i=0;i<10;i++){
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("Main Thread doSM");
}
System.out.println("Main Thread end!!!");
}
}
17.用程序写出一种排序
1)选择:
private static void sort() {
int[] strs = new int[]{6,0,1,5,7};
for(int i=0;i<strs.length-1;i++){
int t = i;
int temp = 0;
for(int j = i; j< strs.length;j++){
if(strs[j] < strs[t]){
t = j;
}
}
temp = strs[i];
strs[i] = strs[t];
strs[t] = temp;
}
for(int s : strs){
System.out.println(s);
}
}
2).冒泡:
private static void sort(int[] a) {
int temp =0 ;
for(int time=1;time<a.length;time++){
boolean flg=true;
for(int i=0;i<a.length-time;i++){
if(a[i]>a[i+1]){
temp =a[i+1];
a[i+1]=a[i];
a[i]=temp;
flg = false;
}
}
if(flg)break;
}
}
18.什么叫关系型数据库,什么叫事务,什么事死锁,如何避免死锁
关系型数据库事支持关系模型的数据库系统,从用户的角度看,关系模型中数据库的逻辑结构是一张二维表,所有实体以及实体间的联系的集合构成一个关系型数据库,还有其他的一些完整性约束。
事务:原子性,不可分割的完整性单位,要么都做,要么都不做,;一致性:使数据库从一个一致性的状态变到另一个一致性的状态:隔离性:执行不能被其他事务干扰;持久性:
死锁的避免不严格地限制死锁的必要条件的存在,而是系统在系统运行过程中小心地避免死锁的最终发生。最著名的死锁避免算
法是银行家算法。死锁避免算法需要很大的系统开销。
19。你是否做过erp,是否有相关经验,试说明
企业资源计划(Enterprise Resource Planning,简称ERP)系统是一种主要面向制造行业进行物质资源、资金资源和信息资源集成一体化管理的企业信息管理系统。通过运用ERP,企业能够利用计算机对企业的资金、货物、人员和信息等资源进行自动化管理,具有制造,办公操作,供应链管理,人力资源管理,项目管理,财务与管理,客户服务,销售与市场营销等商业功能。企业资源计划对于在企业高度普及计算机辅助管理,实现企业管理信息化和自动化,提高工作效率和增强快速反应能力,都具有十分重要的意义。
经验:ERP实施的艰难,相信每个过来人都有比较深刻的体会;实施过程中非常重要的一点就是,企业内部各部门之间,以及企业与软件提供与实施方之间的沟通协调。要有一个良好的机制,保证各方能够及时沟通讨论问题。当各方意见不统一的时候,必须能够迅速、客观地做出决定并推动执行。
20.用程序写出一个你知道的设计模式
Singleton 模式主要作用是保证在Java 应用程序中,一个类Class 只有一
个实例存在。举例:定义一个类,它的构造函数为private 的,它有一个static
的private 的该类变量,在类初始化时实例话,通过一个public 的getInstance
方法获取对它的引用,继而调用其中的方法。
第一种形式:
public class Singleton {
private Singleton(){}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
if (instance==null)
instance=new Singleton();
return instance;
}
}
其他形式: 定义一个类,它的构造函数为private 的,所有方法为static 的。
一般认为第一种形式要更加安全些。
21.sql查询和建表
CREATE TABLE `tb_student` (
`sno` int(11) NOT NULL,
`sname` varchar(16) NOT NULL,
PRIMARY KEY (`sno`)
);
CREATE TABLE `tb_course` (
`cno` int(11) NOT NULL,
`cname` varchar(16) NOT NULL,
PRIMARY KEY (`cno`)
) ;
CREATE TABLE `tb_grade` (
`sno` int(11) NOT NULL,
`cno` int(11) NOT NULL,
`grade` int(2) NOT NULL,
PRIMARY KEY (`sno`,`cno`)
);
alter table tb_student add constraint s_pk primary key(sno);
alter table tb_course add constraint c_pk primary key(cno);
alter table tb_grade add constraint c_fk1 foreign key(sno) references tb_student(sno);
alter table tb_grade add constraint c_fk2 foreign key(cno) references tb_course(cno);
alter table tb_grade add constraint m_pk primary key(sno,cno);
有3 个表(15 分钟):【基础】
Student 学生表(学号,姓名,性别,年龄,组织部门)
Course 课程表(编号,课程名称)
Sc 选课表(学号,课程编号,成绩)
表结构如下:
1)写一个SQL 语句,查询选修了’计算机原理’的学生学号和姓名(3 分钟)
2)写一个SQL 语句,查询’周星驰’同学选修了的课程名字(3 分钟)
3)写一个SQL 语句,查询选修了5 门课程的学生学号和姓名(9 分钟)
答:1)SQL 语句如下:
select stu.sno, stu.sname from Student stu
where (select count(*) from sc where sno=stu.sno and cno =
(select cno from Course where cname='计算机原理')) != 0;
2)SQL 语句如下:
select cname from Course
where cno in ( select cno from sc where sno =
(select sno from Student where sname='周星驰'));
3)SQL 语句如下:
select stu.sno, stu.sname from student stu
where (select count(*) from sc where sno=stu.sno) = 5;
107、有三张表,学生表S,课程C,学生课程表SC,学生可以选修多门课程,一门课
我爱 JAVA 网(www.wajava.com) 面试题集 29
程可以被多个学生选修,通过SC 表关联。【基础】
1)写出建表语句;
2)写出SQL 语句,查询选修了所有选修课程的学生;
3)写出SQL 语句,查询选修了至少5 门以上的课程的学生。
答:1)建表语句如下(mysql 数据库):
create table s(id integer primary key, name varchar(20));
create table c(id integer primary key, name varchar(20));
create table sc(
sid integer references s(id),
cid integer references c(id),
primary key(sid,cid)
);
2)SQL 语句如下:
select stu.id, stu.name from s stu
where (select count(*) from sc where sid=stu.id)
= (select count(*) from c);
3)SQL 语句如下:
select stu.id, stu.name from s stu
where (select count(*) from sc where sid=stu.id)>=5;
108、数据库表(Test)结构如下:【基础】
ID NAME AGE MANAGER(所属主管人ID)
106 A 30 104
109 B 19 104
104 C 20 111
107 D 35 109
112 E 25 120
119 F 45 NULL
要求:列出所有年龄比所属主管年龄大的人的ID 和名字?
答:SQL 语句如下:
select employee.name from test employee
where employee.age > (select manager.age from test manager
where manager.id=employee.manager);
109、有如下两张表:【中等难度】
表city: 表state:
CityNo CityName StateNo
BJ 北京(Null)
SH 上海(Null)
GZ 广州GD
DL 大连LN
欲得
到如下结果: City
No City Name State No State Name BJ
北京(Null) (Null) DL
大连LN 辽宁GZ
我爱 JAVA 网(www.wajava.com) 面试题集 30
广州GD 广东SH
上海(Null) (Null) 写相
应的SQL 语句。
答:SQL 语句为:
SELECT C.CITYNO, C.CITYNAME, C.STATENO, S.STATENAME
FROM CITY C, STATE S
WHERE C.STATENO=S.STATENO(+)
ORDER BY(C.CITYNO);
servlet与struts跳转方式: