自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring循环依赖源码解析

Spring循环依赖源码解析个人记录,有误指出什么是循环依赖?比如:A对象依赖了B对象,B对象又依赖了A对象class A { @Autowired private B b;}class B { @Autowired private A a;}以Bean生命周期的形式描述循环依赖过程:1、在singletonsCurrentlyInCreation中存储A,表示A正在创建,2、A实例化得到A的原始对象,将原始对象生成代理对象的lambda表达式放到

2020-11-30 15:31:26 403

原创 ConcurrentHashmap1.7源码分析

new ConcurrentHashMap()传入默认值:容量:initialCapacity —> 16负载因子:loadFactor —> 0.75并发级别:concurrencyLevel —> 16public ConcurrentHashMap() { this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_CONCURRENCY_LEVEL);}新建segment0 入参为:​ 负载因子

2020-10-24 09:52:11 263

原创 HashMap1.7底层原理

hashmap在1.7中是由数组和链表组成的,存放的是Entry对象HashMap()new一个HashMap对象,会传入默认值initialCapacity=16,loadFactor=0.75,然后赋值负载因子和阈值大小;init()是在LinkedHashMap中才实现,暂不管。public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) thr.

2020-10-13 17:10:37 474 5

原创 CyclicBarrier底层原理

一、流程图二、小demo实现CyclicBarrierTest.javaimport java.util.concurrent.CyclicBarrier;public class CyclicBarrierTest { public static void main(String[] args) { CyclicBarrier cyclicBarrier = new CyclicBarrier(3); for (int i = 0; i <

2020-09-29 15:44:50 217

原创 CountDownLatch底层原理

CountDownLatch底层原理和Semaphore差不多,就简单记录下吧!可以查看我的上一篇文章比较详细—> Semaphore底层原理一、CountDownLatchDemo1)设置了资源数量为2;2)资源数量还没减到0,countDownLatch.await()一直将线程阻塞;3)当资源数量减到0的时候,countDownLatch.countDown(),开始解锁。import java.util.Random;import java.util.concurr.

2020-09-28 17:15:00 691

原创 Semaphore底层原理

一、SemaphoreDemoSemaphore的应用场景就是加锁、异步、控制并发数下面demo可以理解为抢夺共享资源import java.util.concurrent.Semaphore;public class SemaphoreDemo { public static void main(String[] args) { String[] name = {"小胖", "大花", "大肥", "小桌子", "小椅子"}; Semaphore sema

2020-09-28 14:34:23 531

原创 ReentrantLock底层原理

一、步骤图本文的整体用一张图来分析,如果符合你想要查看的内容再继续往下看吧二、加锁阶段lock()new ReentrantLock()调用的是new NonfairSync();线程1,CAS成功修改state = 1,setExclusiveOwnerThread = thread0static final class NonfairSync extends Sync { private static final long serialVersionUID = 73161

2020-09-27 15:25:19 681

原创 面试题:如何优雅地结束线程?

如果你回答stop(),那就要凉凉了,stop()很快就要被放弃掉了。stop()方法相当于你在看电视想要关掉的时候,直接拔掉插头,当线程在运行着的时候,直接stop()的话,可能会导致锁资源没有释放,导致死锁的现象。我们可以使用中断阻塞的方法来中断线程,相当于把电视暂停。一、interrupt()设置中断标志InterruptDemo.javapublic class InterruptDemo { static int i = 0; public static void .

2020-09-25 16:59:30 245

原创 Synchronized底层原理

纯属记录个人理解,有误请指出一、Synchronized加锁方式:1)同步实例方法,锁是当前实例对象public synchronized void method() { /*修饰实例方法,锁的是当前实例对象*/}synchronized(this) { /*修饰同步代码块,锁的是当前实例对象*/}2)同步类方法,锁是该类类对象public static synchronized void method() { /*修饰静态方法,锁的是该类类对象*/}s.

2020-09-25 11:30:00 202

原创 面试题:Java线程的生命周期

一、在Thread的源码中有写出线程的六种状态:1)NEW:新建状态2)RUNNABLE:就绪状态源码注释为:线程在JVM的状态为RUNNABLE就绪状态,但是需要等待操作系统资源。解析:其实在操作系统内核创建线程的当前状态如果是Initialized,则调用sync -> wait(),如果线程状态被设置为RUNNABLE,则唤醒执行run()方法3)BLOCKED:阻塞状态在抢夺Synchronized锁失败之后会进入BLOCKED阻塞状态;等待状态的线程在调用notify(

2020-09-24 14:52:10 555

原创 统一异常处理类

因为项目中会出现特有的问题,而这些问题并未被java所描述并封装对象所以对于这些特有的问题可以按照java的对问题封装的思想。将特有的问题,进行自定义的异常封装1、自定义异常类import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor //有参构造方法@NoArgsConstructor //无参构造方法public clas.

2020-09-22 10:45:54 904 2

原创 统一返回结果类

记录下自己用过的统一返回结果集其中有swagger注解,没有的可以删去import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.util.HashMap;import java.util.Map;/** * 统一返回结果类 */@Datapublic class R { @ApiModelProperty(value = "是否成功") private Boolean.

2020-09-22 10:14:23 758 1

原创 Git报错error: Your local changes to the following files would be***

1、git使用git pull命令拉取报错文件冲突:2、使用git stash保存代码到堆栈中:git stash3、再一次使用git pull拉取代码:git pull4、使用git stash pop弹出保存到堆栈中的代码:git stash pop5、使用git status查看状态:git status6、然后进行上传代码的操作:git add .git commit -m "test"git push...

2020-08-27 18:40:20 264

原创 Git拉取代码并改变dev分支

1、在自己的文件目录创建一个文件夹用来当做仓库:2、打开Git Base,定位到指定目录:cd test3、初始化新本地仓库:git init4、克隆代码:git clone http://***.git5、进入项目目录:cd project/6、查看分支:git branch -a7、切换dev分支:git checkout -b dev origin/dev...

2020-08-27 18:39:17 1397

原创 双重校验锁实现单例模式

1、先上代码:public class Singleton { private static volatile Singleton instance = null; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (

2020-08-18 20:19:32 452

原创 解决报错Table ‘passbook.hibernate_sequence‘ doesn‘t exist问题

1、报错如下图:2、解决方法:将entity表中的 @GeneratedValue 注解改成 @GeneratedValue(strategy = GenerationType.IDENTITY)即可完美解决!

2020-07-03 21:55:18 521

原创 代理模式的概念及Java实现

一、概念:代理模式只为对象提供一种通过代理的方式来访问并控制该对象行为的方法。在客户端不适合或者不能够直接引用一个对象时,可以通过该对象的代理对象来实现对该对象的访问,可以将该代理对象理解为客户端和目标对象之间的中介者。二、创建Company接口:package Proxy;public interface Company { void findWorker(String title);}三、创建HR实现类:package Proxy;import org.apache.co

2020-07-01 14:08:32 228 1

原创 Java统计字符串中字符出现次数

package pang.one;import java.util.HashMap;public class demo7 { public static void repeat(String str) { char[] strArr = str.toCharArray(); HashMap<Character, Integer> hashMap = new HashMap<>(); StringBuilder strin

2020-05-27 20:52:37 1157

原创 反射的小demo记录

1、谈谈反射反射概念:Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。2、Java练习反射demoAnimal.javapackage pang.three;public class Animal { private String name; private Integer age; public void ani

2020-05-25 21:08:45 244

原创 IDEA使用EasyCode插件自动生成代码

1、在IDEA中Setting—>Plugins搜索EasyCode下载插件如果搜索不到想要下载的插件,请查看 IDEA下载插件找不到解决方法2、点击Database添加数据库3、配置数据库信息如果下载的是mysql8以上的版本,都需要添加 ?serverTimezone=UTC4、选择一个表,右键选择Generate Code5、进行选择配置自动添加的代码6、查看自动添加的代码目录7、大功告成,还需其他的代码就需要自己手动添加或是配置了...

2020-05-19 18:37:39 658

原创 IDEA下载插件找不到解决方法

1、在Setting—>Plugins中找不到自己想要下载的插件2、下载插件进入IDEA官网下载离线插件http://plugins.jetbrains.com/3、选择自己合适的插件版本下载4、进入IDEA导入刚才下载的离线插件,选择自己刚才下载的插件路径5、重启IDEA就能完成了...

2020-05-19 15:28:57 3987

原创 IDEA上传jar包到maven仓库

很多时候大家在查找资料的时候,都需要按照资料的maven包copy到自己的pom.xml文件后,发现一直是报错下载不成功,这是因为你的maven中心仓库根本不存在这个包,这时候我们可以通过导入jar包的方式来成功解决,但是在公司项目的时候需要svn上传代码的同时也需要上传引入的maven包,这个时候就需要将自己导入的jar包转成maven包。1、进入IDEA打开maven的命令行2、输入需要上传的jar包信息格式如下:install:install-file -Dfile=<Jar包的地.

2020-05-13 19:29:40 3181

原创 IDEA上传项目到github

1、首先要下载配置Git,在IDEA里面Setting—>Git—>Test进行测试2、在IDEA中配置自己的github账号,在IDEA里面Setting—>Github中添加账号3、创建本地仓库,项目文件都会变成变成红色,在IDEA里面VCS—>Import—>Create4、选择自己项目的路径,然后点击“OK”5、上传项目到暂存区,项目文件会变成绿色,在项目路径右键—>Git—>Add6、进行备注Commit7、成功将项目上传到gith

2020-05-13 13:25:32 201

原创 SpringBoot处理订单监听redis失效的key

本文讲解的是一个订单支付过程需要处理的业务,并讲解在Spring Boot中监听redis失效的key方法来处理订单问题。一、提交订单信息(submitOrder实现类)/** * @Author: SmallPang * @Description: 添加订单信息 * @Date: 2020/2/26 * @Param order: 订单实体 * @return: com.pang.front.Model.Result **/ @Overridepublic Resul.

2020-05-12 17:40:14 721 1

原创 Java类的序列化顺序

前段时间笔试碰到了一个这样的问题,Java类的序列化顺序,之前从来没有见过;查阅一些资料后,自我感觉最好的回答就是它的代码了。(有更好的评论告诉我)使用序列化的原因:Java对象在JVM运行时被创建、更新和销毁,当JVM退出时,对象也会随之销毁,即这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,我们常常需要将对象及其状态在多个应用之间传递、共享,或者将对象及其状态持久化,在其他地方重新读取被保存的对象及其状态继续进行处理。这就需要通过将Java对象序列化来实现。对象序列化除了用.

2020-05-11 18:21:54 825

原创 Mybatis报错Invalid bound statement (not found)

在自己做项目的时候,使用mapper报错Invalid bound statement (not found),检查了很多遍都没发现是什么问题。检查目录target下面的mapper有没有出现创建的xml,如图如果没有需要在pom.xml里面添加resource <build> <plugins> <plugin&g...

2020-02-21 17:56:37 180

原创 Jsoup报错: PKIX path building failed

Jsoup报错提示SSL安全认证问题**解决方案:在Jsoup.connect()前面加上:trustAllHttpsCertificates();HttpsURLConnection.setDefaultHostnameVerifier(hv);需要调用的方法:HostnameVerifier hv = new HostnameVerifier() { public bool...

2020-02-05 00:24:52 984

原创 解决Serialized class ** must implement java.io.Serializable问题

在使用dubbo进行传递实体类时,会报错需要实现序列化问题只需在自己的model实体类里面implements Serializable即可解决,如下package com.pang.back.Model;import lombok.Data;import java.io.Serializable;@Datapublic class User implements Seria...

2020-01-19 15:31:13 8865

原创 Springboot整合Dubbo详细demo

先给上百度云链接,分别是dubbo-admin-2.6.0,2.6.0往后的版本不再提供注册中心可视化界面还有一个是zookeeper的压缩包dubbo-admin-2.6.0:链接:https://pan.baidu.com/s/1EJjmCxipi1EIjWOOemCM3w 密码:jn0szookeeper:链接:https://pan.baidu.com/s/1CoOC9Nww...

2020-01-14 15:32:15 313

原创 Vue将图片的网络地址转成Base64以及file

存储在sql的图片网络地址,我使用了逗号拼接连起来Js:selectGoodsByID(goodsID) { axios.post('/goods/selectGoodsByID', { goodsID: goodsID, }).then(function (data) { vm.goodsData = data.data; ...

2020-01-11 15:10:24 8092 3

原创 Vue上传图片并回显

按照惯例先上效果图:html:<form class="form-inline" style="margin-bottom: 2%;"> <div class="form-group has-feedback"> <label style="font-size: 15px;float: left">&ensp; 商品相册...

2020-01-11 14:52:49 3825

原创 解决几个CORS跨域问题

解决几个CORS跨域问题自己在实际开发中使用canvas.drawImage外域图片,出现了跨域问题;前端:image.setAttribute('crossOrigin', 'anonymous');以上这一句可以完美解决canvas引起的前端跨域问题;网上还有一种方法是,但是我试了无效,也贴出来给大家尝试一下<meta http-equiv="Access-Contro...

2020-01-11 13:38:54 1336

原创 Navicat连接mysql报错2003解决方法

Navicat连接mysql报错2003解决方法本来好好的navicat连接数据库,突然间今天就打不开数据库了。报错情况截图:我们查看一下服务,本来就是自启动的:找到MsSQL80右键启动或者重新启动就能完美解决了...

2020-01-06 10:59:50 9700 10

原创 文件上传功能,使用axios传二进制文件到后台

文件上传功能,使用axios传二进制文件到后台记录自己使用springboot+vue在开发过程中,解决文件上传的方法先上效果图:实现方法思路:html实现的方法时,修改input type=file的默认类型,将默认类型隐藏;使用input-group来假装点击了input type=file默认类型;使用vue的ref和$refs获取file信息;axios使用formDat...

2019-12-23 11:13:10 4776 5

原创 Bootstrap的Datepicker插件的使用

Bootstrap的Datepicker插件的使用记录一下自己在实际项目中使用Datepicker插件方法给出Datepicker官方文档地址,想知道更多参数信息,可以查看官方文档这只是一个日期选择框,如果还需要时间信息的话;使用DateTimePicker插件就可以了。先上效果图:下面只展示主要部分的代码:html部分:<div class="form-group" ...

2019-12-23 10:51:43 287

原创 canvas转换成file类型

canvas转换成file类型html部分:<canvas ref="headCanvas" style="display:none"></canvas>js部分:var fileName = userName + ".jpg"; //vm.addUserNamevar firstName = fileName.charAt(0);var fontSiz...

2019-12-23 10:36:14 7064 5

原创 设置名字的第一个字为默认头像

设置名字的第一个字为默认头像在自己查找资料的时候看了很多博客,真正对于自己希望看的博客,或者说是便捷自己开发。都是先放一个效果图在文章的开头,这样才能让读者知道这篇文章是否对自己有用。先上项目中实现的效果图:查看F12得到输出的信息:废话不多说,上代码:(将canvas转换成 file类型)html部分:<canvas ref="headCanvas" style="dis...

2019-12-23 10:34:25 1231

原创 Logstash同步mysql数据库到ElasticSearch

Logstash同步mysql数据库到ElasticSearch1、先安装ElasticSearch可以查看我的上篇文章,内容比较详细:传送门2、安装同版本的logstash现在给出我下载的连接:传送门3、安装解压后,在bin的同目录下创建一个mysql文件夹4、在mysql文件夹里面放进自己maven仓库里面mysql文件夹下的mysql驱动名称一般都是mysql-connecto...

2019-12-03 11:27:12 274 1

原创 ElasticSearch和Head插件安装

ElasticSearch和Head插件安装1、ElasticSearch可以直接在官网下载最新版:https://www.elastic.co/cn/downloads/2、ElasticSearch-Head不能下载太高版本的,对于Elasticsearch 5.x,6.x和7.x:不支持插件在这里提供我的下载地址:https://github.com/BFFat/elasticsea...

2019-12-03 11:11:44 218

原创 Java消除字符串中的括号

Java消除字符串中的括号面试中遇到的一道简单的题目,没想到其他更简单的方法了…public class Test { StringBuffer result = new StringBuffer(); public String change(String[] str) { for (int i = 0; i<str.length; i++){ ...

2019-10-29 09:56:20 5115

Springboot数据前后交互.rar

简单的使用Springboot实现数据的前后交互:获得网页上提交的form表单数据,在网页上显示后台输入的数据。对于新手来说这是一个很不错的demo。

2019-09-23

空空如也

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

TA关注的人

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