Java面试题分享

看了很多面试者,虽然可能你能力很强,但是一些基础的面试题还是不知道,不觉地为面试者抓把汗呐!今天主要分享一下面试题目和如何解答。

你是怎么理解关系数据库的事务的,平时工作中你们是采用什么技术来做事务处理的,这种事务处理机制的原理是什么

我面试过的好几个求职者都拿银行转账什么的例子来说明关系数据库的事务,其实我更希望他们能够从关系数据库事务的 a c i d四个方面来一一解答,只要应聘者能够回答出a c i d四个特征,那么,第一个问题就是满分。

工作中采用什么技术来做事务处理,我认为这是一道比较开放的问题,可以从代码层面的编程式事务处理和类似spring框架提供的声明式事务处理两个方面来回答,编程式式事务处理就是在代码中通过jdbc的connection手动开启事务和手动提交事务,也可以使自动提交事务。声明式就是spring的T r a n s a c t i o n M a n a g e r是通过a o p(动 态代 理)。对于答案,代理的给6分,如果能够展开说面向切面编程和动态代理的,给满分10分;关于声明式事 务处理的控制,能够答出T r a n s a c t i o n Ma n ag er或者a o p或者 动 +态 代 理任何一个的给5分。

java中支持多继承吗?请详细说明

这个是很基础了,多方面举例说明

java原生的char数据类型采用的什么编码方式?

Java的字符类型采用的是UTF-16编码方式对Unicode编码表进行表示。其中一个char类型固定2Bytes(16bits)

IOException是运行时异常吗?

错误Error和异常Exception

运行时异常都是RuntimeException类及其子类异常,jvm接管或者自己处理

非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。如 IOException、SQLException 等以及用户自定义的Exception异常必须自己处理

main方法中启动了一个子线程,请问当main主线程执行完毕的时候,main方法退出吗?在什么样的情况下main方法会退出,什么样的情况下main方法会等待子线程结束后退出?

不会,必须等子线程结束才会退出,但是当子线程是守护线程的话会退出

知道java.util.concurrent下面的AtomicInteger吗?说说它的作用和Integer的区别

这个就是看你对API理解了(其实我也不太清楚,只是想到就问)

http协议是什么,http协议的结构?http协议是如何被解析?

这个问题主要是对协议报文的理解。

协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器

HTTP协议详解之URL篇

http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff

Schema: http指定低层使用的协议(例如:http, https, ftp)

host: www.mywebsite.comHTTP服务器的IP地址或者域名

path: /sj/test/test.aspx访问资源的路径

Query String: name=sviergn&x=true发送给http服务器的数据

Anchor: stuff锚

port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/

HTTP协议详解之请求篇

http请求由三部分组成,分别是:请求行、消息报头、请求正文

1.请求报文的格式如下:

请求头 通用信息头 请求头 实体头 报文主体

HTTP协议详解之响应篇

HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文

响应报文的格式如下:

状态行 通用信息头 响应头 实体头 报文主体

mvc和三层架构的区别

这是一个很容易搞混的问题。

三层架构是一种分层式的软件体系架构设计,mvc是一种设计模式

三层架构将整个项目划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

MVC 即Model(模型),View(视图),Controller(控制)

三层架构的目的着重点是“高内聚,低耦合”,即解耦。

MVC的目的则是实现Web系统的职能分工,即职责划分。===========三层侧重的是整体的一个解耦,而MVC侧重的是web系统的解耦

  • spring的A O P原理?

  • 实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;

  • 二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。

  • 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理

  • 谈谈对A O P的理解

    这个我喜欢听到面试者自己的理解,而不是书本内容,要的是深刻理解。

  • aop切面编程就是在常规的执行java类中方法前或执行后加入自定义的方法。比如你本来每天都去打酱油,去,打酱油,回。现在我每天在你打酱油路上等着,你去打酱油的时候我打你一顿,

    回来的时候给你点糖果吃。你根本不知道为什么我会在路上拦住打你。

  • 所以在切面中插入你自定义的方法,这个方法的执行和本身要执行的类方法无关系,也就是不是这个类的方法来调用你写的方法的,你写的方法什么时候执行都是要通过在配置指定。我打完你,你该打酱油还是去打酱油,当然我如果是拦住你让你酱油打少点,你打酱油的时候还是会打那么多,但是在你打完酱油回来的时候我可以把你的酱油倒些出去,

  • 所以嵌入的自定义方法对要调用的类方法本身没有影响,但是可以操纵这个方法的返结果或者处理结果。

  • mysql的a c i d和mysql默认事务隔离级别?

  • SERIALIZABLE(序列化)

  • REPEATABLE READ(可重复读)

  • READ COMMITTED(提交读)

  • READ UNCOMMITTED(未提交读)

  • MySQL的InnoDB默认是使用的RR级别

  • Oracle如何自增主键?


  • 学习Java的同学注意了!!!
    学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群346942462,我们一起学Java!

    你可能感兴趣的:(Java面试题分享)