自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 异步方法导致的请求头丢失

异步方法导致的请求头丢失

2022-04-23 21:51:00 1293

原创 RocketMQ安装与初步使用

RocketMQ

2022-04-09 17:05:22 2780

原创 mysql 普通用户登录报错

问题描述:root的登录没报错、普通用户报错。普通用户测试能连接,但是真正连接是会报错。错误截图:原因:排查出来的问题是 配置了init_connect变量。该变量是每次执行sql都会执行的。该变量配置错误,导致了出错。应该改成 'SET NAMES utf8mb4’或者配置成空串在my.cnf 配置中调整设置语句show variables like ‘init_connect’;set global init_connect=‘SET NAMES utf8mb4’;...

2021-07-15 15:19:25 215

原创 Gradle配置阿里镜像

指定gradle全局镜像地址:创建文件GRADLE_HOME/init.d/init.gradle文件内容:allprojects{ repositories { def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public' def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repos

2020-08-12 02:22:52 453

原创 JVM2-类加载机制

本文参考的《深入理解Java虚拟机》一书第七章,属于个人对这一章节的总结笔记。《深入理解Java虚拟机》有更多的代码解释。什么是java虚拟机的类加载机制?就是java虚拟机讲描述类的数据从class文件中读取到内存中,对数据进行验证,转换解析和初始化,最终转换成能够被java虚拟机直接使用的java类型。生命周期?一个类从加载到卸载,经过7个步骤加载–>验证–>准备–>解析–>初始化–>使用–>卸载何时加载类?何时初始化类?对于何时加载类,《JAVA虚拟机

2020-08-10 23:56:38 114

原创 JVM1--oop-klass模型

Metadata–>元数据,用于描述数据的数据。或者说是用于提供某种资源有关信息的数据结构。简单的理解,元数据和java中的实体类类似,抽象出一类东西所具有的的特征,利用这些特征区分同一类东西的不同属性。类加载器将.class文件加载进系统,将.class文件解析,生成的是什么?类的元信息在JVM中是如何存储的?也就是说oop-klass模型,就是jvm用于存储类加载器加载、解析.class文件的“实体类”。InstanceKlass–>表示的是java类(非数组,数组的),表示java

2020-08-07 17:29:52 315

原创 简单了解BeanFactory和FactoryBean

BeanFactory是spring bean容器的根接口,BeanFactory提供了,获取bean,判断是否包含bean,判断单例或者原型,获取bean类型,获取bean别名的api。我们常见的AnnotationConfigApplicationContext、FileSestemXmlApplicationContext、ClassPathXmlAplicationContext都继承了BeanFactoryFactoryBeanFactoryBean是spring提供创建bean的一个接口

2020-07-31 14:35:51 147

原创 动态代理

一、什么是代理学动态代理,就得知道为啥出现有动态代理。那就是静态代理不能满足日常开发的使用了。学动态代理和静态代理,那就得知道为啥要有代理这个东西。就比如,A类中有一个去菜市场买菜的方法。那么我去菜市场要骑车,买完菜要付钱,回来还得骑车回来。那么我就可以创建一个B类,调用B类,就能够完成上面的所有操作。这就要扯到代理模式了。代理模式:有两个类,分别是代理类和委托类。代理类为委托类进行预处理消息,过滤消息,接着把消息转发给委托类,最后处理一下事后消息。那按照上面的意思就是,B类是代理类,A类是委托类

2020-07-31 01:12:11 81

原创 浅谈自己理解的深拷贝和浅拷贝

在自己之前的文章中写过原型模式的笔记,原型模式中稍微理解了一下深克隆和浅克隆。今天在复习中用具体的方法进行一下深克隆。一、为什么用到克隆我们对一个对象进行一番操作后,这个对象就有着很多属性。这个时候我们如果去新建一个对象,又得进行刚才操作的一溜串的操作,就略显麻烦。这个时候克隆就出现了。二、深克隆和浅克隆的区别讲讲区别前,来讲讲要克隆的对象的一些属性。比如 一个person对象,中包涵了另一个对象phonejava中只有两种变量类型,一个基本数据类型,一个是引用数据类型。除了那8个基本数据类型,

2020-07-29 23:33:55 126

原创 Mybatis PLUS能查出数据,但是total和page为0

通过接口返回的数据,发现是接口问题,能查出数据,但是页数和总数有问题。断点查看page信息,原因处在mybatis plus解决方案给项目添加一个分页的配置类@Configurationpublic class MybatisPlusConfig { /** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new Paginati

2020-07-18 15:08:36 3088

原创 Spring源码编译

第一下载源码地址:https://github.com/spring-projects/spring-framework/tree/5.0.x安装gradle 版本4.x以上地址:https://gradle.org/releases/解压,添加环境变量在path中加入 如:E:\gradle-5.5\bin在控制台查看是否成功...

2020-07-17 02:14:11 85

原创 Spring依赖注入的分析

讲依赖注入前,先分析分析代码层面是如何实现手动依赖的注入,这样才能知道spring为我们实现了什么功能,有什么区别。一、代码手动的依赖准备了几个类首先是Dao和其实现类public interface UserDao { public void findName();}public class UserDaoImpl implements UserDao{ @Override public void findName() { System.out.p

2020-07-16 23:38:33 119

原创 Spring依赖的自动注入

一、准备类public interface UserDao { public void findName();}public class UserDaoImpl implements UserDao{ @Override public void findName() { System.out.println("我是dao实现类1"); }}public class UserDaoImpl2 implements UserDao{ @O

2020-07-16 23:37:24 138

原创 Spring解析xml实现依赖注入

一、环境准备引入依赖 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency>相关类public interface UserDao {

2020-07-16 14:59:18 472

原创 偏向锁、轻量级锁、重量锁运行时间

由于JVM启动的时候,前4秒带synchronized的方法,上的是轻量级锁。原因是应为在JVM启动时,本身就运行了很多带synchronized关键字的方法,但是这些大多都是轻量级锁。如果直接设置成偏向锁,在锁升级的过程中,偏向锁清除锁的过程比较复杂,导致在升级锁过程中消耗太多的资源和时间。所以延迟偏向锁。public class A { int i=0; public sy...

2020-04-09 19:50:36 664 2

原创 Java注解

元注解java.lang.annotation提供了四中元注解@Target 表示作用的位置,比如类,方法,变量等等@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.ANNOTATION_TYPE)public @interface Target { ElementType[] value();...

2019-12-26 13:49:56 67

原创 Spring IOC工作基本流程

当一个类声明了@Component、@Rpository、@Service、@Controller这几个注解时,当我们启动服务器的时候,Spring通过代理反射来生成这个类的对象,把这个对象放在了IOC容器中。@ServiceClass CarServiceImpl1.服务器启动通过反射生成一个对象 carService2.这个容器呐,其实就是一个map对象,通过map.put(“k...

2019-12-26 12:40:45 1200

原创 Spring基础

1.1Spring概述Spring的历史第一阶段Spring1.x阶段,使用的都是xml配置的Bean,随着项目的扩大,需要把xml文件放在不同的配置文件里,频繁的切换配置文件有点不方便。第二阶段在spring2.X阶段,由于JDK1.5支持注解开发,spring也提供了声明Bean的注解。两个方式都有自己的好处,就比如我们的基本配置用xml,比如数据库配置,业务配置用注解。第三阶段...

2019-12-26 11:03:01 68

原创 Maven学习

1.项目管理提供了一套完整的构建生命周期的框架2.整合工具自动完成一些工程的基础构建配置maven安装1.配置jdk2.下载maven3.配置一下maven的环境变量4.查看maven是否配置成功命令:mvn -vmaven配置1.镜像资源配置在maven的路径在config中的settings配置文件中配置镜像配置国内路径比较快<mirror> ...

2019-12-23 20:12:22 88

原创 代码块和代码块的执行顺序

构造方法构造方法是类的一种特殊方法,用来初始化类的一个新的对象。没个类都有构造方法,构造方法和类名相同,而且没有返回类型,构造方法的默认返回类型就是对象本身,并且狗杂方法不能被static、final、synchronized、abstract、native修饰。同时一个类可以有多个构造方法,只要参数不同子类构造方法调用父类构造方法构造方法是不能被继承的,子类构造方法都是要调用父类的构造方...

2019-12-23 19:30:26 652

原创 分析ClassLoader工作机制

ClassLoader顾名思义就是叫作类加载器,负责把Class文件加载到虚拟机中。ClassLoader除了上面提到的功能,还有一个重要的作用,那就是审查每个类由谁来加载,是一种父优先的等级加载机制。还有一个任务将字节码重新解析成虚拟机统一要求的对象格式。加载class文件的过程常见的加载类错误分析ClassNotFoundException类找不到问题,虚拟机要加载指定的文件的字节码...

2019-12-23 11:26:22 89

原创 Javac编译原理

Javac是什么Javac就是一种编译器,能将一种语言规范转化成另一种语言贵方。Javac的任务就是将Java源文件编译成Java字节码,也就是JVM能够识别的二进制码。Javac编译器的基本结构首先先读取源代码,一个一个读进来,找出这些字节中有哪些是我们定义的语法关键词,比如if,else,while等关键词。这一个步骤就是词法分析器的作用了。语法分析器把源码变成了token流。接下来...

2019-12-23 10:00:58 128

原创 Git的基本使用

git init :初始化git仓库git status:查看状态我们可以知道这个仓库啥都没有这个可以知道有hello.htmlgit add:将文件添加到git仓库的暂存区中这个时候的状态变成了绿色git commit:将添加到暂存区的文件提交到git仓库git log:查看日志git branch :查看当前仓库的分支git branch hh:创建一个叫作hh的...

2019-12-23 00:11:12 85

原创 抽象类与接口

抽象类:给出了方法的定义,自己却没有实现的类。抽象类就是为了让别的类继承的,没有别的类来继承抽象类的话,那这个抽象类就没有存在的意义了,由于抽象类是为了被继承的,所以就不能用final修饰了。abstract使用abstract修饰符类表示抽象类以及抽象方法public abstract class MyTest { public abstract void t1();//抽象方法没有...

2019-12-22 18:38:34 90

原创 深入了解Java I/O的工作机制

Java I/O操作类在i/o类中有将近80个类,大致分为四组1.基于字节操作的I/O接口:InputStream和OutStream2.基于字符操作的I/O接口:Writer和Reader3.基于磁盘操作的I/O接口:File4.基于网络操作的I/O接口:Socket其实不管是磁盘操作还是网络传输,最小的存储单元还是字节,而不是字符。所以I/O操作的还是字节。那为什么还设有I/O的字...

2019-12-22 13:00:49 106

原创 final使用

final变量final变量有成员变量和局部变量,在类成员中final经常和static一起使用,作为类常量使用。其中类常量必须在声明是初始化,final成员常量可以在构造函数初始化。public class test { public static final int a;//报错 public static final int b=1;}由static和final修饰的常量...

2019-12-20 19:26:14 179

原创 String详解

String基础

2019-12-20 16:06:36 171

原创 Java数据类型

Java数据类型Java数据类型分为两个大类:基本数据类型和引用数据类型基本数据类型Java语言提供了八种基本类型基本类型中的,数字类型默认值为0,布尔类型默认值为falsebyte*byte数据类型是8位*最大值为127(2^7-1)*最小值为-128(-2^7)short*short数据类型是16位*最小值为-2^15*最大值为2^15-1int*int数据类型有3...

2019-12-19 21:15:22 120

原创 面向对象基础

面向对象(Object Oriented),面向对象分析(OOA)、面向对象设计(OOD)、面向对象设计(OOP)一、对象的概念对象 就是java类产生的实体二、面向对象和面向过程的区别面向过程:最小的程序单元是函数,每个函数负责完成一个功能,用于接收输入数据,函数对输入数据进行处理,然后输出结果数据,整合软件由一个一个的函数组成,主函数依次调用其他函数,普通函数之间可以相互调用,从而实现...

2019-12-19 00:33:33 810

原创 责任链模式

责任链模式Servlet中的过滤器就是责任链模式的应用,我们就可以用过滤器来学习我们的责任链模式。流程:首先过滤请求时,第一个过滤器接受请求,如果它能够处理则自己处理,如果不能处理就交给下一个过滤器,依次类推。ConcreteFilter具体的过滤器,每个具体的过滤器都维护着一个引用,指向下一个具体的过滤器,需要检查它自身能否处理这个请求,如果不能就传递给链中的下一个过滤器。...

2019-11-25 21:45:56 112

原创 对象池模式

对象池模式对象是实例化是很耗费性能的,有些对象是共享或者频繁使用到的。这个时候用一次就创建和销毁一次那就很耗费性能了。解决这些共享和重用的对象方案称为对象池模式。典型的对象池模式就是数据库连接池。当客户端申请资源时,会向资源池申请,资源池获取可用资源返回给客户端。客户端使用完资源时释放回资源池中重复使用。...

2019-11-24 22:06:11 100

原创 原型模式

原型模式原型模式实际上就是一种克隆对象的方法。什么时候需要用到原型模式呐?当一个对象获取了多个状态,这时候你如果再去创建新的对象,再去获取状态,会很浪费资源和时间,这个时候用克隆就非常合适。或者当你要实例化一个对象时,但你并不知道所属的具体类的时候。Prototype为抽象原型类,声明了clone()方法的接口或者基类ConcretePrototype为具体的实现类,实现抽象原型类的...

2019-11-24 21:34:45 105

原创 建造者模式

建造者模式当实例化一个对象时,我们要得到不同的结构和不同的内部状态的对象时,我们可以使用不同的类(建造者)对它们进行实例化操作逻辑分别进行封装,这些类就是建造者。Builder为抽象建造者类,用于构建产品类的组成部分的抽象类或者接口ConcreteBuilder为具体的建造者类,实现或者继承抽象继承者类比如我们需要轿车和跑车,我们可以创建具体的轿车建造者类和跑车建造者类,分别再各自实...

2019-11-24 21:05:16 91

原创 Java单例模式

单例模式:一个对象只能创建一个实例。为了确保单例实例的唯一性,所有的单例构造器都要被声明为私有的,再通过声明静态方法实现全局访问获得该单例实例。懒汉式单例模式public class Singleton { //懒汉式这里没有马上new instance private static Singleton instance = null; private Singleton(){ ...

2019-11-17 00:02:53 78

原创 javax.servlet.http.HttpServlet找不到

创建了一个web项目时,html页面和jsp页面报错,解决方案:右键项目,选择properties,在选择Java Build Path,再选择Server RunTime ,再选中tomcat,最后finish。...

2019-10-22 22:40:00 267

原创 ssm整合练习

1.创建数据库创建数据库以及表结构2.导入需要的jar包1)spring以及springmvc2)mybatis和mybatis-spring整合包3)数据驱动包4)连接池包5)json依赖包3.整合配置文件dao1)SqlMapConfig.xml2)applicationContext-dao.xmlapplicationContext-dao.xml下配置数据库连接、...

2019-08-20 13:11:28 283

原创 springmvc学习笔记day2

1.Conveter1转换器public class DateConverter implements Converter<String, Date> { @Override public Date convert(String source) { try { // 把字符串转换为日期类型 SimpleDateFormat simpleDateFormat = ...

2019-08-19 23:23:56 87

原创 springMvc学习笔记day1

1.什么是springmvcspringMvc是和struts2都属于表现成框架2.前端控制器<!--前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.D...

2019-08-18 22:03:29 105

原创 Mybatis学习笔记day2

1.resultType和resultMapMapper.xml文件的顶级元素的子元素resultType,如果实体类中的属性与表中的字段名相同,用resultType方便,会自动映射。如果表中的字段名与实体类的属性名不一致,可以用resultMap将字段名与属性名做一个对应关系。resultMap还需要将查询结果映射在实体类对象中。resultMap可以实现将查询结果映射为复杂类型的实体类...

2019-08-17 21:54:23 94

原创 Mybatis学习笔记day1

SqlSessionFactoryBuilderSqlSessionFactoryBuilder用于创建SqlSessionFactory,创建完sqlSessionFactory后,SqlSessionFactoryBuilder的任务就完成了SqlSessionFactorySqlSessionFactory是一个接口,SqlSessionFactory的最佳使用范围是整个应用运行期间,...

2019-08-15 11:17:24 109

空空如也

空空如也

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

TA关注的人

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