首先谈一下你对你们项目架构的感想?
你觉的,你在项目中负责的模块,难度大不大,完成进步一般怎么安排?
你对需求和代码的转换是如何理解的?自己的模块,是不是自己设计数据库?
说说自己对权限的看法?
你们项目中怎么完成分页的?
关于服务优化你懂多少?
你感觉java项目中,最常出现有问题有哪些?
把业务逻辑放在数据库好,还是放程序中好?回答了一些 基本上都没回答上 有些回答了 感觉也是乱答一通 所以想请教下风老师和各位高手帮忙下 这些问题有没有更好的回答方式

解决方案 »

  1.   

    关于服务优化你懂多少?
      先看数据库表的设计是否合理,
      然后看能否建索引,
      在写sql的时候避免group by,like之类全表扫描的,
      如果表的数据库量足够大可以考虑分表,比如数据库有上亿条数据,你可以1-500万在一个表,500万-1000万在另一个表
      
      

  2.   

    看来现在对“权限”的问题很重视啊对这些问题基本都是“乱答”的,
    只要答案有条理,有条不紊的回答就行了。good luck
      

  3.   

    1.第一感想就是累啊、操心!但是每次做项目都有不同幅度的提高!
    2.每个项目的难度都不一样啊,不能一概而论!首先做好自己程序或算法、先把简单的做了,再做复杂的、经常与同事讨论接口等问题、尽量把程序想周全,写的通用一些
    3.个人觉得代码转换难度不是很大,照着原来的程序,改成现在的语法就行了被,不懂的地方查查就行!
    但是这个需求最TM恶心,要经常和客户沟通,否则程序写的再好,客户不满意就遭了!每个客户的需求都不一样,能把大部分的客户满足了,这个必须要走一个长期的路线
    4.如果项目经理放心,当然自己设计最好(毕竟符合自己的意愿)!但是自己要对自己的表结构负责,呵呵!自己的表结构就决定了业务流程的走向,如果没有相关经验,还是不要设计表结构比较好!你的表结构不健全或不合理会导致程序的改动非常大,到时大家都鄙视你就不好了,呵呵!
    5.权限很重要,越大的系统权限越细,尽量把每个模块都做权限(例如增删改查等),权限越多,安全性越高,也越复杂!权限也是对客户的负责啊!举个例子,如果某个老板一年赚了xxx万,都记录在系统中,他当然不希望其他员工看见这些明细了,就好比你家的存折随便给人家看一样,你一定不同意!那这个时候权限就派上用场了!
    6.分页oracle 三层嵌套rownum\sql server用not in\mysql用limit\hibernate用setFirstResult,setMaxResults,看看你们以前的项目都怎么分页的如实回答就行!
    7.程序员谈优化首先需要先优化程序,就比如说hibernate在生成SQL语句的时候可能会生成一些无用的语句,又比如说N+1问题,这样会严重影响效率的!其次在写一些SQL语句的时候少用like '%xxx%',把表中经常作为条件使用的列加索引,减少客户端与服务器打交道的次数,如果要求效率的话,可以写一些存储过程等,算法上时间复杂度与空间复杂度也要注意,一般都是要效率不要空间,要空间不要效率,鱼和熊掌兼得,难啊!
    8.空指针等,随便来几个就行,谁没事也不会背具体的异常的!
    9.业务逻辑放在数据库效率高(存储过程),但复用性差!业务逻辑在程序里,层次鲜明(可以分的很细),但效率不如存储过程,而且有时会增加与数据库打交道的次数!要看具体项目的要求更侧重与哪一方面了!
    话又说回来,如果给你面试的人真的想要你来公司,随便应付几句也能通过(恐怕让他回答这些问题他都很难回答),但是面试确实是有技巧的,随机应变的能力必去要强,要给人一个你很好学、但不呆(机灵)的感觉——即使你现在不会,来公司不久也能会! Good Luck!