发表于: 2017-09-27 23:15:40

2 725


今天完成的事

深度思考

maven是什么,和Ant有什么区别?

ant的和maven都是java的构建工具,maven相比ant他有了生命周期,他知道该做什么,什么时候做。

clean,install,package,deploy分别代表什么含义?

clean和install的区别是clean得到的jar的包是最新的。package的包打包出来时在本项目里的,而deploy的包打包出来实在本地仓库,可以供其他项目使用。(maven的本地仓库就是.m2.一般默认在C/user/.m2/repository)

怎么样能让Maven跳过JUnit?

运行MVN install时需要跳过Junit的test cases,可以采用下面的方法:mvn install -DskipTests或者mvn install -Dmaven.test.skip=true

为什么要用Log4j来替代System.out.println?

因为log4j可以更加灵活的控制日志信息的输送,而System.out.printin只能在控制台输出,在代码测试完成时还要一条一条的删去,费时费力。

为什么DB的设计中要使用Long来替换掉Date类型?

因为Date类型只能储存时间格式的内容,就像2017-09-27,这类数据有固定的格式,不容易进行运算。并且bigint完全可以很好地表达出时间信息,可以更加方便的做运算,比如时区的换算。

自增ID有什么坏处?什么样的场景下不使用自增ID?

自增ID做表很方便且不用担心重复,但是在数据量很大表里,如果需要数据同步,那么自增ID就无法作为唯一标示记录。

什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?

DB索引即数据库索引,是为了更快速便捷的查找到所需要的数据。数据量超过300的表就可以简历索引。经常与其他表进行连接的表、经常出现在where字句中的字段、选择性高的字段,应该简历索引。

唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。

普通索引在搜索的时候允许被索引数据包含同样的值,唯一索引只允许有一个值。在为了避免数据出现重复的时候需要简历唯一索引。

如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

需要先判断是否存在,这样更符合逻辑规范,但是如果在插入数据的时候本身清楚重复的几率比较小,那可以做错误判断,可以提升效率。

CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?

个人认为CreateAt在数据创建的时候赋值,UpdateAt在有数据变更的时候赋值。不开放外部调用的借口,防止出现bug,外部需要数据时间可以向数据库请求数据。

修真类型应该是直接存储Varchar,还是应该存储int?

直接储存Varchar,因为Varchar是直接储存字符数据,而int储存的是整数,如果用int的话就需要数据转换。

varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?

varchar的长度可以大致算出来,中文一个字占用两个字符,英文字母和数字一个字占用一个字符;text和varchar长度都可以达到65535字节,但是text更适合存储文字,varchar更适合存储数据。text和longtext的区别是longtext存储的数据更长。

怎么进行分页数据的查询,如何判断是否有下一页?

可以设置一个统一的查询参数,从第一页开始依次调用,然后用总数据数和每页的数据数算出页数来判断有没有下一页。

为什么不可以用Select * from table?

因为*查询的是表中所有列,但是一般情况下只用查询某个字段就可以了。

什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?

贫血模型,是A对B、B对C、A和C中间没有直接联系,中间用一个数据容器来连接,优点是简单易懂,但是如果代码长的话就会很繁琐;充血模型,是A对B对C,难度比贫血模型难度高。不清楚为什么要求强制使用贫血模型。

Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

IOC是控制反转容器,用New来创建实例和用户本身联系很多,如果需要修改底层程序就需要逐级修改,IOC可以互相注入,修改就方便了很多。

为什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?

因为在接口类中实现更加便捷。Interface和Impl这种方式的好处是提升了开发效率。

为什么要处理异常,Try/Catch应该在什么样的场景下使用,在真实的系统中,会出现网络中断,DB连接不上的错误吗?多久会发 生一次?

如果不处理异常,程序就不能正常的运行;在复杂的程序里使用吧,可以提高稳定性;

日志应该怎么打,在什么位置,需要打印出来什么样的关键参数?

日志应该显示输出,关键信息必须输出,使用简单易懂的语言;输出不可靠底层,必须加上begin/end两行日志;关键参数有关键信息和系统处理时间。方便后期维护。

为什么需要单步调试?Debug的时候IDE是怎么找到源码的?

因为一步一步的调试才容易找的到错误在哪里。怎么找源码不懂。

可否远程连接到线上直接调试?真实的项目中,遇到问题的排查方案是什么?

可以的,真是项目遇到问题时本地IDE远程连接进行调试。

明天要做的事



返回列表 返回列表
评论

    分享到