今天:
1. 进行任务1的收尾工作,因为审核结果没有下来,就没有写总结,把那些深度思考问题理了理,但还是有些不明白的地方。
2. 开始学习任务2需要的新知识,从http,servlet,jsp开始,然后再是SpringMVC。今天主要学习了Tomcat安装的事项;servlet是什么;servlet规范的目录结构;xml配置全局参数;怎么用xml配置一个servlet和其映射(web.xml 的表头那一坨干什么的,只能去网上复制粘贴吗?);什么是ServletConfig和ServletContext;request和response有哪些常用方法等。
3. 用maven新建了Javaweb工程,导入servlet包,在Tomcat的上运行了第一个servlet程序。(用Maven新建的web工程,和直接用JavaEE新建的动态web工程不一样,一个左上角是个球,Maven的左上角是个“M”,不知道是不是个问题)
4. 附任务1深度思考
1.maven是什么,和Ant有什么区别?
maven是一个项目管理的系统;功能比Ant多;
2.clean,install,package,deploy分别代表什么含义?
clean 是清楚target目录生成的文件;
package 是将程序打包;
install 是构建项目中打包放在本地仓库;
deploy是将打好的包部署在服务器;
3.怎么样能让Maven跳过JUnit?
mvn install -Dmaven.test.skip=true
4.为什么要用Log4j来替代System.out.println?
用log4j日志系统可以在不改变java代码的情况下开关日志的打印,在配置文件中控制日志的级别,同时将日志输出到控制台和生成日志文件等。
5.为什么DB的设计中要使用Long来替换掉Date类型?
便于其他人使用,减少bug,用的时候再转换为一个时间格式。
6.自增ID有什么坏处?什么样的场景下不使用自增ID?
坏处是,频繁增删id后,有很多空id没有使用,id变得很大。
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
索引就是为了增加查询速度,给某些字段添加的坐标;当需要提高查询某个字段的速度时候建立索引;
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
普通索引可以有重复值,唯一索引不能有重复值;如果某个变量不会有重复值(注册邮箱),就用唯一索引;
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
需要。
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
createAt在插入数据时候赋值;updateAt在插入数据和更新数据时候赋值;不清楚;
11.修真类型应该是直接存储Varchar,还是应该存储int?
varchar
12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
varchar的长度是变化的,最大是255。 Text和Long Text的最大长度不同。
13.怎么进行分页数据的查询,如何判断是否有下一页?
select * from table limit 4,5;
select * from table limit 5 offset 4;
加一个条件语句, 4 < COUNT(*)
14.为什么不可以用Select * from table?
不清楚。可能是不能排序?
15.什么是贫血模型,什么是充血模型?为什么我们会强制要求使用贫血模型?
“贫血模型:是指领域对象里只有get和set方法,或者包含少量的CRUD方法,所有的业务逻辑都不包含在内而是放在Business Logic层。充血模型:层次结构和上面的差不多,不过大多业务逻辑和持久化放在Domain Object里面,Business Logic(业务逻辑层)只是简单封装部分业务逻辑以及控制事务、权限等。”
贫血模型更加模块化,有利于分工和查找错误。
16.Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?
IOC是反转控制的意思,就是一个容器,由这个容器来控制客户拿到什么东西。用IOC容器创建实例便于容器统一管理所有的实例。
17.为什么要使用Interface,而不是直接使用一个实体类来完成任务?Interface和Impl这种方式的好处是什么?
可以有多个Implementation实现一个接口,可以直接新建一个接口,用xml文件管理具体的Impl。可以把不同类型的实现类放在同一个数组中。
18.为什么要处理异常,Try/Catch应该在什么样的场景下使用,在真实的系统中,会出现网络中断,DB连接不上的错误吗?多久会发 生一次?
当判断在程序运行中可能出现异常,需要一些额外措施应对异常,就需要处理。当需要在本级处理异常时,用try、catch;
会出现,应该比较频繁。
19.日志应该怎么打,在什么位置,需要打印出来什么样的关键参数?
日志根据需要打在控制台,或生产日志文件。默认会打出详细的类似时间地点人物的东西,也可以进行定义。
20.为什么需要单步调试?Debug的时候IDE是怎么找到源码的?
程序出现bug时,用单步调试可能找到问题所在。IDE会将源代码转换为java代码。
21.可否远程连接到线上直接调试?真实的项目中,遇到问题的排查方案是什么?
可以? 没接触过不清楚。
问题;高亮。
明天:继续学习Servlet,JSP。如果审核下来就写任务1总结。
总结:无。
评论