最全的BAT⼤⼚⾯试题整理,70道Java开发⾯试题及答案
Servlet            :接⼝
|
GenericServlet :通⽤的Servlet
|
HttpServlet        :HttpServlet
* 编写⼀个类继承HttpServlet,重写doGet和doPost⽅法.
* 配置
16. SERVLET的⽣命周期
⽤户第⼀次访问Servlet的时候,服务器会创建⼀个Servlet的实例,那么Servlet中init⽅法就会执⾏.任何⼀次请求服务器都会创建⼀个新的线程访问Servlet中的service的⽅法.在service⽅法内部根据请求的⽅式的不同调⽤doXXX的⽅法.(get请求调⽤doGet,post请求调⽤doPost).当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy⽅法就会执⾏.
17. SERVLET中FORWARD和REDIRECT的区别
重定向(redirect)其实是两次request,第⼀次,客户端request,A服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,⽽且历史的回退按钮也亮了。重定向可以访问⾃⼰web应⽤以外的资源。在重定向的过程中,传输的信息会被丢失。
请求转发(forward)是服务器内部把对⼀个request/response的处理权,移交给另外⼀个.对于客户端⽽⾔,它只知道⾃⼰最早请求的那个A,⽽不知道中间的B,甚⾄C、D。传输的信息不会丢失。
flask模板
18. JSP和SERVLET的相同点和不同点
联系:
JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易⽅式,更强调应⽤的外表表达。
JSP编译后是”类 servlet”。
不同点:
- Servlet 的应⽤逻辑是在Java⽂件中,并且完全从表⽰层中的HTML⾥分离开来。Servlet如果要实现html功能,必须使⽤Writer输出对应的html.
- JSP 的情况是Java和HTML可以组合成⼀个扩展名为.jsp 的⽂件。做界⾯展⽰⽐较⽅便,⽽嵌⼊逻辑复杂.
- JSP 侧重于视图,Servlet 主要⽤于控制逻辑
19. jsp内置对象和四⼤作⽤域和页⾯传值
| 内置对象名 | 类型 |
| — | — |
| request | HttpServletRequest |
| response | HttpServletResponse |
| config | ServletConfig |
| application | ServletContext |
| session | HttpSession |
| exception | Throwable |
| page | Object(this) |
| out | JspWriter |
| pageContext | PageContext |
| 域 | 范围 |
| — | — |
| page域 | 只能在当前jsp页⾯使⽤ |
| request域 | 只能在同⼀个请求中使⽤ |
| session域 | 只能在同⼀个会话(session对象)中使⽤ |
| context域 | 只能在同⼀个web应⽤中使⽤ |
20. SESSION和COOKIE的区别和使⽤场景
Session和cookie都是会话(session)跟踪技术.cookie通过在客户端记录信息确定⽤户⾝份,⽽session是通过在服务器端记录信息确定⽤户⾝份.但是session的实现依赖于cookie机制来保存JESESSIONID(session的唯⼀标识,需要存在客户端)
区别:
1. cookie的数据存储在客户端,session的数据存储在服务器上
2. cookie不是很安全,别⼈可以通过分析存放在本地的cookie并进⾏cookie欺骗,考虑到安全应该使⽤session
3. session会在⼀定时间内保存在服务器上,当访问增多时,会影响服务器的性能.考虑到服务器性能,应当使⽤cookie.
4. 单个cookie保存数据不能超过4k,很多浏览器显⽰⼀个站点最多保存20个cookie
5. 将重要信息保存在session中(登陆),将其他需要保留的信⼼存放在cookie中(购物车,cookie是可以在客户端禁⽤的,这时候要使⽤mysql面试题大全
cookie+数据库的⽅式实现购物车,当cookie中不能取出数据,就从数据库中取)
21. MVC模式和MVC各部分的实现
MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是⼀种典范.低耦合(m和v的分离)
struts2的mvc:jsp–>StrutsPrepareAndExecuteFilter(前端控制器,核⼼控制器)+action–>javabean–>result
22. 数据库分类和常⽤数据库
>
- 关系型:MySQL、 ORACLE、SQL Server、IBM DB2、Sybase
- ⾮关系型:Redis,Memcached,MongoDB ,Hadoop
23. 关系型数据库的三范式
范式就是规范,就是关系型数据库设计表时遵循的三个规范.要满⾜第⼆范式,必须先满⾜第⼀范式,要满⾜第三范式,必须先满⾜第⼆范式
1. 第⼀范式(1NF)是指数据库表的每⼀列都是不可分割的基本数据项,同⼀列中不能有多个值,即实体中的某个属性不能有多个值或者
不能有重复的属性。列数据的不可分割.
2. 第⼆范式(2NF)要求数据库表中的每个实例或⾏必须可以被唯⼀地区分。为实现区分通常需要为表加上⼀个列,以存储各个实例的
唯⼀标识.(主键)
3. 第三范式(3NF)要求⼀个数据库表中不包含已在其它表中已包含的⾮主关键字信息。(外键)
反三范式:有时候为了效率,可以设置重复或者可推导出的字段.⽐如:订单(总价),订单项(单价)
24. 事务的四⼤特征
事务是并发控制的单位,是⽤户定义的⼀个操作序列.这些操作要么都做,要么都不做,是⼀个不可分割的⼯作单位.例⼦:转账
事务的四⼤特性:ACID
1. 原⼦性(Atomicity):表⽰事务内不可分割,要么都成功,要么都失败
2. ⼀致性(Consistency):要么都成功,要么都失败.失败了,要对前⾯的操作进⾏回滚
3. 隔离性(Isolation):⼀个事务开启了,不能受其它事务的影响
4. 持久性(Durability):持续性,表⽰事务开始了,就不能终⽌.事务提交后,将数据序列化到数据库
25. MYSQL数据库最⼤连接数
数据库默认的最⼤连接数是100,在实际操作中,我们会去修改这个值:mysql安装⽂件–>my.ini⽂件
# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=100
26. MYSQL和ORACLE的分页语句
为什么要分页?很多数据不能完全展⽰出来,需要进⾏分段显⽰
mysql:是使⽤关键字limit来进⾏分页的.LIMIT [offset,] rows:offset指定要返回的第⼀⾏的偏移量(也就是从哪个索引开始),rows第⼆个指定返回⾏的最⼤数⽬。初始⾏的偏移量是0(不是1)
oracle:⼀般是使⽤rownum 加select 嵌套查询
27. 触发器的使⽤场景?
触发器:触发器需要有触发条件,当条件满⾜后,做什么操作
应⽤场景:某些社交软件的⽇志更新,会通知好友; ⼀些论坛中,当插⼊新帖时,会更改当前帖⼦总数以及最后发帖时间.
CREATE [or REPLACE] TRIGGER 触发器名
BEFORE | AFTER
map继承什么接口[DELETE ][[or] INSERT] [[or]UPDATE [OF 列名]]
ON 表名
[FOR EACH ROW ][WHEN(条件) ]
declare
……
begin
PLSQL 块
End ;
28. 存储过程的优点
>
1. 存储过程只在创建时进⾏编译,以后每次执⾏它都不会再重新编译.⼀般SQL语句每次执⾏都会编译.所以存储过程会⼤⼤提⾼数据库执
⾏速度
2. 通常复杂的业务逻辑需要多条SQL语句,这些语句要分别从客户机发送到服务器,当客户机和服务器之间的操作很多时,会产⽣⼤量的⽹
络传输.如果将这些操作放在⼀个存储过程中,那么客户机和服务器之间的⽹络传输会⼤⼤减少,降低⽹络负载.php文本框代码怎么写
vue3源码下载3. 存储过程是可重复使⽤的,能减少数据库开发⼈员的⼯作量.
4. 存储过程可以屏蔽对底层数据对象的直接访问,使⽤EXECUTE权限调⽤存储过程,⽆需拥有访问底层数据库对象的显⽰权限,安全性⾼.
29. JDBC调⽤存储过程
贾琏欲执事truncated命令不记录日志
加载驱
获取连接
设置参数
执⾏
释放连接
30. 简单说⼀下你对JDBC的理解
Java database connection java数据库连接,数据库关系系统很多,每个数据库关系管理系统⽀持的命令是不⼀样的.
Java只定义接⼝,让数据库⼚商⾃⼰实现接⼝,对于我们开发⼈员⽽⾔,只需要导⼊对应⼚商开发的实现即可,然后以接⼝的⽅式进⾏调⽤(mysql+mysql驱动(实现)+jdbc)
31. 写⼀个JDBC的访问ORACLE的列⼦

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。