自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 策略+模板方法实现重复业务代码重构,流程控制,统一入口

策略+模板方法实现重复业务代码重构,流程控制,统一入口。

2023-09-07 11:02:36 112

原创 spring 注解+AOP 实现方法增强、接口路由日志记录等

spring 注解+AOP 实现方法增强、接口路由日志记录

2023-09-06 17:23:33 94

原创 oracle数据库死锁的查询和释放

ORACLE锁

2023-09-06 16:32:08 732

原创 JAVA 事务不生效的常见场景和修改方案

java事务是很多初学者和初级乃至于中级程序员不明白的点,绝大多数情况都是使用声明式事务也就是在方法上面来个@Transactional(rollbackFor = Exception.class),会出现事务没有回滚的情况,很多博客都有写,这篇博客主要是整理和记录一下事务不生效的情况和处理方法,如有问题可以私信或评论............

2022-07-07 17:01:21 5044

原创 java多线程

java多线程多线程是cup操作的最小单元,通过多重线程调度算法如:FIFO()、时间片轮换、最短作业等,通俗来将用多线程就是将一件事分成若干个组成交给若干个线程处理,从而加快了处理速度一、为什么要使用多线程 就一点:提高计算机CPU的利用率二、线程的分类分为主线程和子线程,main方法称之为主线程,其余的为子线程,子线程可细分为守护线程和非守护线程(其含义与守护进程和非守护进程相差不大)public static void main(String[] args) { n

2021-12-15 14:35:20 411

原创 spring学习(二)

spring学习(二)组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JND

2021-12-07 10:40:10 141

原创 数据库--mysql

数据库《高性能Mysql(第三版)》数据库三大范式、反模式强调属性的原子性约束,要求属性具有原子性,不可再分解强调记录的唯一性约束,表必须有一个主键,并且没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分强调属性冗余性的约束,即非主键列必须直接依赖于主键反模式:如果完全按照三大范式来设计表结构,会导致业务涉及表增多,查询数据需要多表联合查询,导致sql复杂,性能变差,不利于维护,也不利于分库分表,比如会在表中冗余存储城市id对应的城市名称###Mysql 架构图In

2021-12-07 10:39:34 961

原创 Spring学习面试宝典

Spring相关知识文章目录Spring相关知识BeanFactory 与ApplicationContext 是干什么的,两者的区别Spring IOC容器如何实现Spring DI(依赖注入)的实现Spring如何解决循环依赖问题Spring Bean 生命周期Spring Bean的作用域,默认是哪个?AOP两种代理方式Spring AOP实现原理哪些方法不能被AOP增强AOP 切点函数六种增强类型Spring MVC运行流程Spring MVC 启动流程Spring 事务实现方式、事务的传播机制、

2021-12-07 10:31:39 96

原创 数据结构--树

数据结构二叉树结构二叉树每个节点至多有两个节点,左节点永远比右节点小,并且小于根节点。查找最好时间复杂度O(longN), 最坏O(N)插入删除操作时间复杂度跟查找差不多平衡二叉树(AVL)左右子树的高度差不超过1,并且左右子树都是平衡二叉树,超过1就旋转。比二叉树稳定,查找时间复杂度O(logN)插入操作最多需要旋转1次,时间复杂度O(logN)左右删除时间复杂度O(2logN)红黑树每个节点上都有节点颜色,可以是红色或者黑色;根节点必须是黑色;每个红色节点的子节点,父节点是黑色;从

2021-12-07 10:29:35 797

原创 java中的反射

Java 反射、IO反射Class类: 反射的核心类、可以获取类的属性,方法等信息Field类: Java.lang.reflec包中的类,表示类的成员变量,可以用来获取和设置类之中的属性值Method类:Java.lang.reflec包中的类,表示类的方法,可以用来获取类中的方法信息或者执行方法Constructor类:Java.lang.reflec包中的类,表示类的构造方法获取Class对象的3种方法://1Person p = new Person();Class clazz =

2021-12-07 10:28:43 215

原创 jvm虚拟机

JVM知识文章目录JVM知识JVM运行时内存区域划分OOM,及SOE的示例、原因,排查方法如何判断对象可以回收或存活哪些对象可以作为GC ROOT 对象常见的GC算法常见的JVM性能监测分析工具JVM优化什么时候会触发FullGC类加载器有几种什么是双亲委派模型?双亲委派模型的破坏类的生命周期强引用、软引用、弱引用、虚引用编译器会对指令做哪些优化?Serial、Parallel、CMS、G1收集器特点volatile的特点《深入理解Java虚拟机:JVM高级特性与最佳实践(最新第二版)》JVM运行

2021-12-07 10:28:07 417

原创 java关于锁的小总结

锁文章目录锁Synchronized原理synchronized和Lock的区别什么是死锁如何 避免死锁什么是活锁sleep 、wait、yield的区别什么是虚假唤醒?如何避免synchronized 可重入是怎么实现的ReentrantLock可重入性怎么实现的?非公平锁和公平锁在ReetrantLock里的实现过程是怎样的自旋锁、自适应自旋、锁消除、锁粗化、轻量级锁、偏向锁公平锁、非公平锁AbstractQueuedSynchronizer的作用《Java并发编程的艺术》、《Java并发编程之美

2021-12-07 10:27:04 182

原创 java基础

Java 基础文章目录Java 基础请你解释为什么会出现 4.0 - 3.6=0.40000001 这种现象请你讲讲一个十进制的数在内存中是怎么存的?接口和抽象类的区别是什么 ?面向对象开发的六个基本原则,在项目中用过哪些原则HTTP请求的GET与POST方式的区别TCP 三次握手,四次挥手TCP 和 UDP区别从输入网址到获取页面的过程Session与Cookie区别列出自己常用的JDK包equals与==的区别hashCode和equals方法的区别与联系什么是Java序列化和反序列化,如何实现Jav

2021-12-07 10:23:28 335

原创 spring mvc

spring mvc1、什么是Spring的MVC框架?Spring配备构建Web应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,Spring的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。Spring mvc是一个基于mvc的web框架。Spring mvc是Spring框架的一个模块,Spring mvc和Spring无需通过中间整合层进行整合。mvc解释m模型v视图c控制2、

2021-12-07 10:21:54 102

原创 spring学习(二)

spring学习(二)组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JND

2021-12-07 10:21:19 267

原创 spring学习

关于spring基础介绍(一)①Spring是一个开源框架②Spring为简化企业级开发而生,使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。③Spring是一个IOC(DI)和AOP容器框架。④Spring的优良特性[1]非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API[2]控制反

2021-12-06 14:00:19 71

原创 javaweb开发脚手架springboot相关注解

spring bootSpringBoot所具备的特征有:(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;(2)内嵌Tomcat或Jetty等Servlet容器;(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;(4)尽可能自动配置Spring容器;(5)提供准备好的特性,如指标、健康检查和外部化配置;(6)绝对没有代码生成,不需要XML配置。爱了吗关于springboot 网上一大堆我

2021-12-06 13:59:38 182

原创 持久层-MyBatis

简介什么是 MyBatis?MyBatis 是一款优秀的持久层框架(其实也就是半自动的ORM),它支持自定义 SQL、存储过程以及高级映射(映射可能是你说有疑惑的终极答案)。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML(建议采用) 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。以上就是官方的解答了,作为一款持久层框架确实是很香的,

2021-12-06 13:57:09 662 2

原创 redis缓存模式

redis集数据库,缓存等一身的强大no sql基于springboot日常第一步先学习什么是cache(缓存)名称解释Cache缓存接口,定义缓存操作。实现有:RedisCache、EhCacheCache、ConcurrentMapCache等CacheManager缓存管理器,管理各种缓存(cache)组件@Cacheable主要针对方法配置,能够根据方法的请求参数对其进行缓存@CacheEvict清空缓存@CachePut保证方法被调用,又

2021-12-06 13:56:14 146

原创 java中锁的小知识

关于死锁你得知道这些事情如果一组进程中每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。举例来说:有两个进程A和B,A持有资源a等待b资源,B持有资源b等待a资源,两个进程都在等待另一个资源的同时不释放资源,就形成死锁。形成死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程

2021-12-06 13:54:35 100

原创 java spring中的循环依赖

什么是循环依赖简单点说:就是两个类都定义了对方的全局变量,导致bean工厂生成了两个非完全体的对象解决方案:Spring的循环依赖的理论依据基于Java的引用传递,当获得对象的引用时,对象的属性是可以延后设置的。(但是构造器必须是在获取引用之前)Spring的单例对象的初始化主要分为三步:(1)createBeanInstance:实例化,其实也就是调用对象的构造方法实例化对象(2)populateBean:填充属性,这一步主要是多bean的依赖属性进行填充(3)initializeBean:

2021-12-06 13:54:01 131

原创 单例模式(singleton)

设计模式之单例模式(singleton)相关定义:顾名思义就是只有(只允许)一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象单例的实现主要是通过以下两个步骤:将该类的构造方法定义为私有方法,这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例;在该类内提供一个静态方法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的

2021-12-06 13:53:02 56

原创 工厂方法模式

设计模式之工厂方法模式(FactoryMethod Pattern)相关定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类工厂方法的实现主要是通过以下步骤:创建一个抽象工厂,里面定义一个抽象方法;创建具体工厂继承抽象工厂(如过抽象工厂是接口则实例化,下面例子使用的是抽象类、方法)实现父类的(上级接口的)方法;创建抽象产品接口,里面定义一个方法创建具体产品实现抽象产品接口,实现上级方法适用场景:1、当一个类不知道它所必须创建的对象的类的时候;

2021-12-06 13:52:06 56

原创 java中的抽象工厂模式

设计模式之抽象工厂模式(FactoryMethod Pattern)相关定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。工厂方法的实现主要是通过以下步骤:创建一个或多个抽像工厂(代码里面为链接和发送),里面定义一个抽象方法;创建工具类接口提供选择(里面有第一步的两个方法),到此规则定义完成创建MySQL(Oracle)产品实现链接的接口,实现上级接口方法创建工具类MySQL(Oracle)实例,实现上级的两个方法适用场景:工作了,为了参加一些聚会,肯定有两套或

2021-12-06 13:51:21 985

原创 redis常见问题

redis1、常用的数据结构?String字符串:格式: set key valuestring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。Hash(哈希)格式: hmset name key1 value1 key2 value2Redis hash 是一个键值(key=>value)对集合。Redis hash是一个string类型的field和va

2021-12-06 13:49:44 123

原创 java常量和变量

java常量和变量常量​ 在JAVA中常量又称字面变量,在定义时使用final 关键字进行定义并赋初始值,后续不再发生改变,实际开发中的应用场景如:配置信息、服务名称、topic以及业务中不变的参数1. public final static int CAHCETIME = 60;​ 实际上面定义一个常量并不需要代码1上面的static,但是在实际开发过程中往往都会加上static关键字,其原因可以追溯到类加载过程里面,不加static每次装载这个类的时候都回去赋一遍值,加上static之后j

2021-12-02 10:36:49 73

原创 javaswing-Socket-聊天室大作业

没日没夜的奋斗的聊天室欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计...

2019-01-07 21:22:51 316

原创 【公共样式】保存一波就怕电脑what了

*{margin: 0;padding: 0;}ul,li,ol{list-style:none;}a{text-decoration: none;}.clears{clear: both;height: 0;line-height: 0;font-size: 0;overflow: hidden;}body{font-family: Arial,Verdana...

2018-12-16 21:27:22 97

原创 【大图背景不重复,不拉伸的基本样式】

【大图背景不重复,不拉伸的基本样式】background-image: url(…/images/pic_1.jpg);background-repeat: no-repeat;background-position: center top;background-attachment: fixed;background-size: cover;...

2018-12-16 21:25:41 831

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除