自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dwwzone

看山还是山

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

原创 欢迎关注我的个人公众号--0x咖啡宝贝

公众号主要是为了记录自己的学历历程,总结自己的学习成果,有兴趣一起学习的朋友可以关注一波,一起学习交流,共同进步,博客文章与公众号同步更新!!...

2020-05-06 19:23:00 123

原创 实现两条线程交替打印奇偶数的两种简单方法

实现两条线程交替打印奇偶数的两种简单方法使用Synchronizedpublic class Main { private int count = 0; public static void main(String[] args) throws InterruptedException { Main main = new Main(); n...

2020-07-13 08:51:00 57

原创 Springboot整合Redis

Springboot整合Redis在Springboot2.x之后,原来使用的Jedis被替换为lettuce!jedis 底层采用直连,多线程操作是不安全的,如果要避免不安全,要使用Jedis pool连接池lettuce 采用netty,实例可以在多个线程中进行共享,在不存在线程安全问题的情况下,可以减少线程数据源码分析@Bean@ConditionalOnMissingBean...

2020-06-19 20:58:00 43

原创 Jedis成功连接远程Redis的注意事项

JedisJedis是Redis官方推荐的java连接开发工具!使用Java操作Redis的中间件!导入Maven依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/...

2020-06-18 15:16:00 52

原创 Redis事务+乐观锁概述

Redis事务Redis事务 :一组命令的集合!顺序执行一次性、顺序性、排他性Redis单条命令保证原子性,但是事务不保证原子性!Redis事务没有隔离级别的概念redis事务1.开启事务 multi2.命令入队3.执行事务 exec正常执行事务放弃事务discard 里面的命令都不会执行编译时异常:命令错误则所有命令都不会执行运行时异常: 则只有错误的语句失败,其...

2020-06-18 10:24:00 39

原创 Redis三种特殊数据类型

三种特殊数据类型geospatial 地理位置朋友的定位,附近的人,打车距离计算。Redis的Geo可以查询一些测试数据 http://www.jsons.cn/lngcode/可以推算地理位置之间的信息,两地之间的距离,周围的人参数:key 值(经度、纬度,名称)geoadd 添加地理位置 geoadd china:city 116.40 39.90 beijing规则:...

2020-06-17 18:58:00 27

原创 Redis入门以及五大基本数据类型概述

Redis入门概述Redis是什么Redis(Remote Dictionary Server),远程字典服务是一个免费、开源的C语言编写的、支持网络、基于内存的可持久化的日志型Key—Value数据库是当下最热门的NoSQL技术,也称为结构化数据库Redis能干嘛1.内存存储,持久化,内存中是断电丢失的,所以持久化是很重要的(RDB,AOF)2.效率高,用于高速缓存3.发布订...

2020-06-17 16:16:00 32

原创 NoSQL概述

RedisNoSQL概述单机MySQL时代​ 大数据时代,一般的数据库无法进行分析处理数据量如果太大,一个机器放不下数据的索引(B+ Tree),一个机器内存也放不下访问量(读写混合),一个机器承受不了Memecache + MySQL+垂直拆分(读写分离)减轻服务器压力,使用缓存发展过程:优化数据结构和索引-->文件缓存(IO)-->Memcached分库分表+水平拆分+MySQL集群早些年MyISAM:表锁,在高并发下严重影响效率Innodb:行锁使用分库

2020-06-16 20:16:00 675 1

原创 简单使用自定义注解

注解是Java提供的设置程序中元素关联信息和元数据的方法,它是一个接口,程序可以通过反射获取指定程序中元素的注解对象,然后通过注解对象获取注解中的元数据信息。下面写一个简单的自定义注解以及使用方法自定义注解import java.lang.annotation.*;@Target(ElementType.FIELD) //@Target修饰注解作用的范围,FIELD说明作用于描述域...

2020-06-08 10:05:00 28

原创 设计模式--工厂模式分析总结

先来一个生动的例子:  大众汽车的MQB平台是现在非常出名的横置发动机模块化生产平台,从这个平台上出生了许多的广为人知的汽车型号,如奥迪TT、大众Polo、高尔夫等等。抽象化思考,这些汽车都出自一个生产平台,而不是每辆车都单独占有一个平台,那么问题来了,如何让一个平台生产出多个型号的汽车呢?  我们以上述三种车型为例,先定义出三种车的类public class AudiTT { ...

2020-06-07 16:13:00 28

原创 数据结构--二叉查找树

定义二叉查找树:即BST,也叫二叉搜索树,二叉排序树,在二叉树的基础上,它拥有如下性质,每个节点的值都大于其左子树中的任意节点的值,而小于右子树的任意节点图例数据结构  节点数据结构如下private class Node { private Value value; //该节点的值 private Node left,right;//该节点的左右...

2020-06-04 20:48:00 36

原创 An illegal reflective access operation has occurred

初学Mybatis或者MybatisPlus时出现的非法反射警告,由jdk版本太高或者mybatisplus版本太低引起实际上并不影响程序运行两种解决办法:1.jdk降至1.8       2.mybatisplus升至3.3以上...

2020-05-25 19:51:00 47

原创 多线程中常见锁概述

乐观锁与悲观锁  乐观锁与悲观锁引自数据库中概念,下面解释一下其在Java中的意义  悲观锁指对数据被外界修改持悲观态度,认为数据很容易被外界或者其他线程修改,所以每次在对数据进行处理前,都要对数据进行加锁,并在整个过程中,都不会释放锁。悲观锁常依靠数据库提供的锁机制实现,即在数据库中,对数据进行操作前,给数据加上排他锁。如果线程获取数据失败,说明数据被其他线程占有,当前线程则挂起或者抛出异...

2020-05-25 15:22:00 33

原创 Java中创建多线程的三种方式

Java中有三种线程创建方式  1.继承Thread类,重写run方法  2.实现Runnable接口,实现run方法  3.使用FutureTask方式,即Callable的call方法继承Thread类  public class ThreadTest { public static class MyThread extends Thread { @Override public void run() { Sy.

2020-05-19 10:41:33 195

原创 始终如一 单例模式分析总结

定义  故名思议,单例,单一实例,就是在程序运行期间确保某一个类只有一个实例,一般称其为Singleton类。实现方法  既然只能有一个实例,那么肯定不能让程序运行期间随时都能new出一个实例,所以将构造函数私有化,通过在类内部自行实例化一个对象,并且通过getInstance()方法,向外部提供这个实例。通用代码public class Singleton { private static final Singleton singleton = new Singleton(.

2020-05-19 09:58:27 169

原创 一套笔试题 Java

一、选择题1.访问修饰符作用范围由大到小是( )。A.private-protected-default-public   B.public-protected-default-privateC.private-default-protected-public   D.public-default-protected-private2.Java中,以下接口中以键值对方式存储对象的是()...

2020-05-14 12:00:00 26

原创 观察者模式分析总结

故事  先来一个与这个模式相似的故事。《无间道》很多人都看多,刘德华是黑社会卧底,梁朝伟是警方卧底,黄秋生是梁朝伟的头头,曾志伟是刘德华的头头。我们这里单单拿黄秋生和曾志伟来说,曾志伟的每一步行动,梁朝伟都会监视,并且向黄秋生报告。这里,梁朝伟就相当于黄秋生的一个具体的眼睛,盯着曾志伟的一举一动,然后黄秋生根据梁朝伟的报告,作出具体反应。同时,我们知道,在黑社会可能不止一个像梁朝伟一样的卧底,...

2020-05-14 11:57:00 30

原创 no persistent classes found for query class: from xxxx解决办法

此警告出现的原因是没有在hibernate.cfg.xml中配置带注释的POJO类,导致无法查询数据库解决办法在hibernate.cfg.xml添加<mapping class="xx.xx.xx">

2019-11-26 15:18:01 798 1

原创 springAOP使用注解开发时,出现can't find referenced pointcut xxx错误

今天在学习springAOP时,编写的例子见Aop注解开发简单例子运行之后出现异常右拉错误信息可以看见在代理无误的情况下,发现是aspectjweaver.jar版本过低导致的我使用的是jdk1.8,使用aspectjweaver-1.6.2.jar出现错误替换为aspectjweaver-1.9.4.jar后运行正常这里附上新版本aspectjweaver-1.9.4.jar下载...

2019-11-06 17:28:38 430

原创 删除第K个元素 泛型一般队列 基于数组和链表的实现

public class GeneralizedQueue< Item>支持如下APIisEmpty()insert(Item item) 添加一个元素delete(int k) 删除并返回最早插入的第k个元素方法一 链表实现public class GeneralizedQueue <Item>{ private class Node { ...

2019-10-17 20:21:17 372

原创 Josephus问题--N个人通过循环报数决定存活者--基于数组的实现

在这个问题中,N个人决定通过以下方式减少生存的人数,直至只剩下最后一人。他们围坐成一圈(位置记为0到N-1)并从第一个人开始从1报数,报到M的人会被杀死,然后从下一个存活的人又从1开始报数,直到最后一个人留下来。传说中Josephus找到了不会被杀死的位置。编写一个程序,从命令行接收N和M并打印出人们被kill的顺序,同时也找到了幸存者的位置。方法一 数组解法public class Jo...

2019-10-17 19:16:27 198

原创 随机队列

public class RandomQueue< Item >随机队列能够存储一组元素并支持如下APIRandomQueue() 创建一个空队列isEmpty()判断队列是否为空enqueue(Item item) 添加一个元素dequeue()删除并返回一个随机元素sample() 随机返回一个元素,不删除方法1.使用动态数组存储数据2.删除元素时,随机交换某个元...

2019-10-16 19:55:27 489

原创 随机背包---存储一组元素并进行随机访问

背包可以存储一组数据,随机背包要求每次迭代,所有N!种排列出现的概率相等。方法:用数组保存一组元素,并在迭代器中的构造函数中随机打乱他们的顺序:此时的打乱并非将原数组中的元素重新排列,而是使用一个新数组存储打乱的下标,并用新数组元素的顺序去遍历原数组支持如下API1.RandomBag()2.isEmpty()3.size()4.add(Item item)代码import e...

2019-10-15 20:59:25 167

原创 Deque--双向队列,支持同时在两端添加或删除元素--基于双向链表或动态数组的实现

支持以下APIisEmpty() 判断队列是否为空size() 节点数量pushLeft() 左端插入节点pushRight() 右端插入节点popLeft() 左端删除节点popRight() 右端删除节点代码import java.util.Iterator;/** * @author 鯉伴MAY * @param <Item> */public cla...

2019-10-14 20:59:59 351

原创 Steque--以栈为目标的队列--基于链表实现

是一种支持push,pop,enqueue操作的数据类型。push和pop都是对队列同一端的操作,enqueue和push对应,但是操作的是队列的另一端和栈的思想基本一致,但是多维护一个指向栈底(也就是链表尾部)的指针,方便进行enqueue操作/** * @author 鯉伴MAY * @param <Item> 泛型 */public class Steque <...

2019-10-14 20:21:13 371

原创 使用嵌套类DoubleNode实现双向链表

每一个节点都含有指向前驱节点的引用pre每一个节点都含有指向后继节点的引用next实现以下功能:1.在表头插入节点2.在表尾插入节点3.从表头删除节点4.从表尾删除节点5.从指定节点之前插入新节点6.从指定节点之后插入新节点7.删除指定节点8.输出链表代码/*** @author 鯉伴MAY* @param <Item> 泛型*/public class...

2019-10-10 09:30:05 414

原创 链表反转的两个方法(迭代和递归)

迭代方法记录链表中的三个连续节点:reverse ,first,second。在每轮迭代中,从原链表中提取first并将它插入逆链表的开头。一直保持first指向原链表剩余节点的首节点,second指向原链表剩余节点的第二个节点,reverse指向逆链表的首节点public Node reverse(Node x) { Node first = x; Node reverse = null...

2019-10-09 20:35:25 108

原创 在Tomcat中解析XMl时执行到new SaxReader()时停止的问题

Tomcat默认在安装目录下lib文件夹中寻找依赖jar包,如果项目中是直接引入外部jar包,而没有把dom4j和jaxen两个jar包拷入lib文件夹,是可以通过编译的,但是运行会出错,到new SaxReader时就不再继续执行。解决办法将dom4j.jar 和jaxen.jar 拷入tomcat安装目录的lib文件夹中...

2019-09-15 21:27:09 369

原创 算法4练习 补全左括号问题--双栈

问题描述输入例如 1 + 2 ) * 3 - 4 ) * 5 - 6 ) ) ),程序应该输出 ( ( 1 + 2 ) * ( ( 3 - 4 ) * ( 5 - 6 ) ) )思路此题思路跟计算式中序变后序相似,采用双栈的做法,数字一个栈(String栈),运算符一个栈(Character栈),读到数字,则压入数字栈,读到运算符,则压入运算符栈。读到右括号时:1.从数字栈中弹出两个...

2019-09-04 09:23:39 297

原创 使用简单的反射以及简单工厂模式实现四则运算

刚看完《大话设计模式》第一章,上面使用简单工厂模式实现了四则运算,本文将改用java语言以及利用反射加简单工厂模式实现两个数的四则运算1 首先给出四则运算的抽象父类/** * * @author MAY * */abstract class AbstractOperation{ private double numberA; private double numberB; ...

2019-08-27 15:48:27 666 1

原创 MySQL开启批处理

MySQL默认关闭批处理开启方法在原始的URL尾部添加开启指令,如下标注语句url = jdbc:mysql://localhost:3306/mydb3 ?rewriteBatchedStatements=true添加批处理调用preparedStatement中的addBatch()方法,将一句sql添加到批中,循环调用,则可添加大量sql语句到批中。执行批处理调用execute...

2019-08-26 16:04:26 963

原创 Packet for query is too large错误

JDBC向MySQL传输数据时出现Packet for query is too large错误错误原因 一般是没有修改Mysql允许传输的最大数据包大小 使用 SHOW VARIABLES LIKE '%max_allowed_packet%'; 可以看到默认的大小,一般默认为1M。处理方法1.暂时修改登录mysql,使用命令行 set global max_allowed_p...

2019-08-26 11:18:59 16475 3

空空如也

空空如也

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

TA关注的人

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