- 博客(70)
- 收藏
- 关注
原创 本地项目提交 Github
打开 Idea ,选择 VCS 菜单栏,展开后,选择 Create Git Repositorie ,再选择需要提交的项目。将代码,提交到本地,第二个红框是让你填写提交信息,图示是已经提交到本地的情况,没有提交到本地时,会显示那些文件会被提交。创建完成之后,找到存储库的 ssh 地址或 https 地址,这取决于你自己的配置,此处不再展开说。填写存储库地址,推送到刚刚创建的 Github 存储库。右击项目,选择 Git 菜单栏,展开后,选择 Add。使用注册好的 Github 账号,登陆。
2024-04-09 23:07:54 298
原创 Jsch 使用过程中遇到的问题及解决方法
*注意:**笔者是通过用户名+密码的方式,获取连接,也可以通过公私钥的方式获取,就不再进行代码演示。每次获取 session 连接时,从缓存中获取,如果 session 连接失效,(该步加锁,避免竞争问题)则从缓存中删除连接,并重新获取并放到缓存中。以上的版本是笔者正在使用的,目前没有发现有安全漏洞,但是,该项目已经有很长时间没有维护了。使用缓存将已获取的 session 连接存储起来,每次都从缓存中获取,使用前都验证下看 session 连接是否失效。session 连接失效,无法下载文件的问题?
2023-11-27 14:34:28 484
原创 RedisTemplate 使用 pipeline 时需要注意的问题
看源码,RedisTemplate 也是把 key 和 value 都转为了字节,但是使用了我们自己设置的 Serializer ,所以,我们在使用 pipeline 时,也需要使用我们设置的 Serializer。根据源码来看,Redis 的其他数据结构,使用 pipeline 时,也会存在序列化的问题,在代码编写的时候,需要注意。
2023-11-07 10:24:15 238
原创 rm -rf,删了文件空间却没释放?
服务器磁盘告警,排查之后,需要清除掉服务器上没用的大文件x.log,但是当使用了rm -rf 删除服务下的大log文件,却发现还是告警,可用空间沒有变化。有点慌,怎么办?
2023-10-28 20:31:15 933 1
原创 Idea 插件 FindBugs 安装及使用
环境信息idea版本IntelliJ IDEA 2020.3.2 (Ultimate Edition)Build #IU-203.7148.57, built on January 26, 2021jdk版本java version "1.8.0_231"安装通过以下路径查询插件 FindBugsFile->Settings->Plugins->Marketplace插件安装点击 install 安装,接着重启 idea注意事项Find
2022-05-13 18:11:09 3773 2
原创 Java 8 中的 HashMap
红黑树(red black tree)特点一个节点是红色或黑色根节点是黑色如果一个节点是红色,那么它的子节点必须是黑色一个节点到一个null引用的每一条路径必须包含相同数目的黑色节点(红色节点不影响)两种旋转方式和一种颜色变换单旋转方式双旋转方式(需要两次反方向的单旋转)当两个子节点均为红色的时候,执行颜色变换,因为插入的是红色节点,会产生冲突。例如根节点的子节点是红色,两个叶子节点变成黑色,根节点变成红色,再变成黑色。问题为什么插入的总是红色节点?因为插入前,树都是构
2022-05-13 18:10:03 284
原创 win10 Jdk 版本切换
环境信息系统:Win 10jdk:7、8、11安装方式:可执行文件安装(exe 格式)切换步骤1. jdk 安装后,一般我们会手动添加 JAVA_HOME 系统环境变量,然后将 %JAVA_HOME%\bin 添加到系统环境变量 Path中,如图所示2. 检查以下目录是否包含 java.exe、javaw.exe、javaws.exe 三个文件,包含的话,可删除,也可不删除-- 64 位C:\Program Files\Common Files\Oracle\Java\javapat
2022-05-13 18:07:42 1518
原创 Java 应用配置 GC 日志输出内容
Java 应用配置 GC日志输出文件GC 日志部分配置项基本 GC 日志信息-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintGCTimeStampsGC 后对象年龄分布信息-XX:+PrintTenuringDistributionGC 后打印GC前后的堆数据-XX:+PrintHeapAtGCGC会产生暂停,打印 STW 时间(暂停时间)-XX:+PrintGCApplicationStoppedTime[外链图片
2022-05-13 18:06:09 1834
原创 Spring事务及事务失效的部分场景
简介spring 有五个事务隔离级别:ISOLATION_DEFAULT、ISOLATION_READ_UNCOMMITTED、ISOLATION_READ_COMMITTED、ISOLATION_REPEATABLE_READ、ISOLATION_SERIALIZABLE第一种是 Spring 默认使用 DB设置的事务隔离级别,后面四种事务隔离级别跟 Mysql 的事务隔离级别一致,下面就类比着 Mysql 的事务隔离级别,进行分析!!!事务并发可能产生的问题释义脏读 ( Dirty Read
2022-05-13 18:03:45 742
原创 Maven配置文件(setting.xml)属性解析
前置信息Maven 版本:apache-maven-3.5.2Nexus 信息:nexus2、nexus3镜像仓库:如果仓库 X 可以提供仓库 Y 存储的所有的内容,那么仓库 X 就可以说是 仓库 Y 的镜像(也就是说能从仓库 Y 获取的内容,从仓库 X 也能获取)属性解析setting<setting>setting 文件的根元素</setting>localRepository<localRepository>本地仓库</localRepos
2022-05-13 17:59:01 4522
原创 Ubuntu 20.04 LTS安装 Redis 5.0.7
准备工作环境:Ubuntu 20.04Redis版本:5.0.7安装 RedisRedis 软件包在 UbUbuntu 20.04 默认在设置的软件源中,执行命令:sudo apt updatesudo apt install redis-server安装完成后,Redis的服务会自动启动,检查服务的状态,执行命令:sudo systemctl status redis-server正常启动时,应该看到下面的内容:● redis-server.service - Advanced k
2021-01-17 20:48:53 2104 1
原创 新的日期和时间( Java 8 )
为什么我们需要新的Date和Time类!Java8之前所有的日期类都是可变的,这就导致了线程不安全问题;java的日期和时间类的定义不一致,在java.util和java.sql中都包含日期类;java.util.Date同时包含日期和时间,但是java.sql中只包含日期,将其纳入java.sql中的是不合适的,而且更糟糕的是:这两个类中的日期类的名字都是一样的;对于时间、时间戳、格式化及解析,没有一些明确定义的类,而且对于格式化和解析的需求,Java中有java.text.DateFormat
2021-01-16 00:24:00 533
原创 Lambdda表达式( Java 8 )
在Java的语言世界里面,除了基本的数据类型,一切都是对象,例如:String字符串、每个对象实例、数组这些都是对象。在Java中方法是不能完全独立存在的,不能将方法作为参数或者返回值给实例。注意:方法(Method),函数(Function),在Java中是没有函数的,因为Java是一个面向对象编程的语言;函数更多的意义是用来表述面向过程的语言;又或者说"函数是大家的函数,方法是类的方法",不过,不用这么纠结,我们可以认为在Java中方法就是函数,函数就是方法。为什么出现Lambda表达式从线程的构建
2021-01-16 00:21:08 249
原创 Stream API ( Java 8 )
Stream API 简介Stream’API是Java8中的新特性,基于Lambda表达式,对Collection(集合)的各种操作有了很大的改变,极大的提升了编码效率和代码的可读性。Stream有串行和并行两种模式,并行模式会自动创建多个线程,使用fork(join)Java7特性,来拆分任务和加速处理过程。Stream是一种类似IO流的东西,但是并不相同,实质是对集合操作的一种高度抽象,而且更重要的是,Stream不是数据结构,是不存储数据的,数据存储在底层的集合中,或者根据需要产生出来(例如Str
2021-01-16 00:09:39 223
原创 Optional静态类( Java8 )
Optional简介在Java8中的StreamAPI有很多操作都返回了Optional对象,那么这个对象是用来干嘛的,用来解决空指针问题,产生的一个类。也可以认为这是一个容器对象,因为它可以保存类型为T的对象,也可以保存nullOptional类源码import java.util.NoSuchElementException;import java.util.Objects;import java.util.function.Consumer;import java.util.functi
2021-01-16 00:06:28 115
原创 服务器性能问题排查
服务器性能问题一般有两种: 高内存占用、高CPU占用,比如应用程序高内存占用,可能是因为文件读写、频繁的IO、内存频繁GC,进一步占用了内存和CPU;比如应用程序高CPU占用,可能是因为大任务计算、死循环、卡死、不断超时或者重试。所以需要具体问题具体分析。 高内存占用现象是应用响应慢、内存溢出、应用进程直接死掉。体现到代码里面可能是死锁和饥饿,因为资源不释放;需要关注,空闲可用内存还有多少,buff[(Page Cache)是一种高速缓存,用于CPU和内存之间的缓冲 ,是文件系统的cache。
2021-01-16 00:05:16 480
原创 Java实现哈希函数/散列算法
// 哈希函数/散列算法// 根据某个值进行hash值计算,确保唯一性public class HashUtils { private static final String ALGORITHM = "SHA-256"; public static String sha256Hex(byte[] bytes){ MessageDigest messageDigest; String encodeStr = ""; try {
2021-01-15 23:37:26 866
原创 Maven的deploy插件使用
deploy插件的使用第一种方式项目引用maven之后,通过idea的侧边栏直接使用,具体位置如图所示:此时项目中的pom文件配置如下图所示:此时就可以上传jar包到指定的仓库注意:使用该种方式如果出现下面的报错,可以使用第二种方式Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project mdb-board: Deployment
2021-01-15 23:35:04 4603
原创 SpringBoot配置及加载Mybatis
Mybatis配置类及xml属性文件/** 博主使用的springBoot版本为1.5.8.RELEASE @Configuration注解标识该类为一个配置文件 @MapperScan注解属性: 1. basePackages可以设置多个mapper.xml所在的全限定包名 2. annotationClass = Mapper.class (过滤的作用,只有包含注解的mybatis接口才会被扫描进去,一般不用) 3. sqlSessionFactoryRef="xxxSq
2021-01-15 23:30:36 898
原创 AES加密及解密
public class AesUtil { static { Security.addProvider(new BouncyCastleProvider()); } private static final String ALGORITHM = "AES/ECB/PKCS7Padding"; /** * AES加密 * * @param content 需加密的字符串 * @param key 密钥
2021-01-15 23:21:34 364
原创 redis实现分布式锁
// 分布式锁实现使用的版本// springBoot的版本:org.springframework.boot:spring-boot:1.5.8.RELEASE// redis的版本:org.springframework.data:spring-data-redis:1.8.8.RELEASE// lombok的版本:org.projectlombok:lombok:1.18.6 // 标识springBoot启动时会扫描该类并创建实例放入spring容器@Component// 引入lo
2021-01-15 23:18:55 102
原创 SpringBoot配置和加载redis
redis在SpringBoot中的配置及加载// spring framework中的注解驱动的缓存管理功能// 与该注解联合使用@Cacheable(cacheNames = "缓存名称", key = "redis中的key")@EnableCaching// 标识该类为一个配置类@Configurationpublic class RedisConfig { @Value("${spring.redis.decryptPassword}") private Strin
2021-01-15 23:15:33 896 1
原创 SpringBoot使用Validator校验框架
Hibernate Validator 简介Hibernate Validator是Hibernate项目中的一个数据校验框架,是Bean Validation 的参考实现,Hibernate Validator除了提供了JSR 303规范中所有内置constraint 的实现,还有一些附加的constraint。Hibernate Validator 作用数据校验逻辑和业务代码分离,程序解耦性提高统一且规范的校验格式,规避了大量重复的数据校验代码精力更加集中于业务代码Hibernate
2021-01-15 23:09:50 646
原创 Ubuntu 20.04.1 LTS安装OpenJDK
一. 安装 OpenJDK 11前期准备root权限或者其他sudo权限用户身份国内软件源(防止速度过慢)Linux版本:Ubuntu 20.04.1 LTS开始安装# 更新软件包索引sudo apt update# 安装OpenJDK 11sudo apt install openjdk-11-jdk安装结果你可以通过查询Java版本检查安装过程,运行下面的命令:java -version输出结果类似这样:openjdk version "11.0.7"
2021-01-15 22:57:43 1683
原创 Win10安装Linux子系统
1. 根据微软的帮助文档安装2. 安装的Linux系统版本通过 cat 命令进行简单查看 运行下面命令: cat /etc/issue输出结果类似这样:Ubuntu 20.04.1 LTS \n \l通过 cat /etc/lsb-release 命令进行具体查看 运行下面命令:cat /etc/lsb-release输出结果类似这样:DISTRIB_ID=UbuntuDISTRIB_RELEASE=20.04DISTRIB_CODENAME=focalDISTRIB_DES
2021-01-15 22:55:42 123
转载 Swagger2注解说明
@Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置"@ApiOperation:用在请求的方法上,说明方法的用途、作用 value="说明方法的用途、作用" notes="方法的备注说明"@ApiImplicitParams:用在请求的方法上...
2018-07-30 16:43:37 271
原创 spring-boot的快速开发
1.使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程菜单栏中选中Files->New->Projects,这个Initializr Service URL 我们一般使用默认,也就是spring官方提供的spring Initializr工具进行创建点击下面的Next之后,稍等片刻,出现下面的页面,我们可以通过...
2018-07-30 15:55:29 255
原创 亚信实习第一周
自从上周五,怀着激动,忐忑的心情来到亚信报到之后,截止到今天,正好上了一周班,对这一周做了什么,进行一下回顾。周一:因为第一天上班,所以起了个大早,来到公司时才八点多一点,九点才上班,由于是第一天上班,就是看了看公司现在做的项目是什么,总体有那些大的模块,就这样晃晃悠悠的第一天过去了周二:还是像昨天一样,只是今天被经理分了导师,也就是我们的组长,一个爱笑的人,说话语气也很好,总之感...
2018-07-27 15:53:22 729
原创 图片验证码乱码问题
将项目上传到服务器之后,运行项目,发现验证码乱码,不能正常显示,这时,要查看我们的代码中设置验证码的字体样式然后,查看服务器上的字体样式有没有我们设置的字体样式,没有的话,我们直接从本地windows上拷贝上传即可服务器上的字体都存放在/usr/share/fonts,这个目录下,windows下的字体都存放于C盘中的fonts目录下,直接搜该目录就好选择好字体样式上传至服务器之后,通过 fc-c...
2018-06-12 19:21:16 2063
原创 Java中的常见集合接口Map,集合Hashtable,HashMap,TreeMap
Map集合:1.将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值2.Map集合被称为双列集合,collection集合被称为单列集合注:将可变对象用作映射键时必须格外小心。当对象是映射中某个键时,如果以影响 equals 比较的方式更改了对象的值,则映射的行为将是不确定的常用方法:1.添加value put(key , value) 返回前一个与key关联的value...
2018-06-11 11:11:12 451
原创 Java中集合接口Collection,集合List,Set
集合的特点:1.集合的长度是固定的2.集合只能存储对象3.集合不可以存储基本数据类型数组与集合的区别:1.数组的长度是固定的,集合的长度是可变的2.数组只能存储基本数据类型,集合只能存储对象注意:Java中集合接口和实现类都位于java.unitl这个工具包下,包含 collection框架,遗留的collection类,事件模型,日期和时间,国际化和各种工具类集合框架:集合容器中因为内部数据结构...
2018-06-10 23:00:43 552
原创 StringBuffter、Stringbuilder和String的应用示例
/* * 多线程使用StringBuffter * 单线程使用StringBuilder */public class StringBufferTest01 { public static void main(String arag[]){ int [] arr = {1,2,3,4,5}; System.out.println(arrayToString_1(arr)); ...
2018-06-05 14:25:30 493
原创 String
String是一个对象,不是基本数据类型;String的特点:字符串对象一旦初始化,便不能被修改;改变的只是引用型变量的指向;例如:String str="abc"; String str = "ert"; "abc";依然存在,只是str的指向变了String str ="abc"; String str = new String("abc"); 的区别:第一个语句在字符串常量池中创建...
2018-06-05 14:19:53 198
原创 StringBuffter与StringBuilder
StringBuffter,StringBuilder属于常用的容器,StringBuffter:是一个线程安全(同步)的可变字符序列,一个类似于String的字符缓冲区,用于存储数据的容器初始容器容量是16个字符特点:长度可变,可以存储不同类型数据,最终都会转成字符串使用,可以对字符串进行修改功能:1.添加StringBuffter append(data);StringBuffter in...
2018-06-05 13:56:36 1122
原创 secureCRT连接虚拟机中的linux
linux的版本:centos-7secureCRT版本:secureCRT-7.31.保证centos-7安装了openssh-server[root@localhost ~]# yum list installed|grep openssh-server2.打开ssh的配置文件[root@localhost ~]# vi /etc/ssh/sshd_config去掉端口注释:开启远程登录:用...
2018-05-20 20:06:35 358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人