自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

全冉 的博客

技术为业务而生!

  • 博客(124)
  • 收藏
  • 关注

原创 怎么获取服务运行的机器真实ip,亲测三种方法有效

方法1:private static String getHostIP() throws SocketException { String ip = ""; try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.n

2021-06-22 23:34:00 700

原创 windows系统下编写的shell脚本放到linux上运行报错:$‘\r‘: command not found

windows系统下编写的shell脚本放到linux上运行报错:$’\r’: command not found原因分析:windows下编辑的shell文件格式为dos格式,而linux只能执行格式为unix格式的脚本。区别是:dos格式下按一次回车键输入的是"\r\n",而unix下按一次回车键只输入"\n",所以在windows下编写的sh文件在每行都会多一个"\r",所以Linux下运行时就会报错:$’\r’: command not found。解决方案有三种:1.用vi/vim转换文件

2021-03-24 16:28:58 1225

原创 idea如何使用【Revert Commit】

一.先说结论针对任何一个代码记录都进行Revert Commit操作:①不管此记录是commit未push,还是已经push过;②不管此记录之后有没有其他的多次commit或push’记录总之都会生成一个新的Revert "xxx"记录,接下来你想commit就commit,想push就push。二.操作步骤1.我有三个记录这三个记录可以是只commit未push,也可以是push过,无所谓。2.随便选择一个进行Revert Commit,我选择"test1"3.点击Reve.

2020-11-25 22:57:46 30225 3

原创 idea怎么使用【Undo Commit...】

一.只能对最后你的一次 commit 或 push 做修改,故分两种情况情况1:最后一次的记录是commit未push情况2:最后一次的记录是已经push二.情况1:最后一次的记录是commit未push1.最近两次commit如图:2.选中commit2,点击Undo Commit…3.弹出这个界面4.然后就剩下这一个commit记录了5.此时你有两种选择① 继续修改代码,然后再次提交,甚至推送②或者在提交窗口中,还原commit 2 的更改三.情况2:最后一次

2020-11-24 23:31:18 23703 11

原创 jdk8的Optional学习

本文只说jdk8的,jdk9又有新的方法增强,感兴趣的自己去学吧。package com.quanran.jedi.protocol.facade.upgrade;/** * @author [email protected] * @date 2019/11/22 11:53:47 */public class TestOptional { public stat...

2019-11-22 11:56:24 206

原创 单机 随机数生成规则

总是需要生成,我就记录一下。如果 你是多个服务情况下,自己加个分布式锁就okpackage com.huifenqi.jedi.channel.alipay.util;import java.util.Calendar;import java.util.Date;import java.util.Random;/** * 非线程安全 id生成器 * @author quanran...

2019-11-21 17:03:48 688

原创 idea如何更改远程分支名称

背景:当你突然觉得你开发的分支名称不顺眼时,怎么办?1.修改本地名称2.删除远程分支3.推送本地分支到远程Git

2019-10-30 18:24:43 14072

原创 idea中,git的cherry-pick怎么用?

1.这个功能估计用得少,看具体情况吧。2.全大冉在A分支上开发,全小冉在B分支上开发,其中各自分支图如下:全大冉的分支A Git提交历史框如下:全小冉的分支B Git提交历史框如下:3.全大冉开发了一个功能【努力成为架构师】,在A分支上commit或push了3次,此时A分支git提交历史图如下:其中,33%和66%的都是push了,100%只commit未push。4.全小...

2019-10-16 21:50:20 26828 15

原创 idea中,如何修改已经commit记录的message?如何修改已经push过记录message?

文章目录1.痛点:你有没有因为手快就commit了,但是忘记修改了message?你是不是有时候觉得自己push过的记录,message写的不明确?这个时候,怎么办?2.修改已经commit但没有push的记录message2.1我现在有3次commit等待push,但是我想把“v1修改”修改成“v1优化”,怎么办?往下看。2.2右击想要修改message的提交历史(注意:是已提交未推送的历史),...

2019-10-16 21:20:09 20920 1

原创 idea中Stash与Unstash的使用

1.痛点:在A分支上正在开发任务1,突然需要切换分支看别的问题,而又不想commit,怎么办?2.我写了这些代码:3.点击工具栏的 VCS -> Git -> Stash Changes…4.输入Message,然后点击 Create Stash5.发现我写的码不在了,如图:6.这会你可以切换分支去干别的了,等你处理完另外的事情,在切回到之前的A分支,想要继续开发,怎...

2019-10-16 20:38:30 12000 3

原创 Idea中,git如何合并多次已push的记录?git如何将多次已push的记录回退至某一版本?

文章目录背景:这篇文章针对下列4种需求都能ok1.现在最近4次记录,v1、v2和v3都已经push,v4只commit了!2.我想将v1~至v4合并成一个记录在提交(1).那么右击v1之前的一次记录,选择Reset Current Branch To Here...(2).然后选择Soft类型,最后点击Reset按钮(3).发现v1~v4的提交记录不在日志记录中了(4).点击提交按钮,发现v1~v...

2019-10-15 21:56:36 5063

原创 Idea中,git如何合并多次commit未push的记录?git如何将多次commit未push的记录回退至某一版本?

1. 现在我想将最近两次的已经commit的记录合并成一个commit2. 选择这两条最早的一次提交记录,右键选择 Interactively Rebase from Here…3.弹出框如图,将最新一次提交改为squash,然后点击Start Rebasing备注:Log 框时间线:是从上到下,越来越早。弹出框时间线:是从上到下,越来越晚。4.在弹出如下图框,默认会将两次提...

2019-09-05 21:21:59 7253 3

原创 idea 乱码解决方法,你可以试试

idea 乱码我看了网上好多别的解决方法,都不行。不经意间,知道了一个方法,可行,限于windows系统!!重要的事情说三遍:限于windows系统,限于windows系统,限于windows系统.第一步打开C盘下的个人目录,找打idea目录下的配置文件,注意此处不是安装目录!重要的事情说三遍:注意此处不是安装目录!注意此处不是安装目录!注意此处不是安装目录!如下图:第二步打...

2019-08-19 19:44:23 640

原创 服务器分析jvm运行情况的命令

1.执行命令:top讲解:输入top命令后按一下大写的P按cpu占用率排序输入top命令后按数字1,查看的cpu的核数为几核top命令显示的是你的程序占用的cpu的总数,也就是说如果你是4核cpu那么cpu最高占用率可达400%,top里显示的是把所有使用率加起来看到Tasks代表当前展示的是进程信息;得到占用cpu最高的进程PID为:159202.执行命令:jstack 进...

2019-07-04 22:46:45 3274

原创 自己用到的一些idea快捷键

背景用惯了eclipse,猛的一下刚转idea懵B了,所以小记一下。命令按两下shift:查找ctrl + f:当前类中查找字符edit->find->Find in Path 或 Ctrl + Shift + f:全局查找字符Ctrl + R:当前文件中替换字符Ctrl + Shift + R:全局替换字符ctrl + f4:关闭当前文件Ctrl + Alt +...

2019-04-06 23:16:46 338

原创 mysql里的索引

mysql 数据库中的索引mysql 中各种索引介绍主键索引它 是一种特殊的唯一索引,不允许有空值。唯一索引与 普通索引 类似,不同的就是:索引列的值必须唯一,但允许有空值。普通索引最基本的索引,没有任何限制。全文索引仅可用于 MyISAM 表,针对较大的数据,生成全文索引很耗时好空间。多列索引(组合索引)为了提高mysql查询效率可建立...

2018-12-29 17:02:15 1551 2

原创 四款我试过的Markdown工具,大家可以参考选择

MarkdownPad2安装汉化与注册码https://blog.csdn.net/weixin_40612082/article/details/80454318MarkdownPad2发生HTML渲染组件出错的解决方案https://blog.csdn.net/geekqian/article/details/78342581markdown语法学习https://bl...

2018-12-25 16:41:08 34273 1

原创 Centos7 安装mysql 8.0.13(rpm)的步骤,就看这一篇就可以。

环境配置操作系统 :CentOS 7.5 64位mysql版本:8.0.13步骤1.卸载系统自带的mariadb-lib查看mariadb版本rpm -qa | grep mariadb卸载mariadbrpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps2.重启机器reboot3.从网易镜像下载mysql安装包wget ...

2018-12-24 17:55:06 12846 11

原创 jdk7与jdk8 如何相互切换

转载请标明出处,辛苦测试1个小时所得https://blog.csdn.net/qq_23167527/article/details/84727839 测试资源:系统:win7旗舰版jdk7:jdk1.7.0_80jdk8:jdk1.8.0_192 各位看官根据自己的实际情况选择以下两种情况之一进行操作:    情况一.如果先安装jdk7,在安装jdk8的情况:...

2018-12-02 21:05:18 5067

原创 常用的8个排序算法,亲测排序

package com.quanran;import java.util.Random;public class Sort { /** * &lt;p&gt; * Discription:[下面的算法顺序在前的比后面的快,但并不绝对。 * 因为我最试的是数组长度从0到805000,如果测试数据长度接近805000, * 则和我说的排序贴合] * &lt;/p&gt;...

2018-09-18 16:03:57 502

原创 实现一个请求的所有日志都拥有同一个标识,简称:实现基于RPC调用的轻量服务追踪。

目录第一步:消费者项目里:使用的日志工具是logback ,下面看日志配置文件logback-spring.xml内容,重点是:[%thread]:打印日志时获取当前线程的名称第二步:消费者项目里:写个拦截器,主要是preHandle方法,给当前请求的线程设置一个线程名称第三步:消费者项目里:将刚才的拦截器注册第四步:消费者项目里:写个过滤器,注意当前过滤器实现的dubbo的Fil...

2018-09-11 15:55:04 1156

转载 泛型 + 反射 讲的比较细致的好文章

我只是提供一个入口,各位读者可以根据目录查看所有的文章......1、《夯实JAVA基本之一 —— 泛型详解(1):基本使用》2、《夯实JAVA基本之一 —— 泛型详解(2):高级进阶》3、《夯实JAVA基本之二 —— 反射(1):基本类周边信息获取》4、《夯实JAVA基本之二 —— 反射(2):泛型相关周边信息获取》5、《夯实JAVA基本之二 —— 反射(3):类内部信息获取》...

2018-09-10 16:58:18 269

原创 非对称加密算法RSA 工具类,拿来可用

package com.quanran.utils;import java.io.ByteArrayOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;impor...

2018-08-20 18:46:07 909

原创 修改springboot控制台输出的图案

原本启动springboot项目的日志是这样的:但是我喜欢看见自己的名字,于是:1.在src\main\resources文件夹下新建banner.txt2.登录网站  patorjk.com/software/taag/ 输入字符串,生成自己想要的图案。3.把图案复制到banner.txt文件中4.启动类处禁用dubbo自己的图案5.然后main方法启...

2018-07-19 21:46:45 10426 2

原创 java中数字签名MD5withRSA和SHA1withRSA

一、简介数字签名用于验证消息发送者的身份,确保其他人无法伪造身份。二、原理数字签名基于非对称加密算法,利用只有拥有者才有私钥的特性(这可以标识身份)进行的。1、数字签名的生成对发送内容先生成有限长度的摘要,再使用私钥进行加密,进而生成数字签名。2、数字签名验证用公钥对数字签名进行解密获取加密内容(其实也就是摘要),再用与发送方相同的摘要算法对发送内空生成摘要,再将这...

2018-07-19 21:22:27 4561

原创 非对称加解密,私钥和公钥到底是谁来加密,谁来解密

第一种用法:公钥加密,私钥解密。---用于加解密第二种用法:私钥签名,公钥验签。---用于签名有点混乱,不要去硬记,总结一下:你只要想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。同一种道理,我在换种说法:私钥和公钥是一对...

2018-06-07 20:07:54 64932 34

原创 eclipse集成lombok,以及lombok注解的使用

一。lombok简介Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法。二。安装lombok 1.首先下载Lombok.jar包,下载地址:http://projectlo...

2018-06-07 15:19:52 16724 2

原创 linux安装svn服务器的两种方式

操作环境:CentOS 7.2 64位==============第一种:采用压缩包安装:比如你们公司服务器上安装软件有自己的规定,一般会采用压缩包安装。==============第一步:SVN服务器端压缩包下载下载地址:http://mirrors.cnnic.cn/apache/subversion/ 我下载的是subversion-1.8.19版本,下载好的压缩包置于目录 /usr/loc...

2018-05-03 18:13:21 33017 2

原创 Eclipse在线安装SpringBoot快速搭建插件-STS

spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。也就是说,Spring Boot是为了简化Spring开发而生,主要思想是

2018-04-03 15:43:17 6334

原创 eclipse打jar

写这篇博客的背景:直接使用eclipse的export功能导出jar文件,适合于项目没有第三方jar包的场景,但是一旦你的项目引用了任何第三方jar包,这个功能就不好使了,解决办法如下:第一种方法:使用eclipse的插件  fatjar,我选择的是在线安装,你们也可以使用离线安装。在线安装步骤:eclipse菜单栏 help -&gt;  install new software  -&gt; ...

2018-04-03 15:26:50 355

原创 linux安装tomcat

系统版本:centos6.5版本 java版本:1.7一、准备工作1、java -version 检查是否有java环境,没有则需要去安装并配置到环境变量中。2、下载tomcat包,下载地址:http://tomcat.apache.org/download-70.cgi可以本地下载后上传到服务器上,也可以直接在服务器上使用wget命令下载,本案例直接使用wget命令下载 :[root@local...

2018-03-07 16:37:27 283

原创 linux上安装maven

1.官网下载 http://maven.apache.org/download.cgi  。最新的是apache-maven-3.5.0-bin.tar.gz2.解压根据自己需求设计自己的解压文件放置目录我选择解压到/usr/local/program目录下cd /usr/local/program解压apache-maven-3.5.0-bin.tar.gztar  -zvxf  /home/z...

2018-03-07 16:30:05 833

原创 tar 命令详解

tar命令[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:[plain] view plain copy-c:建立一个压缩文件的参数指令(create 的意思);  -x:解开一个压缩文件的参数指令!  -t:查看 tarfile 里面的文件!  -r:向压缩归档文件末尾追加文件 

2018-03-06 16:52:57 3750 1

原创 图片验证码的方法

1.生成验证码的工具类package com.quanran.common.util;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.util...

2018-03-02 10:51:34 2945

原创 大批量数据excel下载---本文作者只试了51万数据的下载,用时7秒

一.背景:现在的项目里,有诸多下载功能,随着数据越来越多,下载的时间也越来越长,很影响用户体验,为了解决这一问题,我不得不挺身而出,斩破难关。项目中原本用的是poi-HSSFWorkbook,但是如果是50万数据量下载,回经历一个漫长的等待过程,然后内存溢出。jxl也不用想了,估计也差不多。二.两种方法:后来从网上搜索发现针对大数据量的导出有两条路可以走:第一:用poi-SXSSFWo

2018-02-02 14:05:37 12151

原创 springboot项目的resource文件下的资源文件通过浏览器下载到本地

1.springboot下的资源文件位置,如图:2.java代码写在上图的src/main/java包下的一个controller里,具体代码如下:package com.quanran.controller;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;impor

2018-02-01 19:26:41 17566 10

原创 Navicat 里有个库的表打不开,一直加载,还不能关闭

用Navicat for mysql操作mysql数据库,其中一个表怎么也打不开,一直加载,还不能关闭。从网上搜索原因,主要是以下几个原因:原因一:表死锁,会出现这样的情况,锁不释放,无论多久都读取不了数据,一直加载中!原因二:表里面的数据量太大造成的。          原因三:网络慢,卡,数据不能传输。经过分析,个人觉得是愿意一导致我的问题,所以,百度下用如

2018-01-11 17:45:15 27077 3

原创 java正则总是:java.lang.IllegalStateException: No match found 的分析解决

package com.quanran;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexTest { /** * Discription:[根据传入的regex正则表达式,找到source中的匹配部分] * Created on 2017年12月22日 下午2:12

2017-12-22 14:36:50 13163 6

原创 HttpClient post请求调取接口 例子

package com.xiaojukeji.service;import java.io.IOException;import java.util.List;import org.apache.http.Consts;import org.apache.http.HttpStatus;import org.apache.http.NameValuePair;import org.

2017-12-20 10:44:22 3720

原创 group by的使用

一.group by 用法解析group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。某个员工信息表结构和数据如下:  id  name  dept  salary  edlevel  hiredate       1 张三 开发部 2000

2017-12-06 15:00:20 754

空空如也

空空如也

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

TA关注的人

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