面试冲冲冲
文章平均质量分 95
不喝阔落
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈动态代理和静态代理的底层原理及实现
什么是反射,反射的作用是什么 Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键.java类加载机制要弄清楚java的反射原理,我们首先需要知道java的类加载机制*.java文件通过编译器编译成为*.class文件*.class文件通过类加载器加载到 j原创 2022-05-21 14:06:49 · 748 阅读 · 0 评论 -
浅谈Spring容器初始化流程
浅谈Spring容器初始化流程Step1、new AnnotationConfigApplicationContext(MyConfig.class)下图是AnnotationConfigApplicationContext的继承关系核心构造方法 AnnotationConfigApplicationContext(Class<?>… componentClasses)/** * Create a new AnnotationConfigApplicationContext原创 2021-05-07 14:50:08 · 420 阅读 · 0 评论 -
实现一个自定义的Mybatis
实现自定义的 Mybatis 框架自定义Mybatis概述原生 JDBC 存在的问题问题描述数据库链接信息、注册驱动、Sql 语句硬编码的问题,代码不易维护频繁创建释放数据库链接造成资源的浪费结果集需要手动封装,非常麻烦解决方案硬编码问题可以通过配置文件来解决引入数据库连接池,解决频繁释放资源造成的问题使用反射、动态代理,减少重复代码,根据执行条件动态执行sql自定义 Mybatis 架构图实现自定义 Mybatis 框架pom 文件<properties>原创 2020-09-30 03:51:08 · 332 阅读 · 0 评论 -
每天一道面试题(三):什么是反射,反射的原理是什么?
什么是反射,反射的作用是什么 Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键.java类加载机制要弄清楚java的反射原理,我们首先需要知道java的类加载机制*.java文件通过编译器编译成为*.class文件*.class文件通过类加载器加载到 j原创 2020-07-24 04:21:34 · 1368 阅读 · 3 评论 -
每天一道面试题(二):什么是CAS,什么是ABA问题
前言CAS(compare and swap)它是一条CPU并发原语.它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的原子包装类和CASjava.util.concurrent.atomic 存在许多原子包装类,它们都是在基本数据类型包装类的基础上实现了原子性,这里我们拿 AtomicInteger 来举例//首先我们来看一下 AtomicInteger 的getAndIncrement()方法,该方法的作用是 Integer 类型的数据自增,等同于num++原创 2020-07-15 02:41:22 · 330 阅读 · 1 评论 -
每天一道面试题(一):浏览器输入URL发生了什么
浏览器输入URL发生了什么前言这是一道非常经典的面试题,可以覆盖绝大多数网络相关的知识点,重点考察 TCP/IP 网络模型、tcp、http 网络协议、DNS 地址解析过程等知识点,当然也可以衍生出许多其他的网络相关的面试题,比如:TCP协议为什么需要进行三次握手,而不是四次,五次TCP协议为什么要进行四次挥手DNS 服务器是如何解析地址的,流程是怎样的HTTP 协议的特点TCP/IP 网络模型分为哪几层,分别有什么作用这篇文章主要是对浏览器一次完整的请求进行大致的分析,并且在分析的过程原创 2020-07-14 06:02:34 · 1577 阅读 · 1 评论 -
为什么Spring推荐使用构造器注入而不是Field注入
前言我们都知道在 Spring Bean 的注入方式一般分为三种:1、构造器注入 2、Setter注入 3、基于注解的 @Autowired 自动装配(Field 注入)在以往的项目开发过程中,我们大多会使用方便灵活的 @Autowired 自动装配的方式来管理依赖,但是 Spring 官方却不推荐这么做Inspection info: Spring Team recommends: “Always use constructor based dependency injection in you原创 2020-07-03 01:58:47 · 2521 阅读 · 4 评论 -
如何优雅的处理全局异常
前言异常处理是项目开发中绕不过的一个环节,一个优雅的全局异常处理可以迅速反馈给开发人员这些信息1、异常种类2、可能导致异常的原因3、导致异常出现的关键参数4、异常发生的时间5、发生异常的请求路径这些信息有助于开发人员迅速定位、处理异常,一个优秀的项目应该尽可能的将可能发生的异常进行捕获,再通过自定义的处理流程将异常信息反馈,而不是一味的抛出异常异常捕获流程ErrorCode 异常信息枚举 对于异常的处理我倾向于通过枚举类列举广义的异常种类,再通过附加信息对异常种类进行细分。原创 2020-06-30 21:57:59 · 1241 阅读 · 0 评论 -
浅谈volatile:可见性,不保证原子性,禁止指令重排
前言volatile是jvm提供的一种轻量的同步机制,它相较于synchronize性能更优,在某些场合比synchronize更加适用,它具有三种特性分别是保证可见性不保证原子性禁止指令重排volatile特性一:可见性理解可见性的抽象概念如下图所示,有三个线程 T-1,T-2,T-3,主内存中存在一个对象A,对象A的age属性数值为24,现在定义一个方法,将对象A的age...原创 2020-06-30 21:55:59 · 857 阅读 · 0 评论
分享