输出结果是???(欢迎大家各抒己见,说出自己的见解)
public class Test{ public static void main(String[] args) { int a[] = {2,3,45,6}; System.out.println(Arrays.asList(a).contains(2)); } }
1, Hibernate中get和load方法的区别
hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;
hibernate对于get方法,hibernate一定要获取到真实的数据,否则返回null。
具体介绍:
1. 对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null。
2. load方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为true)。
分情况讨论:
(1)若为true,则首先在Session缓存中查找,看看该id对应的对象是否存在,不存在则使用延迟加载,返回实体的代理类对象(该代理类为实体类的子类,由CGLIB动态生成)。等到具体使用该对象(除获取OID以外)的时候,再查询二级缓存和数据库,若仍没发现符合条件的记录,则会抛出一个ObjectNotFoundException。
(2)若为false,就跟get方法查找顺序一样,只是最终若没发现符合条件的记录,则会抛出一个ObjectNotFoundException。
2, 列举一下你知道的实现spring事务的几种方式
(1),编程式事务管理:需要手动编写代码,在实际开发中很少使用,
(2),基于TransactionProxyFactoryBean的声明式事务管理,需要为每个进行事务管理的类做相应配置
(3),基于AspectJ的XML的声明式事务管理,不需要改动类,在XML文件中配置好即可
(4),基于注解的声明式事务管理,配置简单,需要在业务层类中添加注解
3,Java中equals和contains的区别
equals是判断字符串的是不是相等。
例如:"abc".equals("abc"),返回结果是Boolean类型的true;
"abc".equals("ab")返回结果是Boolean类型的false。
contains是包含的意思。
例如:"abc".contains("a"),返回结果是Boolean类型的true;
"abc".contains("d"),返回结果是Boolean类型的false。