笔试:
1.&&和&,|和||的关系;
2.String str=’abc’和String str=new String(‘abc’);有什么区别;
3.hashCode()和equals() 的使用规则;
4.Servlet和Filter 的url-pattern写法区别;
5.Javascript对象属性的
示方法(两种)
6.javascript数组的表示方法,使用方法
7. SQL语句多表查询,投影;
8. hashmap , treeMap . List,stack的区别
9. JSP页面中,用于刷新的代码。
编程:
细胞分裂---抽象为---斐波那契序列的使用,最好用两种方法实现(递归和非递归)
10.抽象类和接口的 区别
抽象类 单继承 主要用于扩展功能 关键字
接口 多实现 定义
关键字 没有构造
但子类继承抽象类是会调用父类构造
11.写出使用JDBC 进行数据增,删,改,查的代码
12.第一个小时有一对兔子,从第三个小时开始,这对兔子每小时繁殖一对小兔子;新出生的小兔子也是从第三个小时开始,每小时繁殖出一对小兔子(刚出生时为第一个小时),问第n 个小时有多少兔子,并打印1到n 小时每小时的兔子数,写出代码。
小 时 0 1 2 3 4 5 ….
兔子数 0 2 2 4 6 10 ….
13.写一个JDBC代码,还问了一个接口与抽象类的区别,考了servlet的*.do的变幻写法
14.还有一些ORACLE的,考了视图的别名的知识,还考了一些基础的语言知识
面试:
1.线程的状态及之间的关系;
2.Hibernate调用SQL,Java调用PL/SQL(存储过程);
3.Struts初始化参数;
4.垃圾回收
;
5.Extjs和Jquery;
6.Group by 使用时注意什么?
7 JSON数据格式的优点
8 HQL的写法;
From 类名
9.文件上传下载怎么解决乱码问题?
<%@ page contentType="text/html; charset=gb2312" %>
<%
request.setCharacterEncoding("gb2312"); // 这句话很重要,否则遇到中文就出错~
%>
这一句在 head里面
10.MVC (Struts) 的基本
学过
11 AJAX的流程[代码细节]
1.创建一个XMLHttpRequest对象;
2.为这个对象指定一个函数,来处理这个对象的状态变化.方法是设置这个对象的 onreadystatechange属性,将某个函数付给这个属性就可以了;
3.建立一个连接,XMLHttpRequest的open()方法会和服务器建立一个连接.
4.向服务器发送请求,send()方法会把请求发送到指定的URL;
12 wait,sleep和notify的区别
13.存储过程的语法;
14数据库中常见的聚合函数
15.用javascript如何创建对象;
JavaScript中对象的创建有以下几种方式:
(1)使用内置对象
(2)使用JSON符号
(3)自定义对象构造
16.JSP的内置对象
17.PageContent和PageConfig的区别;
PageConten
上有
public class PageConfig extends java.lang.Object
18.如何在数据库中建立多对多的关系;[举例说明]
通过中间表 学生选课表
交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。
达内西安洪媛 11:18:35
笔试地点:西安高新区科技二路68号西安软件园秦风阁C101室(进楼后,地下一层)
交通方式:可乘坐608路,29路,251路,908路公交车西安软件园站下车即可。
达内西安洪媛 11:18:41
联系人:贾小姐
达内西安洪媛 11:19:00
联系电话:134********
1. public class Test {
2. static int multiply(int n){
3. if(n==1||n==0)
4. return n;
5. else
6. return n*multiply(n-1);
7. }
8.
9. public static void main(String[] args){
10. System.out.println(multiply(10));
11. }
12. }
13.
14.
15. 上面的multiply是一个阶乘的例子。其实递归递归,从字面上解释就是在方法本身调用自己的方法,或者间接调用;看上面的程序,拿multiply(5)来说:
16. n=5;执行 5*multiply(4);
17. --------------------
18. 这时候看multiply(4)
19. n=4 执行 4*multiply(3);
20. -------------------
21. 看multiply(3)
22. n=3,执行 3*multiply(2);
23. ---------------
24. mulitply(2);
25. n=2 执行 2*mulitply(1);
26. 这时候,return 1;往上返回
27. 2*1向上返回
28. 3*(2*1)向上返回
29. 4*(3*(2*1)) 向上返回
30. 5*(4*(3*(2*1)) ) = 120
31. 所以程序输出120;
32. 这事简单的递归的例子;所以可以看出来递归的关键得有递归出口(本体的If语句),还有递归方法;
Javascript如何创建对象
AJAX/JAVASCRIPT 2009-01-07 14:59:51 阅读121 评论0 字号:大中小
除JSON外,在JavaScript中我们可以使用new操作符结合一个函数的形式来创建对象。例如:
Html代码
1. function MyFunc() {}; //定义一个空函数
2. var anObj = new MyFunc(); //使用new操作符,借助MyFun函数,就创建了一个对象
function MyFunc() {}; //定义一个空函数 var anObj = new MyFunc(); //使用new操作符,借助MyFun函数,就创建了一个对象
JavaScript的这种创建对象的方式可真有意思,如何去理解这种写法呢?
其实,可以把上面的代码改写成这种等价形式:
Html代码
1. function MyFunc(){};
2. var anObj = {}; //创建一个对象
3. MyFunc.call(anObj); //将anObj对象作为this指针调用MyFunc函数
function MyFunc(){}; var anObj = {}; //创建一个对象 MyFunc.call(anObj); //将anObj对象作为this指针调用MyFunc函数
我们就可以这样理解,JavaScript先用new操作符创建了一个对象,紧接着就将这个对象作为this参数调用了后面的函数。其实,JavaScript内部就是这么做的,而且任何函数都可以被这样调用!但从 “anObj = new MyFunc()” 这种形式,我们又看到一个熟悉的身影,C++和C#不就是这样创建对象的吗?原来,条条大路通灵山,殊途同归啊!
君看到此处也许会想,我们为什么不可以把这个MyFunc当作构造函数呢?恭喜你,答对了!JavaScript也是这么想的!请看下面的代码:
Html代码
1.
2. 1 function Person(name) //带参数的构造函数
3. 2 {
4. 3 this.name = name; //将参数值赋给给this对象的属性
5. 4 this.SayHello = function() {alert("Hello, I'm " + this.name);}; //给this对象定义一个SayHello方法。
6. 5 };
7. 6
8. 7 function Employee(name, salary) //子构造函数
9. 8 {
10. 9 Person.call(this, name); //将this传给父构造函数
11. 10 this.salary = salary; //设置一个this的salary属性
12. 11 this.ShowMeTheMoney = function() {alert(this.name + " $" + this.salary);}; //添加ShowMeTheMoney方法。
13. 12 };
14. 13
15. 14 var BillGates = new Person("Bill Gates"); //用Person构造函数创建BillGates对象
16. 15 var SteveJobs = new Employee("Steve Jobs", 1234); //用Empolyee构造函数创建SteveJobs对象
17. 16
18. 17 BillGates.SayHello(); //显示:I'm Bill Gates
19. 18 SteveJobs.SayHello(); //显示:I'm Steve Jobs
20. 19 SteveJobs.ShowMeTheMoney(); //显示:Steve Jobs $1234
21. 20
22. 21 alert(BillGates.constructor == Person); //显示:true
23. 22 alert(SteveJobs.constructor == Employee); //显示:true
24. 23
25. 24 alert(BillGates.SayHello == SteveJobs.SayHello); //显示:false
1 function Person(name) //带参数的构造函数 2 { 3 this.name = name; //将参数值赋给给this对象的属性 4 this.SayHello = function() {alert("Hello, I'm " + this.name);}; //给this对象定义一个SayHello方法。 5 }; 6 7 function Employee(name, salary) //子构造函数 8 { 9 Person.call(this, name); //将this传给父构造函数 10 this.salary = salary; //设置一个this的salary属性 11 this.ShowMeTheMoney = function() {alert(this.name + " $" + this.salary);}; //添加ShowMeTheMoney方法。 12 }; 13 14 var BillGates = new Person("Bill Gates"); //用Person构造函数创建BillGates对象 15 var SteveJobs = new Employee("Steve Jobs", 1234); //用Empolyee构造函数创建SteveJobs对象 16 17 BillGates.SayHello(); //显示:I'm Bill Gates 18 SteveJobs.SayHello(); //显示:I'm Steve Jobs 19 SteveJobs.ShowMeTheMoney(); //显示:Steve Jobs $1234 20 21 alert(BillGates.constructor == Person); //显示:true 22 alert(SteveJobs.constructor == Employee); //显示:true 23 24 alert(BillGates.SayHello == SteveJobs.SayHello); //显示:false
这段代码表明,函数不但可以当作构造函数,而且还可以带参数,还可以为对象添加成员和方法。其中的第9行,Employee构造函数又将自己接收的this作为参数调用Person构造函数,这就是相当于调用基类的构造函数。第21、22行还表明这样一个意思:BillGates是由Person构造的,而SteveJobs是由Employee构造的。对象内置的constructor属性还指明了构造对象所用的具体函数!
其实,如果你愿意把函数当作“类”的话,她就是“类”,因为她本来就有“类”的那些特征。难道不是吗?她生出的儿子各个都有相同的特征,而且构造函数也与类同名嘛!
但要注意的是,用构造函数操作this对象创建出来的每一个对象,不但具有各自的成员数据,而且还具有各自的方法数据。换句话说,方法的代码体(体现函数逻辑的数据)在每一个对象中都存在一个副本。尽管每一个代码副本的逻辑是相同的,但对象们确实是各自保存了一份代码体。上例中的最后一句说明了这一实事,这也解释了JavaScript中的函数就是对象的概念。
同一类的对象各自有一份方法代码显然是一种浪费。在传统的对象语言中,方法函数并不象JavaScript那样是个对象概念。即使也有象函数指针、方法指针或委托那样的变化形式,但其实质也是对同一份代码的引用。一般的对象语言很难遇到这种情况。
不过,JavaScript语言有大的灵活性。我们可以先定义一份唯一的方法函数体,并在构造this对象时使用这唯一的函数对象作为其方法,就能共享方法逻辑。例如:
Html代码
1. function SayHello() //先定义一份SayHello函数代码
2. {
3. alert("Hello, I'm " + this.name);
4. };
5.
6. function Person(name) //带参数的构造函数
7. {
8. this.name = name; //将参数值赋给给this对象的属性
9. this.SayHello = SayHello; //给this对象SayHello方法赋值为前面那份SayHello代码。
10. };
11.
12. var BillGates = new Person("Bill Gates"); //创建BillGates对象
13. var SteveJobs = new Person("Steve Jobs"); //创建SteveJobs对象
14.
15. alert(BillGates.SayHello == SteveJobs.SayHello); //显示:true
function SayHello() //先定义一份SayHello函数代码 { alert("Hello, I'm " + this.name); }; function Person(name) //带参数的构造函数 { this.name = name; //将参数值赋给给this对象的属性 this.SayHello = SayHello; //给this对象SayHello方法赋值为前面那份SayHello代码。 }; var BillGates = new Person("Bill Gates"); //创建BillGates对象 var SteveJobs = new Person("Steve Jobs"); //创建SteveJobs对象 alert(BillGates.SayHello == SteveJobs.SayHello); //显示:true
其中,最后一行的输出结果表明两个对象确实共享了一个函数对象。虽然,这段程序达到了共享了一份方法代码的目的,但却不怎么优雅。因为,定义SayHello方法时反映不出其与Person类的关系。“优雅”这个词用来形容代码,也不知道是谁先提出来的。不过,这个词反映了程序员已经从追求代码的正确、高效、可靠和易读等基础上,向着追求代码的美观感觉和艺术境界的层次发展,程序人生又多了些浪漫色彩