自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

skindow的博客

我们是大自然的搬运工,个人github主页 https://github.com/skindowSyc

  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 java 直接插入排序

思路将数组分为有序区间 和 无排序区间,默认第一个为有序区间,依次从左到右,左边第一个为有序区间,取无排序区间第一个数,与有序区间末尾数进行比较,如果小则互换位置,直到该树找到有序区间的合适位置为止,一直轮询此操作java 示例package com.example.demo.sort;import cn.hutool.core.collection.CollectionUtil;import cn.hutool.core.util.ArrayUtil;import java.util.Co

2021-11-17 11:08:27 282

原创 macOs 虚拟机安装CentOs及环境搭建

此处忽略Vmware fusion的安装虚拟机下载地址https://macwk.com/soft/vmware-fusion1. CentOs安装下载地址:http://mirrors.aliyun.com/centos/8/isos/x86_64/虚拟机安装centOs镜像,一直下一步即可选择命令模式默认进去是桌面模式,进去打开命令执行器,输入init 3即可切换命令模式0:逐步终止进程模式,进程将有序的终止,关机时系统处于这个运行级别;1:单用户模式,用于系统维护,只有少数进程运

2021-03-23 15:35:54 1369 1

原创 AQS Semaphore共享锁源码分析原理解读

用途设置一定数量的资源,只有获取到资源的线程才会执行下去,否则会一直等待,和ReentrantLock不同的是,ReentrantLock只允许一个线程获取资源,而Semaphore允许多个线程获取到资源DEMOpackage com.skindow.sql;import java.util.concurrent.Semaphore;/** * @ Author :syc. * @ Date :Created in 16:03 2021/3/12 * @ Descri

2021-03-15 09:36:14 262

原创 AQS CountDownLatch共享锁源码分析原理解读

说明建议先了解ReentrantLock源码,这里有些地方在上期介绍ReentrantLock源码时已经说过了,这里就不过多赘述了,见谅。CountDownLatchCountDownLatch 主要是记录线程满足某个条件时,去唤醒主线程(被await的线程)。下面看一个demoDEMOpackage com.skindow.sql;import java.util.concurrent.CountDownLatch;/** * @ Author :syc. * @ Date

2021-03-12 15:48:31 187

原创 AQS 独占式锁和条件锁ReentrantLock 和 Condition 带你深入了解原理及源码分析

ReentrantLock 构造图构造函数 /** * Creates an instance of {@code ReentrantLock}. * This is equivalent to using {@code ReentrantLock(false)}. */ //构建一个非公平锁 public ReentrantLock() { sync = new NonfairSync(); } /**

2021-03-09 16:54:07 233

原创 HashSet源码分析

1. 无参构造方法HashSet() public HashSet() { map = new HashMap<>(); }可以看出HashSet是内部通过HashMap来实现的,关于HashMap源码分析可以看我写的这篇文章HashMap源码分析2. 有参构造方法HashSet(Collection<? extends E> c) public HashSet(Collection<? extends E> c) {

2021-03-09 09:37:15 116

原创 ThreadLocal源码分析

一. 用途多个线程存在并行访问一个非线程安全的对象时,并且无需共享给其他线程使用,这个时候可以用Thread给每个线程产生一个每个线程独立的副本,各副本之间互不影响二. 源码解读set 方法 public void set(T value) { Thread t = Thread.currentThread(); //每个Thread类 都有一个ThreadLocalMap成员变量 ThreadLocalMap map = getMap(t)

2021-03-08 11:54:13 123

原创 linux 搭建apache服务器出现You don‘t have permission to access / on this server.

一.首先排除SELinux服务安全机制的问题简单描述下SELinux服务安全机制,对服务进程资源进行监控限制,对文件资源进行限制,主要限制服务非法读取文件资源,比如读取用户目录资源,我这次搭建的apache服务就是搭建在用户目录中的/skindow/home首先我们查看SElinux配置模式getenforceSElinux主要有三种配置模式如下enforcing:强制启用安全策略模式,将拦截服务的不合法请求。permissive:遇到服务越权访问时,只发出警告而不强制拦截。disable

2020-12-17 17:18:57 4485 2

原创 JEXL表达式引擎学习demo

实体类package com.skindow.jexl;import lombok.Data;import lombok.extern.slf4j.Slf4j;import java.util.*;/** * @ Author :syc. * @ Date :Created in 14:08 2020/9/10 * @ Description: * @ Modified By: * @ Version: */@Data@Slf4jpublic abs.

2020-09-10 15:09:10 668

原创 jvm 解读笔记附个人理解

一. java源文件被执行的过程1.编译java 通过javac编译器 编译成Class文件.class结尾2.加载class文件被jvm以字节码形式加载到内存当中,而加载则是由jvm提供的加载器来完成的,加载完成后会创建一个java.lang.Class对象,当这个对象被创建以后不会被二次创建,正如每个对象都有自身唯一id一样,而判断他们是否相同则由类的包路径和类的类名称来组成,但是在加...

2020-05-07 14:56:25 232

原创 JAVA求素数

什么是素数质数(素数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。计算原理:在一个大于1的数a和它的2倍之间(即区间(a, 2a]中)必存在至少一个素数。java代码 :package com.skindow.algorithm.calculationPrimeNumber;/** * @ Description :求n ~ m数之间素数得个数,并输出这些...

2020-01-13 15:07:29 1084

原创 JAVA算法之斐波那切数

首先我们通过java模拟还原场景package com.skindow.algorithm;import com.alibaba.fastjson.JSON;import org.springframework.util.CollectionUtils;import java.util.HashMap;import java.util.Map;/** * @ Descripti...

2020-01-13 14:37:43 442

原创 java反射示例

概述最近做的一些需求,对反射用的比较多,要看反射的使用场景可以查看我之前写的文章java反射配合AOP实现日志记录本次文章参考:https://www.cnblogs.com/xrq730/p/4862111.html反射的大致原理是虚拟机在编译class文件会生成.class二进制流,该流中包含了类的命名,方法,属性值,常量等一切信息,然后虚拟机将流读取到内存中,也就是运行时常量池中,供后...

2019-11-06 11:44:55 332

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

概述该模式主要用于通过适配器让二者产生正确的联系,比如我们到其他国家去旅游,某国使用电压为110V,如果我们没有变压器直接充电的话,肯定是充不进去的,这里我们可以将变压器当作适配器,有了适配器我们才可以进行充电实践新建一个接口,该接口定义适配器的行为package com.skindow.designPtterns.adapterMode;/** * Created by ski...

2019-11-01 16:46:07 143

原创 java 设计模式之装饰者模式

概述装饰者模式是对已有的业务逻辑上添加相同行为的业务逻辑,比如我们需要构造一个彩虹桥,彩虹桥有多种颜色搭配,从无到有的过程就是一层一层的添加颜色实践新建一个类,这个类需要定义大家相同的一个型为或者特征,这里以颜色为例package com.skindow.designPtterns.decoratedWithPattern;/** * Created by skindow on ...

2019-11-01 16:06:26 215

原创 java 设计模式之观察者模式

概述观察者模式分为以下两个角色观察者和观察者观察者模式顾名思义就是观察者监控被观察着的某一行为,比如某个人在野外烧水喝,他有一个温度计,需要温度达到100摄氏度才能喝,此时温度计就是被观察者。实践首先我们要顶一个接口,这个接口定义一个方法,该方法就是我们要监视的行为package com.skindow.designPtterns.observerMode;/** * Cre...

2019-11-01 15:23:52 167

原创 使用java反射和AOP对比两个对象的属性来实现修改操作日志记录功能

使用注解来声明对象的哪些属性需要比对,新建注解package com.skindow.annotion;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.a...

2019-09-24 16:51:22 2810 5

原创 springboot + dubbo + zookeeper 整合shiro

概述这里以SpringBoot-Shiro-Vue](https://github.com/Heeexy/SpringBoot-Shiro-Vue) 该开源管理后台 整合到我自己的skindow项目如果你们需要从零开始如何整合Shiro 就不必在这里浪费时间了(●ˇ∀ˇ●)从零开始搭建springboot + zookeeper 可以查看我之前的文章开始克隆项目git clone ...

2019-09-20 10:28:59 845

原创 git bash 命令出现Permission denied (publickey)问题

问题复现$ ssh -T git@github.comPermission denied (publickey).本地刚创建ssh密钥进行连接时发现如上报错排错过程使用以上命令看有没有known_hosts文件ls ~/.ssh/ok,没问题打开known_hosts文件看书有没有我们ssh密钥如下Ok,没问题查看ssh连接debug日志ssh -v...

2019-09-18 15:03:41 3241

原创 springboot整合freemarker + 自定义方法输出json格式 教程篇

操作环境:dubbo + zookeeper + springboot参考文章:https://blog.csdn.net/hzau_itdog/article/details/89400804引入freemarker pom<dependency> <groupId>org.springframework.boot</groupId&gt...

2019-09-03 18:37:54 2187

原创 MongoDB个人基础教程(三)springboot mongoDB整合demo篇

环境: dubbo + zookeeper + springboot引入pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> ...

2019-08-30 17:05:00 142

原创 MongoDB个人基础教程(二)入门篇

本次实例以windows7 64位操作系统为背景安装MongoDBMongoDB下载地址

2019-08-30 11:10:28 192

原创 mySql批量更新失败报The error occurred while setting parameters

mapper xml配置情况 <update id="updateUserBatch" parameterType="java.util.List"> <foreach collection="users" index="index" item="item" separator=";"> update user set name = #{...

2019-08-30 09:44:33 3494

转载 MongoDB个人基础教程(一)基础篇

概述MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。主要特点...

2019-08-28 14:05:58 90

原创 java1.8 HashMap源码深入解读

参考文章:https://blog.csdn.net/v123411739/article/details/78996181https://blog.csdn.net/hzau_itdog/article/details/86085344概述在1.8版本之前一直是数组加上链表的结构,1.8版本引入了红黑树,也就是用空间来换取时间,所以现在的结构就变成了数组+红黑树+链表前言:先了解以下...

2019-08-22 17:07:41 489

原创 java1.8 ArrayList源码解读

概述在日常使用当中,ArrayList使用率非常频繁,它基于数组的线性结构,由于添加时都是向末端添加且是连续的所以它表现为有序性,每个元素都对应一个下标,通过下标来获取数据,所以时间复杂度表现为O(1),不受元素的多少影响。在存储上,它是连续性的,所以在存放ArrayList时,需要一块没有碎片的完整的内存区域用来存放ArrayList,并且该内存的大小需要大于等于ArrayList的大小。...

2019-08-21 18:11:03 115

原创 springboot+mybatis+generator自动生成mybatis配置整合

注意本次操作开发工具为2017版IDEA框架 springboot + dubbo + zookeeper参考文章:https://blog.csdn.net/qq_36881106/article/details/82143232引入pom<!-- mybatis 所需jar包 start --><dependency> <groupId>o...

2019-08-20 17:28:13 266 1

原创 windows安装mysql

参考地址:https://www.runoob.com/mysql/mysql-install.html下载安装地址解压在mysql根目录创建my.ini文件并填写配置信息[client]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]# 设置3306端口port = 3306# 设置mysql的安装目录base...

2019-08-20 11:39:01 85

原创 如何使用postman请求带有@RequestParam和@RequestBody格式的参数

比如下面我这种@RequestMapping(value="/setBook",method= RequestMethod.POST) @ResponseBody @ApiOperation(httpMethod = "POST", value = "在redis中持久化对象Book", consumes = "application/json") public Stri...

2019-08-20 10:31:25 17165

原创 redis个人基础教程(四)springboot redis 存储对象篇

参考文章:https://blog.csdn.net/m0_38075425/article/details/81181726接着上篇讲redis个人基础教程(三)springboot redis demo篇我们知道,java需要把一个对象持久化在磁盘中,需要将该对象进行序列化后再保存在磁盘当中,所以这个要被保存的对象需要实现serializable接口,我们先创建一个这样的类,比如Book类...

2019-08-20 09:59:26 586

原创 srpingboot整合swagger2 demo篇

参考文章:https://www.jianshu.com/p/2e8f66bcacbe引入pom文件注意:由于我这里使用了dubbo服务注册发现,所以这里是在消费者引入的也就是web工程 <dependency> <groupId>io.springfox</groupId> <artifactId>springfo...

2019-08-19 18:49:36 150

原创 redis个人基础教程(三)springboot redis demo篇

前提需要启动redis服务引入pom<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>在yml中配置redi...

2019-08-19 17:07:35 183

原创 redis可视化工具Redis Desktop Manager 安装和简单使用

下载百度云网盘:https://pan.baidu.com/s/1eT1wjE3UwHYrRDVe5fio6A提取码:4v94安装默认下一步开启redis服务(redis安装使用篇)连接配置redis配置好信息之后测试配置是否正确提示成功,ok,这个时候可以点击ok了测试操作key添加key添加完之后就可以显示该key了成功!...

2019-08-19 15:22:13 31065 8

原创 redis个人基础教程(二)安装使用篇

注意:本次案例以windows 7 64位 进行演示1.下载redis下载地址运行redis使用cmd定位到redis解压后的目录使用命令启动redisredis-server.exe redis.windows.conf启动成功连接redis重新启动一个redis窗口,注意不要关闭之前的窗口,否者会关闭redis服务,也是定位到redis的根目录redis-c...

2019-08-19 14:49:21 2570 1

原创 redis个人基础教程(一)基础篇

参考地址:https://aws.amazon.com/cn/redis/什么是redis(快速的开源内存中数据存储,可用作数据库、缓存、消息代理和队列)Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集...

2019-08-19 11:28:43 174

原创 java8 list对象去重

根据对象的code进行去重(code为String类型)orgList = orgList.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<Org>(comparing(Org :: getCode))), ArrayList::new));如果为code为Long类型orgList = ...

2019-08-14 15:57:11 1198

原创 kafka 可视化工具 kafka tool安装和简单使用

本次演示操作环境为windows 7 64位kafka2.12下载地址http://www.kafkatool.com/download.html安装直接默认一直点击下一步就行了配置连接信息填写完之后可以点击Test测试一下,看配置信息是否正确测试成功我们可以直接点击add了连接成功之后就是一下界面了...

2019-08-14 09:44:14 7117 3

原创 kafka个人基础教程(四)java demo消费者生产者篇

KafkaDemoConsumer 消费者package com.skindow.kafka;import lombok.extern.slf4j.Slf4j;import org.apache.kafka.clients.producer.Callback;import org.apache.kafka.clients.producer.KafkaProducer;import ...

2019-08-13 18:10:39 1334

原创 kafka个人基础教程(三)java demo kafkaStream篇

需要启动kafka服务和zookeeper服务以下为入口kafka入门zookeeper入门参考地址: https://kafka.apache.org/23/documentation/streams/tutorial#tutorial_code_pipe导入Maven包 <!-- kafka 所需jar包 start --> <dependency>...

2019-08-12 17:23:17 2916 1

原创 kafka个人基础教程(二)安装使用篇

操作演示 windows7 64位参考文章:https://kafka.apache.org/quickstart下载代码https://www.apache.org/dyn/closer.cgi?path=/kafka/2.3.0/kafka_2.12-2.3.0.tgz启动zookeeper ==》zookeeper入门篇配置zookeeper相关信息zookeeper没有修改...

2019-08-08 17:17:06 321

kafkatool_window_64bit.rar

kafka可视化工具 只支持windows7 64位操作系统

2019-08-14

空空如也

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

TA关注的人

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