JAVA 笔试题及答案(公司1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1:一个类可以实现任意多的接口,但是最多只能对一个抽象类进行子类化。 2:一个抽象类可以包括非抽象方法,而一个接口的所有方法在效果上都是抽象的。 3:一个抽象类可以申明并使用变量,而一个接口不行。 4:一个抽象类中的方法的访问修饰符可以使 public,internal,protected,protected internal,private,而接口成员 的访问修饰符在默认情况下都是 public,而且,在申明接口成员时,不允许使用访问修饰符(甚至不能使 用 public)。 5:一个抽象类可以定义构造函数,而一个接口不行。
查询结果如图 2 所示。
图 2 使用 in 子句查询的结果 以上为笔者使用 oracle7.3 的体会,如有不当之处,请不吝赐教。
12 jsp 页面中如何传递参数
(1)直接在 URL 请求后添加 (2)jsp:param
3)设置 session 和 request 13 jsp 中的 doget()和 dopost()方法的作用? 这个两个方法都是 http 协议的方法,doget 用于传输数据量较小(密码会泄露),dopost 数据 量较大, 14 什么是用例?如何确定用例? 在 不 展 现 一 个 系 统 或 子 系 统 内 部 结 构 的 情 况 下 ,对 系 统 或 子 系 统 的 某 个 连 贯 的 功 能 单 元的定义和描述。
在 oracle 中运行以下查询,图 1 显示了这个查询的结果:
SQL>select code, name from A intersect select student_code,student_name from B;
长度 4 8
长度 4 8 3
图 1 使用 intersect 操作符查询的结果 第二种方法: in 子句
private static MyBean instance = null; private MyBean(){ //do something } public static synchronized MyBean getInstance(){ if(instance == null){ instance = new MyBean(); }
EJB 容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件 EJB 各种管理功 能。只要满足 J2EE 规范的 EJB 放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接 口来获得系统级别的服务。例如邮件服务、事务管理。
JNDI:(Java Naming & Directory Interface)JAVA 命名目录服务。主要提供的功能是:提供一个目录系统, 让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
Private Signle(){ } Pirvate static Signle signle = new Signle();
Public static Signle gets(){ Retrun signle;
} } ************************2 public class MyBean {
2. xml 在解释的时候 DOM 和 SAX 协议的区别和含义?
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由 DOM 的树结构所造成的,这种结构占用的内 存较多,而且 DOM 必须在解析文件之前把整个文档装入内存,适合对 XML 的随机访问 SAX:不现于 DOM,SAX 是事件驱动型的 XML 解析方式。它顺序读取 XML 文件,不需要一次全部装载整 个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其 回调事件中写入处理代码来处理 XML 文件,适合对 XML 的顺序访问
return instance; }
你是说单例模式是吧,这个单例模式是延迟加载的模式.还有一种就是即时加载,不需要判断是否有实例存在, 先自己 new 出一个实例.
} 5 数据库中 left join 的意思,和在什么场合中应用? LEFT JOIN 操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边 外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)
15 活动图和时序图的区别?
时序图主要强调时间的顺序 活动图主要强调空间上类的交互
16 什么是策略模式?什么情况下使用? 策 略 模 式 定 义 了 一 系 列 的 算 法 ,并 将 每 一 个 算 法 封 装 起 来 ,而 且 使 它 们 还 可 以 相 互 替 换 Context(应用场景):
1、需要使用 ConcreteStrategy 提供的算法。 2、 内部维护一个 Strategy 的实例。 3、 负责动态设置运行时 Strategy 具体的实现算法。 4、负责跟 Strategy 之间的交互和数据传递。 17 面向接口编程的好处 使用接口编程,易于程序扩展,降低程序耦合性。 包括结构清晰,类之间通信简单易懂,扩展性好,提高复用性等等。 18 事物 事务就是一系列的操作,这些操作完成一项任务.只要这些操作里有一个操作没有成功,事务 就操作失败,发生回滚事件.即撤消前面的操作,这样可以保证数据的一致性.而且可以把操作 暂时放在缓存里,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作.
一个用例可以看作是系统的一个功能,例如增加用户,增加角色,查询一个具体的一个事物,在 Ejb 的设计中,
一个 use case 跟 Session bean 的一个方法是对应的(使用的 session fasade 模式),你说的基础数据管 理,我会把它处理成为一个抽象用例,因为我认为基础数据这个概念非常的抽象,什么是真正的基础数据?例 如说一个系统中邮政编码算是这个系统的基础数据,那么"邮政编码修改"这个就应该算是用例了.
3 说明 JNDI、JMS、JTA、RMI 的意思? JNDI(Java Naming and Directory Interface)是一个应用程序设计的 API,为开发人员 提供了查找和访问各种命名和目录服务的通用、统一的接口,类似 JDBC 都是构建在 抽象层上。 JMS(Java Messaging Service)是 Java 平台上有关面向消息中间件的技术规范,翻译为 Java 消息服务。JMS 支持点对点和发布/订阅两种消息模型。 JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。要用 JTA 进行事务界 定,应用程序要调用 javax.transaction.UserTransaction 接口中的方法. RMI 是 Java 的一组拥护开发分布式应用程序的 API。RMI 使用 Java 语言接口定义了 远程对象,它集合了 Java 序列化和 Java 远程方法协议(Java Remote Method Prot ocol)。它大大增强了 Java 开发分布式应用的能力 4.单子模式 Public class Signle{
in 子句可以在子查询中为 where 子句计算所得的值创建一个列表。这种方法与前一种方法有所不同的是,前一 种方法比较多列但只使用一个 intersect 就行了,而一个 in 子句用来比较两个子查询的一列,比较几列就要使用几 个 in 子句。下面举例说明如何取得两个查询的交集。
仍以A和B两张数据表为例,在 oracle 中运行以下查询,图 2 显示了这个查询的结果: SQL>select code,name from A where A.code in (select student_code from B) and A.name in (select student_name from B) order by A.code;
1 简答题
3)说明 jndi、jms、jta、rmi 的意思? web 容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET 直接更容器中 的 环 境 变 量 接 口 交 互 , 不 必 关 注 其 它 系 统 问 题 。 主 要 有 WEB 服 务 器 来 实 现 。 例 如 : TOMCAT,WEBLOGIC,WEBSPHERE 等。该容器提供的接口严格遵守 J2EE 规范中的 WEB APPLICATION 标准。我们把遵守以上标准的 WEB 服务器就叫做 J2EE 中的 WEB 容器。
8 对象序列化的含义 Java 序列化技术可以使你将一个对象的状态写入一个 Byte 流里,并且可以从其它地方 把该 Byte 流里的数据读出来。重新构造一个相同的对象。这种机制允许你将对象通过网络 进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java 的序列化机制是 RMI、 EJB、JNNI 等技术的技术基础。 9 数据库中的锁包括什么? 基本的封锁类型有两种:排它锁(X 锁)和共享锁(S 锁). 所谓 X 锁,是事务 T 对数据 A 加上 X 锁时,只允许事务 T 读取和修改数据 A,... 所谓 S 锁,是事务 T 对数据 A 加上 S 锁时,其他事务只能再对数据 A 加 S 锁,而不能加 X 锁, 直到 T 释放 A 上的 S 锁若事务 T 对数据对象 A 加了 S 锁,则 T 就可以对 A 进行读取,但不能 进行更新(S 锁因此又称为读锁),在 T 释放 A 上的 S 锁以前,其他事务可以再对 A 加 S 锁,但不 能加 X 锁,从而可以读取 A,但不能更新 A. 10 jsp 和 serverlet 的区别 (1).简单的来说 Jsp 就是含有 Java 代码的 html,而 servlet 是含有 html 的 Java 代码; (2).Jsp 最终也是被解释为 servlet 并编译再执行,Jsp 不过是 servlet 的另一种编写方式; (3).Jsp 擅长表示,servlet 擅长数据处理,在 MVC 三层结构中,Jsp 负责 V(视图),servlet 负责 C(控制),各有优势,各司其职; 11. oracle 中数据表的交集怎么表示
第一种方法Байду номын сангаас利用操作符 intersect
intersect 操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前
提是两个查询的列的数量和数据类型必须完全相同。 举例说明: 表 A 的数据结构:
中文名称 学号 姓名
字段名 code name
类型 C C
表 B 的数据结构:
中文名称 学号 姓名 分数
字段名 Student_code Student_name score
类型 C C N
表 A 的数据为: ('1101 ','韩甲'),('1102 ','丁乙')
表 B 的数据为: ('1101 ','韩甲',99),('1102 ','丁乙',89),('1103 ','徐静',94)
表中并没有相符值的记录。
6 ejb 中的 sessionbean 和 entitybean 的区别和含义? SessionBean 在 J2EE 应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调 用其他 EJB 组件。EntityBean 被用来代表应用系统中用到的数据。 对于客户机,SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体的对 象视图,或是一个由现有企业应用程序实现的实体。 7 抽象类和接口的区别
1.web 中的 forward 和 redirect 的区别?(
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转, 浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地 址。所以,前者更加高效,在前者可以满足需要时,尽量使用 forward()方法,并且,这样也有助于隐藏实 际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 sendRedirect()方法。
查询结果如图 2 所示。
图 2 使用 in 子句查询的结果 以上为笔者使用 oracle7.3 的体会,如有不当之处,请不吝赐教。
12 jsp 页面中如何传递参数
(1)直接在 URL 请求后添加 (2)jsp:param
3)设置 session 和 request 13 jsp 中的 doget()和 dopost()方法的作用? 这个两个方法都是 http 协议的方法,doget 用于传输数据量较小(密码会泄露),dopost 数据 量较大, 14 什么是用例?如何确定用例? 在 不 展 现 一 个 系 统 或 子 系 统 内 部 结 构 的 情 况 下 ,对 系 统 或 子 系 统 的 某 个 连 贯 的 功 能 单 元的定义和描述。
在 oracle 中运行以下查询,图 1 显示了这个查询的结果:
SQL>select code, name from A intersect select student_code,student_name from B;
长度 4 8
长度 4 8 3
图 1 使用 intersect 操作符查询的结果 第二种方法: in 子句
private static MyBean instance = null; private MyBean(){ //do something } public static synchronized MyBean getInstance(){ if(instance == null){ instance = new MyBean(); }
EJB 容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件 EJB 各种管理功 能。只要满足 J2EE 规范的 EJB 放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接 口来获得系统级别的服务。例如邮件服务、事务管理。
JNDI:(Java Naming & Directory Interface)JAVA 命名目录服务。主要提供的功能是:提供一个目录系统, 让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
Private Signle(){ } Pirvate static Signle signle = new Signle();
Public static Signle gets(){ Retrun signle;
} } ************************2 public class MyBean {
2. xml 在解释的时候 DOM 和 SAX 协议的区别和含义?
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由 DOM 的树结构所造成的,这种结构占用的内 存较多,而且 DOM 必须在解析文件之前把整个文档装入内存,适合对 XML 的随机访问 SAX:不现于 DOM,SAX 是事件驱动型的 XML 解析方式。它顺序读取 XML 文件,不需要一次全部装载整 个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其 回调事件中写入处理代码来处理 XML 文件,适合对 XML 的顺序访问
return instance; }
你是说单例模式是吧,这个单例模式是延迟加载的模式.还有一种就是即时加载,不需要判断是否有实例存在, 先自己 new 出一个实例.
} 5 数据库中 left join 的意思,和在什么场合中应用? LEFT JOIN 操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边 外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)
15 活动图和时序图的区别?
时序图主要强调时间的顺序 活动图主要强调空间上类的交互
16 什么是策略模式?什么情况下使用? 策 略 模 式 定 义 了 一 系 列 的 算 法 ,并 将 每 一 个 算 法 封 装 起 来 ,而 且 使 它 们 还 可 以 相 互 替 换 Context(应用场景):
1、需要使用 ConcreteStrategy 提供的算法。 2、 内部维护一个 Strategy 的实例。 3、 负责动态设置运行时 Strategy 具体的实现算法。 4、负责跟 Strategy 之间的交互和数据传递。 17 面向接口编程的好处 使用接口编程,易于程序扩展,降低程序耦合性。 包括结构清晰,类之间通信简单易懂,扩展性好,提高复用性等等。 18 事物 事务就是一系列的操作,这些操作完成一项任务.只要这些操作里有一个操作没有成功,事务 就操作失败,发生回滚事件.即撤消前面的操作,这样可以保证数据的一致性.而且可以把操作 暂时放在缓存里,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作.
一个用例可以看作是系统的一个功能,例如增加用户,增加角色,查询一个具体的一个事物,在 Ejb 的设计中,
一个 use case 跟 Session bean 的一个方法是对应的(使用的 session fasade 模式),你说的基础数据管 理,我会把它处理成为一个抽象用例,因为我认为基础数据这个概念非常的抽象,什么是真正的基础数据?例 如说一个系统中邮政编码算是这个系统的基础数据,那么"邮政编码修改"这个就应该算是用例了.
3 说明 JNDI、JMS、JTA、RMI 的意思? JNDI(Java Naming and Directory Interface)是一个应用程序设计的 API,为开发人员 提供了查找和访问各种命名和目录服务的通用、统一的接口,类似 JDBC 都是构建在 抽象层上。 JMS(Java Messaging Service)是 Java 平台上有关面向消息中间件的技术规范,翻译为 Java 消息服务。JMS 支持点对点和发布/订阅两种消息模型。 JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。要用 JTA 进行事务界 定,应用程序要调用 javax.transaction.UserTransaction 接口中的方法. RMI 是 Java 的一组拥护开发分布式应用程序的 API。RMI 使用 Java 语言接口定义了 远程对象,它集合了 Java 序列化和 Java 远程方法协议(Java Remote Method Prot ocol)。它大大增强了 Java 开发分布式应用的能力 4.单子模式 Public class Signle{
in 子句可以在子查询中为 where 子句计算所得的值创建一个列表。这种方法与前一种方法有所不同的是,前一 种方法比较多列但只使用一个 intersect 就行了,而一个 in 子句用来比较两个子查询的一列,比较几列就要使用几 个 in 子句。下面举例说明如何取得两个查询的交集。
仍以A和B两张数据表为例,在 oracle 中运行以下查询,图 2 显示了这个查询的结果: SQL>select code,name from A where A.code in (select student_code from B) and A.name in (select student_name from B) order by A.code;
1 简答题
3)说明 jndi、jms、jta、rmi 的意思? web 容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使 JSP,SERVLET 直接更容器中 的 环 境 变 量 接 口 交 互 , 不 必 关 注 其 它 系 统 问 题 。 主 要 有 WEB 服 务 器 来 实 现 。 例 如 : TOMCAT,WEBLOGIC,WEBSPHERE 等。该容器提供的接口严格遵守 J2EE 规范中的 WEB APPLICATION 标准。我们把遵守以上标准的 WEB 服务器就叫做 J2EE 中的 WEB 容器。
8 对象序列化的含义 Java 序列化技术可以使你将一个对象的状态写入一个 Byte 流里,并且可以从其它地方 把该 Byte 流里的数据读出来。重新构造一个相同的对象。这种机制允许你将对象通过网络 进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java 的序列化机制是 RMI、 EJB、JNNI 等技术的技术基础。 9 数据库中的锁包括什么? 基本的封锁类型有两种:排它锁(X 锁)和共享锁(S 锁). 所谓 X 锁,是事务 T 对数据 A 加上 X 锁时,只允许事务 T 读取和修改数据 A,... 所谓 S 锁,是事务 T 对数据 A 加上 S 锁时,其他事务只能再对数据 A 加 S 锁,而不能加 X 锁, 直到 T 释放 A 上的 S 锁若事务 T 对数据对象 A 加了 S 锁,则 T 就可以对 A 进行读取,但不能 进行更新(S 锁因此又称为读锁),在 T 释放 A 上的 S 锁以前,其他事务可以再对 A 加 S 锁,但不 能加 X 锁,从而可以读取 A,但不能更新 A. 10 jsp 和 serverlet 的区别 (1).简单的来说 Jsp 就是含有 Java 代码的 html,而 servlet 是含有 html 的 Java 代码; (2).Jsp 最终也是被解释为 servlet 并编译再执行,Jsp 不过是 servlet 的另一种编写方式; (3).Jsp 擅长表示,servlet 擅长数据处理,在 MVC 三层结构中,Jsp 负责 V(视图),servlet 负责 C(控制),各有优势,各司其职; 11. oracle 中数据表的交集怎么表示
第一种方法Байду номын сангаас利用操作符 intersect
intersect 操作符用来合并两个查询,返回两个查询中都存在的记录,即返回两个查询结果的交集,前
提是两个查询的列的数量和数据类型必须完全相同。 举例说明: 表 A 的数据结构:
中文名称 学号 姓名
字段名 code name
类型 C C
表 B 的数据结构:
中文名称 学号 姓名 分数
字段名 Student_code Student_name score
类型 C C N
表 A 的数据为: ('1101 ','韩甲'),('1102 ','丁乙')
表 B 的数据为: ('1101 ','韩甲',99),('1102 ','丁乙',89),('1103 ','徐静',94)
表中并没有相符值的记录。
6 ejb 中的 sessionbean 和 entitybean 的区别和含义? SessionBean 在 J2EE 应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调 用其他 EJB 组件。EntityBean 被用来代表应用系统中用到的数据。 对于客户机,SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体的对 象视图,或是一个由现有企业应用程序实现的实体。 7 抽象类和接口的区别
1.web 中的 forward 和 redirect 的区别?(
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转, 浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地 址。所以,前者更加高效,在前者可以满足需要时,尽量使用 forward()方法,并且,这样也有助于隐藏实 际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 sendRedirect()方法。