Java面试问题汇总(每天进步一点点)

面试问题汇总

1.final、finally、finalize的区别

  • final是修饰符:被修饰的类不能被继承,被修饰的方法不能被重写,被修饰的变量只能被赋值一次
  • finally是异常处理的重要组成部分:try....catch....finally,不管时候产生或者跑出异常都会执行finally里面的操作,一般我们在其中做释放资源的操作
  • finalize:是Object类中的方法,所以说所有都得类都会有这个方法,这个方法主要是在对象被GC机制回收的时候调用,一般也是做释放资源的操作

2.Overload与Override的区别

  • Overload 特点

    • 在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));
    • 不能通过访问权限、返回类型、抛出的异常进行重载;
    • 方法的异常类型和数目不会对重载造成影响;
    • 重载事件通常发生在同一个类中,不同方法之间的现象。
    • 存在于同一类中,但是只有虚方法和抽象方法才能被覆写。
  • Override特点
    • 覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
    • 覆盖的方法的返回值必须和被覆盖的方法的返回一致;
    • 覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
    • 方法被定义为final不能被重写。
    • 对于继承来说,如果某一方法在父类中是访问权限是private,那么就不能在子类对其进行重写覆盖,如果定义的话,也只是定义了一个新方法,而不会达到重写覆盖的效果。(通常存在于父类和子类之间。)

3.什么是事物及其特性

  • 概念:事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。
  • 特性:原子性、隔离型、持久性、一致性

4.事物会出现的问题(并发问题)

  • 脏读:一个事物读到了另外一个事物未提交的数据(我还没提交你就读到了)
  • 不可重复读:一个事物读到了另外一个事物已经提交Update的数据(我还没修改完,你就读了)
  • 幻读(虚读):一个事物读到另外一个事物已经提交的增删的数据(我对整个表内容操作时,你就增删数据)

5.事物的隔离级别

  • 读未提交:所有问题均有可能发生
  • 读已提交:避免脏读(oracle默认)
  • 不可重复读:避免脏读和不课重复读(mysql默认)
  • 串行化:避免所有问题

6.数据库的控制

  • 事物控制来源于关系型数据库
  • Mysql的控制:
    • 存储引擎:innoDB(支持事物)
    • 存储引擎:MyIsam(不支持事物)
  • jdbc事物的控制:关闭自动提交(CommitAuto(false))
  • Hibernate中的事物控制:使用Session进行事物控制:session.beginTransition();
  • Spring使用Aop进行事物管理

7.线程的状态

  • 就绪
  • 运行
  • 阻塞
  • 终止

8.创建线程的方式

  • 实现Runnable接口
  • 继承Thread类
  • 实现callable和futureTask创建线程
  • 通过线程池获取

9.java面向对象的特点

  • 封装
  • 继承
  • 多态
  • 抽象

10.java中的基本数据类型

  • 整形:byte、short、int、long
  • 浮点型:float、double
  • 字符型:char
  • 布尔型:boolean

11.==与equlas的区别

  • 对于基本数据类型,“==”比较的是两者的值是否相等。

  • 对于引用数据类型

    • “==”比较的是引用的地址是否相同

      Object中的.equals()方法和"==’功能一样。

    • 但是String类中的.equals()方法重写了,比较的是两个引用对象的内容是否想同。

  • 简而言之:如果勒种没有重写equals()方法的话,其实与“==”是一样的

12.你知道的集合类都有哪些以及常用方法

  • Collection的子类
    • List:ArrayList,LinkedList,Vector
    • Set:HashSet,TreeSet,HashTable
    • 其主要方法有:add(),get(),addAll(),renmove(),contains()
  • Map的子类:
    • HashMap
    • HashTable
    • 其主要方法有:put,remove,get,cotainsKey

13.java中的异常如何处理

  • 捕获异常:try...catch...finally
  • 继续向上层抛出异常:throws

14.jsp与servlet的却别以及servlet的执行流程

  • 区别:jsp编译后就是servlet,jsp比servlet更擅长页面显示而servlet更注重逻辑控制,servlet没有内至对象
  • servlet的执行流程:用户请求-->servlet映射-->servlet的类-->执行doget方法
  • servlet的生命周期: init()-->service()-->destory()

15.get请求与post请求的区别

  • get请求的参数在请求头中,post在请求体重
  • get的安全性相比post较差
  • get的内容大小有限制

16.重定向和转发

  • 重定向:HttpServletResponse.sendRedirect
  • 转发:RequestDispatcher.forward
  • 区别:
    • 转发地址栏不变(一次请求),重定向地址栏变化(两次)
    • 转发不用写项目名称,重定向需要编写项目名称
    • 转发可以使用request对象传递值,重定向不可以使用request对象传递值
    • 转发只能在服务器的内部进行操作,重定向可以定向到任何的资源!!

17.tomcat的常用配置

  • 目录结构

    /bin:脚本文件目录。
    /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)。
    /conf:存放配置文件,最重要的是server.xml。
    /logs:存放日志文件。
    /server/webapps:来管理Tomcat-web服务用的。仅对TOMCAT可见,对所有的WEB APP都不可见(使用Catalina类加载器加载)。
    /shared/lib:仅对所有WEB APP可见,对TOMCAT不可见(使用Shared类加载器加载)。
    /temp:Tomcat运行时候存放临时文件用的。
    /webapps:web应用发布目录。
    /work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。删除后,启动时会自动创建。

  • 配置文件

    server.xml:主要的配置文件。
    web.xml:缺省的web app配置,WEB-INF/web.xml会覆盖该配置。
    context.xml:不清楚跟server.xml里面的context是否有关系。

    port:端口

    minProcessors:最小线程

    maxProcessors:最大线程

Snipaste_2018-11-15_21-46-41.png
Snipaste_2018-11-15_21-48-51.png
Snipaste_2018-11-15_21-52-38.png
Snipaste_2018-11-15_22-08-26.png
Snipaste_2018-11-15_22-09-31.png
Snipaste_2018-11-15_22-15-49.png
Snipaste_2018-11-15_22-20-43.png
Snipaste_2018-11-15_22-27-33.png
Snipaste_2018-11-15_22-35-31.png
1.png
Snipaste_2018-11-15_23-42-12.png
Snipaste_2018-11-16_00-04-21.png
Snipaste_2018-11-15_22-39-59.png
微信图片_20181115220205.png

image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,906评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,442评论 11 349
  • 1.内存泄露 内存泄漏两种情况: 在堆中申请的空间没有被释放(虚拟机gc可以解决) 对象已不在使用,但仍然在内存中...
    Aimerwhy阅读 3,751评论 0 0
  • 把事情做完、做好,並非不可能的任務。專業工作者不僅要善加管理時間,還要學習規劃工作的優先順序。在日本東京全球...
    Emnnn_阅读 4,940评论 0 1
  • 十年如梭 约旦河依旧 从加利利奔向死海 正如我 从丰盛走到了贫脊 没有爱人的呵护 不再有少年人的嘻闹 只有旷野的风...
    萌牛_祭强阅读 1,833评论 2 3