Java小白找工作与学习的第四天

        昨天没有更新,其实很大一部分原因是我写了这么多字的,竟然没有一个人看,确实感觉不太对劲,但是我今天又想开了,我是要为自己学习的,不一定要他人的鼓励下才能继续学习,要享受一个人的孤独,今日继续更新。顺便推荐一下应届毕业生找工作有个微信小程序叫快招聘(不是打广告,本来也没人看我写的东西,仅仅是个推荐),这个上面有很多学校的双选会,也有我们学校的,其实就是我们学校推荐的。找工作的应届生朋友们可以关注一下。


        今日想写一些面试套话以及一些面试知识点。

1.SpringMVC工作原理

        1.用户向服务器发送请求,请求被SpringMVC前端控制器DispatcherServlet捕获;

        2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI),然后根据该URI调用HandlerMapping将请求映射到处理器HandlerExecutionChain;

        3.DispatcherServlet根据获得的Handler选择一个合适的HandlerAdapter适配器处理器;

        4.Handler对数据处理完成以后将返回一个ModelAndView()对象给DisPatcherServlet;

        5.Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherServlet通过ViewResolver视图解析器将逻辑视图转化为真正的视图View;

        6.DispatcherServlet通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。

2.SpringMVC常用注解

        1.@requestMapping:用于请求URL映射。

        2.@RequestBody:接收http请求的json数据,将json数据转换为java对象。

        3.@ResponseBody:将Controller方法返回对象转化为json响应给客户。

3.Mybatis中#和$的区别

        #相当于对数据加上双引号,$相当于直接显示数据。

        1.#将闯入的数据都当成一个字符串,会对自动传入的数据加一个双引号。

        2.$将传入的数据直接显示生成在sql中。

        3.#能很大程度的防止sql注入,而$不可以。

        4.$一般用于传入数据库对象,例如传入表名。

        5.一般能用#就不用$。

4.事物的四大特性

        1.原子性(Atomicity):中的所有操作,要么全部都成功,要么全部失败,不能停滞在某个环节。事务在执行过程中发生错误,会被回滚(rollback)到事务开始前的状态。

        2.一致性(Consistency):在事务开始和事务结束以后,数据库的完整性约束没有被破坏。(当事务执行成功就说明数据库处于一致性状态。如果执行过程中发生错误,这些未完成事务对数据所做的修改有一部分已写入物理数据库,这时数据库就处于不一致状态)。

        3.隔离性(Isolation):一个事务的执行过程中不能影响到其他事务的执行,即一个事务内部的操作及使用的数据对其他事务是不可见的。

        4.持久性(Durability):即一个事务一旦提交,它对数据库数据的改变是永久性的,之后的其他操作不应该对其执行结果有任何影响。

5.事务的四种隔离级别

        1.读未提交(read uncommitted):读未提交也叫脏读,就是事务可以读取到其他事务未提交的数据。

        2.读已提交(read committed):事务未提交之前所做的修改对其他事务是不可见的,可以解决脏读。

        3.可重复读(repeatable read):保证同一个事务中的多次相同的查询结果是一致的,可解决不可重复度。

        4.可串行化(serializable):就是保证读取的范围没有新的数据插入。(比如事务第一次查询得到了某个范围的数据,第二次查询得到了相同范围的数据,中间没有新的数据插入到该范围中),可解决幻读。

6.脏读,不可重复度,幻读

        1.脏读:指当一个事务正在访问数据,并且对数据进行了修改,但是这种修改还没提交到数据库中,这时,另外一个事务访问到了这个未提交的数据。

        2.不可重复读:指在同一个事务内,多次读同一数据,读取的数据不一样。在这个事务还没结束的时候,另外一个事务也访问该数据并进行了修改。

        3.幻读:当第一个事务对表中数据进行修改,这种修改涉及到表中全部的数据行。同时,第二个事务也修改这个表中的数据,向表中插入了一行新数据。那么,操作第一个事物的用户就会发现表中还有没有修改的数据,就如同发生了幻觉一样。

7.工作中遇到的问题

        1.内存溢出:可以调节Tomcat内存解决,还要找出代码中内存溢出的漏洞,一般是流没有关闭或者是死循环。

        2.数据库连接超出最大连接量:修改mysql配置文件的最大连接数。

        3.代码编译失败:清理idea/eclipse编译缓存    、清理Tomcat缓存、清理浏览器缓存。

        4.tomcat启动端口号被占用:打开任务管理器,杀进程。

        5.Tomcat启动超时:修改启动时间。


        不知不觉又快十二点了,今天分享的有些少,可能是因为最近也同样忙于找工作,所以写的时间也压缩了,我尽量每天写一写,或多或少,记录一下自己的学习历程。

你可能感兴趣的:(Java小白找工作与学习的第四天)