没有合适的资源?快使用搜索试试~ 我知道了~
JAVA_C#程序员面试宝典3
需积分: 10 1 下载量 147 浏览量
2009-10-27
23:47:16
上传
评论
收藏 169KB DOC 举报
温馨提示
试读
29页
JAVA_C#程序员面试宝典3 JAVA_C#程序员面试宝典3
资源详情
资源评论
资源推荐
1. 对接口和抽象类的理解和区别,并各写个例子
2. javascrinpt 里的 while 和 for 循环的知识(写程序结果)
3. 代码题
!"
#$
#$
结果:?
%&
#''
!"
%&&#$%&
&((
%&&#$%&
&((
%&&)#$%&
&)**
&
}
}
A 第8行出错(hax.x++),x为静态变量;
B 第16行出错(hax.x--),x为静态变量;
C 101;
D 102;
4. JSP 有哪些动作?作用分别是什么?
5. 圾垃回收的原理?圾垃是否可以马上回收内存?如何通过虚拟机回收圾垃?
+ 写出 ,- 调用 ./ 的表达式
7. JSP 是服务端运行还是客户端?
8. 说出网络传输协议?默认端口并说明其安全性
9. Top locaon href 的意义
10. 数据结构有哪些??具体用在什么场景?
11. 写一个单态模式
12. 抽象类和接口的区别
13. 继承和多态性(用代码表现)
14. forward 和 redirect 的区别
15. JSP 的内置对象
16. 如何保持数据的完整行
17. 怎么保证数据库的安全性
18. 日志文件
0 接口和内部类、抽象类的特征答:
接口:在一个类里,只有申明没有实现。内部类:是在一个类的内部定义的一个类;
抽象类:是以 定义的,里面至少有一个抽象方法。
)' 文件读写的基本类
答:12类和 13 类分别继承自 2 类和 3 类。12
类用于读取文件,13 类用于将数据写入文件,这两各类在使用前,都必须要调用
其构造方法创建相应的对象,然后调用相应的 或 $方法。
) 线程的基本概念、线程的本状态以及状态之间的关系
新建 4新建的线程处于新建状态•就绪 24在创建线程后,它将处于就
绪状态,等待 方法被调用•运行 2 4线程在开始执行时进入运行状
态•睡眠 4线程的执行可通过使用 方法来暂时中止。在睡眠后,
线程将进入就绪状态
)) 5等待 3 4如果调用了 $方法,线程将处于等待状态。用于在两个或多
个线程并发运行时。•挂起 4在临时停止或中断线程的执行时,线程就
处于挂起状态。•恢复 24在挂起的线程被恢复执行时,可以说它已被恢复。
)6 5阻塞 78在线程等待一个事件时(例如输入9输出操作),就称其处于阻塞
状态。•死亡 :8在 方法已完成执行或其 方法被调用之后,线程
就处于死亡状态。
)) 串行化的注意事项以及如何实现串行化答:如果有循环引用是不可以串行化的。对象
输出流的 3;. 方法和 对象输入流的 2;方法
)6 线程的同步、如何实现线程的同步答:当两个或多个线程同时访问同一个变量,并且
以 个 线 程 需 要 修 改 这 个 变 量 。 就 要 用 到 线 程 同 步 。 在 ,/ 中 , 同 步 是 通 过
&< 关 键 字 来 定 义 的 。 诺 是 想 同 步 化 某 程 序 段 , 可 以 使 用
&<.方法,其中内的程序语句被同步化。
)= 7 通信(9 区别及 ,> 的实现方式)-??传输控制协议,具有极高
的可靠性,保证数据包按照顺序准确到达,但其也有着很高的额外负担。@:-??使
用者数据元协议,并不能保证数据包会被成功的送达,也不保证数据包到达的顺序,
但其传输速度很快。
)A 大多数我们会使用 -,偶尔才会动用 @:-,如声音讯号,即使少量遗失,也无
关紧要。
)A ,> 的事件委托机制和垃圾回收机制
./事件委托机制的概念B一个源产生一个事件并将它送到一个或多个监听器那里。
在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处
理这个事件,然后返回。垃圾回收机制 垃圾收集是将分配给对象但不在使用的内存回收或
释放的过程。如果一个对象没有指向它的引用或者其赋值为 B则次对象适合进行垃圾回
收
)+ ,: 调用数据库的基本步骤
导入必要的类,装入 ,: 驱动程序,识别数据源,分配一个 对象,分
配一个 对象,使用 执行一个查询,从返回的 2 对象中检
索数据,关闭 2,关闭 对象,关闭 对象
)C . 的常用的命令答: BBBD$B
)E 什么情况下调用 和什么情况 答:当表单提交时 & 设置的 是
就调用 方法,如果是 就调用 方法。 & 方法请求一
页面,调用 & 方法请求一页面,调用
)0 / 的 方法和 /方法的区别答:初始化时调用 方法有请求到达
时调用 /方法,/根据请求的类型,调用 或 等方法
6' / 的配置
F$*G
6 F/G
6) F/*GF9/*G
66 F/*G.*&/F9/*G
6= F*G
6A F*GF9*G
6+ F*/GH.*&F9*/G
6C F9*G
6E F9/G
60 F9$*G
6 ./ 的调试如何进行。答:.是 ./的调试器,类似于 @IJK 系统的调试器
B.使用 ,/ 调试器应用程序接口来完成对本地或远程的 ,/ 调试器的调用工
作。一般是在要测试的代码段想控制台打印消息。
6) 9 在连接是有几次握手?释放是有几次握手?答:建立连接是 ) 次B释放是 6 次。
66 谈谈你对 $ / 模式的理解?
答:$ 号称是完全按照 L> 的思路来进行设计的。在设计开始前,$ 的希
望能够达到的目标就包括:
模型驱动(L*:/)的编程方式。 提供一套单一的 -J,但是能够支持多种
视感(7**D),为用户提供不同的界面。 严格的说, $ 中的 L> 实
际上是 L> 的一个变体:L*>。 $ 中只显示的定义了 L 接口,而在一个
@J 对象中集成了视图和控制器的部分机制。>$ 和 比较松散的交叉组合在
一起,而更多的控制逻辑是在事件监听者部分引入的。 但是,这并没有妨碍在 $
中体现 L> 的精髓。事实上,在 $ 的开发初期,$ 确实是按照标准的
L> 模式来设计的,但是很快的问题就出现了:>$ 和 实际上是紧密耦
合的,很难作出一个能够适应不同 >$ 的一般化的 来,而且,一般也没
有很大的必要。
6= ,/ 中线程间怎么通讯?什么叫僵死线程?答:线程之间可以通过管道进行通讯。
6A ,/ 程序怎么优化?答:提高 ,> 的性能,一般考虑如下的四个主要方面:
程序设计的方法和模式 ()) ,> 布署的环境。 (6) ,> 应用程序的实现 =
硬件和操作系统 为了提高 ,> 程序的性能,需要遵循如下的六个步骤。 明确对性
能的具体要求 了解当前程序的性能 找到程序的性能瓶颈 采取适当的措施来
提高性能 只进行某一方面的修改来提高性能 D返回到步骤 B继续作类似的工作,
一直达到要求的性能为止。
6+ 在 ./ 中如何进行 7 编程。答:7 有两种主要的操作方式4面向连接的和
无连接的。
无连接的操作使用数据报协议这个模式下的 7 不需要连接一个目的的 7B
它只是简单地投出数据报无连接的操作是快速的和高效的B但是数据安全性不佳面向
连接的操作使用 - 协议一个这个模式下的 7 必须在发送数据之前与目的地的
7 取得一个连接一旦连接建立了B7 就可以使用一个流接口4打开*读*写*关
闭所有的发送的信息都会在另一端以同样的顺序被接收面向连接的操作比无连接的
操作效率更低B但是数据的安全性更高
在服务器,使用 /7 监听指定的端口,端口可以随意指定(由于 ')= 以
下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于
')= 的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭
连接。在客户端,使用 7 对网络上某一个服务器的某一个端口发出连接请求,
一旦连接成功,打开会话;会话完成后,关闭 7。客户端不需要指定打开的端口,
通常临时的、动态的分配一个 ')= 以上的端口。
6C 用 ./ 怎样实现多线程?线程有那些状态?答:,/中实现多线程的方法有两种,
一是继承 ./ 包中的 &类B二是用户自己的类实现 2接口。初
始状态,就绪状态,阻塞状态,运行状态,死亡状态。
6E 动态查询如何实现?表的结构变化后,如果不需要修改程序,如何设计和实现查询?
答:讲查询封装进存储过程中,通过调用存储过程实现动态调用;表结构发生变化后
修改相应的存储过程即可再不修改程序的情况下实现查询。
60 请说出你所知道的线程同步的方法。$4使一个线程处于等待状态,并且释放所持
有的对象的 7。
4使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉
JM 异常。
D4唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切
的唤醒某一个等待状态的线程,而是由 ,>L 确定唤醒哪个线程,而且不是按优先级。
4唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,
而是让它们竞争。
=' M 与 M 有什么区别?M 表示系统级的错误和程序不必处理的异常,
M 表示需要捕捉或者需要程序进行处理的异常。
= 在 ./ 中一个类被声明为 N 类型,表示了什么意思?
表示该类不能被继承,是顶级类。
=) ,/ 中 访 问 数 据 库 的 步 骤 , 和 - 之 间 的 区 别 。
- 对象与 对象的不同点在于它的 OP 语句是预编译
过的,并且可以有占位符使用运行时参数。
=6 描述 7 和 的作用,区别和各自的应用范围, 工作原理。
7 是在客户端开辟的一块可长期存储用户信息的地方;
=A 描述一下你最常用的编程风格。类名首字母应该大写。字段、方法以及对象(句
柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且
大写中间单词的首字母。,/ 包(-7 )属于一种特殊情况:它们全都是小写字
母,即便中间的单词亦是如此。对于域名扩展名称,如 , , 或者 等,
全部都应小写(这也是 ,/ 和 ,/) 的区别之一)。)为了常规用途而创
建 一 个 类 时 , 请 采 取 “ 经 典 形 式 ” , 并 包 含 对 下 述 元 素 的 定 义 :
Q&& ( )
<6对于自己创建的每一个类,都考虑置入一个 ,其中包含了用
于测试那个类的代码。为使用一个项目中的类,我们没必要删除测试代码。若进行了
任何形式的改动,可方便地返回测试。这些代码也可作为如何使用类的一个示例使用。
=应将方法设计成简要的、功能性单元,用它描述和实现一个不连续的类接口部分 。
理想情况下,方法应简明扼要。若长度很大,可考虑通过某种方式将其分割成较短的
几个方法。这样做也便于类内代码的重复使用(有些时候,方法必须非常大,但它们
仍应只做同样的一件事情)。A设计一个类时,请设身处地为客户程序员考虑一下
(类的使用方法应该是非常明确的)。然后,再设身处地为管理代码的人考虑一下
(预计有可能进行哪些形式的修改,想想用什么方法可把它们变得更简单)。 +使
类尽可能短小精悍,而且只解决一个特定的问题。下面是对类设计的一些建议:■一
个复杂的开关语句:考虑采用“多形”机制■数量众多的方法涉及到类型差别极大的操
作:考虑用几个类来分别实现■许多成员变量在特征上有很大的差别:考虑使用几个
类C让一切东西都尽可能地“私有”——/。可使库的某一部分“公共化”(一个
方法、类或者一个字段等等),就永远不能把它拿出。若强行拿出,就可能破坏其他
人现有的代码,使他们不得不重新编写和设计。若只公布自己必须公布的,就可放心
大胆地改变其他任何东西。在多线程环境中,隐私是特别重要的一个因素——只有
/ 字段才能在非同步使用的情况下受到保护。E谨惕“巨大对象综合症”。对一
些习惯于顺序编程思维、且初涉 ;;- 领域的新手,往往喜欢先写一个顺序执行的程
序,再把它嵌入一个或两个巨大的对象里。根据编程原理,对象表达的应该是应用程
序的概念,而非应用程序本身。0若不得已进行一些不太雅观的编程,至少应该把
那些代码置于一个类的内部。'任何时候只要发现类与类之间结合得非常紧密,就
需要考虑是否采用内部类,从而改善编码及维护工作(参见第 = 章 =) 小节的
“用内部类改进代码”)。尽可能细致地加上注释,并用 ./ 注释文档语法生
成自己的程序文档。)避免使用“魔术数字”,这些数字很难与代码很好地配合。如
以后需要修改它,无疑会成为一场噩梦,因为根本不知道“''R到底是指“数组大小”还
是“其他全然不同的东西”。所以,我们应创建一个常数,并为其使用具有说服力的描
述性名称,并在整个程序中都采用常数标识符。这样可使程序更易理解以及更易维护。
6涉及构建器和异常的时候,通常希望重新丢弃在构建器中捕获的任何异常——如
果它造成了那个对象的创建失败。这样一来,调用者就不会以为那个对象已正确地创
建,从而盲目地继续。=当客户程序员用完对象以后,若你的类要求进行任何清除
工作,可考虑将清除代码置于一个良好定义的方法里,采用类似于 这样的
名字,明确表明自己的用途。除此以外,可在类内放置一个 (布尔)标记,
指出对象是否已被清除。在类的 N<方法里,请确定对象已被清除,并已丢弃了
从 2M 继承的一个类(如果还没有的话),从而指出一个编程错误。
剩余28页未读,继续阅读
ZJ380265844
- 粉丝: 3
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0