发表于: 2018-06-11 18:21:46

1 836


今日完成


深入思考:

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

maven是一个项目管理工具,不用手动的去添加jar包,可以在pom里,描述jar包的信息,maven会自动帮助下载并依赖。

maven可以对多个项目进行管理。那些繁琐的路径配置信息,以及复杂的三方库,统统不用考虑

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

clean 清除项目下的target文件。

install 将项目打包成jar包,并放到本地厂库,再通过pom文件配置依赖引入到当前工程,也可以作为其他项目的依赖。

package 打包项目成不同的格式,默认格式为jar。

deploy 把项目部署到服务器上。

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

可以在idea,maven中点击闪电的标志跳过junit,也可以在pom文件中加入下面的配置可以在install时跳过junit。

<build>
   <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <configuration>
               <skip>true</skip>
           </configuration>
       </plugin>
   </plugins>
</build>

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

log4j可以对日志信息分级别,还可以控制日志信息输出的类型和位置。

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

因为时区不同,使用long记录的是时间戳,有统一的标准。

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

不连续,当删除ID为6的数据后,ID6将再也不会出现。

当有其他的数据唯一,可作为主键,可以不使用自增ID。

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

索引就是对数据表建一个目录,一般情况下在查找表的时候是查询所有列的信息,建立索引后查询有索引的列时,就不会查询所有的列。

如果数据比较少,就不用建立索引,因为当有索引时,批量插入数据就会变慢。

索引应该建立在经常查询的列中,比如名字,QQ等。

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

唯一索引不允许有相同的值在同一列,普通索引可以。

当表中有唯一特性的字段可以建立,比如QQ,电话。

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

不需要,因为系统会自行判断。

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

create_at和update_at可以在插入数据时一起赋值,也可以只给创建时间赋值。

update_at在数据进行修改的时候进行赋值。

不开放接口。

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

修真类型较少可以用int类型存储用于多表连接,减少数据大小。

不过要再建立以个修真类型的表。

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

存储可变长度的字符串,不预先分配存储空间,但是不能超过设置的最大长度。

text和longtext也是可存储可变长度字符串。

text的最大长度为2^16字符,textLong最大长度为2^32字符。

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

使用limit进行分页查询。

SELECT*FROM game WHERE ....LIMIT 10,30;

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

一般我们不需要查询所有的列,select*from是查询所有的列,影响查询效率。

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

贫血模型:是指model层中只有set和get方法,需要分离出来DAO层。我用的层数有model层,DAO层,service层。

充血模型:只model层中不仅只有set和get方法,业务逻辑也方进去。这种模型是把model层和DAO层合在一起,上面直接就是service层。

因为充血模型强调面向对象,业务逻辑,使用贫血模型更好。

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

IOC控制反转。直接在对象内部new对象叫正转,是对象控制对象的生成。

把对象交给IOC来控制是反转,因为对象的控制权交给了IOC。

实现低耦合。

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

只关心业务逻辑,不需要关心实体类,业务实现只需要通过该接口的实现类来完成。当需求有变化时,只需改动业务逻辑新实现类,通过更改配置文件中该接口的实现类就可以完成需求,不需要改现有代码,减少影响。

降低耦合,利于程序扩展和维护。

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

如果程序不处理异常会运行不了,比如让用户输入数字,他输入的是字符,可以用Try/catch来提示用户。

在MySQL等待8小时后会自动断开连接。

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

日志可以用System.out.println()和log4j来打印。

log4j可以对日志信息分级别,还可以控制日志信息输出的类型和位置。

需要打印输出级别,时间,线程,代码行数。

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

单步调试是指开发过程中,为了找到程序出现bug的位置,采用的一种手段,一步一步跟着程序执行流程,来找到出现bug的位置。

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

可以连接远程调试,比较麻烦。打日志,调试,找bug,修改,测试,放到服务器,再测试。


明日计划

开始任务二

遇到的问题

收获

转至元数据起始


                                                          

任务总结

1,任务名称:java-task1

2,成果连接:https://github.com/a1337550831/myGit

3,任务耗时:6月8日至6月11日,在家里有自学过一段时间。

4,技能脑图

官方脑图:


5,任务总结

首先下载安装MySQL、Navicat,并学习SQL语句,学会使用Navicat连接数据库,并且直接对数据库进行增删改查。

安装java、下载开发工具idea,配置java环境。学习java基础语言,编写一些程序。

学习了普通的jdbc,然后感觉好傻,当初还写了一个运行程序包括增删改查。废了我三天时间。

学习maven管理工具,生成maven项目,在pom里配置依赖包。一开始我不知道,直接在网上找jar包然后配置路径,真心好难找,而且还容易出错。

学习junit框架,可以在单个测试一个类,而且还有断言功能,不用再去写测试的main方法。

学习log4j,知道如何打印日志,但是对日志却看不懂。

学习spring框架,学习springjdbc,学到这里才感觉当初敲jdbc是多么傻。

学习mybatis框架,发现对数据库的操作又简单了,而且在代码中不会看到SQL语言。

学习spring整合mybatis,发现更简便了,一些固定的代码都会被封装起来。

最后部署远程服务器并,在服务器上跑通main方法。

总的来说现在只知道这些东西怎么用,但是原理却不是很了解。




返回列表 返回列表
评论

    分享到