自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

huskyui

回首往昔,更进一步

原创 java中foreach和iterator

java中foreach入门今天闲来无事,师父让我看一下,迭代器在一个循环里面连续两次iterator.remove()的问题,因为今天看一个离职人员的代码,里面写了这个。我们看一下测试代码:List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);for (Integer value:list){ logger.debug(value);}

2020-08-07 13:45:07 39

原创 JVM类加载子系统

在约翰·冯·诺伊曼的计算机模型中,任何程序都需要加载到内存才能与CPU进行交流。加载过程load根据一个类的全限类名来获取此类的二进制流(此处并没有说是特指的本地class文件)将这个class文件所代表的静态存储结构转化为方法区中的运行时结构在内存中生成一个java.lang.Class 对象,这个对象将作为程序访问方法区中的类型数据的外部接口其中此类的二进制流,不仅仅是本地的.class文件,也可以是从jar,war包中的,或者使用java自带的基于接口的动态代理,或者基于cglib.

2020-07-13 01:29:25 57

原创 反射与注解

获取Class类的实例a) 若已知具体的类,通过类的class属性获取,该方法最为安全可靠,程序性能最高Class clazz = Person.class;b) 若已知某个类的实例,调用该实例的getClass()方法获取Class对象Class clazz = person.getClass();c)已知一个类的全类名,且该类在类路径下,可以通过Class的静态方法forName()获取,可能会抛出ClassNotFoundExceptionClass clazz = Class.for

2020-07-09 22:14:18 27

原创 虚拟机栈的局部变量

public class LocalVariableTest { private int count = 0; public static void main(String[] args) { method(); } public static void method() { LocalVariableTest localVariableTest = new LocalVariableTest(); Date date =

2020-07-01 19:11:59 56

原创 RabbitMQ-延迟队列

RabbitMQ延迟队列介绍官网上的介绍实现方式:混合使用message TTL 和 Dead Letter Exchanges使用RabbitMQ Delayed Message Plugin来实现混合使用Message TTL和Dead Letter Exchanges利用dead letter exchange的规则The message is negatively acknowledged by a consumer using basic.reject or basic.n

2020-05-13 18:43:36 62

原创 RabbitMQ-Publisher Confirms

Publisher ConfirmsPublisher confirms are a RabbitMQ extension to implement reliable publishing. When publisher confirms are enabled on a channel, messages the client publishes are confirmed asynchron...

2020-05-07 17:57:50 92

原创 zookeeper-简介

简介ZooKeeper: A Distributed Coordination Service for Distributed ApplicationszooKeeper:一个分布式应用的分布式协调服务ZooKeeper is a distributed, open-source coordination service for distributed applications. It ex...

2020-04-24 18:15:35 38

原创 springboot线程池

配置一个ExecutorService@Configuration@EnableAsyncpublic class BeanConfig { @Bean public ExecutorService getAsyncExecutor(){ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor...

2020-04-20 17:12:01 53

原创 spring cloud gateway

在写之前,想写一下感受,之前有对接过springcloud的项目,有以下几个感受1.我们请求所有接口,都是请求同一个端口,路径不同,都会加一个token来验证权限我感觉是这么实现的,服务器对外访问只开放gateway项目端口,然后加一个token来全局filter当然,我不是这个项目的设计师,这是凭空想象而已。简介This project provides an API Gatewa...

2020-04-17 10:42:54 56

原创 SpringCloud-config

Spring Cloud Config简介Spring Cloud Config provides server-side and client-side support for externalized configuration in a distributed system. With the Config Server, you have a central place to mana...

2020-03-30 15:59:08 49

原创 SpringCloud-Hystrix

HystrixHystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in compl...

2020-03-24 16:22:18 48

原创 SpringCloud-Eureka

categories: springcloudEureka简介Eureka是一种基于REST(Representational State Thransfer表现层状态转移)的服务,主要用于AWS的定位服务,以便实现中间层服务器的负载均衡和故障转移。单个注册中心整合pom配置 <dependency> <groupId>org...

2020-03-20 16:53:22 26

原创 SpringBoot整合RabbitMQ

SpringBoot配置RabbitMQ配置maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> ...

2020-03-19 14:14:26 44

原创 RabbitMQ-topic

Topic在之前的一篇教程中,我们改进了日志系统。我们使用direct直接广播,而不是使用fanout,从而获得了选择性接收日志的可能性。虽然使用direct exchange改进了我们的系统,但它任然有局限性–它不能基于多个标准进行路由。Topic exchange消息发送到topic exchange不能是一个随意的routing-key。它必须是一个由.分割单纯列表。例如stock...

2020-03-13 14:01:21 42

原创 RabbitMQ-routing

routing在之前的导航中,我们创建了一个简单日志系统,我们能够将日志信息广播到很多接受者。在本篇导航中,我们将为其添加一个特性-我们将使订阅消息的一个子集成为可能。例如,我们能够将错误信息定向写入错误日志文件,同时能够在控制台打印所有信息。binding在之前的例子中我们能够创建绑定,你可能会回想起这样的代码channel.queueBind(queueName, EXCHANGE_...

2020-03-11 14:58:19 40

原创 RabbitMQ-发布订阅

发布与订阅在上一个教程中,我们创建一个工作队列,我们将每个人物,最终恰好分配到一个工人。然而,在这个部分,我们希望每个消息能分配给多个消费者。这种叫发布订阅模式。举例,注册时需要同时发送短信和发送email,我们会将用户注册的信息发给两个消费者,一个专门发送短信消费者,一个专门发送email消费者。RabbitMQ消息传递模型的核心思想是,生产者不直接想消息队列发送信息。实际上,生产者并不知道...

2020-03-09 18:35:29 27

原创 RabbitMQ-工作队列

介绍RabbitMQ是消息代理。它接收信息和转发信息。你可以把他考虑成一个邮局。当你讲邮寄的信放在邮局时,你可以确定邮差先生或者女士会把邮件最终送到你的收件人手中。当然邮局和RabbitMQ最大的区别,RabbitMq不接受纸张,它只接收,存储,转发二进制的数据消息快。下面讲一些RabbitMQ中的术语:Producer生成只不过意味着发送信息。发送信息的程序是生产者Queue...

2020-02-29 22:15:17 56

原创 git修改远程仓库

起因公司用的托管仓库是coding,然后今天仓库地址换了,更新项目时,提示报错,遂更新远程仓库Coding 提示: Public key expired.此公钥已经超过有效期,要继续使用请到 https://coding.net/user/account/setting/keys 更改设置。fatal: Could not read from remote repository.Plea...

2020-02-10 16:08:23 132

转载 sql replace

sql替换起因七牛云上传图片的返回时,前端拼接了域名,导致图片保存时,是全域名,例如http://example.com/a.jpg出现一个问题,域名快要到期了,需要更换域名,数据库中保存的数据需要更换成新的域名找到的答案UPDATE your_tableSET your_field = REPLACE(your_field, 'articles/updates/', 'article...

2020-01-18 15:51:42 45

原创 springcloud中结合actuator不支持/actuator/refresh

起因因为springcloud config 里面需要获取刷新配置时,在访问浏览器http://localhost:13000/actuator/refresh时,发现出错。排查Whitelabel Error PageThis application has no configured error view, so you are seeing this as a fallback....

2020-01-17 10:55:46 629

原创 2019年年度总结

今年大致做了什么2018.12-2019.02这段时间在上海一家20个人的游戏公司,早上吃罗森的包子,喝豆浆,参与了红包项目。公司架构是后端springboot+Netty,前端Unity3D.工作到2月底。印象比较深的是,公司有只兔子,每天就是吃吃,而且离我们近,好臭,有几次,周末没人在,兔子竟然就没吃,星期一去的时候,兔子和疯子一样,最后也不知道,兔子有没有成红烧兔子。学校让回去毕业设计,...

2019-12-18 18:06:19 455 1

原创 vmware安装centos7并开启ssh

原由记录安装centos7,由于要用到docker和elasticsearch下载路径vmware : https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.htmlcentos7镜像: https://www.jianshu.com/p/a63f47e096e8centos7安装教程: ht...

2019-12-09 23:50:07 76

原创 微信获取小程序码

微信小程序获取小程序码的无限制接口是返回二进制内容请求微信接口获取字节数组byte[] public byte[] getQrCodeUnlimited(String scene,String page){ // 获取access_token 请自己封装 String accessToken = getAccessToken(); Map<Stri...

2019-11-26 11:44:48 55

原创 CountDownLatch和CyclicBarrier分析

CountDownLatch几个经常用的方法分析CountDownLatch构造函数 public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count < 0"); //此处调用CountDownLatch的队...

2019-10-16 15:35:52 30

原创 mysql中delete别名问题

delete from table_name t where t.column = 1# You have an error in your SQL syntax;# check the manual that corresponds to your MySQL server version # for the right syntax to use near 't where t.colu...

2019-10-14 17:46:05 38

转载 微信昵称中表情保存到数据库问题

微信昵称中包含表情导致无法插入数据库java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8E\x80' for column 'wechat_nick_name'注意修改微信昵称后,获取微信昵称和头像是有缓存的,我这次是1个小时,缓存就刷新了解决步骤修改对应表中的编码ALTER TABLE table_name CO...

2019-09-30 15:36:45 245

原创 队列同步器-AbstractQueuedSynchronizer

同步器依赖内部的同步队列(一个FIFO双向队列),来完成同步状态的管理,当前线程获取同步状态失败时,同步器会将当前线程以及等待信息放入到一个节点Node并将其加入同步队列,同时会阻塞当前线程,但同步状态释放时,会将首节点的线程唤醒,使其产生获取同步状态.同步队列的节点(Node)用来保存获取同步状态失败的线程引用,等待状态以及前驱和后驱节点,结点的属性类型与名称以及描述.static fina...

2019-09-26 17:24:23 36

转载 mysql in有序查询

select * from hair_system_hairstyle where id in (24,23,25)如果想要查询根据,24,23,25顺序select * from hair_system_hairstyle where id in (24,23,25) order by field(id,24,23,25)效果

2019-09-19 17:28:15 250

转载 elasticsearch基础篇

安装安装elasticSearch和kibana简单应用一个Elasticsearch集群可以包含多个索引(index),相应的每个索引可以包含多个类型(type).这些不同的类型存储着多个文档,每个文档又有多个属性放入信息PUT /megacorp/employee/1{ "first_name" : "John", "last_name" : "Smith", ...

2019-09-18 23:29:27 22

原创 mysql loop

mysql中循环,查找并插入数据DELIMITER //DROP PROCEDURE IF EXISTS doWhile;CREATE PROCEDURE doWhile() BEGIN DECLARE hair_id VARCHAR(300); DECLARE sortx INT DEFAULT 0; DECLARE review_id INT; DECLARE...

2019-09-17 11:19:27 310

原创 httpClient工具类

httpClient工具类pom配置<!-- apache httpclient组件 start--><dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId></dep...

2019-09-05 15:59:31 281 5

原创 读写锁

readWriteLock读写锁也就是共享-独占锁,读锁之间可以共享锁,但是读锁和写锁之间不可以共享,写锁之间也不可共享.学习的这个读写锁的设计,它的核心是1.多个线程(读锁,写锁)都是用同一个对象锁,然后用sychronized来唤醒全部以及沉睡.2.定义了读锁数量变量,当前写锁数量,当前等待写锁数量来是否需要睡眠和唤醒lock接口/** * 读写锁的内涵就是共享-独占锁...

2019-09-02 14:29:08 41

原创 volatile关键字

内存,cache,和寄存器之间的关系寄存器是用于计算数据,而cpu所能访问的数据都是主存中的.寄存器速度随时代行长越来越快,但是读取数据却是没有太大发展.所以有了cache这样的东西高并发三大特性原子性多个原子性操作在一起就不再是原子性操作了简单的读取和赋值操作是原子性的,将一个变量赋给另外一个变量的操作不是原子性的.Java内存模型(JMM)只保证了基本读取和赋值的原子性操作,其...

2019-08-21 18:34:08 34

原创 springboot导入本地jar包

springboot导入本地jar包首先在src下建目录lib,并将需要的本地jar包放入在pom.xml下修改如下 <!-- 导入云顿数据风控的jar --> <dependency> <groupId>aliyun</groupId> <artifactId>ali...

2019-08-15 18:35:22 1596

原创 线程通信

线程间通信线程间通信会有一个存储任务的队列,队列有以下三种状况队列为空,会通知消费者等待,队列满时,会通知生产者等待队列有任务但不为空,消费者正常运行,生产者正常运行单线程通信(一个生产者一个消费者)使用Object中的方法,wait()和notify()来实现wait()wait()和notify()必须获取对象,所以两个方法都需要在同步方法中使用(synchroi...

2019-07-16 18:24:44 37

原创 关闭线程

关闭线程通过interruptionException关闭import java.util.concurrent.TimeUnit;/** * @author husky * @date 2019/7/11 11:23 */public class CloseThreadByInterruptException { public static void main(Strin...

2019-07-12 17:27:41 71

原创 aop+annotation实现权限管理

功能需求遇到一个问题,要实现权限管理,也就是有些按钮点击时要提示,没有权限,有很多接口,如果要是按照老的方式,就是每个方法都手写权限判断.十分浪费时间问题的重要点重复的工作,如何解决项目并没有引入shiro之类的模块而且session是保存在redis中的,所以分布式的环境也可使用session,如何从session中获取用户信息话不多少,直接说怎么做采用aop实现重复的权限判断...

2019-06-24 22:43:17 452

原创 git stash

Git 工具 - 储藏(Stashing)经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。“‘储藏”“可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的...

2019-05-08 17:15:34 29

原创 git branch

git basic branchgit branch <branchName>#create branchgit branch --list#show branch list,git checkout <branchName>#choose branch,HEAD is pointer of the current branch last commitcreat...

2019-05-08 17:07:50 88

原创 singleton

单例Singleton类被称为单例类,通过使用private的构造函数确保了在一个应用只产生一个实例.----设计模式之禅使用场景在一个系统中,要求一个类有且仅有一个对象,如果出现多个对象就会出现"不良反应",可以采用单例模式,具体使用场景如下:需要生成唯一序列号的环境创建一个对象需要消耗的资源过多,如要访问IO和数据库等资源.等等单例的逐渐进化之路1.饿汉式/*...

2019-05-04 15:06:33 2871

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