自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雨落成追忆

新的征途上,愿从今往后的你,别爱得太满,别睡得太晚

  • 博客(44)
  • 资源 (3)
  • 收藏
  • 关注

原创 morris算法实现二叉树遍历

morris算法实现二叉树的前中后序遍历

2022-02-27 15:24:26 425

原创 数据结构查找算法和排序算法java实现

本博客纯粹为了记录一下,方便自己回顾知识点。一、查找算法:查找算法较为简单,常用的主要有两种:顺序查找和二分查找顺序查找:按数据存储的顺序进行遍历查找,对存储顺序没有要求,性能较低。二分查找:也叫折半查找,求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的...

2019-05-12 12:47:45 1725

原创 表情存储到数据库出现Incorrect string value: '\xF0\x9F\x98\x81' for column 'remark' at row 1

出现这个问题时发现数据库表的charset=utf-8,将之改为utf8mb4格式解决问题:alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; 

2018-05-24 09:25:47 2692

原创 Mybatis批量更新

使用mybatis进行批量更新的时候,在mapper.xml中的写法如下:<update id="updateUserNeteaseAccount"> <foreach collection="userList" separator=";" item="user"> update ti_addrbook_user_company set accid = #{

2018-04-30 14:23:32 251

原创 java实现二分查找

算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。代码实现:public class BinarySearch { public static void main(String[] args...

2018-04-24 00:42:24 240

原创 记一次微服务之间调用出现的数据库死锁问题

最近开发中遇到一次系统间调用出现数据库死锁的问题。从一个spring boot的项目去调用一个公共的基于dubbo的微服务接口产生了死锁。具体流程是:要实现一个用户注册的功能,现在在spring boot项目中创建一个用户,然后去请求微服务接口获取网易IM的accid和token,然后将accid和token更新到数据库表对应的那条数据中。定位问题的过程比较麻烦,首先我们以为是功能的功能,然后打断...

2018-04-18 01:00:39 2274 1

原创 ThreadLocal类

ThreadLocal是什么?    ThreadLocal,线程本地变量,也叫线程本地存储。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLocal是用来维护线程中的变量不被其他线程干扰而出现的一个结构,内部包含一个ThreadLocalMap类,该类为Thread类的一个局部变量,该Map存储的key为ThreadLocal对象自...

2018-04-12 01:57:03 237

原创 Redis的持久化方式

持久化方式:    1、RDB方式:rdb持久化可以在指定的时间间隔内生成数据集的时间点快照    2、AOF: AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,AOF文件中全部以redis协议的格式来保存,新命令会被追加到文件的末尾,redis还可以在后台对AOF文件进行重写,文件的体积不会超出保存数据集状态所需要的实际大小    3、Redis还...

2018-04-11 01:37:35 214

原创 resteasy中统一异常处理

在使用基于dubbox的微服务中,使用resteas实现rest接口时,常用的spring中统一异常处理已不适用。通过查资料发现使用这种方式可以实现。1、定义一个统一异常处理类package com.sf.xxx.user.exception;import javax.ws.rs.WebApplicationException;import javax.ws.rs.core.Response;...

2018-04-11 00:39:32 1519

转载 物理分页与逻辑分页

转载自:http://www.cnblogs.com/tonghun/p/7122801.html一 概述1.物理分页    物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结果。2.逻辑分页    逻辑分页依赖的是程序员编写的代码。数据库返回的不是分页结果,而是全部数据,然后再...

2018-04-10 01:36:03 707 1

原创 Cookie和Session

Cookie    Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。Session    Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所...

2018-04-10 01:24:12 170

原创 java设计模式之访问者模式

    访问者模式(Visitor),是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。解决问题:    稳定的数据结构和易变的操作耦合问题。访问者可以对功能进行统一,可以做报表、UI、拦截器与过滤器。使用场景:     (1)对象结构比较稳定,但经常需要在此对象结构...

2018-04-07 15:32:19 162

原创 java设计模式之命令模式

    命令模式(Command) ,是行为设计模式的一种。Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。解决问题:    在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、...

2018-04-06 18:19:37 167

原创 java设计模式之状态模式

    状态模式,是行为设计模式的一种。State模式允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。解决问题:    对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态...

2018-04-06 17:05:05 164

原创 java设计模式之备忘录模式

    备忘录模式,是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。解决问题:    所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。使用场景:    如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Meme...

2018-04-06 15:59:59 176

原创 java设计模式之模板方法模式

    模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类不改变算法的结构即可重复定义算法的某些特点步骤。应用场景:    - 具有统一的操作步骤或操作过程    - 具有不同的操作细节    - 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节...

2018-04-06 14:47:03 181

原创 Java设计模式之迭代模式

    Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。提供一种方法顺序的访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。    一般情况,我们自己开发时很少自定义迭代器,因为java本身已经把迭代器做到内部中了(比如:常用的list和set中都内置了迭代器)。当然,如果真有这种需求需...

2018-04-06 01:48:57 890

原创 java设计模式之中介者模式

    Mediator模式也叫中介者模式,是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互,Mediator对象起着控制器的作用。中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使它们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可...

2018-04-03 21:03:53 140

原创 java设计模式之责任链模式

    Chain ofResponsibility(CoR)模式也叫职责链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。    这种模式给予请求的类型,对请求的发送者和接收者进行解耦。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的...

2018-04-02 01:34:08 190

原创 java设计模式之解释器模式

    解释器模式(InterpreterPattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。简单地说,Interpreter模式是一种简单的语法解释器构架。解决问题:对于一些固定文法构建一个解释句子的解释器。解决方式:    构件语法树,定义终结符与非终结符。构件环境类,包含...

2018-04-01 01:29:48 390

原创 Navicat中设置主键自增和自增初始值

1、设置主键自增2、设置主键自增初始值

2018-03-31 14:50:14 63820 12

原创 ORM思想学习总结

今天详细了解了一下,记下来备忘。    对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。    ORM是将表与表之间的操作,映射成对象和对象之间的操作,就是通过操作实体类来达到操作表的目的...

2018-03-29 18:24:39 467

原创 java设计模式之桥接模式

    定义:    桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。    这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它...

2018-03-28 02:35:25 243

原创 java设计模式之适配器模式

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。    这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。解决问题:主要解决在软件系统中,常常要将一些...

2018-03-27 01:21:57 247

转载 JDK代理原理解析

转载自:https://blog.csdn.net/mhmyqn/article/details/48474815关于JDK的动态代理,最为人熟知的可能要数Spring AOP的实现,默认情况下,Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。那么,什么是JDK的动态代理呢?JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动...

2018-03-25 18:12:16 178

原创 java设计模式之代理模式

    代理模式(Proxy),是构造型的设计模式之一,为其他对象提供一种代理以控制对这个对象的访问。    所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。解决问题:    在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象...

2018-03-25 17:37:57 494 1

原创 观察者模式

    Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。解决问题:一个对象状态改变给其他对象通知的...

2018-03-19 02:23:00 287

原创 Java策略模式

 Strategy模式也叫策略模式,是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换。主要解决:在有多种算法相似的情况下,使用if...else所带来的复杂和难以维护。当一个系统有许多许多类,而区分它们的只是他们直接的行为。可以将这些...

2018-03-19 01:42:13 485

原创 常用一些好的github项目收藏

1、一个有不少springboot项目demo的github地址,适合初学者:https://github.com/leelance/spring-boot-all

2018-03-07 15:04:27 1964

原创 线程同步:解决线程安全问题

    多线程安全问题,是由于多个线程在访问共享的数据(共享的资源),并且操作共享数据的语句不止一条。那么这样在多条操作共享数据的之间线程就可能发生切换,从而引发线程安全问题。例如如下情况:public class ThreadDemo { public static void main(String[] args){ Apple apple = new Apple(); Th...

2018-02-09 18:50:45 3466

原创 Intellij IDEA 常见问题解决

1、IDEA中使用输入法输入中文不显示选择框 首先进入IDEA安装目录,重命名jre64的文件夹,随便什么名字都行,然后将本机安装JDK的jre文件夹复制到IDEA的安装目录下,重命名为jre64,对 首先进入IDEA安装目录,重命名jre64的文件夹,随便什么名字都行,然后将本机安装JDK的jre文件夹复制到IDEA的安装目录下,重命名为jre64,将JDK->lib目录下的tool.ja...

2018-02-06 17:30:40 2304

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

Java 创建线程对象有两种方法: 继承 Thread 类创建线程对象 实现 Runnable 接口类创建线程对象一、继承Thread类创建线程对象步骤: 1、定义类继承Thread. 2、复写Thread类中的run()方法  目的:将自定义代码存储在在run方法中,让线程运行 3、调用线程的start()方法。 该方法有两个作用:一是启动线程,二是调用r

2018-02-04 23:01:26 492

原创 java 中进程和线程

进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程可以包含多个线程,进程是资源分配的最小单位。  线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小,线程是cpu调度的最小单位。

2018-02-04 21:57:21 831

原创 Spring事务机制详细解读

JAVE EE传统的事务机制 通常有两种策略:全局事务和局部事务。全局事务可以跨多个事务性资源(即数据源,典型的是数据库和消息队列),通常都需要J2EE应用服务器的管理,其底层需要服务器的JTA支持。而局部事务则与底层采用的持久化技术有关,如果底层直接使用JDBC,需要用Connection对象来操事务。如果采用Hibernate持久化技术,则需要使用session对象来操作事务。 (1)

2018-02-03 00:22:24 4381

原创 mysql中datetime类型设置默认值

通过navicat客户端修改datetime默认值时,遇到了问题。数据库表字段类型datetime,原来默认为NULL,当通过界面将默认值设置为当前时间时,提示“1067-Invalid default value for 'CREATE_TM'”,而建表的时候,则不会出现这个问题,比如建表语句:CREATE TABLE `app_info1` ( `id` bigint(21) un

2018-02-01 16:33:35 8657

原创 Mysql查询表结构信息,字段,注释等

数据库中,有时候需要将数据库表的表结构以文档形式输出,手动去汇总就比较麻烦,可以通过表名直接查出来对应表结构。select COLUMN_NAME 列名, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_COMMENT 备注FROM INFORMATION_SCHEMA.COLUMNSwh

2018-01-31 14:16:03 4386

原创 Spring AOP的原理及应用

 AOP(Aspect-Oriented Programming,面向切面编程),可以说是OOP的补充和完善。它是通过预编译方式和运行期动态代理实现程序功能的统一维护。 开发人员在编写应用程序时,通常包含两种代码:一种是和业务系统有关系的代码,一种是和业务系统关系不大的代码,例如日志,事务处理,权限处理等等。 以前的程序中,这两种代码是写在一起的。这样一来,程序中到处充满着相同或类似的代码,不利于...

2018-01-28 16:47:39 788

原创 Shiro实现URL自定义拦截

最近做的一个功能使用shiro对接口进行权限限制。也就是说,当前端请求到后台时,首先判断用户是否具有请求该接口的权限,如果有权限,才能进行访问后台API。1、自定义权限过滤器package com.cat.arain.web.shiro;import org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter;imp

2018-01-28 14:13:26 20349

原创 Java Web权限管理设计及实现

最近在做一个权限相关的功能,在项目原有权限管理上面进行扩展,一方面支持界面上控制到按钮级别,后端接口没有权限不能进行访问;另一个方面,对项目中应用管理模块的应用管理员授权,使其具有对其名下的应用添加用户的权限,而不必像原来一样,所有的用户都必须系统管理员进行添加。 整理了一下原有的权限和新增的功能,对整体做一下总结。项目做的是一个灰度发布平台,使用spring+springMvc+mybati

2018-01-28 13:37:51 49132 30

原创 java中异常处理

异常是程序中的一些错误,但是并不是所有的错误都是异常。常见异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。异常通常包含三类:CheckedException:检查性异常,最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。 一般是指程序不能直接控制的外界情况,是指在编译的时候就需要检查的一类exception,用户程序中必须采用tr

2018-01-27 23:22:24 466

java_ee_api_中英文对照版

javaEE 开发文档,中英文对照版,英文不好可以去看中文,单个人觉得英文更直观。如果下载了没有内容,可以私信我。

2018-02-26

jQuery 1.8 API中文版文档

比较好用的API文档,方便使用时查询,分享给大家。

2015-11-09

jquery-easyuiDemo

目前easyui官网提供的最新Demo版本。

2015-09-28

空空如也

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

TA关注的人

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