一号店java面试题

1. linux常用命令
Linux vim编辑命令总结
http://blog.csdn.net/ponlcan/article/details/4704051
vim filename  打开原有的文件或创建一个新文件。
i 在光标当前所在字符位置的前面输入文本数据。
Ctrl+L 清除因其他进程的输出信息而干扰的编辑窗口。
:wq 保存编辑处理后的结果,然后退出vim编辑器。
:wq! 强制保存编辑处理后的结果,然后退出vim编辑器。
ZZ 保存编辑处理后的结果,然后退出vim编辑器。
:q  在未做任何编辑处理时,可以使用此命令退出vim编辑器。
:q!  强制退出vim编辑器,放弃编辑处理后的结果。

2. spring事务配置
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="update*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="delete*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="regsiter*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="add*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="withdraw*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="accept*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="batch*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="archive*" propagation="REQUIRED"  rollback-for="java.lang.Exception"/>
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:aspectj-autoproxy proxy-target-class="true" />
<aop:config>
<aop:advisor pointcut="execution(* cn.test.*.service..*.*(..))" advice-ref="txAdvice" />
</aop:config>
传播特性7种:
PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER 以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

3. spring注解
Spring 注解@Component,@Service,@Controller,@Repository
持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释
在接口前面标上@Autowired和@Qualifier注释使得接口可以被容器注入,当接口存在两个实现类的时候必须指定其中一个来注入,使用实现类首字母小写的字符串来注入,如:@Autowired     
    @Qualifier("chinese")      
    private Man man;   
否则可以省略,只写@Autowired  

4. spring参数值获取
@RequestMapping("/index/{username}")
public String index(@ PathVariable("username") String username) {
        System.out.print(username);
        return "index";

public String testParam(PrintWriter out, @ RequestParam("username") String username) {
out.println(username);
return null;
}

5. spring mvc一次完整请求过程
请求首先通过DispatcherServlet。servlet根据HandlerMapping,来处理请求,并根据请求,来找到Controller,Controller执行完毕后,发送一个ModelAndView,并告诉需要展示哪个视图。根据这个视图,servlet找到这个视图的ViewResolver,并由这个ViewResolver生成对应的view,并输出。 
http://blog.sina.com.cn/s/blog_4b5bc0110100zf11.html

6. Memcached特征:
协议简单
它是基于文本行的协议,直接通过telnet在memcached服务器上可进行存取数据操作
基于libevent事件处理
Libevent是一套利用C开发的程序库,它将BSD系统的kqueue,Linux系统的epoll等事件处理功能封装成一个接口,与传统的select相比,提高了性能。
内置的内存管理方式
所有数据都保存在内存中,存取数据比硬盘快,当内存满后,通过LRU算法自动删除不使用的缓存,但没有考虑数据的容灾问题,重启服务,所有数据会丢失。
分布式
各个memcached服务器之间互不通信,各自独立存取数据,不共享任何信息。服务器并不具有分布式功能,分布式部署取决于memcache客户端。
http://369369.blog.51cto.com/319630/833234

你可能感兴趣的:(java,面试题,一号店)