笔试面试有用题目积累

好好积累一些有趣的题目,学习知识点

 

题目

1.实体对象在Hibernate中如何进行状态迁移?
3个状态必须记住

瞬时态(new, or transient)、持久态(managed, or persistent)、游离态(detached)和移除态(removed,以前Hibernate文档中定义的三种状态中没有移除态)

save持久化变为持久太,
2.何谓Hibernate的N+1问题,如何解决?
查询的时候多一次

n+1原理说明与解决方法

http://www.blogjava.net/RoyPayne/archive/2012/01/30/369017.html
3.Hibernate延迟加载的机制是什么,如何工作?
cglib代理加载,执行sql查询

http://blog.csdn.net/xc635960736/article/details/7049863

http://superleo.iteye.com/blog/243322
4.Hibernate级联保存要如何做?
设置cascade
5.Hibernate的二级缓存和一级缓存有什么区别? 
1session 2其他缓存框架比如ehcache,session缓存不能脱离session

6.spring中关于3类读问题,2类更新问题和数据库锁原理

http://www.iteye.com/topic/1124043

 

7.get和post的区别

  • get是从服务器上获取数据,post是向服务器传送数据。
  • 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
  • GET方式提交的数据最多只能有2k字节,而POST则没有此限制。

8.spring什么时候用require_new

 

9.高性能mysql

 

10.删除数据库表中的重复记录

 用SQL语句,删除掉重复项只保留一条
方法一:使用group by
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢
a.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 
select * from people 
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 
b.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 
delete from people 
where   peopleName in (select peopleName    from people group by peopleName      having count(peopleName) > 1) 
and   peopleId not in (select min(peopleId) from people group by peopleName     having count(peopleName)>1)
方法二:使用临时表
select distinct * into #Tmp_aa from tableName  把不重复的找出来插入到临时表
drop table tableName                                        删掉原来的表
select  * into tableName from #Tmp_aa            把临时表插入到新建的tableName
drop table #Tmp_aa                                         删掉临时表
 
11.在plsql中如何,从员工表employee中统计出姓王的员工的人数?
直接使用,select count(*) from employee where name like “王%”,可以吗,不可以的话应该怎么做呢
用游标吗,还是说count是分组函数不能这么使用呢?
答:count(*)我在plsql上测试了,跟其他数据mysql是同样的用法,有可能我停Oracle面试时,题目有些听的不够清楚,plsql有空要加强学习
 12.plsql笔试面试题目
 13.spring题目
spring延迟加载,赖加载的属性是:lazy-int=true
spring的单例,多例使用的是scope来配置生命周期
spring隔离级别有4个,还有一个是数据库默认级别isolution-default
读未提交;读提交;可重复读;序列化serializable
一个系统如何判断是否需要延迟加载bean?
14.jvm架构

http://www.cnblogs.com/ggzwtj/archive/2012/04/11/2441724.html

 

15.如何判断链表是否有环的存在

答:

判断链表是否存在环,办法为:
设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:

bool IsExitsLoop(slist *head)
{
    slist *slow = head, *fast = head;

    while ( fast && fast->next ) 
    {
        slow = slow->next;
        fast = fast->next->next;
        if ( slow == fast ) break;
    }

    return !(fast == NULL || fast->next == NULL);
}
 
16. Maven 或者 eclipse 导出 jar ,方法的参数为什么是没有意义的命名呢,因为没有注释吗?

 

答:

可能原因一:

  当jar有源码和注释,引用jarapi时,参数才会显示有意义的命名,也可以显示注释

  当jar包没有源码时,在生成class文件时,注释会被去掉,方法参数的命名会被简单替换再也没有提示了,所以掉用api时就会出现:既没有注释,方法参数的命名也是param1这种没意义的命名方式

可能原因二:

  eclipse安装了代码混淆工具,所以api的变量名被打乱,无法显示有意义的变量名

  (在APS的开发环境,可能是这张情况引起的)

 

     

猜你喜欢

转载自xingqinstar.iteye.com/blog/1828737