- 浏览: 87321 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (148)
- 全文检索 (1)
- java (29)
- xml (2)
- json (2)
- redis springmvc (1)
- Redis (5)
- 开发常识 (1)
- tomcat (2)
- 单元测试Junit (2)
- 设计模式 (2)
- spring (10)
- jvm (2)
- eclipse (4)
- echart (1)
- mybatis (1)
- mysql (3)
- web (1)
- js (2)
- PL/SQL (2)
- 其他 (1)
- 人生 (1)
- 安全 (2)
- jsp (2)
- 硬件电脑 (1)
- linux (3)
- git (10)
- oracle (8)
- ant (1)
- maven (2)
- 正则表达式 (2)
- chrome (1)
- 面试 (6)
- 多线程 (19)
- bug (11)
- java工具类 (3)
- 算法 (1)
- bug,git (1)
- shell (2)
- springmvc (2)
- Java8 (1)
- 消息队列-rocketmq (1)
- es (1)
- dubbo (0)
- spring cloud (0)
- hashmap (0)
- springboot (1)
- velocity (0)
整理记录一些面试要点以便将来用得到。
关于面试:首先认清无论你多优秀,在面试的时候都不能顾及到所有面试的内容,所以只能尽可能的去准备一些常问的面试点,也就是能拿的分要拿到。
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注解可以作用到类上么?
(可以,首先看一下这个注解的源码
@Target中 枚举类型是 ElementType.METHOD, ElementType.TYPE 说明可以作用到方法上,和类型上,类型又有哪些呢?看源码 以下给出部分源码
可以看到 Type包括 类,接口(含注解类型),或者是枚举
所以该注解是可以作用到类上的。
)
如何设置让requestmapping注解到的方法为get请求
(答:
在最新的spring5中还有一个注解可以用来直接标识该方法为get请求,就是@GetMapping
看源码
)
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
单例模式懒汉与饿汉的区别
关于面试:首先认清无论你多优秀,在面试的时候都不能顾及到所有面试的内容,所以只能尽可能的去准备一些常问的面试点,也就是能拿的分要拿到。
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
单例模式懒汉与饿汉的区别
发表评论
-
面试之hashmap
2020-06-16 06:41 0hashmap经常会问到的面试题 1、JDK8中的HashM ... -
自己编写一个Map
2017-10-25 15:34 522在爱酷学习网上学习Java视频,其中有一个自己实现map的功能 ... -
最近5年经常被问到的面试题
2017-10-24 15:55 0java 面试随着时间的改变而改变。在过去的日子里,当你知道 ... -
五颗星---------常问面试点软肋
2017-10-24 15:33 0总结经常被问到的面试点,又总是表达不好。 1.单例模式 2. ... -
简历宝典
2017-10-24 14:29 0从享受生活的角度上来 ... -
笔试题之--------------javaWeb
2017-10-24 14:27 0Java web部分 1、Tomcat的优化经验 ... -
笔试题之-------------j2ee
2017-10-24 14:26 291j2ee部分 1、BS与CS的联系与区别。 C/S是C ... -
笔试题----之Java代码查错
2017-10-24 14:18 274Java代码查错 abstract class Name { ... -
张孝祥Java就业面试宝典---笔试题之Java基础
2017-10-24 14:22 410Java基础部分 基础部分的顺序:基本语法, ... -
StringBuffer与StringBuilder的区别
2017-10-24 10:07 260声明:以下内容如有雷同,纯属参考。 StringBuffe ...
相关推荐
sql数据库基础面试题复习题考试题-全教学教材.docxsql数据库基础面试题复习题考试题-全教学教材.docxsql数据库基础面试题复习题考试题-全教学教材.docxsql数据库基础面试题复习题考试题-全教学教材.docxsql数据库...
sql数据库基础面试题复习题考试题-全教学教材.pdfsql数据库基础面试题复习题考试题-全教学教材.pdfsql数据库基础面试题复习题考试题-全教学教材.pdfsql数据库基础面试题复习题考试题-全教学教材.pdfsql数据库基础...
sql数据库基础面试题复习题考试题-全.doc.pdfsql数据库基础面试题复习题考试题-全.doc.pdfsql数据库基础面试题复习题考试题-全.doc.pdfsql数据库基础面试题复习题考试题-全.doc.pdfsql数据库基础面试题复习题考试题-...
sql数据库基础面试题复习题考试题-全.doc.docxsql数据库基础面试题复习题考试题-全.doc.docxsql数据库基础面试题复习题考试题-全.doc.docxsql数据库基础面试题复习题考试题-全.doc.docxsql数据库基础面试题复习题...
sql数据库基础面试题复习题考试题-全 (2).pdfsql数据库基础面试题复习题考试题-全 (2).pdfsql数据库基础面试题复习题考试题-全 (2).pdfsql数据库基础面试题复习题考试题-全 (2).pdfsql数据库基础面试题复习题考试题-...
.NET面试题----------.NET常见面试100题帮助您轻松过面试一关
java面试题-50java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题java面试题-50道最容易考的java题...
java面试题-外企软件工程师面试题大全.rarjava面试题-外企软件工程师面试题大全.rarjava面试题-外企软件工程师面试题大全.rarjava面试题-外企软件工程师面试题大全.rar
前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip前端面试题-企业面试真题.zip
上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结).docx上海Linux运维工程师-面试题-个人总结)...
sql数据库基础面试题复习题考试题-全.pdfsql数据库基础面试题复习题考试题-全.pdfsql数据库基础面试题复习题考试题-全.pdfsql数据库基础面试题复习题考试题-全.pdfsql数据库基础面试题复习题考试题-全.pdfsql数据库...
Spring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024最新版)-重点.docxSpring面试题(2024...
SpringBoot面试题(2024最新版)-重点.docxSpringBoot面试题(2024最新版)-重点.docxSpringBoot面试题(2024最新版)-重点.docxSpringBoot面试题(2024最新版)-重点.docxSpringBoot面试题(2024最新版)-重点....
最新各大公司企业真实面试题-Java面试题最新各大公司企业真实面试题-Java面试题
最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列最新22道面试题-Vue系列...
群硕面试题,C#方面的,可以看看 群硕面试题,C#方面的,可以看看
java面试题Java并发编程面试题(2024最新版)-重点.docxJava并发编程面试题(2024最新版)-重点.docxJava并发编程面试题(2024最新版)-重点.docxJava并发编程面试题(2024最新版)-重点.docxJava并发编程面试题...
Java集合容器面试题(2024最新版)-重点.docxJava集合容器面试题(2024最新版)-重点.docxJava集合容器面试题(2024最新版)-重点.docxJava集合容器面试题(2024最新版)-重点.docxJava集合容器面试题(2024最新版)...
java程序员面试题150例 java常见面试题 java工程师面试题 java面试题大全 带搜索功能,能非常方便的查找到你想要了解的 java面试题目 推荐大家下载。