面试题三
80、事务的ACID是指什么?
分别是原子性,一致性,隔离性,持久性
- 原子性:每个操作都是不可再分割,要么同时完成,要么同时不完成(A给B发微信红包,A的账户扣款,B的账户要收到款,要么都完成了。要不都不做)(回滚是应该是undolog)
- 一致性:数据库总是从一个正确状态到另一个正确状态。这个需要原子性作为基础。
- 隔离性:不同事务之前的操作相互独立,互不影响
- 持久性:事务完成之后永久有效,即使断电,或者其他意外,事务还是完成状态。这个应该是通过日志实现的(binlog)
81、JDBC中如何进行事务处理?
这种问题其实很奇怪。但是我好像没用过,而且怎么会直接用JDBC
大概就是下面这几个吧:回滚,保存点,自动提交
82、JDBC能否处理Blob和Clob?
要说能不能,那肯定是能的,
怎么处理待解决??
83、简述正则表达式及其用途。
84、Java中是如何支持正则表达式操作的?
85、获得一个类的类对象有哪些方式?
- 直接用关键字new
- 通过反序列化获取
- 通过反射获取。例如IOC里面的getBean(“beanName”)
- 通过克隆获取
86、如何通过反射创建对象?
可以通过反射获取该对象的class对象
Class cl = Class.forName(“com.java.basic.reflection.Demo”) // 需要全限定名
cl.newInstance // 这样就能获取到对象了
87、如何通过反射获取和设置对象私有字段的值?
这个就不记得了。但是看reflecttion里面的代码获取看API了
88、如何通过反射调用对象的方法?
89、简述一下面向对象的"六原则一法则"。
90、简述一下你了解的设计模式。
工厂模式,单例模式,动态代理(估计还写不出来)
91、用Java写一个单例类。
public class SingleModel {
private SingleModel(){
System.out.println("单例模式");
}
public static SingleModel getSingleModel(){
return new SingleModel();
}
}
92、什么是UML?
93、UML中有哪些常用的图?
94、用Java写一个冒泡排序。
冒泡排序其实不算难,难点的是快速排序
public static void bubbleSort(int[] a){
//temp放到外面,避免多次new
int temp;
for (int i = 0; i< a.length; i++){
int tag = 0;
for (int j = 0; j < a.length-i-1; j++){
temp = a[j];
if (a[j] > a[j+1]){
a[j] = a[j+1];
a[j+1] = temp;
tag++;
}
}
//如果一次交换都没有,后续不用循环了。但是感觉优化并不是很大
if (0==tag){
break;
}
}
}
95、用Java写一个折半查找。
static public int binarySearch(int[] a, int target){
return binarySearch(a,target,0,a.length);
}
/**
* 这般查找,返回器找到那个数的下标
* @param a 有序数组
* @param target 寻找的目标
* @param low 低位
* @param high 高位
* @return 返回-1代表找不到,其他值代表数组小标
*/
public static int binarySearch(int[] a,int target,int low, int high){
if (low==high){
return -1;
}
if (a[(low+high)/2]==target){
return (low+high)/2;
}
if (a[(low+high)/2]<target){
return binarySearch(a,target,low,(low+high)/2);
}
if (a[(low+high)/2]>target){
return binarySearch(a,target,(low+high)/2,high);
}
// 不可能走到这一步的
return -1;
}
96、阐述Servlet和CGI的区别?
Servlet是一个Java接口
CGI?
97、Servlet接口中有哪些方法?
主要是前三个,后面两个方法名还不知道有没有写错
- init() 初始化
- service() 提供服务
- destory() 销毁servlet
- getServletConfig 获取配置
- getServletInfo 获取信息
98、转发(forward)和重定向(redirect)的区别?
转发限定了只能是本站点,而且浏览器发送一次请求,服务器进行转发的(相当于我知道你错了,但是我还是替你跳转过去)
重定向可以去向任何地方,而且浏览器要发送两次请求(相当于:你这个地址错了,我给你个地址,你在重新访问把)
99、JSP有哪些内置对象?作用分别是什么?
100、get和post请求的区别?
get 用来想服务器获取资源,参数会显示在URL中,所有参数总大小有限(URL 长度有限),只能传递String类型,浏览器点返回不会重复提交
post 提交数据给服务器,参数隐藏,参数数目不限制(post的参数也可以在URL显示的),可以传递各种类型,浏览器点返回会重复提交
101、常用的Web服务器有哪些?
Tomcat
102、JSP和Servlet是什么关系?
103、讲解JSP中的四种作用域。
104、如何实现JSP或Servlet的单线程模式?
105、实现会话跟踪的技术有哪些?
Cookie
和Session// Cookie的使用 //获取cookie的方式1 new一个 Cookie cookie = new Cookie("cookiename","cookievalue"); //获取Cookie 方式2 从HttpServletRequest对象中获取 Cookie[] cookies = request.getCookies(); // 将Cookie返回给浏览器 添加的HttpServletResponse对象中 response.addCookie(cookie); // 获取Session的方式,Session是每个请求在内存中自动生成的,通过HttpServletRequest对象获取 request.getSession();
106、过滤器有哪些作用和用法?
107、监听器有哪些作用和用法?
108、web.xml文件中可以配置哪些内容?
109、你的项目中使用过哪些JSTL标签?
110、使用标签库有什么好处?如何自定义JSP标签?
111、说一下表达式语言(EL)的隐式对象及其作用。
112、表达式语言(EL)支持哪些运算符?
113、Java Web开发的Model 1和Model 2分别指的是什么?
114、Servlet 3中的异步处理指的是什么?
115、如何在基于Java的Web项目中实现文件上传和下载?
我之前用过的一个是利用EasyExcel实现的Excel文件上次下载,其他的文件上次下载应该也是有相关的包的
116、服务器收到用户提交的表单数据,到底是调用Servlet的doGet()还是doPost()方法?
117、JSP中的静态包含和动态包含有什么区别?
118、Servlet中如何获取用户提交的查询参数或表单数据?
可以通过HttpServletRequest对象 获取查询参数和表单数据
String userAccount = request.getParameter("userAccount");
Map<String,String[]> map = request.getParameterMap()
119、Servlet中如何获取用户配置的初始化参数以及服务器上下文参数?
小结
做完这套面试题,突然感觉我好菜。好多都不知道
日!
总目录:Java进阶之路-目录
“神欢体自轻,意欲凌风翔”
博主:五更依旧朝花落
首次发布时间:2020年5月20日23:11:45
末次更新时间: