JAVA全栈⾯试题(⼀)
Springmvc的执⾏流程:
1、⽤户发送请求到前端控制器DispatcherServlet
2、DispatcherServlet收到请求调⽤处理映射器HandlerMapping
3、处理映射器根据请求url到具体的处理器,⽣成处理器执⾏链HandlerExecutionChain(包含处理器对象和处理器)返回给DispatcherServlet
4、DispatcherServlet根据处理器Handler获取对应的适配器
constitutional monarch5、HandlerAdapter调⽤处理器Handler
索引失效面试题6、Handler(Controller)执⾏完成后返回ModelAndView
7、HandlerAdapter返回ModelAndView
8、DispatcherServlet统⼀将返回的ModelAndView派送到ViewResolve(视图解析器)解析
9,视图解析器解析之后返回View
mysql面试题常问
10、对View进⾏渲染
11、响应⽤户
反射实现的三种⽅式:
第⼀种:通过Object类的getClass⽅法
Class cla = Class();
第⼆种:通过对象实例⽅法获取对象
Class cla = foo.class;oracle证书是国家级吗
第三种:通过Class.forName⽅式
Class cla = Class.forName(“xx.xx.Foo”);
Mybatis⼀对多,多对⼀的标签:
⼀对多:resultMap中⽤collection标签
多对⼀:resultMap中⽤association标签
Maven的两个作⽤:
对软件项⽬提供构建和依赖管理
Mysql的优化⽅案:
1、选取最适⽤的字段属性
2、使⽤连接(JOIN)来代替⼦查询(Sub-Queries)
3、使⽤联合(UNION)来代替⼿动创建的临时表
4、事务linux操作数据库常用命令
5、锁定表
6、使⽤外键
7、使⽤索引
8、优化的查询语句
Redis锁:
(未到正确答案)
JDBC和mybatis的区别:(为什么刚开始有JDBC后来⼜创建了mybatis)
1.加载驱动程序和数据库连接所需要的url、⽤户名和密码都是写死在程序中的,后期更换数据库的话还要修改程序。所以最好是定义到外部的配置⽂件中;
2.SQL语句也是写死在程序中:
(1)后期如果需要修改SQL语句的话,必须修改程序,重新编译;
(2)⽆法达到代码重⽤的作⽤;
(3)解决⽅案:最好将SQL语句也能够写死在配置⽂件;
3.给SQL语句设置参数有问题:
(1)参数写死了,不便于维护,最好能够从外部传递进来;
(2)需要判断参数的类型,很繁琐,最好能够⾃动进⾏判断;
(3)需要⼿动判断参数的位置(⾓标),繁琐,最好能够⾃动判断;
4.遍历结果集也存在问题:
(1)需要判断结果字段的类型,⿇烦;
(2)需要⼿动指定字段名称,⿇烦;最好能够直接将结果集映射为JavaBean;
5.释放资源也有问题,频繁的创建连接和关闭连接,造成资源浪费,影响系统性能,最好能够使⽤连接池;⽽Mybatis正好可以解决上述JDBC程序所存在的⼀系列问题
结构体数组动态分配内存SpringMVC⽤到的注解:
@Controller 使⽤它标记的类就是⼀个SpringMVC Controller 对象
@RequestMapping:表⽰类中的所有响应请求的⽅法都是以该地址作为⽗路径。
@Resource和@Autowired:@Resource和@Autowired都是做bean的注⼊时使⽤
@ResponseBody:该注解⽤于将Controller的⽅法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写⼊到Response对象的body数据区

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。