学习笔记1
参加工作一年多了, 但是总觉得技术没有什么长进,最近出去面试,总结出的面试的问题。开始面试的是一家小公司,问了项目的用的技术,我说了的git、maven、springMVC,mybatis, 以及dubbo方面的技术于是面试官的开始问了git方面的问题,如下图1所示:A版本->B版本->C版本, 当要回退到A版本的怎么回退,git命令:git reset --hard 版本号,然后git push,这时其他的开发者拉取你的分支会出现冲突,然后解决冲突,然后在push上去即可,
图1
然后问了关于数据结构的问题: 一个单向链表,如图2所示,指针当前指向的时B节点,怎么删除B节点,当时以为直接由A指向C不就完了么,但是仔细一想应该不可能这么简单,果然我时无法获取A节点的指针的,所以不行,然后我想了半天,没有想出来,就直接说我没有想出来。
图2
还好面试官人还是很好,并没有说啥,然后给我说了耐心的说了下思路,可以将C节点的值复制到B节点,然后将B节点的指针指向D节点,不就可以等价的转换为将B节点删除掉。思路确实很巧妙。如图3
如图3
接着,他问了堆栈方面的问题: 有个很长的数组,如何实现三个堆栈,假如 A,B,C三个堆栈,一个函数传入堆栈名A,操作的是A堆栈的数据,问怎么实现?这个当时还是比较简单,我想了下,就说出了思路,堆栈头分别从数组的 0,1,2开始存,然后每个元素间隔2元素保存,如图4
图4
这次数据库的知识有点难的,写一个分组排名前几名的sql查询语句,有一张表是 (班级,姓名,成绩) , 求出每个班级的前三名的分数,开始思路是准备用group_concat函数去做的,但是这样就前三名写到一个字段里去,经过尝试还是没有写出来。 下面给个参考:
select a.* from class as a
where (select count(*) from class as b where a.class_name = b.class_name and b.score < a.score) < 3
order by score;
查询结果类似下面:
` spring的知识方面,是问了bean的作用域,当时只回答了其中的两个:singleton和prototype, 还有三种种: request和session、global session。
1 singleton
spring的bean的scope是单例对象,当一个bean的 作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。换言之,当把 一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean定义的唯一实例。这个单一实例会被存储到单例缓存(singleton cache)中,并且所有针对该bean的后续请求和引用都将返回被缓存的对象实例.
配置实例:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/> 或者 <bean id="role" class="spring.chapter2.maryGame.Role" singleton="true"/>
2.prototype
相对于singleton,prototype则是多例的,prototype作用域部署的bean,每一次请求调用注入时,则会产生新的bean,有一点非常重要,那就是Spring不能对一个prototype bean的整个生命周期负责,容器在初始化、配置、装饰或者是装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。不管何种作用域,容器都会调用所有对象的初始化生命周期回调方法,而对prototype而言,任何配置好的析构生命周期回调方法都将不会被调用。 清除prototype作用域的对象并释放任何prototype bean所持有的昂贵资源,都是客户端代码的职责。(让Spring容器释放被singleton作用域bean占用资源的一种可行方式是,通过使用 bean的后置处理器,该处理器持有要被清除的bean的引用。)
配置实例:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="prototype"/> 或者 <beanid="role" class="spring.chapter2.maryGame.Role" singleton="false"/>
3. request
<web-app> ... <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> ... </web-app>
接着既可以配置bean的作用域了:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="request"/>
4 .session
5、global session
<bean id="role" class="spring.chapter2.maryGame.Role" scope="global session"/>
引用了这篇文章: http://www.cnblogs.com/qq78292959/p/3716827.html
未完待续