java面试题04

1.就你所熟悉的银行业务面说一下,越详细越好

银行经验:手机银行  网上银行经验  怎么支付  转账  了解基本业务

2.了解工作流的控制,审批流程以及帐务处理么?

java中怎么实现工作流、审批流程,java怎么实现报表功能?

web 项目整合 jbpm或者其他工作流组件

3.java开发web有几种开发模式?你最熟悉哪种?

共有23中开发模式:

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

其实还有两类:并发型模式和线程池模式。

最熟悉的:单例模式

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。

4.描述某些特殊功能你认为要从什么包实现?

java.util是JAVA的utility工具包,包含一些使用工具类,如定义系统特性、使用与日期日历相关的函数等。

java.lang是JAVA的language核心语言包;如String、Math、Integer、System、Thread,提供常用的功能。特殊之处是不需要导入,是作为默认导入的包。

java.awt是JAVA的abstractwindow toolkit,抽象窗口工具包;包含了构成抽象窗口共具体的多个类,这些类用于构建和管理应用程序的图形用户(GUI)。

java.applet是创建APPLET的必须包;包含applet运行时所需要的一些类。

java.net是JAVA有关网络操作的包。

java.io是JAVA的输入输出流的包。

java.sql是JAVA的数据库操作包。

javax.swing是新的界面包。

java.applet 支持小应用程序的结构

java.awt 提供图形用户接口的能力

java.awt.color 支持颜色空间和外形

java.awt.datatransfer 与系统的剪贴板交换数据

java.awt.dnd 支持拖拉操作

java.awt.event 处理事件

java.awt.font 描述多种字体类型

java.awt.geom 允许你使用几何形状

java.awt.im 允许编辑组件中日文,中文,韩文的的输入

java.awt.im.spi 支持二选一的输入设备 (在java 2, v1.3中加入)   java.awt.image 处理图像

java.awt.image.renderable 支持独立显示图像

java.awt.print 支持一般的打印功能

java.beans 允许你建立软件组件

java.beans.beancontext 为bean 提供可执行环境

java.io 输入输出数据

java.lang 提供核心功能

java.lang.ref 使能与垃圾回收交互

java.lang.reflect 运行时分析代码

java.math 处理大整数和十进制数

java.net 支持网络功能

java.rmi 支持远程方法调用

java.rmi.activation 激活永久对象

java.rmi.dgc 管理分布垃圾回收

java.rmi.registry 映射名称到远程对象引用

java.rmi.server 支持远程方法调用

java.security 处理证书,密钥,摘要,签名和其他安全功能

java.security.acl 管理访问控制列表

java.security.cert 分析和管理证书

java.security.interfaces 为DSA(数字签名算法)定义接口

java.security.spec 设定密钥和算法参数

java.sql 与SQL(结构化查询语言)数据库交互

java.text 格式化,查询和处理文本

java.util 包含一般工具

java.util.jar 生成和打开JAR文件

java.util.zip 读写压缩或解压缩文件

5.一般怎么调试java程序?

(1)system.out.print()输出语句调试

(2)使用MyEclipse/Eclipse程序的Debug调试,设置断点,运行程序,观察不变量变化;

6.熟悉几种分布工具?各自是怎么发布的?

tomcat

部署方法:

(1)直接将web项目文件件拷贝到webapps 目录中

Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。

webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:

unpackWARs="true"

xmlValidation="false" xmlNamespaceAware="false">

将appBase修改即可。

(2)在server.xml中指定

在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下:

path是虚拟路径;

docBase 是应用程序的物理路径;

workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;

debug 则是设定debug level,  0表示提供最少的信息,9表示提供最多的信息

privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet

reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署

antiResourceLocking 和antiJARLocking  热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。

(3)创建一个Context文件

在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:

tomcat自带例子如下:

privileged="true" antiResourceLocking="false" antiJARLocking="false">

7.Easyui中的控制datagrid在加载数据的时候会出现两次请求后台数据的情况,什么原因?

html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url;然后又调用js初始化代码请求一次url。这样导致了重复加载,解决的方法就是只用一种初始化方法来声明easyUI组件以避免重复的提交请求,即删除html中的class声明(class="easyui-datagrid")或者采用延迟加载初始化:

init();

function init() {

$(‘#dic‘).datagrid({});

//延迟加载,否则页面请求两次

setTimeout(refreshDic, 100);

}

function refreshDic() {

$(‘#dic‘).datagrid({

queryParams: {

dictName

}

通过setTimeout实现延时请求,果断不请求两次了

为了那100毫秒页面没渲染的太难看,先初始化个简单的datagrid。

延迟的毫秒数试过很多,最小95毫秒左右,不能再小了,否则还是请求两次。

8.Oracle中字符串用什么符号链接?Oracle是怎样实现分页的?

连接符号是:||

分页:

select * from

(select a.*,rownum row_num from

(select * from mytable t order by t.id desc) a

) b

where b.row_num between startIndex and endIndex

9.Oraclewhere条件查询和排序的性能比较?

10.解释什么是死锁,如何解决Oracle中的死锁?

死锁:程序运行过程中,只有一个进程在运行,其他进程都在等待状态,并且点击进程的确定和保存按钮,程序无反应,但是也不报错,之中现象称作死锁。

解决方法:

1)用dba用户执行以下语句

以下是代码片段:

select username,lockwait,status,machine,program from v$session where sid in

(select session_id from v$locked_object)

如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。字段说明:

  Username:死锁语句所用的数据库用户;

  Lockwait:死锁的状态,如果有内容表示被死锁。

  Status: 状态,active表示被死锁

  Machine: 死锁语句所在的机器。

  Program: 产生死锁的语句主要来自哪个应用程序。

  2)用dba用户执行以下语句,可以查看到被死锁的语句。

select sql_text from v$sql where hash_value in

(select sql_hash_value from v$session where sid in

(select session_id from v$locked_object))

  A. kill掉这个死锁的进程:

  alter system kill session ‘sid,serial#‘; (其中sid=l.session_id)

  B. 如果还不能解决:(linux)

select pro.spid from v$session ses, v$process pro where ses.sid=XX and ses.paddr=pro.addr;

其中sid用死锁的sid替换:

exit

ps -ef|grep spid

其中spid是这个进程的进程号,kill掉这个Oracle进程。

11.怎么创建一个视图,视图的好处,视图可以控制权限吗?

创建视图语句:create or replace  view  teacher_view

                 as

            select tname,sal from teacher

创建视图要有视图权限,否则不能创建。

12.ServletAPIForward()Redirect()的区别?

forward:转发---是服务器端行为,携带请求数据,客户端的Url显示不改变,且客户端只发送请求了一次

redirect:重定向----是客户端行为,不携带请求数据,客户端的Url显示改变,且客户端至少发送请求了两次

13.如何查看在weblogic中已经发布的EJB?

可以使用管理控制台,在它的Deployment中可以查看所有已发布的EJB.

在weblogic中开发消息Bean时的persistent与non-persisten的差别:persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃

14.spring+Hibernate中委托方案怎么配置?

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="${jdbc.driverClassName}"/>

<property name="url" value="${jdbc.url}"/>

<property name="username" value="${jdbc.username}"/>

<property name="password" value="${jdbc.password}"/>

</bean>

<!-- 配置会话工厂sessionFactory -->

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource" ref="dataSource"></property>

<!-- 配置hibernate映射文件以及hiberbnate配置文件的参数 -->

<!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> -->

<property name="mappingDirectoryLocations" value="classpath:com/news/pojo"></property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.show_sql">true</prop>

<prop key="hibernate.format_sql">true</prop>

<prop key="hibernate.connection.autocommit">true</prop>

<prop key="hibernate.hbm2ddl.auto">update</prop>

<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>

<!-- 配置当前事务的Session -->

<prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate3.SpringSessionContext</prop>

<prop key="hibernate.javax.persistence.validation.mode">none</prop>

</props>

</property>

</bean>

15.求小王在2017年卖给北京海淀区客户财务软件的总套数?设计出表之间的关系,并写出sql语句。

表一:user(员工表)

字段:uid(员工id,主键) uname(员工姓名) utel(员工联系方式)

表二 district 地区表:

字段:did(地区did、主键) 地区姓名(dname)

表三:sal表

字段:sid(销售标号、主键) syear(时间) scount(数量) sdid(销往地区,外键关联district的主键did) suid(销售人员,关联外键user的主键uid)

select count(0) ‘销售数量’,uname ‘销售人员’

from (sal s left join district d on sdid =did)

left join user u on suid=uid

where d.dname=’海淀区’ and u.uname=’小王’ and s.syear=”2017”;

16.写个程序,实现对新闻的增删改查,新闻包括:新闻标题、种类、内容、附件,不同种类按照Tab展现,点击Tab时必须显示相应类型的新闻列表,点击列表后,弹出页面,显示新闻的项目内容,附件可以下载。

17.你对加班怎么看?能否出差?

18.目前北京的项目要求较高,你是否有意向去滨海新区发展?

时间: 2024-10-15 20:28:30

java面试题04的相关文章

JAVA面试题解惑系列(七)——日期和时间的处理

日期和时间的处理不仅在面试题中会考到,在实际项目开发中也是我们经常需要处理的问题,似乎没有哪个项目可以避开它们,我们常常在处理用户的出生年月日.注册日期,订单的创建时间等属性时用到,由此可见其重要性. java.util.Date类 提到日期和时间,我想大家最先想到应该是java.util.Date类吧.Date类可以精确到毫秒数,这个毫秒数是相对于格林威治标准时间"1970-01-01 00:00:00.000 GMT"的差值.那么,什么是格林威治标准时间呢?要回答这个问题,我们需要

Java面试题全集(中)

这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet. 补充:Sun Microsystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程

Java面试题下

这部分主要是开源Java EE框架方面的内容,包括hibernate.MyBatis.spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章<Java面试题集(86-115)>.此外,这篇文章还对企业应用架构.大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助. 126.什么是ORM?答:对象关系映射(Object-Relational Mapping,简称OR

java面试题及答案

JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派

【福利 】Java面试题最全 (中)

这部分主要是与Java Web和Web Service相关的面试题. 阅读全文 更多: java,java学习,java面试题  http://techfoxbbs.com

【福利 】Java面试题最全 (下)

这部分主要是开源Java EE框架方面的内容,包括Hibernate.MyBatis.Spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题 阅读全文 更多java,java学习,java面试题 http://techfoxbbs.com

Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 概要  和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码:最后再通过实例来学会使用LinkedList.内容包括:第1部分 LinkedList介绍第2部分 LinkedList数

Java面试题笔记

这是我从网上收集的常见Java面试题及答案,但只收录了我不会做的题目. 创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可以用来创建线程: 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类.在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口.同时,线程池也是非常高效的,很容易实现和使用. 在监视器(Monitor)内部,是如

JAVA面试题最全集

JAVA面试题最全集 2009-01-19 15:40 3458人阅读 评论(0) 收藏 举报 java面试ejbservletstringhashmap 一.Java基础知识1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别.2.字符串的操作:  写一个方法,实现字符串的反转,如:输入abc,输出cba  写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc.3.数据类型之间的转换  如何将数值型字符转换为数字(Integer,Doubl