2 谁的青春不迷茫、

尚未进行身份认证

我要认证

越努力,越幸运!

等级
TA的排名 10w+

SpringBoot源码分析

为什么sringboot可以省略大量的配置?因为约定优先于配置的软件设计范式,就像红灯行绿灯停一样,在代码中的体现比如一个实体类对应一个表,约定实体类的名字就是表名,就不用配置@table,不一样的时候才配置什么是springboot?springboot让基于spring的开发更快的跑起来,减少了大量的配置文件spring的缺点:使用是轻量级的,配置是重量级的,需要很多的配置springboot的解决spring问题的两个方式1、起步依赖:通过Maven Pom依赖的方式,将某种功能的依赖打包.

2020-08-10 23:08:15

SpringMVC源码分析

SpringMVCSpringMVC应用SpringMVC高级技术手写MVC框架SpringMVC源码分析SSM整合面试题1、经典三层和MVC的区别?2、介绍下SpringMVC框架3、SpringMVC的三大组件4、SpringMVC执行流程5、SpringMVC的九大组件HandlerMapping(处理器映射器)HandlerAdapter(处理器适配器)HandlerExceptionResolver(处理器异常处理)ViewResolver(视图解析器)RequestToViewNameTrans

2020-08-08 16:03:50

IoC容器设计实现及Spring源码分析

任务一SSM(Spring SpringMVC Mybatis)的前身是SSH(Spring Struts Hibernate),Spring不仅没有被淘汰,还渐渐有了家族式的发展,spring全家桶(最主要的有脚手架框架springboot,微服务框架springcloud等等)先自定义SpringIOC和AOP,再去看源码实现,最后源码分析1、spring的核心思想:控制反转IOC,面向切面编程AOP2、手写IOC和AOP3、IOC和AOP的应用和高级特性:AOP申明式事务4、IOC源码分析

2020-08-05 21:16:32

深入理解MyBatis持久层框架(1)-- 自定义MyBatis核心框架

深入理解MyBatis持久层框架为什么有了JDBC还要使用MyBatis框架?传统JDBC访问数据库代码传统JDBC访问数据库存在哪些问题?如何自定义MyBatis框架?自定义MyBatis框架思路1、首先创建数据库连接配置文件SqlMapConfig.xml2、创建sql配置文件Mapper.xml,sql都有哪些配置信息呢?3、为了能够让配置文件只读取一次,我们可以在SqlMapConfig.xml中配置mapper.xml的路径。4、因为内存的读取速度远远大于硬盘的读取速度,所以我们可以把配置文件以字

2020-07-30 15:05:34

深入理解MyBatis持久层框架

为什么有了JDBC还要使用Mybatis框架?JDBC存在的问题:1、加载驱动如果要从mybatis换成oracle,必须重新修改代码编译,存在硬编码问题解决:使用配置文件2、频繁创建释放数据库连接,TCP不断进行三次握手和四次挥手,效率低解决:使用连接池:c3p0,drurid3、sql语句、设置参数、获取结果集均存在硬编码问题解决:使用配置文件4、最后还得对结果集进行手动封装,毕竟繁琐解决:反射、内省思考: sql配置文件和数据库驱动配置文件需要放一起吗?答:不需要,数据库驱动不经

2020-07-21 22:18:06

深入理解Java虚拟机之高效并发

深入理解Java虚拟机之高效并发Java内存模型与线程概述硬件的效率与一致性Java内存模型与线程        并发处理的广泛应用是Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类压榨计算机运算能力的最有力武器。这两个定律的更替代表了近年来硬件发展从追求处理器频率到追求多核心并行处理的发展过程。简单来说,就是从追求高性能的cpu到追求高利用率的cpu概述      多任务处理在现代计算机操作系统中几乎已

2020-07-08 09:09:28

Java动态代理

CGLB是如何调用到目标方法的?FastClass索引机制Jdk动态动态代理走回调拦截 实现接口,使用反射技术执行我们的目标方法Cglib基于字节码技术实现封装Cglib动态代理效率比jdk动态代理高两者的区别1、Jdk动态代理是使用接口的形式生成代理类(拼接、编译、加载);Cglib动态代理是采用继承的模式生成代理类,基于asm字节码技术实现封装2、Jdk动态代理拼接源代码生成class文件;Cglib动态代理是通过字节码技术生成class文件(不需要编译,直接加载就好,生成、加载)

2020-06-24 12:09:06

反射机制

什么是反射?通过class文件动态获取类的信息优点:扩展性强缺点:违反了面向对象设计原则,且不安全应用场景:1、JDBC驱动加载2、SpringIOC容器3、自定义注解(aop+反射)4、代码生成器逆向生成java代码5、第三方框架6、破解常用单例写法,使用枚举是不能破解的,所以是最安全的三种获取class对象的方式1、obj.getClass(),用的少2、类.class3、classforName代码生成:1、stringbuffer拼接java源代码2、源代码输出到磁盘

2020-06-22 16:40:24

spring事务

spring事务失效之谜事务的作用:保证数据一致性原则,ACID事务的分类:1、声明事务:异常被try捕获之后,事务不会去生效,直接提交,不会回滚,可以在catch中手动回滚事务TransactionAspectSupport.currentTransactionstatus().setRollbackOnly();2、编程事务:项目中去获取事务管理器DalaSourcelransactionManager优点:扩展性强缺点:代码冗余、容易造成死锁在还没提交事务之前数据库是没有数据的,提交之后

2020-06-22 15:24:37

深入理解volatile关键字的底层工作原理

前言在并发编程中,我们常常会用到volatile关键字修饰共享变量,来保证这个共享变量在线程之间的可见性。我们来深入了解一下volatile的底层工作原理。volatile常见面试题:1、volatile的三大特性?2、为什么volatile可以保证可见性?3、为什么volatile不可以保证原子性?首先了解一下数据存储等级和JMM内存规范数据存储等级在数据存储中是分为七个等级的,第0级是寄存器,是用汇编语言操作的,第一二三级是CPU的高速缓冲区,用来缓存主内存中的数据。以上的数据存储是更小

2020-06-22 14:30:05

图文解说Kafka,看不懂你锤我!- 迷茫哥

什么是Kafka?Kafka有哪些优缺点?什么是分布式消息中间件?为什么要使用分布式消息中间件?Kafka有哪些专业名词?Kafka实现原理?为什么要使用Kafka?Kafka有哪些应用场景?初始状态消息投递副本同步...

2020-05-01 15:31:16

Kafka(Java面试题)

1

2020-05-01 13:11:36

Redis(Java面试题)

一、什么是Redis?Redis是一种高性能的key-value非关系型数据库,他是基于C语言写的,底层采用NIO多路复用机制,使用一个线程去维护多个不同的socket连接,他只有Linux版本的,没有Windows版本的,Windows版本的Redis是网上大神改写的,因为在Windows中NIO多路复用机制底层使用的是selector选择器,通过for循环去遍历连接,容易造成空轮训,效率比较...

2020-04-29 20:12:23

Elasticsearch(Java面试题)

一、什么是Elasticsearch?Elasticsearch简称ES,是一种以JSON格式进行数据存储的分布式搜索引擎二、为什么不使用MySQL查询,而要用ES呢?在一个电商平台项目中,会有非常多的商品,如果使用以往的MySQL进行模糊查询,需要比较长的等待时间,对数据库压力比较大,ES中使用倒排索引,查询效率非常高,可以减轻MySQL压力,而且还能进行分词查询和高亮处理,MySQL是做...

2020-04-29 16:48:12

Sentinel(Java面试题)

1、什么是Sentinel?Sentinel是一个面试分布式架构的轻量级服务保护框架,主要以流量控制、熔断降级、系统负载保护等多个维度2、服务接口保护有哪些方案?(1)使用服务保护框架Sentinel,h,进行服务限流、熔断、降级(2)黑白名单限制访问3、什么是服务限流、服务熔断、服务降级、服务雪崩?服务限流:在接口访问超过设置的阈值,走服务降级fallback方法服务熔断:接口出...

2020-04-24 16:23:39

Seata(Java面试题)

1、分布式事务产生的背景?在传统的单体项目中,多个不同的业务逻辑使用的都是同一个数据源,使用的都是同一个事务管理器,所以不会存在事务问题。在分布式或者微服务架构中,每个服务都有自己的数据源,使用不同事务管理器,如果A服务去调用B服务,B服务执行失败了,A服务的事务和B服务的事务都会回滚,这时候是不存在事务问题的,但是如果A服务B服务执行成功之后出现异常,A服务的事务会回滚,但是B服务的事务不会...

2020-04-24 15:05:34

SpringBoot(Java面试题)

1、Spring Boot的优缺点?优点(1)快速构建项目,开箱即用(2)内嵌Tomcat服务器,不用额外去部署项目(3)对主流开发框架的无配置集成缺点(1)适合微服务,不适合大型项目2、Spring Boot怎么实现热部署?在application配置文件中配置devtools,development设置为 true3、@SpringBootApplication包含哪些注解,...

2020-04-21 15:46:47

Spring(Java面试题)

1、ServletContext概念ServletContext官方叫做Servlet上下文,他的实例就是Application对象服务器会为每一个工程创建一个ServletContext对象,全局唯一,工程内部的所有Servlet都可以共享这个对象。所以也叫全局应用程序共享对象。2、ServletContex作用? 是一个域对象 可以读取全局配置参数 可以搜索当前工程...

2020-04-21 15:45:02

Mybatis(Java面试题)

1、Mybatis的一级缓存和二级缓存是如何实现的?2、Mybatis中用到的设计模式有哪些?3、JDK动态代理和CGLIB动态代理有什么区别?4、Mybatis源码分析流程?5、Mybatis的五个优点?(1)sql语句与代码分离,存放于xml配置文件中,降低耦合度,便于维护管理(2)Mybatis是一个持久层框架(写入硬盘)(3)提供XML标签,支持动态sql(例如if else...

2020-04-21 15:22:22

Mysql(Java面试题)

1、如何去除重复的数据?2、any和all的区别?3、数据库可以如何优化?4、Sql如何优化?5、drop、truncate、delete的区别?6、char和varchar的区别?7、in和exists,not in和not exists的区别?8、内连接、左右连接的区别?9、超键、候选键、主键、外键的区别?10、常见的约束有哪些?11、如何创建视图?12、什么是视图?视图...

2020-04-21 15:17:34

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。