自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(277)
  • 资源 (4)
  • 收藏
  • 关注

原创 kmp算法 Java

kmp算法

2022-09-13 09:05:15 172 1

原创 马拉车算法 java

马拉车算法 java。

2022-08-18 09:01:48 234

原创 两个链表相乘 字节三面算法题

给你两个链表,返回第三个链表,第三个链表表示前两个链表的乘积,计算过程不能使用任何其他数据结构。node节点结构输入a7->4->1b8->5->2返回c。

2022-07-23 13:38:39 425

原创 线段树 java

public class SegmentTree { public static void main(String[] args) { SegmentTree tree = new SegmentTree(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9}); System.out.println(tree.query(0, 2)); tree.add(1, 2, 3); System.out.println(tr

2022-05-29 17:34:48 127

原创 ArrayBlockingQueue源码分析

ArrayBlockingQueue最核心的实现就是一把锁,两个条件。具体看源码如下: /** Main lock guarding all access */ final ReentrantLock lock; /** Condition for waiting takes */ private final Condition notEmpty; /** Condition for waiting puts */ private final Condit

2020-10-18 16:31:18 145

原创 ReentrantReadWriteLock读写锁

ReentrantReadWriteLock是一把可重入读写锁,提高了读的性能。读写锁时如何实现了呢。其实读写锁还是通过一个compareAndSet实现的,只是里面的state的含义不一样了,原先是表示线程的重入次数,现在对该变量做了拆分。高16位表示读线程的重入次数,第16位表示写线程的重入次数。下面我们看几个变量和方法 static final int SHARED_SHIFT = 16; //1 0000 0000 0000 0000 用于读线程重入一次 .

2020-10-18 16:08:43 153 1

原创 AtomicInteger源码分析

AtomicInteger的实现主要是通过方法compareAndSet实现的,这个方法底层是调用了native的方法,下面看下这个方法。public final boolean compareAndSet(int expect, int update)这个方法第一个参数是expect,为原来的值。update为修改后的值。如果当前的值为expect,就修改为update的值,整个过程是一个原子操作。那这个类是如何保证自增不冲突的呢,我们看一下具体的实现。 public final int

2020-10-18 15:37:49 115

原创 B+树实现以及相关功能演示

简介下面是写的b+树的java版本的代码,BPlusTree为对外开放b+树,BPlusNode为非叶子节点数据结构,LeafNode为叶子节点数据数据结构,Node为叶子节点和非叶子节点公用部分。结合网上的图文教程然后来看这个代码会理解的比较快。图文教程地址代码的注释已经很全了,就不做说明了。源码package com.smart.leetcode.tree.mybplustree;import java.util.LinkedList;import java.util.List;/*

2020-10-11 11:57:53 698

原创 mysql游标

mysql分页查询的时候有深度翻页的问题,如果我们需要查询全部数据的时候,不可能一次查询全部,这个时候就可以使用游标,游标的原理其实就是顺序查询,只是每次查询到一些数据后会先返回给我们,然后继续往后查询。这样解决了等待问题,也解决了内存爆炸问题。下面通过mybatis介绍一下游标的使用。

2020-10-11 11:55:57 539

原创 Deadlock found when trying to get lock,mysql死锁

最近遇到一个死锁问题,我整理了一下,写了一个例子。初始化表国籍表:CREATE TABLE `nationality` (`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,`type` VARCHAR ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL,`desc` VARCHAR ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL,`count` INT ( 11 ) DEFA

2020-06-13 15:22:59 1691

原创 eureka服务端源码分析

服务端主要功能服务的注册服务的续约服务的下线给客户端提供服务信息这里不对每一点就讲解,就讲一下服务的注册。如果看过eureka客户端的代码,可以知道,eureka客户端是通过发送http请求向服务端注册信息的,这里来看一下入口代码: /** * Registers information about a particular instance for an ...

2020-03-08 17:10:56 294

原创 eureka客户端源码分析

eureka客户端可以完成的事情eureka客户端可以获取其他客户端的信息,用于向其他客户端发送请求。eureka客户端可以把自己注册到注册中心,这样其他客户端就可以发现本客户端,直接来调用本客户端。相关依赖首先要是springboot应用 <dependency> <groupId>org.springframework...

2020-03-07 22:29:13 265

原创 三数之和

题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, ...

2020-02-03 09:18:49 236

原创 springboot手动封装一个starter

准备要封装的组件 <groupId>com.itpsc</groupId> <artifactId>com-itpsc-service</artifactId> <version>1.0</version>里面定义一个简单的类public class UserService { priva...

2020-01-21 09:43:28 374

原创 uml用户图

用例图用来主要用简明的视图描述系统的功能。用例图示例关联关系继承关系依赖关系扩展关系

2019-12-13 15:57:44 751

原创 spring源码分析

spring在我们的java开发中使用很多,IOC作为spring最基础的组件,被大家所熟知,但是spring具体是怎么使用这个特性的呢?,本文主要讲解一下IOC的注册过程。从spring的启动开始,这里没有使用mvc的模块,主要是想单独分离出来讲IOC.预先学习这里是一个很简单的例子,但是对于理解spring的ioc很重要,一定要先读完哦,这个就是一个很简单的springioc过程。p...

2019-11-09 12:31:09 235

原创 redis集群搭建

用一台linux,创造3 master、3 salve环境。reids采用redis-3.2.4版本安装过程下载并解压//目录自行选择cd /usr/mypack/redis wget http://download.redis.io/releases/redis-3.2.4.tar.gztar -zxvf redis-3.2.4.tar.gz 编译安装cd redis-3...

2019-08-25 17:36:58 116

原创 ThreadLocal阅读

ThreadLocal的实现是通过在线程内部保存了一个map结构,当前线程使用变量时,获取当前线程内部的map,达到了线程本地变量的目的,下面是对源码加了一些注释,有误请指正。package com.mr.study.threadlocal;import java.lang.ref.WeakReference;import java.util.Objects;import java.ut...

2019-08-04 13:38:51 139

原创 NIO2.0 AIO入门

NIO 2.0引入了新的异步通道的概念,并提供了异步文件通道和异步套接字通道的实现。异步通道提供一下两种方式获取操作结果。通过java.util.concurrent.Future类来表示异步操作的结果;在执行异步操作的时候传入一个java.nio.channels。CompletionHandler接口的实现类作为操作完成的回调NIO 2.0的异步套接字通道是真正的异步非阻塞I/O,...

2019-07-28 12:19:30 304

原创 linux下搭建tomcat服务器并发布web项目

本文主要入门讲一下linux服务器下如何跑通一个javaweb项目,很简单很入门。tomcat相关配置1.下载首先去tomcat官网下载tomcat包,tomcat9下载地址,我这里下载了zip包,下载好了之后上传到linux服务器上。2.解压配置//将压缩文件tomcat9.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。unzip -o...

2019-06-15 18:50:25 1083

原创 java项目配置多数据源

有些web应用需要连接多个数据源,本文讲解一下如何使用多个数据源,大题思路是这样的,系统启动的时候创建多个数据源,然后具体执行sql的时候去切换数据源执行对应的sql。如何切换数据源呢?spring提供了一个AbstractRoutingDataSource抽象类,只要继承这个类就可以了,这个类需要设置多个数据源,每个数据源有一个key对应,继承这个类必须实现determineCurrentLoo...

2019-05-26 13:59:36 11422 3

原创 spring整合mybatis

本文不去深入探讨怎么整合过程,就是说一个流程,在一个spring应用中整合成功可以跑起来,例子用了mysql数据库。相关依赖依赖不包含spring原来的依赖 <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> ...

2019-05-25 22:07:30 95

原创 spring拦截器

spring拦截器实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter类都可以实现,主要有三个方法,preHandle在调用具体的controller之前执行,postHandle在调用controller之后,但是页面渲染之前执行,afterCompletion在页面渲染之后执行,拦截器的功能类似与filter的功能,个人认为spring为什么搞...

2019-05-25 21:11:37 1136

原创 java连接ftp工具类

这里使用了org.apache.commons.net.ftp这个类库,仅仅是对这个类库稍微封装了一下方便使用,这里写了一个工具类,大家可以参考一下。依赖 <dependency> <groupId>commons-net</groupId> <artifactId>commons-n...

2019-05-25 14:36:50 7239

原创 logback基本配置与使用

在投产项目中,日志的使用是必须的,一般情况下日志分两个,一个需要在控制台打印出来,这个方便开发的时候调试,一个需要把日志按日期保存,方便生产出问题的时候查询日志。logback实现了slf4j-api,使用也很简单,只需要在资源目录下配置一个logback.xml即可,系统启动的时候会默认读取这个日志配置文件。下面介绍一下具体的使用。logback.xml配置具体配置如下,具体的功能都已经详细...

2019-05-25 13:01:29 410

原创 快捷获取Properties中数据

写了一个工具了,可以方便的访问.properties文件中的数据,代码如下public final class MyProperties { private final static String[] PATHS = new String[]{"parameter.properties"}; private Map<Object, Object> valueMap;...

2019-05-23 22:31:48 194

原创 springmvc项目集群模式下如何维护session

传统的session是维护在内存中的,如果部署多个服务,通过ngix转发,用户登录完成后的请求可能转发到另外一个服务上去,内存中就没有用户的session,就会判定为用户没有登录,spring-session项目可以把session维护到redis等数据库中,这样多个服务可以共用session,就可以解决上面遇到的问题。下面就用redis保存session示例。需要添加的依赖 &...

2019-05-14 22:41:37 377

原创 使用google的DefaultKaptcha生成验证码

配置生成规则 <!-- 配置验证码 --> <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> <property name="config"> <bean class="com.google....

2019-05-13 22:57:13 3669 1

原创 spring项目解决跨域问题

服务器端本身是支持跨域的,所有请求都可以进入后台,只是返回的时候如果不是同源请求,js不接受,防止安全问题,需要服务端在返回头中明确规定支持,则可以接受跨域设置过滤器允许跨域 <!-- 跨域配置 --> <bean id="corsFilter" class="org.springframework.web.filter.CorsFilter"> ...

2019-05-13 22:54:03 1683

原创 spring,springmvc搭建一个只返回数据的项目

本文主要讲述一下利用spring、springmvc搭建一个返回json数据的项目,主要是一些配置文件。pom.xml中需要的依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compi...

2019-05-12 19:20:57 312

原创 springboot打成jar包后无法读取resource下资源

在开发环境下我们可以用ResourceUtils.getFile("classpath:pictures/a.png");的方式读取资源,但是打成jar包后,访问就报错了,jar只能以流的方式读取,如下ClassPathResource resource = new ClassPathResource(imagePath);如上方式可以正确读取。...

2019-04-20 21:27:54 1610

原创 spring boot 使用https,并且http自动跳转https

配置使用httpsspringboot内部已经集成了,引入密钥文件,修改相关配置文件就可以使用https了,server: port: 8443 ssl: key-store: classpath:www.aaa.cn.jks key-store-password: aaaaaa key-store-type: JKS配置http跳转至https监听一个h...

2019-04-20 12:48:28 3599 1

原创 oracle创建表空间

/*第1步:创建临时表空间 **/create temporary tablespace zhan_temp tempfile 'H:\oracle\data\zhan_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;/*第2步:创建数据表空间 */creat...

2019-02-07 11:14:00 143

原创 javaweb应用初始化spring applicationContext过程

通过ContextLoaderListener初始化applicationContextjavaweb引用启动时会加载web.xml,并且会执行配置的listener,在这里注册一个监听器,在内部初始化applicationContext就可以了。这里监听的类是org.springframework.web.context.ContextLoaderListener该类继承了ServletCo...

2018-10-23 09:25:19 848

原创 mybatis-generator for oracle

1.先去https://github.com/mybatis/generator/releases下载架包2.设置xml文件&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generat...

2018-10-21 12:01:08 1087

原创 springboot+vue解决跨域问题

后台添加过滤器,允许跨域@Configurationpublic class GlobalCorsConfig { @Bean public CorsFilter corsFilter() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfigurat...

2018-10-14 20:23:29 2965 2

原创 java类文件路径

类文件路径就是使用了classpath的路径找对应的资源文件,即src路径。与“相对路径”比较:能够通过“set classpath=路径 ” 这方式指定类文件路径,这样在不同盘符下执行java文件就不会报错注意事项:classpath路径中"/"是指在src文件路径(src),并非值项目路径public class ClassPath { public static void m...

2018-10-06 12:44:38 1744

原创 java8流的创建

流的创建有很多方式,废话不多说,看例子就懂了。public class CreatingSteams { /** * 显示流 * * @param title * @param stream * @param &lt;T&gt; */ public static &lt;T&gt; void show(String ...

2018-10-06 12:21:32 322

原创 oracle sql developer连接oracle报错

安装了oralce 11g,使用PLSQL Developer使用是正常的,用sqldeveloper就报错,连接不上,具体错误如下, , 网上找了很多方法,原来是jdbc下面的jar包版本太高了,原来是ojdbc8.jar换成ojdbc6.jar就可以了。...

2018-09-16 18:49:19 447

原创 线程池执行线程任务花费的时间

public class CounterPoolExecutor extends ThreadPoolExecutor { private AtomicInteger count = new AtomicInteger(0);//统计执行次数 private long startTime = System.currentTimeMillis(); private Strin...

2018-05-29 22:36:34 3238

VC++6.0绿色中文版

VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版VC++6.0绿色中文版

2017-12-04

数字秒表C++版

用C++实现的一个秒表计时工具

2017-03-21

双人五子棋

c++实现的可以两个人玩的五子棋

2017-03-21

火车票售票系统

自己写了一个火车票售卖系统,实现了座位号和中途站等,附源码

2017-03-21

空空如也

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

TA关注的人

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