发表于: 2017-08-16 21:25:03
1 1072
今天完成的事情:
任务一深度思考:
1、Maven和Ant的区别
Maven是基于项目对象模型(POM),可以通过 一小段描述信息来关系项目的构建,报告和文档的软件项目管理工具。Maven和Ant针对构建问题的两个不同方面,Ant为Java技术开发项目提供跨平台构建任务,Maven本身描述项目的高级方面,从Ant借用了绝大多数构建任务。
2、clean,install,package,deploy分别代表什么意义
clean是清理target文件;install将本地工程打包成jar包,放入本地仓库中,在通过pom.xml配置依赖引入到当前工程;package是指定了打包的参数,打包后的文件存放到target下;deploy是将项目上传到远程从仓库,但需要配置pom文件
3、怎么让Maven跳过Junit
当Surefire插件到达test时,如果maven.test.skip设置为true,它就跳过单元测试,另一种是配置pom.xml,在build中添加plugin元素
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
4、为什么要用Log4j来代替System.out.println
log4j是一个强大的日志系统,可以控制日志信息输送的目的地、输出格式,甚至是生成的过程,而System.out.println功能大一,要打印很多语句的时候操作困难
5、为什么DB的设计中要使用Long来替换掉Date类型
因为date有固定的格式,不同地区不同时间表示方法不同,十分麻烦,使用Long就十分方便
6、自增ID有什么坏处?什么样的场景下不实用自增ID
没有连续性,数据如果重复了也不会处理,在面向对象时,不能保证完整性,分库的时候ID不唯一了。自增ID的作用是唯一的标识表中的某一条记录,如果有其他能唯一标识该行数据的列,就不用设置自增ID了。
7、什么是DB的索引,多大的数据量下建索引会有性能的差别,什么情况下该对字段建索引
索引是对数据库表中一列或多列的值进行排序的一种结构,在百万级别的数据就可以看出性能的差别。在需要搜索的列上,在作为主键的列上以及需要排序的列上。
8、唯一索引和普通索引的区别是什么,什么时候需要建唯一索引
唯一索引和具备普通索引的全部特点,还作为一种机制限制索引列出现重复值,即设置为唯一索引的列或者字段,其对应的值必须唯一,唯一索引可以保证数据记录的唯一性。需要避免数据出现重复的时候建立唯一索引。
9、如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了
需要先判断,如果存在了mysql就会拒绝插入
10、CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口
在插入数据和修改数据的时候自动从系统中获得赋值,而不应该开放给外部调用的接口
11、修真类型应该是直接存储Varchar,还是应该存int
存int的话是执行效率最高的,更容易建立索引,但是需要进行设定,int所对应的类型
12、varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么
varchar(n)这个n在mysql5.0以上版本,指n字符,把n视为存储空间最大值并且只使用存储字符串实际需要的长度。varchar最大支持65535字节,但实际上是65532字节
区别:储存空间不同,varchar和text是64kb,longtext是4GB。varchar还会使用1-2个字节的前缀来储存长度。text和longtext不需要指定存储位数。
13、怎么进行分页数据的查询,如何判断是否有下一页?
select * from 表 limit a,b
判断下一页可以通过一个计算,数据总条数z,每页显示m条,那么总页数p=z/m
14、为什么不可以用select * from table?
用select *会降低效率,查出很多不需要的列
15、什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型
都是领域模型的一种。贫血模型指领与对象里只有set、get方法;充血模型主要涉及到业务逻辑方面。贫血模式就是简单,层次清晰,单向依赖。
16、Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例
IOC就是依赖注入。new创建对象在实际使用上不便于统一管理,IOC则是统一由配置文件管理,再进行注入创建
17、为什么要使用interface,而不是直接使用一个实体类来完成任务?interface和Impl这种方式的好处是什么
使用接口可以被多个类实现,直接用一个实体类则不便于以后修改。
18、为什么要处理异常,Try/Catch应该在什么样的场景下使用,在真实的系统中,会出现网络中断,DB连接不上的错误吗?多久会发生一次
处理异常可以在程序运行期间抛出异常继续运行,trycatch就用在可能出现异常的区域。网络中断或者DB连接不上太正常了,多久发生一次当然是看天时地利人和了。
19、日志应该怎么打,在什么位置,打出来什么参数
日志可以打印在控制台,或自定义输出位置,参数有信息优先级,时间,发生的位置,输出日志的文件名称,以及具体的信息
20、为什么需要单步调试?Debug的时候IDE是怎么找到源码的
单步调试直接就是看每一步运行之后的结果,以此判断出错的位置。debug时候找源码可以用F7进行方法中找源码
21、可否远程连接到线上直接调试?真实的项目中,遇到问题的排查方案是什么
可以,把工程代码直接checkout出来调试好了再传回去。遇到问题应该打印出日志来,看日志,不懂的去论坛或者百度问问。
明天计划的事情:开始任务二吧,看一下SpringMVC
遇到的问题:
暂无
收获:
任务一收尾,本来打算重新敲一遍代码再结束的,但感觉没这个必要,有时间再说吧
重新看了一遍IOC和DI,bean的属性配置,两种注入方法:构造注入和属性注入,还有内部bean的用法,随便写了个小demo,主要是复习一下
禅道链接:http://task.ptteng.com/zentao/project-task-286.html
评论