自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 资源 (12)
  • 收藏
  • 关注

原创 Java6及以上版本对synchronized的优化

目录1.概述2.实现同步的基础3.实现方式4.Java对象头(存储锁类型)5.优化后synchronized锁的分类6.锁的升级(进化)1.概述在多线程并发编程中synchronized一直是元老级角色, 很多人都会称呼它为重量级锁. 但是, 随着Java SE 1.6对synchronized进行了各种优化之后, 有些情况下它就并不那么重了. 本文详细介绍Java SE 1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁, 以及锁的存储结构和升级过

2021-11-03 16:21:33 550

原创 redis-6.2.1安装

目录准备工作安装启动方式设置环境变量准备工作1、安装最新版本的gcc编译器yum install centos-release-scl scl-utils-buildyum install -y devtoolset-8-toolchainscl enable devtoolset-8 bash检查安装结果gcc --version2、下载redis-6.2.1.tar.gz放到/opt目录下安装1、解压tar -zxvf re..

2021-10-23 15:54:58 1382

原创 newSingleThreadExecutor和创建单个线程的区别

面试题曾经遇到过一次面试的时候问过:既然new Thread()和newSingleThreadExecutor()都是创建一个线程处理,为什么还需要存在单个线程的线程池呢?案例演示分析同样是10个任务需要处理,通过new Thread()和newSingleThreadExecutor()演示下new Thread()方式 public static void main(String[] args) { for (int i = 1; i <=10; i++)

2021-08-19 15:47:31 1740 3

原创 Java四大线程池

目录四大线程池简介案例演示线程池参数说明四大线程池简介案例演示线程池参数说明

2021-08-19 14:26:17 1135

原创 vs code中创建代码片段

文件 => 首选项 => 用户代码片段 => 新建全局代码片段/或文件夹代码片段:vue-html.code-snippets注意:后缀名需要命名为.code-snippets比如下面是一段快速创建vue模板的代码片段,拷贝之后需要自行修改vue包的路径{ "vue htm": { "scope": "html", "prefix": "vuehtml", "body": [ "<!..

2021-03-20 14:29:28 117

原创 IDEA不同端口启动同一个项目

idea版本 : 2019.3IDEA不同端口启动同一个项目,相当于启动多个项目,可以用于负载均衡测试,不同的端口号再配置文件配置即可允许项目并行运行修改端口号即可最终效果:

2020-12-31 15:41:54 1117

原创 Java修改框架源码

这个话题听起来很高大上,重写源码,对于很多新手或者没有修改过的同学来说,觉得没什么头绪,其实是一个很简单的操作,当然简单仅仅只是指如何去修改源码这件事情~比如,我们想修改SpringSecurity的JdbcTokenRepositoryImpl.java的源码,那么我们就在工程中新建一个包名和类名一模一样的然后把源码中的代码,全部拷贝过来,对需要修改的部分进行修改即可;这样类加载器在加载的时候,就会优先加载到我们已经同名的类,优先使用;这是简单粗暴的一种方式;还有其他很多的方式,希望有

2020-12-12 14:49:24 1473

原创 安利一个MySQL的可视化编辑器

之前连接MySQL的时候一直是使用SQLyog,但是SQLyog不是免费的,每次都需要破解,比较麻烦。现在发现其替代的版本sqlyog community edition, 重点是免费开源的,而且界面好看很多sqlyog community edition下载连接https://github.com/webyog/sqlyog-community界面也是比较协调和好看...

2020-08-24 17:24:23 2480 1

原创 redis 远程连接

我们一般会把redis部署在服务器,那么我们需要开启redis的远程连接才能在其他地方连接上通过修改redis.conf配置文件在redis的安装目录下注释原来绑定的127.0.0.1,并关闭保护模式vim redis.confvim redis.conf# 注释以下绑定的主机地址# bind 127.0.0.1# 关闭保护模式protected-mode no重启redis即可测试...

2020-07-22 11:43:16 230

原创 CentOS 7防火墙开启关闭

查看防火墙状态firewall-cmd --state停止防火墙systemctl stop firewalld.service开启防火墙firewall-start--state禁止防火墙开机启动systemctl disable firewalld.service

2020-07-20 16:40:22 125

原创 Linux下安装配置nginx

首先到ngnix官网(http://nginx.org/en/download.html)下载ngnix的安装包。当然你也可以通过wget命令wgethttps://nginx.org/download/nginx-1.19.1.tar.gz把下载好的安装包上传到linux上解压 tar -zxvfnginx-1.19.1.tar.gz然后把解压后的文件移到到 /usr/local目录下(也可以在解压的时候指定,通过-C指定, tar -zxvf nginx-1.19.1.tar.gz ..

2020-07-20 16:35:57 1073

原创 Linux下安装配置JDK

通过文件上传工具把安装包上传到linux上 我使用的是FileZilla,看个人喜好。有的人喜欢用xftp 把软件上传到/usr/local/software目录下 【这个目录根据个人情况去定,我习惯放到这个目录下】 解压文件 tar -zxvf jdk-8u191-linux-x64.tar.gz 配置环境变量 vim /etc/profile export JAVA_HOME=/usr/local/software/jdk1.8.0_191export CLASSPA..

2020-07-20 14:16:29 115

原创 SpringBoot使用Junit单元测试报错

使用SpringBoot的Junit单元测试,需要引入依赖 <!-- Spring Boot Test 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope&g

2020-07-07 11:52:39 13315 3

原创 SpringBoot整合druid问题

之前看了一张帖子来整合druid的,帖子中使用的是SpringBoot1.5.x版本,我使用2.1.7版本。在整合druid的时候,发现启动就报错,提示dataSource找不到,具体报错:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through fie

2020-07-02 09:48:18 448

原创 Git commit之后撤销commit

一般情况下,我们在本地分支开发完代码,都会进行提交操作通过git commit -m "注释内容"这时候代码就提交到了本地暂存区这时候先撤销怎么办呢?通过git reset命令git reset 三个常用的参数--mixed 意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作这个为默认参数,git reset --mixe...

2020-04-01 23:31:38 164

原创 Git查看本地分支、远程分支、所有分支

Git查看本地分支、远程分支、所有分支查看本地分支git branch查看远程分支git branch -r-r 表示 remote查看所有分支git branch -a...

2020-04-01 23:20:51 96809

原创 Git本地多分支开发

Git本地多分支开发git本地创建多个分支,互不干扰。情景:在做某个需求A时,先需要修改紧急bug B;需要两个分支互不干扰 首先本地创建master的分支来进行开发需求A 这时候在分支20200331_A上修改的代码,需要先commit到本地暂存区。【这一步很重要】 然后切换master分支,在创建bug B的分支进行开发 ...

2020-04-01 00:03:02 4042 2

原创 单例模式

懒汉模式:// 懒汉模式:public class SingletonDemo { private static SingletonDemo instance; private SingletonDemo(){ } public static SingletonDemo getInstance(){ if(instance==null)...

2020-02-23 21:42:29 93

原创 Java文件处理(复制、移动、删除)

package com.company.io;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;/...

2020-02-23 11:55:27 420

原创 Java递归读取某个文件夹下的所有文件

import java.io.File;/** * @description: 递归读取文件夹下的文件 * @author: chunguang.yao * @date: 2020-02-22 23:24 */public class Recursion { public static void main(String[] args) { String p...

2020-02-22 23:34:44 674

原创 Linux下自定义alias

alias指令方便我们输入一些命令,类似windows下的快捷方式 临时【重启就会失效】 alias <新的命令>='<原始命令>' 例如: alias startTomcat='cd /usr/local/tomcat7/apache-tomcat-7.0.75/bin; sh startup.sh;' 注意:使用这种方法,重启后就会失效。 ...

2019-12-17 23:12:22 246

原创 linux下配置git

第一步:安装编译 git 时需要的包 yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install -y gcc perl-ExtUtils-MakeMaker 第二步:删除已有的 git 【如果有的情况下】 yum remove git ...

2019-12-17 00:22:08 91

原创 虚拟机linux下git clone 报SSL connect error错误

把github的项目拉取到VM的linux机器上的时候出现了如下错误: 在网上看了一些博客资料,说什么环境配置了https,把https改成git,很多奇葩的说法,都试过了,没用。 最终看到了一篇帖子说是因为SSL版本过低导致的,直接升级SSL即可。 命令yum -y update nss 即可解决问题。 再次拉取项目 ...

2019-12-16 23:29:59 862

原创 Linux环境下配置maven

把Maven安装包上传到Linux系统上 解压安装包 tar -zxvf apache-maven-3.6.2-bin.tar.gz -C /usr/local 配置maven本地仓库地址 vim /usr/local/apache-maven-3.6.2/conf/setting.xml 配置环境变量 vim /etc/profile...

2019-12-16 01:20:21 270

原创 VM安装CentOS7

之前分享过安装CentOS6.X的教程,具体可以看我的博客:https://blog.csdn.net/ycg33/article/details/82750825最近一段时间在学习Docker的技术,但是对于CentOS6.X版本来说,有些不方便,所以再安装了一个CentOS7的,但是发现7.X的版6.X的版本安装的过程已经很大不一样了。具体内容如下:使用VMware Workstati...

2019-12-07 23:40:14 933

原创 CentOS7在执行yum操作时,报错:Could not retrieve mirrorlist

问题在CentOS7上,执行yum操作时,报错:解决方法# vim /etc/resolv.conf // 修改如下 nameserver 8.8.8.8 search localdomain 修改之后,重启网络 service network restart 问题解决...

2019-12-02 01:31:03 786

原创 安装docker No package docker available

通过yum的方式在安装docker的时候出现了错误,报错如下:到网上查询到解决方案如下:yum没有找到docker包,更新epel第三方软件库,运行命令:sudo yum install epel-release之后运行sudo yum install docker-io即可按照网上的解决方法之后,在指定安装docker的时候还是报错报这个错误的时候,解决办法:...

2019-12-02 00:22:43 2093

原创 idea控制台配置git命令

1、Ctrl + Shit + S 配置 2、选择git的bin目录下的bash.exe即可

2019-11-24 23:31:24 890

原创 Java通过poi读取excel

背景:需要通过读取excel中的内容,插入到数据库中。 使用poi来读取excel 引入依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version><...

2019-11-08 23:11:23 189

原创 秒杀系统(SecKillGoods)

​​​​​​完整代码可以参考我的github:https://github.com/yaochunguang/SecKillGoods.git秒杀商品系统【多线程处理】 需求分析 技术架构 秒杀实现思路 数据库环境准备 导入秒杀商品到缓存 秒杀下单 超卖问题解决 并发问题解决需求分析所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式...

2019-09-17 23:21:11 1361 1

原创 Spring使用RedisTemplate存储键值乱码解决方案

最近在做一个秒杀商品的项目,把mysql的数据导入到redis的时候发现了键会出现\xac\xed\x00\x05t\x00\x0e代码插入的时候并没有做什么特殊的处理,但是为什么会出现这样的情况呢?// 将数据存入到redis的hash数据结构中(类似于map) redisTemplate.boundHashOps(TbSeckillGoods.class....

2019-09-08 12:52:17 2380

原创 codegenerator(生成Mybatis持久层代码)

通过工具生成持久层的代码和实体对象,能提高我们的开发效率,不用重复去写这些相同的内容 从github上导入项目到idea路径:https://github.com/yaochunguang/codegenerator.git使用maven导入jar包修改GeneratorSqlmap中配置文件位置配置要生成代码的表修改generatorConfig.xml即可 运行项...

2019-09-06 23:45:01 2313

原创 MySQL索引

SQL优化是我们在面试的时候经常遇到的问题,而SQL优化主要在索引方面。下面这篇文章就来介绍一下MySQL的索引。索引的作用索引的优缺点索引的分类索引的设计原则创建索引查看索引删除索引面试题索引的作用索引在数据库中的作用是快速找出某个列中一个特定值的行,不使用索引的话,MySQL必须从第一条记录遍历到相关行,表越大,花费的时间越多,但是如果有索引,就能快速的到达某个位置去...

2019-08-28 01:07:19 143

原创 HashMap和HashTable的区别(面试题)

在面试的时候,面试官问到了平时常用的容器HashMap。问到的问题是,请你说说HashMap和HashTable的区别。感觉自己回答得很笼统,比较混乱,现在总结一下:1、是否线程安全HashMap不是线程安全的,HashTable是线程安全的;【HashTable内部的方法基本都使用了synchronized关键字修饰】 注意:现在HashTable在我们的开发中很少很少使用。...

2019-08-26 00:00:10 8880

原创 idea调试maven项目

maven debug 调试关联maven项目启动调试进行调试

2019-07-06 13:00:16 3845

原创 Dubbo注册到zookeeper报错

最近在学习Dubbo的知识,就做一个入门小demo,但是一直报错,很懊恼。本来是一个简单的客户端调用服务端的例子,但是一直访问不到。报错如下严重: StandardWrapper.Throwableorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userCon...

2019-06-29 12:04:49 2103

原创 String、StringBuffer、StringBuilder的区别

概述相信使用java的小伙伴对于String、StringBuffer、StringBuilder这三者已经很熟悉,特别是对于String是我们常用的数据类型。那么这三者有什么区别呢?是否是线程安全的呢?在开发中我们又该如何选择呢?String、StringBuffer、StringBuilder区别简单的来说,String是不可变的;StringBuffer和StringBuilde...

2019-06-18 23:25:41 255

原创 悲观锁和乐观锁(面试题)

悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不...

2019-06-13 23:32:06 2131

原创 SQL优化(面试题)

最近在面试的时候经常被问到SQL优化,总结如下:1、在表中建立索引,优先考虑where、group by使用到的字段。2、尽量避免使用select *,返回无用的字段会降低查询效率。如下:SELECT * FROM t优化方式:使用具体的字段代替*,只返回使用到的字段。3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描。如下:SELECT...

2019-06-13 22:21:12 17812 1

原创 SpringBoot入门篇

SpringBoot简介SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成的是SpringMVC框架。Spring Boot的主要优点:为所有Spring开发者更快的入门开箱即用,提供各种默认配置来简化项目配置内嵌式容器简化Web项目没有...

2019-06-05 00:58:03 229

hive级联求和

级联求和的例子,通过这个例子可以掌握一类相同的报表级联求和的题目

2019-04-10

大数据基础加强

这个一个关于大数据的基础加强,可以通过这些资料先对大数据一个初步的认识。

2019-02-28

java基础巩固

java面试基础题,包括了基础知识,数据库,框架,常见大厂的面试题等

2019-01-29

shell编程

练习shell命令,对这些命令进行熟悉,方便以后对这些命令进行使用

2019-01-24

自动部署脚本

自动部署脚本,用于回传到公司写自动化备份数据库数据的脚本

2019-01-24

redis安装包

redis的linux安装包,这个是3.2.2版本的,到公司下载这个版本来安装到机器上进行练习

2019-01-22

ssh免密登录设置

linux下配置ssh免密登录,方便从不同的机器进行数据和文件的交换

2019-01-22

spring第四天课堂笔记

spring第四天的笔记,介绍jdbctemplate的知识,黑马的笔记,挺不错的。

2018-12-13

Springmvc第一天课堂笔记

springmvc对一天对应的课堂笔记,可以通过看笔记来巩固学习的内容,对应的代码已经上传。

2018-12-10

Springmvc入门程序

springmvc第一天对应的代码,适合复习的时候一边看文档一边看代码来进行巩固。

2018-12-10

spring第一天课堂笔记

黑马spring第一天课堂笔记,关于spring介绍和入门都比较基础的文档。

2018-11-13

spring + springmvc + mybatis整合

这个是一个spring + springmvc + mybatis整合的项目,初学者可以参考一下,发现什么问题或者有更好的建议请提出来。共勉!

2017-10-08

空空如也

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

TA关注的人

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