Java常见笔试和面试题(一)

Java常见笔试和面试题(一)

1.break和continue的区别

在循环体内,break和continue的区别在于,使用break是结束整个循环,并执行循环体之后的语句。使用continue是结束本次循环,并继续执行下一次循环。

2.冒泡排序,快速排序,二分查找

3.面向对象的四大特征:抽象(有争议),封装,继承,多态

4.方法的重写和重载

  • 重写是子类对父类允许访问的方法的实现过程进行重新编写,返回值和参数列表都不能改变。
  • 重载是在一个类里面,方法名字相同,而参数不同,返回值类型可以相同也可以不同。

5.什么是多态,多态的应用场景?

多态是继封装,继承之后,面向对象的第三大特征。
多态可以实现向上转型和向下转型。

6.String和StringBuilder的区别,StringBuilder和StringBuffer的异同

  • String和StringBuilder的区别
    String的字符串不能修改,要修改只能创建新的String对象。
    StringBuilder的字符串可以修改。

  • StringBuilder和StringBuffer的异同
    StringBuilder和StringBuffer的用法完全相同,都是可以改变自身的字符串。
    StringBuilder的方法是非线程安全的,适合单线程环境。
    StringBuffer的方法是线程安全的,适合多线程环境。
    StringBuilder的性能高于StringBuffer。

7.异常处理的两种方式,throw异常处理流程?

一,使用throws关键字,声明异常,交给方法的调用者处理,最终交给JVM处理。
二,使用try…catch捕获异常。

  • try…catch异常处理流程:如果try中没有异常,就不会执行catch中的代码,执行try…catch后面的代码。如果catch中有异常,且异常类型和catch声明的异常类型一致,就会执行catch中的代码,然后再执行try…catch后面的代码。finally中的代码一定会执行。
  • throw异常处理流程:throw用于在方法中手动抛出异常,出现错误后抛出异常,让上级知道有异常出现,一旦抛出异常,后面的程序不能运行。

8.Servlet生命周期

Servlet生命周期指的是Servlet类的对象从创建到销毁的过程。
Servlet类是单实例多线程的,自始自终只会创建一个对象来响应用户请求。

  1. 如果servlet类的配置中没有load-on-startup配置:
    当用户请求第一次到达时,就会创建servlet类的对象,然后使用该对象依次调用service(ServletRequest,ServletResponse)——service(HttpServletRequest,HttpServletResponse)——doGet/doPost方法响应用户请求,当用户请求再次到达时,不会重新创建对象,而是直接使用已经创建的对象调用service——service——doGet/doPost进行响应。
  2. 如果servlet类的配置中有load-on-startup配置:
    在服务器启动时就会按照load-on-startup配置的加载顺序创建servlet类的实例,当请求到达时就直接使用创建的实例调用service——service——doGet/doPost进行响应。
    当服务器关闭时,就销毁servlet实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值