发表于: 2017-11-21 21:59:13

2 548


今天学习的内容
今天在总结task1的深度思考,然后下午的时候跟随老大一起去中原工学院软件院演讲,演讲内容就不叙述了,说一下今天的深度思考.
task1深度思考
今天taks1正式结束了,从我正式入学算起,差不多三周的时间,从我试学开始算的话也满一个月了.对于java,我是真正零基础,来修真院之前,只是知道java是编程,是软件开发,然后就没有了,没有看过一本书,或者资料.之所以来修真院也是因为种种原因,就不在这里叙述了.
一.maven是什么?和Ant有什么区别?
maven是项目对象模型,用来管理项目的工具,它包含了一组标准集合,一个项目周期,一个依赖管理系统,和用来运行定义在生命周期阶段中插件目标的逻辑.maven生命周期是对所有的构建过程进行了抽象以便于统一.什么是依赖管理系统呢?举个例子,在创建项目的时候,我们需要引用各种jar包,工程越大,需要引用的jar包就越多,如果我们一个一个的去下载,那么效率势必会大打折扣,maven的依赖管理系统帮我们解决了这个问题,只需要在配置文件中添加相应的jar包属性,maven就会自动从中央仓库中下载jar包;关于Ant,因为task1中并没有关于Ant的应用,所以基本上不了解Ant,我在网上查了些资料,简单说一下,Ant是一种基于java的build(构造)工具,它是基于java的类来进行扩展,配置文件是基于xml的,通过调用target树,来执行各种任务.maven和Ant的区别主要是针对构建问题的两个不同方面.Ant为java技术开发项目提供跨平台构建任务.maven本身描述项目的高级方面,它从Ant借用了绝大多数构建任务.总之,这两者是两个差异很大的工具,由于Ant没有接触过,在此不再详细叙述.
二.clean,install,package,deploy分别代表什么含义?
clean,install,package,deploy是maven的生命周期.
clean用于清除项目目录中的生成结果;install用于在本地仓库中安装jar包,以备其他本地项目作为依赖;package用于将编译好的代码打包成可分发的格式,基本上是jar格式;deploy用于把最终的jar包复制并发送到远程仓库,共享给其他开发人员和项目.
三.怎么样能让Maven跳过JUnit?
Junit是单元测试,用于对代码中的方法进行测试.如果想要跳过Junit,需要在pom.xml配置文件中安装插件,如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
四.为什么要用Log4j来替代System.out.println?
Log4j 是Apache的一个开放源代码项目,我们可以通过配置文件对日志进行灵活的配置,不需要修改繁琐的代码.有的时候我们可能需要脱离java ide环境调试程序,这个时候如果使用System.out.println语句输出某个变量值的方法进行调试,会有个问题,假如有一天我不需要显示这些System.out.println的东西了,只能一行一行的去注释掉,同样的,加入有一天又需要这些System.out.println的东西了,又得一行一行的注释回来,非常麻烦.使用log4j就不会有这个问题,因为log4j是通过配置文件来控制日志的输出的,所以只需要在配置文件中变更就可以了,非常方便.
五.为什么DB的设计中要使用Long来替换掉Date类型?
在mysql数据库中,Long=bigint类型,用于时间日期的话一般有两种方式:date类型和bigint时间戳.两者之间是可以互转的.我们在设计应用的时候需要考虑到一个问题:该应用是否涉及多个时区?时间数据是否和时区相关?如果是,那么就必须使用时间戳,因为只有时间戳表示的时间是准确的恒定的,就连时间+日期+时区也不行,所以在DB的设计中,我们应该要使用bigint来替换掉Date类型.
六.自增ID有什么坏处?什么样的场景下不使用自增ID?
自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定,id会自动根据前一字段的ID值+1进行填充.自增ID也有坏处,例如在将两个表合并的时候会因为重复ID而引发BUG,在数据库迁移的时候也会出现问题,所以,如果使用的是分布式数据库或者需要将两个表合并的时候,不能使用自增ID.
七.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息,可以帮助搜索者快速找到符合条件的数据.索引有五种,分别是普通索引,唯一索引,全文索引,单列索引多列索引和组合索引.如果表内的数据量小的话没有必要建立索引,当我们需要查询含有大量数据的表的时候,我们需要建立合适的索引,一般表内数据量大于上千并持续性增长的情况下建议建立索引.
八.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引?
普通索引是最基本的索引类型,没有唯一性之类的限制.唯一索引是不允许其中任何两行具有相同索引值的索引.唯一索引一般需要在表记录比较多,经常和主字段一起查询但主字段索引值比较少的时候建.
九.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
需要,如果在插入数据的时候该数据已经存在,那么新的数据会直接覆盖原有的数据.
遇到的问题
今天写深度思考的时候才发现自己已经学了那么多的知识,有部分知识点是自己没有想过的,重新过一遍的时候结合之前学习的内容,感觉印象更深了.
今天的收获
思考了之前学习时的一些内容,加深了task1的印象.
明天的安排
结束task1的深度思考,开始task2.
任务进度:任务2步骤1
任务开始时间:11月22日
任务结束时间:11月30日



返回列表 返回列表
评论

    分享到