`

面试经历中遇到的面试题-one

 
阅读更多
整理记录一些面试要点以便将来用得到。

关于面试:首先认清无论你多优秀,在面试的时候都不能顾及到所有面试的内容,所以只能尽可能的去准备一些常问的面试点,也就是能拿的分要拿到。

Java基础 jsp servlet ajax json
容器hashmap原理
jvm调优
多线程高并发
框架springboot,springcloud,dubbo,zookeeeper,springmvc,spring,mybatis,hibernate,struts2
spring事务机制,
redis 缓存 session共享 分布所锁
设计模式 单例模式 代理模式 工厂模式
sql优化 左右外连接 全连接
消息队列 rabbitmq kafaka
ngnix 反向代理 负载均衡 高可用
linux命令
git命令

==================one======================
自我介绍
requestmapping注解可以作用到类上么?
(可以,首先看一下这个注解的源码
package org.springframework.web.bind.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String[] value() default {};

    RequestMethod[] method() default {};

    String[] params() default {};

    String[] headers() default {};

    String[] consumes() default {};

    String[] produces() default {};
}

@Target中 枚举类型是 ElementType.METHOD, ElementType.TYPE 说明可以作用到方法上,和类型上,类型又有哪些呢?看源码 以下给出部分源码
public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,


可以看到 Type包括 类,接口(含注解类型),或者是枚举
所以该注解是可以作用到类上的。
)
如何设置让requestmapping注解到的方法为get请求
(答:
@RequestMapping(method=RequestMethod.GET)
public void query(){

}

在最新的spring5中还有一个注解可以用来直接标识该方法为get请求,就是@GetMapping
看源码

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
    method = {RequestMethod.GET}
)
public @interface GetMapping {
    @AliasFor(
        annotation = RequestMapping.class
    )
    String name() default "";

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] value() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] path() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] params() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] headers() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] consumes() default {};

    @AliasFor(
        annotation = RequestMapping.class
    )
    String[] produces() default {};
}


)
springmvc的工作原理是什么?

1、  用户发送请求至前端控制器DispatcherServlet。

2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、  处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、  DispatcherServlet调用HandlerAdapter处理器适配器。

5、  HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

6、  Controller执行完成返回ModelAndView。

7、  HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、  DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9、  ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、 DispatcherServlet响应用户。

详细:https://lovemojienv.iteye.com/admin/blogs/2430193


union和union all有什么不同
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
union与union all 的区别主要是对重复结果的处理。
union在进行表连接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际上大部分应用中是不会产生重复的记录,最常见的是过程表与历史表union;如:select * from gc_dfys union select * from ls_jg_dfys
    这个sql在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。 而union all只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。
    从效率上来说,union all 要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用union all 这样效率高。   

MyBatis中#{ }和${ }的区别

MyBatis中#{ }和${ }都可以用来动态传递参数,补全SQL语句,但它们区别也很明显。

(1)#{"参数名"}在SQL中相当于一个参数占位符“?”,用来补全预编译语句。它补全预编译语句时,可以理解为在此参数值两端加了单引号。举例如下,当需要动态的按id查询用户信息时。

select * from my_user where id = #{id};
 

    如果我们为id赋值为1,这条SQL执行效果相当于下面的SQL。

select * from my_user where id = '1';
    由于预编译SQL使用PreparedStatement对象抽象预编译语句,之后使用也无需再次编译,而且能够防止注入式攻击,所以只要能够使用#{ }解决的地方,我们都应该使用#{ }。

(2)${"参数名"}就是单纯的字符串拼接,拼接完成后才会对SQL进行编译、执行,所以性能较低,也无法复用。但是在有些#{ }无法胜任的地方,还是会需要${ }来完成。比如当SQL中数据库表名为参数时,如果使用#{ },如下所示。


select * from #{tableName};
    当我们为tableName赋值为"my_user"时,相当于执行以下SQL。

select * from 'my_user';
    由于表名不能加单引号,所以语法错误。这时候就需要使用${ }来进行字符串拼接。

select * from ${tableName};
    为tableName赋值为"my_user"后,相当于执行以下SQL。
select * from my_user;

linux查看日志的命令
tail -f server.log

单例模式懒汉与饿汉的区别

分享到:
评论

相关推荐

    2024嵌入式面试资料中兴C++面试真题

    根据给定文件的信息,我们可以提炼出与“2024嵌入式面试资料中兴C++面试真题”相关的知识点,主要包括C++基础知识、嵌入式系统基础、以及面试技巧等几个方面。下面将逐一进行详细阐述。 ### C++基础知识 #### 1. *...

    2024嵌入式面试资料格力嵌入式软件工程师.面试题

    根据给定文件的信息,我们可以提炼出与“2024嵌入式面试资料格力嵌入式软件工程师面试题”相关的知识点。以下是对这些知识点的详细阐述: ### 嵌入式系统基础知识 #### 1. 嵌入式系统的定义 - **定义**:嵌入式...

    2024嵌入式面试资料裕日软件C笔试题

    根据给定文件的信息,我们可以提炼出与“2024嵌入式面试资料裕日软件C笔试题”相关的几个核心知识点: ### 1. 嵌入式系统基础 嵌入式系统是一种专用计算机系统,通常包含在其他设备中,用于执行特定功能。这些系统...

    2024嵌入式大厂面经六合万通微电子面试题

    - 在面试过程中,除了技术问题外,还可能涉及到项目经历、团队合作等方面的问题,请提前准备好相关的案例。 - 对于新兴技术和行业趋势有一定的了解也是加分项,例如物联网(IoT)、人工智能(AI)在嵌入式领域的应用...

    软件测试经典面试题文档内包含详细解析和答案

    ### 软件测试经典面试题解析 #### 题目一:你在测试中发现了一个 bug,但是开发经理认为这不是一个 bug,你应该怎样解决? **解答:** 在遇到这种情况时,首要步骤是确保该问题已经按照组织的标准流程记录在缺陷...

    面试常见问题,中英文

    - **解析**:这是面试中最常见的开场白之一,目的是让面试官了解应聘者的背景、经历及个人特点。 - **建议回答**:可以从教育背景、工作经验和个人兴趣爱好等方面入手,简洁明了地介绍自己,同时也要突出与应聘职位...

    2024嵌入式大厂面经太格时代试题

    面试经历(面经) “面经”通常指的是面试经验分享,包含了面试过程中遇到的各种问题及解答策略。对于求职者而言,“面经”是一种非常宝贵的资源,可以帮助他们了解目标公司的面试流程、常问问题等信息,从而更好...

    JAVA面试题目 JAVA面试题目一览表

    I scheduled regular one-on-one meetings to understand his perspective, identified common ground, and gradually incorporated his suggestions into our workflow."例如:“我曾经遇到过一个对变革有抵触情绪...

    阿里巴巴,腾讯,携程面经全过程

    内容涵盖了面试中遇到的问题、回答和体会,涉及到自然语言处理、机器学习、深度学习、操作系统、计算机网络等领域。 一、阿里巴巴面经 1. 自我介绍 面试官问了简单的自我介绍,主要是了解候选人的背景和项目经历。...

    2024嵌入式面试资料汇顶科技2021嵌入式(带答案)

    4. **行为面试题**:通过询问应聘者过去的工作经历或项目经验来评估其解决问题的方法和态度。例如,“请描述一次你在项目中遇到的挑战以及你是如何克服的”。 ### 结语 嵌入式系统的面试准备不仅仅是对基础知识的...

    2024嵌入式大厂面经大友迅捷笔试题

    5. **项目经验**:能够清晰地介绍自己的项目经历,特别是遇到的问题及解决方案。 ### 结论 对于准备参加2024年嵌入式大厂面试的求职者来说,不仅需要扎实的基础理论知识,还需要具备一定的实践经验。通过上述知识点...

    2024嵌入式大厂面经金美通信北京研发中心

    - 面试时保持自信,遇到不会的问题可以诚实地表达自己的想法,并尝试给出合理的解决方案。 - 对于过往的项目经历,提前准备好能够展示自己技术和解决问题能力的案例。 综上所述,“2024嵌入式大厂面经金美通信北京...

Global site tag (gtag.js) - Google Analytics