Java面试题系列-(三)

面试题三

80、事务的ACID是指什么?

分别是原子性,一致性,隔离性,持久性

  • 原子性:每个操作都是不可再分割,要么同时完成,要么同时不完成(A给B发微信红包,A的账户扣款,B的账户要收到款,要么都完成了。要不都不做)(回滚是应该是undolog)
  • 一致性:数据库总是从一个正确状态到另一个正确状态。这个需要原子性作为基础。
  • 隔离性:不同事务之前的操作相互独立,互不影响
  • 持久性:事务完成之后永久有效,即使断电,或者其他意外,事务还是完成状态。这个应该是通过日志实现的(binlog)

事务隔离级别

81、JDBC中如何进行事务处理?

这种问题其实很奇怪。但是我好像没用过,而且怎么会直接用JDBC
大概就是下面这几个吧:回滚,保存点,自动提交在这里插入图片描述

82、JDBC能否处理Blob和Clob?

要说能不能,那肯定是能的,
怎么处理待解决??

83、简述正则表达式及其用途。

84、Java中是如何支持正则表达式操作的?

85、获得一个类的类对象有哪些方式?

  1. 直接用关键字new
  2. 通过反序列化获取
  3. 通过反射获取。例如IOC里面的getBean(“beanName”)
  4. 通过克隆获取

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
        末次更新时间:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值