java开发常见面试题有哪些?java开发常见面试题分享

我们想要进入到java行业,首先就要过面试这一关,面试主要就是考察你对java知识的掌握程度,面试通过才能做到java工程师,那java开发常见面试题有哪些?下面来我们就来给大家讲解一下。

java开发常见面试题.jpg

1.多线程编程的优势在哪?

答:在开发多线程的程序中,提高程序效率的方式就是多线程执行并发,CPU不会因为某个线程需要等待资源而进入空闲状态。多个线程共享堆内存(heap memory),因此创建多个线程去执行一些任务会比创建多个进程更好。举个例子,Servlets比CGI更好,是因为Servlets支持多线程而CGI不支持。

2.为什么Thread类的sleep()和yield()方法是静态的?

答:Thread类的sleep()和yield()方法将在当前正在执行的线程上运行。处于等待状态的线程被调用这种行为是毫无意义的。避免程序员错误的认为可以在其他非运行线程调用这些方法的最好方式就是在当前正在执行的线程中工作。

3.简述Mybatis的插件运行原理,以及如何编写一个插件。

答:Mybatis仅可以编写针对ParameterHandler、ResultSetHandler、StatementHandler、Executor这4种接口的插件,Mybatis使用JDK的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能,每当执行这4种接口对象的方法时,就会进入拦截方法,具体就是InvocationHandler的invoke()方法,当然,只会拦截那些你指定需要拦截的方法。

实现Mybatis的Interceptor接口并复写intercept()方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可,记住,别忘了在配置文件中配置你编写的插件。

4.comparable接口的作用是什么?

答:Comparable接口定义了compareTo(Object o)方法,可以用来实现对象的比较逻辑,这个接口常常在其他API中强制使用,用来规范对象的比较逻辑。

5.Mysql 中有哪几种锁?

答:MyISAM 支持表锁,InnoDB 支持表锁和行锁,默认为行锁;

表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低;

行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高;

6.使用 MySQL 视图有何优点?

答:操作简单方便。视图用户完全不需要关心视图对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。数据更加安全。视图用户只能访问视图中的结果集,通过视图可以把对表的访问权限限制在某些行和列上面。数据隔离。屏蔽了源表结构变化对用户带来的影响,源表结构变化视图结构不变。

我们只要掌握好java知识,其实在面试中也不会很难,所以建议大家在平时的时候多实践提高技能,也可以在面试之前刷一些面试题哦!最后大家如果想要了解更多Java面试题知识,敬请关注奇Q工具网。

推荐阅读:

Java代码怎么导出?Java代码如何保存?

java框架难学吗?java框架先学哪个?

java线程池满了怎么办?java线程池满了解决方法