自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tang_cancan的博客

人生在意需尽欢,莫使金樽空对月

  • 博客(69)
  • 收藏
  • 关注

原创 仿真手写还原jdk实现代理模式

代理模式是程序设计中的一种设计模式。代理模式的定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。模式结构一个是真正的你要访问的对象(目标类),一

2020-08-03 14:50:25 375

原创 单例模式、创建单例、饿汉式?懒汉式?枚举单例模式!!!

直接上代码咯懒汉式/** * @Description: * 单例模式有以下特点: *   1、单例类只能有一个实例。 *   2、单例类必须自己创建自己的唯一实例。 *   3、单例类必须给所有其他对象提供这一实例。 * @Author: trc * @Date: 2020-07-31 14:37 */public class SingletonDemo { // 懒汉式的单例模式 // 被外部类调用的时候内部类才会加载 private SingletonDe

2020-07-31 15:46:45 359

原创 使用Redis实现切成编程操作

此工程为Spring boot项目Redis切成编程目标:在方法上添加一个注解,实现查询的时候缓存方法:自定义注解+AOP切面编程步骤话不多说,直接上代码演示第一步定义注解@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})public @interface RedisCache { //存储前缀 String name() default "Spl---"; //要存储的key,默认

2020-06-23 09:40:51 394

原创 Redis,了解一下redis

啥是Redis简言化之:非关系型数据库,一种K-V存储结构数据库数据结构字符串 String长啥样????:set key value,一般用来存图片,序列化对象等列表 List长啥样????:lpush(rpush) name value集合 Set长啥样????:sadd name value,String类型的无序集合,复杂度都是O(1)散列 hash长啥样????:hmset ...

2020-02-12 20:30:46 293

原创 springboot中的一些特性

了解一下spring与springboot的一些区别spring中提供了一种轻度耦合的方式来开发web应用而spring boot实现了自动配置,降低了项目搭建的复杂度因为spring中有太多的xml配置文件spring boot中用main方法启动创建独立的spring应用里面嵌入了tomcat等容器(无需部署war文件)boot提供了starter简化构建配置,尽可能的自动配置s...

2020-02-12 20:03:02 352

原创 初识了解nginx

Nginx是啥?是一个高性能、轻量级的HTTP和反向代理web服务器具有稳定性好,丰富的功能集,占用内存少,并发能力强等特点能够支持高达 50,000 个并发连接数的响应功能点反向代理前端资源代理服务器负载均衡稍微了解一下反向代理:用户发送请求访问 http://ip:端口/服务1用户发送请求访问 http://ip:端口/服务2用户发送请求访问 http://ip:端...

2020-02-12 19:51:38 331

原创 RabbitMQ(一)

消息中间件MQ:全称:Message Queue 消息队列,是在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信。其优势在于应用解耦:提升容错性和可维护性异步提速:提升用户体验和系统吞吐量削峰填谷:提供系统的稳定性AMQP和JMSAMQP是一种协议,更准确的说是一种binary wire-level protocol(链接协议)。这是其和JMS的本质差别, AMQ...

2020-01-08 22:21:07 437 1

原创 spring-cloud的学习笔记

了解微服务架构微服务架构:是一套使用小服务或者单一业务来开发单个应用的方式或途径。微服务架构特点:单一职责服务粒度小面向服务(对外暴露REST api)服务之间相互独立与使用ESB的SOA架构的区别:微服务架构没有使用ESB,有服务治理注册中心;业务粒度小。服务调用方式说明远程调用RPC:基于socket,速度快,效率高,工作在会话层,自定义数据格式;代表:webser...

2020-01-04 18:28:06 636 1

原创 Spring Boot了解、学习笔记

Spring Boot介绍:什么是Spring BootSpring Boot是一个搭建程序的脚手架或者说是便捷搭建基于Spring的工程脚手架。其主要作用就是帮助开发人员快速的构建庞大的spring项目,并且尽可能的减少一切xml配置,做到开箱即用,迅速上手,让开发人员关注业务而非配置为什么要学习Spring Boot简单的说就是解决:复杂的配置、混乱的依赖管理Spring Boot...

2020-01-04 15:35:53 414

原创 权限控制、Spring Security(笔记)

初次学习Spring Security框架!了解一下权限控制认证和授权概念:认证:系统提供的用于识别用户身份的功能,通常提供用户名和密码进行登录其实就是在进行认证,认证的目的是让系统知道你是谁。授权:用户认证成功后,需要为用户授权,其实就是指定当前用户可以操作哪些功能。权限模块数据模型一般来说,有这7种表:用户表user,权限表permission,角色表role,菜单表menu...

2019-12-23 21:17:56 394

原创 左链接和右链接的语法及区别

外连接查询:左外连接:语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;查询的是左表所有数据以及其交集部分。右外连接:语法:select 字段列表 from 表1 right [outer] join 表2 on 条件;查询的是右表所有数据以及其交集部分。其实记住一种就行了,一样的道理,表的顺序选择不同而已~这里有大佬的...

2019-12-23 13:07:20 1690

原创 单例中的懒汉和恶汉模式的区别

饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变;懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的,推荐使用第一种 ;从实现方式来讲他们最大的区别就是懒汉式是延时加载,它是在需要的时候才创建对象;而饿汉式在虚拟机启动的时候就会创建,饿汉式无需关注多线程问题、写法简单明了、能用则用。但是它是加载类时创建实例、所以如果...

2019-12-23 12:56:04 1569

原创 简述Hashtable 与 HashMap 有什么不同之处

HashMap是非线程同步的,HashTable是线程同步的。HashMap允许null作为键或者值,HashTable不允许HashTable中有个一个contains方法,HashMap去掉了此方法效率上来讲,HashMap因为是非线程安全的,因此效率比HashTable高从定义上看,hashTable继承Dictionary,而HashMap继承Abstract...

2019-12-23 10:15:25 342

原创 多线程解决同步问题的方式

他们说线程同步的方法很多,然而,我只会两个。。。以下:同步方法:即有synchronized关键字修饰的方法。由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类。不可修饰但是不能是抽象类的抽象方法,也不能是接...

2019-12-23 10:07:36 636

原创 HttpMessageNotReadableException

HttpMessageNotReadableException大概就是 前端页面传过来的参数与你controller接收的参数类型不匹配json反序列化失败第一:参数名和参数一定要匹配正确第二:@RequestBody要加在对应需要的参数上一定要细心这个!!!一定要细心这个!!!一定要细心这个!!!...

2019-12-19 18:34:20 14216

原创 Could not find default TaskScheduler bean

Spring定时任务 Could not find default TaskScheduler bean异常log4j为debug级别启动时,出现了上述错误但是 它 不是ERROR 也不是 WARNING这个你所看到的异常并不影响应用程序运行,也不会影响定时器的使用,如果你不想看到这个异常,就改下log4j.properties:log4j.rootLogger=info, stdout...

2019-12-19 18:26:57 440

原创 Apache POI(操作Excel表格)

POI介绍Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程 序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文 件。maven坐标:<dependency> <groupId>org.apache.poi</groupId> <...

2019-12-19 12:47:41 368

原创 基于spring-task的定时任务

第一步创建一个maven工程,打包方式为war第二步在web.xml中加载spring容器<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchem...

2019-12-18 17:10:32 292

原创 Mysql中serverTimezone的问题1

今天在向数据库插入数据类型为Date的时候出了一丢丢的问题--------------->时差时区没设置好,就有时差的问题它不会报错,但是数据会不对serverTimezone=UTC楼上这个代表的是全球标准时间连接url后加上serverTimezone=UTC的时候,连接不报错但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时所以我们得设置这样//北京时间...

2019-12-18 16:18:11 1706

原创 String,StringBuilder,StringBuffer三者的区别

总结为:String:不可变字符串;StringBuffer:可变字符串、效率低、线程安全;StringBuilder:可变字符序列、效率高、线程不安全;三者执行速度比较:StringBuilder > StringBuffer > StringString 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,...

2019-12-17 12:55:08 223

原创 sleep 和 wait 的区别

wait()是一个用于线程同步的实例方法。它可以在任何对象上调用,因为它在java.lang.Object上定义,但它只能从synchronized块中调用。它释放对象的锁定,以便另一个线程可以跳入并获取锁。通过调用正在等待的监视器上的notify()或notifyAll()方法来唤醒线程,如果要唤醒处于等待状态的所有线程,请使用notifyAll()而不是notify()。与wait()方...

2019-12-17 12:46:11 227

原创 是否可以从一个static方法内部发出对非static方法的调用

是否可以从一个static方法内部发出对非static方法的调用???答:不可以因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以 直接‘类名.静态方法名’这样的方式来调用的。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象因为静态方法是属于类的,即静态方法是随着类的加载而加载的,在加...

2019-12-17 12:41:44 255

原创 LinkedList和ArrayList区别(笔记)

LinkedList和ArrayList区别?ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用。他们都可以对元素的增删改查进行操作。区别:ArrayList是实现了基于动态数组的数据结构,LinkedList是基于链表结构。对于随机访问的get和set方法,ArrayList要优于LinkedList,因为LinkedList要移动指针。对...

2019-12-15 23:45:56 205

原创 简谈HashCode()、equals()的区别(笔记)

HashCode()、equals()的区别首先说一下 “==”== 是运算符,用来比较两个值、两个对象的内存地址是否相等;原始数据类型: byte,short,char,int,long,float,double,boolean它们之间的比较,应该使用==,比较的是他们的值;引用类型:当它们用==进行比较的时候,比较的是它们在内存中的存放地址。所以,除非是同一个new出来的对象,它们比...

2019-12-15 23:18:46 194

原创 创建线程的几种方式

Thread,Runnable,CallableRunnable和Callable的区别是,(1) Callable规定的方法是call(),Runnable规定的方法是run().(2) Callable的任务执行后可返回值,而Runnable的任务是不能返回值得(3) call方法可以抛出异常,run方法不可以(4) 运行Callable任务可以拿到一个Future对象,表示异步计算...

2019-12-15 10:59:21 246

原创 简单说说Java中的异常处理机制的简单原理和应用

简单说说Java中的异常处理机制的简单原理和应用异常指Java程序运行时(非编译)所发生的非正常情况或错误;所有异常的根类为java.lang.Throwable;Throwable派生了2个子类:Error和Exception异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性;Java异常的处理主要依赖于try,catch,finally,thr...

2019-12-15 10:47:56 2811 1

原创 Mybatis代码生成插件

创建maven工程,导入代码生成插件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...

2019-12-13 20:41:04 375

原创 遍历map集合的方法

了解一下Map集合:Map 是一种 键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象key不允许重复,而值value对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。Map 接口 主要有两个实现类:HashMap 类和 TreeMap 类。HashMap 中键可以为null;TreeMap 类的使用...

2019-12-13 13:04:21 244

原创 com.mysql.cj.exceptions.InvalidConnectionAttributeException:

连接数据库时报错!15:13:46,544 ERROR DruidDataSource:2469 - create connection SQLException, url: jdbc:mysql://localhost:3306/health?characterEncoding=UTF-8, errorCode 0, state 01S00java.sql.SQLException: The...

2019-12-12 15:36:50 5282 2

原创 idea中设置EcmaScript6

idea工具默认选择的是EcmaScript5.1ES6的新增特性在这时编译工具会提示红色波浪线所以修改一下设置即可,如图:

2019-12-12 14:31:19 1482

原创 Git

是个好东西!!!看看大佬的笔记—> https://blog.youkuaiyun.com/qq_27276045/article/details/103282071git命令总结:git与svn的区别: svn是集中式的版本控制工具,git是分布式版本控制工具查看文件状态命令:git status将文件加入暂存区命令: git add将文件取消暂存命令: git reset...

2019-12-09 11:09:22 192

原创 SSM整合(步骤操作)

框架集合两个大步骤:Spring整合SpringMVCSpring整合Mybatis首先搭建初步的环境这里使用的是maven工程,在pom.xml中导入依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns...

2019-12-09 10:50:49 1002 1

原创 mysql引擎导致事务管理不成功

使用mysql引擎是MyISAM,则事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB##查看表引擎SHOW TABLE STATUS LIKE ‘t_user’;#查看是否支持innodb引擎show engines;Mysql默认是关闭InnoDB存储引擎的使用的,将InnoDB设置为默认的引擎如下。查看Mysql存储引擎情况: mysql>show en...

2019-12-07 21:11:49 291

原创 萌新用简单的三句话来了解Struts2与SpringMVC的区别

Struts2与SpringMVC的区别a. SpringMVC核心控制器时Servlet,而Struts2核心控制器是基于filter的b. SpringMVC的处理请求的类(Controller)是单例的,基于方法的,而Struts2的处理请求类(Action)是多例的。每一次请求会创建一个该类的对象,基于对象的c. Struts2可以使用OGNL(对象导航图语言)表达与值栈共享数据,S...

2019-12-06 21:07:08 260

原创 简单复习一下原始jdbc操作(查询数据)

简单回忆:按照步骤来操写://注册驱动Class.forName("com.mysql.jdbc.Driver");//获得连接Connection conn = DriverManager.getConnetion("jdbc:mysql://127.0.0.1:3306/test","root","123");//获得statementPreparedStatement pstm...

2019-12-06 20:50:37 187

原创 SpringMVC的执行流程笔记

SpringMVC的执行流程①用户发送请求至前端控制器DispatcherServlet。②DispatcherServlet收到请求调用HandlerMapping处理器映射器。③处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。④DispatcherServlet调用Handler...

2019-12-05 17:28:22 484 1

原创 事务的初次学习笔记

什么是事务:对数据库的一系列操作,如果属于同一个事务,那么这些操作要么同时成功要么同时失败事务的特性:原子性:事务是不可分割的,要么同时成功要么同时失败持久性:数据一旦回滚或者提交,那么就将永久保存在硬盘上隔离性:事务之间相互独立,互不影响一致性:事务操作的前后,数据总量不变不考虑隔离性会产生的问题:脏读:可以读到其他事务未提交的数据虚读:同一个事务多次读取,数据不一致幻读:有...

2019-12-05 17:20:48 187

原创 分页助手

Mybatis中导入第三方插件使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据步骤:导入依赖:在pom.xml中写入<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pag...

2019-12-05 10:27:03 345

原创 Mybatis中typeHandler的简单使用

typeHandlers标签无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。具体做法为:实现 org.apache.ibatis.type.TypeHandler 接口, 或继承一个很便...

2019-12-05 09:26:51 533

原创 Mybatis中常用的动态sql语句

动态 SQL 之<where>动态添加where关键字和and关键字,满足sql语法动态 SQL 之<if>我们根据实体类的不同取值,使用不同的 SQL语句来进行查询。比如在 id如果不为空时可以根据id查询,如果username 不同空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。<select id="findByConditi...

2019-12-05 09:21:38 453

空空如也

空空如也

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

TA关注的人

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