发表于: 2017-08-14 18:46:57

1 1129


任务小结


今天完成的事情:完善和上传代码和深度思考


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

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。Maven除了具备Ant的功能外,还增加了以下主要的功能:

1)使用Project Object Model来对软件项目管理;

2)内置了更多的隐式规则,使得构建文件更加简单;

3)内置依赖管理和Repository来实现依赖的管理和统一存储;

4)内置了软件构建的生命周期;


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

clean:清理项目生产的临时(编译)文件,一般是模块下的target目录

install:将打包的jar/war文件复制到你的本地仓库中,供其他模块使用

package:项目打包工具,会在模块下的target目录生成jar或war等文件

depioy:将打包的文件发布到远程参考,提供其他人员进行下载依赖


3.怎么样能让Maven跳过JUnit?

pom里在<build><plugins>里添加

 <plugin>

   <groupId>org.apache.maven.plugins</groupId>

   <artifactId>maven-surefire-plugin</artifactId>

   <configuration>

   <skip>true</skip>

   </configuration>

 </plugin>


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

System.out只能输出到控制台,而log4j日志工具可以配置输出目标,输出等级,可以输出到文本文件。


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

date类型在JAVA中后期会被强制转换类型,转换中可能会丢失数据,因为2017-8-2中的“-”在JAVA中有别的意思所以不允  许使用date。


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

1.程序后台添加测试2.旧数据导入3.数据库迁移4.缓存(如,两个库中id都为2时,缓存的时候会覆盖);


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

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

一般10W以上有性能差别,数据量大或用户需要时建索引。


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

是唯一相比普通在唯一会屏蔽已插入的重复数据并拒绝插入新的重复数据;如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。


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

我认为插入唯一索引的数据时会自动判断是否存在并拒绝插入已存在数据。


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

插入数据时同时赋值,修改时间可开放给外部接口,如果对应方法写为自动获取时间插入不必开放给外部接口。


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

应存储Varchar,为节省空间可存储int用数字代替类型。


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

根据插入的数据长度确定,设定最大长度。相比text,varchar变长,两者最大长度相等,超过255转为longtext。


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

Select * from 表名 limit startrow,pagesize 

Pagesize为每页显示的记录条数,下一页不知道了,有点晚了没细看


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

全部查询浪费资源


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

贫血模型把“行为”(也称为逻辑、过程)和“状态”(可理解为数据,对应到语言就是对象成员变量)分离到不同的对象之中,那个只有状态的对象就是所谓的“贫血对象”;充血模型,行为和装备在同一对象;贫血模型结构清晰。


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

IOC:控制反转;IOC利于迁移和维护


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

结构清晰,方便修改。


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

为了保证程序有效执行;

以业务逻辑功能为单位,在最上层加Try-Catch机制。为什么要这样做呢?这主要是增加程序的健壮性,防止因抛出异常过多,导致程序崩溃。底层代码,在可能出错的地方加Try-Catch机制,用Catch侦测具体的异常,然后就具体的异常,采取相应的解决方案。底层代码,在需异常追踪时加Try-Catch机制,在Catch块中抛出自定义异常,调试时可迅速定位到错误代码段。


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

开发过程中帮组开发人员跟踪程序崩溃的原因(DEBUG)。

记录一些程序的运行记录(INFO)。

程序运行错误的上下文信息(ERROR)。


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

可以查看变量的数值变化;

第二问就百度不到了。。


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

我感觉最好不要远程直接调试,会搞乱数据库。

真实项目排查方案。。不知道,我就是跟着报错一步一步修改


明天计划的事情:进行任务二


遇到的问题:idea运行maven控制台打印中文乱码问题已解决



收获:深度思考带来的基础知识


返回列表 返回列表
评论

    分享到