发表于: 2017-01-12 23:33:54

3 2059


一、了解了什么是贫血模型和充血模型。

贫血模型:面向过程,贫血模型是指领域对象里只有getset方法(POJO),所有的业务逻辑都不包含在内而是放在Business Logic层(service层)。层次结构清楚。使用spring的时候通常时贫血模型。会导致service层过于庞大。

充血模型:面向对象,大多业务逻辑和持久化放在Domain Object里面,Business Logic只是简单封装部分业务逻辑以及控制事务、权限等。缺点是如何划分业务逻辑,什么样的逻辑应该放在Domain Object中,什么样的业务逻辑应该放在Business Logic中,这是很含糊的。而且要把持久层的业务逻辑全部封装,属于重复的劳动工作。依赖持久层

 

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

是否有重复值,没有重复,很少使用curd

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

SELECT COUNT(*) FROM xxx WHERE ID=xxx;

if (x == 0)

    INSERT INTO xxx VALUES;

else

UPDATE xxx SET ;这样写代码比较简陋而且操作性能上有所缺失

-----------------------------------------------------------------

INSERT ... SELECT

INSERT ... ON DUPLICATE KEY UPDATE

INSERT ... ON DUPLICATE REPLACE

 

例如:select * from player_count where player_id = 1;//查询统计表中是否有记录

insert into player_count(player_id,count) value(1,1);//没有记录就执行insert 操作

update player_count set count = count+1 where player_id = 1;//有记录就执行update操作

 

insert into player_count(player_id,count) value(1,1) on duplicate key update count=count+1; 

 

 

四、varchar类型的长度怎么确定?有什么样的原则,和TextLongText的区别是什么?

varchar是变长,但不但表就可以给一个很大的数字,因为会消耗本地内存,内存会预先读取你的varchar设置的长度,然后分配足够的内存。开头用12个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535

一个汉字两个字节,英文数字一个字节。

Test: 最大长度65535个字元(2^16-1)

LongTest: 最大长度4294967295个字元 (2^32-1)

 

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

Mysql比较简单:有一个方言:limit

limit关键字的用法:

LIMIT [offset,] rows

offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)

例:取第11条到第15条数据,共5

Select  * from table limit10,5

六、为什么不可以用Select * from table?

个人感觉如果不是导出数据库,时间长,效率慢

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

IOC:控制反转  。资源不由使用资源的双方管理,而由不使用资源的第三方管理。

所谓的依赖注入,则是,甲方开放接口,在它需要的时候,能够讲乙方传递进来(注入)、所谓的控制反转,甲乙双方不相互依赖,交易活动的进行不依赖于甲乙任何一方,整个活动的进行由第三方负责管理。

为什么要用IOC而不是New来创建实例:

使用factory来实例化要比new创建实例化轻松,维护少。

传统方法依赖严重,改动一个地方其他地方也有很多需要改变的。

具体的我还需要研究:

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

编写程序要实现高内聚,低耦合。InterfaceImpl刚好可以。

1.     需要实现多态。2. 要实现的方法(功能)不是当前类族的必要(属性)3. 要为不同类族的多个类实现同样的方法(功能)

九、为什么要处理异常,Try/Catch应该在什么样的场景下使用

例子:这么讲,你需要从磁盘读取数据,正读到一半时,有人把磁盘给拔了,你的程序会怎样?

1 捕获了异常,报告读取错误,然后由用户处理

2 程序继续读,还读不到,继续读。。。。。直到永远...

对于处理不了的异常,只能抛给调用者自己处理,如果都不处理,那就main结束好了。

无法抛出异常时就需要捕获

十、为什么需要单步调试?怎么Debug?

debug方式运行java程序后

F5)单步执行程序,遇到方法时进入;

F6)单步执行程序,遇到方法时跳过;

F7)单步执行程序,从当前方法跳出;

F8)直接执行程序。遇到断点时暂停;

F5就是一层层深入的debug相当于剥葱样,会进入每个方法内部;

F6就是在当前函数一步步debug,不理会深层次运作;

F7就是如果当前进入了某个方法内部,都跳转到该方法的结尾代码处;

F8就是如果后面还有断点,则运行到下一断点处,否则运行完程序;

另,在debug时,会有很多有用信息显示在debug框里,如堆栈信息,需要自己实践;在程序界面里,鼠标移到变量上时会有当前变量的属性值。

认识debug视图,红色部分框为线程堆栈视图,黄色部分框为表达式、断点、变量视图,蓝色部分为代码视图。

F5进入方法内部,看代码中的参数是否有值。

 

十一、编写Mybtis,规范名称

 

十二、在虚拟机上安装mysql

1.     sudo apt-get install mysql-server

2.     sudo apt-get install mysql-client

3.     sudo apt-get install libmysqlclient-dev

安装过程中出现了MySQL ERROR 1698 (28000) 错误。

参考网址:http://blog.csdn.net/ryshiki/article/details/50459008

 

明天计划

继续在虚拟机上安装环境变量.

学习一些基本命令,和简单的操作。

mybatis和spring的学习.


遇到的问题

在虚拟机上安装mysqljdkTomcat一点头绪也没有。请教了莎莎才明白。然后在沈明的帮助解决了问题。

 


收获:

ubuton的基本命令

在虚拟机上的基本操作



返回列表 返回列表
评论

    分享到