我的第一篇博客之java面试遇到的问题及解决方法

一、String x = "abc"; String y= new String("bc");总共创建了几个对象

  第一个表达式先在常量池里创建了一个abc,然后赋值给x,所以是一个对象。第二个表达式现在常量池里创建一个bc,然后又在堆内存里面new一个对象,所以有两个对象才对。

二、一个叫 team 的表,里面只有一个字段name, 一共有4 条纪录,分别是a,b,c,d, 对应四个球队,现在四个球队进行比赛,用一条sql 语句显示所有可能的比赛组合

  select * from team a,team b where a.name > b.name

三、多线程是怎么实现同步的呢?

1、使用synchronized关键字,在Java语言中,每个对象都有一个对象锁与之相关联,该锁表明对象在任何时候只允许被一个线程锁拥有,当一个线程调用对象的一段synchronized代码时,需要先获取这个锁,然后去执行相应的代码,执行结束之后,释放锁。

而synchronized关键字主要有两种用法:synchronized方法和synchronized块

2、在synchronized代码被执行期间,线程可以调用对象的wait()方法,释放对象锁,进入等待状态,并且可以调用notify()方法或者notifyAll()方法通知正在等待的其他线程

3、lock emm这个还不太理解,有点复杂

猜你喜欢

转载自www.cnblogs.com/alijun5201314/p/12172628.html