自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mischen520的博客

技术成就梦想

原创 java连接Sftp,实现文件上传下载

1.创建FileUtils, package com.mischen.pay.common.utils; import java.io.File; /** * 文件工具类 * @author Peter * */ public class FileUtils { /** * 传...

2020-04-06 06:42:26 109 0

原创 利用RSA生成数字签名以及验签核心代码实现

1.创建BaseUtil文件,代码如下: package com.itmuch.cloud.util; import java.io.ByteArrayOutputStream; /** * base64 format encoding & decoding */ public...

2020-04-05 18:05:29 87 0

原创 RSA随机生成密钥对,私钥公钥加解密工具类

package com.itmuch.cloud.util; import org.apache.tomcat.util.codec.binary.Base64; import javax.crypto.Cipher; import java.security.*; import java.s...

2020-04-05 17:36:39 91 0

原创 java保留小数点后两位数的基础代码封装

package com.itmuch.cloud.test; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.NumberF...

2020-04-05 10:41:33 42 0

原创 java生成随机数基础代码封装

package com.itmuch.cloud.util; import java.util.Random; /** * 类描述:生成随机数 * * @author: mischen * @date: 日期:2020-04-04 时间:下午11:45:45 * @version ...

2020-04-04 23:48:16 52 0

原创 ResourceBundle的实现方式

ResourceBundle主要用于读取java里面的配置文件,代码如下: package com.itmuch.cloud.util; import java.text.MessageFormat; import java.util.HashMap; import java.util.Ma...

2020-04-04 11:32:35 40 0

原创 java数据访问层核心代码封装

封装代码如下, package com.mischen.pay.common.core.dao.impl; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Ma...

2020-03-29 10:23:14 55 0

原创 java基础访问层数据封装

直接上代码, package com.mischen.pay.common.core.dao; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import...

2020-03-29 10:11:05 49 0

原创 java建表核心基类实现,最基础的字段封装

最基础的实体封装,以后所有的需要的实体都可以继承他直接使用,如果需要在网络中传输或者持久化,就需要实现序列化接口,核心基础实体类如下所示: package com.mischen.pay.common.core.entity; import java.io.Serializable; im...

2020-03-29 10:06:19 100 0

原创 https请求核心代码实现,包括证书认证

直接上代码,如下: package com.mischen.pay.common.core.utils.httpclient; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.log4...

2020-03-29 09:35:41 44 0

原创 java中为什么要定义枚举?以及定义枚举的好处?枚举代码示例/* * ================================================================

枚举的本质实际上是一种多例模式,枚举中可以定义各种类型,在开发中使用枚举主要是考虑到线程安全,代码如下: package com.mischen.pay.common.core.enums; import java.util.ArrayList; import java.util.HashM...

2020-03-29 09:07:13 49 0

原创 zookeeper实现分布式锁的原理?

1.客户端对某个方法加锁时,在 zk 上的与该方法对应的指定节点的目录下,生成一个唯一 的瞬时有序节点 node1; 2.客户端获取该路径下所有已经创建的子节点,如果发现自己创建的 node1 的序号是最小 的,就认为这个客户端获得了锁。 3.如果发现 node1 不是最小的,则监...

2020-03-28 11:00:07 27 0

原创 什么是https?http与https的区别?

HTTPS 和 HTTP 的区别主要如下: 1)https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。 2)http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协议。 3)http 和 https 使用的是完全不同的连接方...

2020-03-28 09:57:22 40 0

原创 利用Collections.sort给对象排序,查找对象里面自己想要的值(核心代码逻辑实现)

直接上代码,根据我多年的工作经验,下面这段代码经过改编,有可能会经常用到,如下: package com.itmuch.cloud.test; import java.util.ArrayList; import java.util.Collections; import java.util...

2020-03-27 23:16:21 32 0

原创 什么是AIO,BIO,NIO?

2020-03-27 22:41:19 30 0

原创 怎样快速拿到list中的最小值

本文使用jdk1.8中的流式算法,代码简洁,比之前for效率提高了不少,代码如下: package com.itmuch.cloud.test; import java.util.ArrayList; import java.util.List; /** * @author:mische...

2020-03-27 22:18:13 88 0

原创 java1.8使用stream流快速拿到集合中的最大值或者最小值或者某个对象的案例分析

直接上代码,截图如下: package com.itmuch.cloud.test; import java.util.ArrayList; import java.util.List; /** * @author:mischen * @date:2020/3/27 22:02 */...

2020-03-27 22:15:30 664 0

原创 java快速查看接口实现类的快捷键

idea快捷键:ctrl+alt+b eclipse快捷键:ctrl+t

2020-03-27 21:59:26 238 0

原创 Hashmap 为什么线程不安全(hash 碰撞和扩容导致)

2020-03-23 22:08:13 61 0

原创 常见的网络攻击?

1.SYN Flood 攻击 关于 SYN Flood 攻击。一些恶意的人就为此制造了 SYN Flood 攻击——给服务器发了 一个 SYN 后,就下线了,于是服务器需要默认等 63s 才会断开连接,这样,攻击者就可以 把服务器的 syn 连接的队列耗尽,让正常的连接请求不能处理。于...

2020-03-23 22:03:04 19 0

原创 java中的安全加密

11.1 数字签名 2.验证过程发送者:将报文通过 hash 算法生成摘要,用私钥加密生成签名。 接收者:使用公钥解密数字签名,得到摘要 A,再对报文进行 Hash 算法得到摘 要 B,比较 A 和 B,一致则表示没有被修改。 11.2 数字证书 数字证书则是由证书认证机构(C...

2020-03-23 22:01:39 37 0

原创 Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?

Java 中 static 方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而 static 方法 是编译时静态绑定的。static 方法跟类的任何实例都不相关,所以概念上不适用。 java 中也不可以覆盖 private 的方法,因为 private 修饰的变量和方法只能在当前类中使...

2020-03-22 09:09:49 45 0

原创 java中什么是自动装箱与拆箱

自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比 如:把 int 转化成 Integer,double 转化成 Double,等等。反之就是自动拆箱。 原始类型: boolean,char,byte,short,int,long,float,double ...

2020-03-22 08:38:28 25 0

原创 synchronized锁和lock锁的区别?

方法锁主要包括:synchronized锁和lock锁 区别: 1)Lock是一个接口,而synchronized是Java中的关键字; 2)synchronized当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,不能够响应中断,(释放:1执行完线...

2020-03-21 09:36:42 69 0

原创 举例说明什么情况下会更倾向于使用抽象类而不是接口?

接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性, 可以适应不断变化的需求。下面有几个点可以帮助你回答这个问题: 在 Java 中,你只能继承一个类,但可以实现多个接口。所以一旦你继承了一个类,你就 失去了继承其他类的机会了。 接口通常被用来表示附属描述...

2020-03-21 09:23:58 326 0

原创 java 中垃圾收集的方法有哪些?

1. 标记-清除: 这是垃圾收集算法中最基础的,根据名字就可以知道,它的思想就是标记哪些要被 回收的对象,然后统一回收。这种方法很简单,但是会有两个主要问题:1.效率不 高,标记和清除的效率都很低;2.会产生大量不连续的内存碎片,导致以后程序在 分配较大的对象时,由于没有充足的连续...

2020-03-21 09:14:29 77 0

原创 简述分代垃圾回收器是怎么工作的?

分代回收器有两个分区:老生代和新生代,新生代默认的空间占比总空间的 1/3,老生代的默认占比是 2/3。 新生代使用的是复制算法,新生代里有 3 个分区:Eden、To Survivor、From Survivor,它们的默认占比是 8:1:1,它的执行流程如下: 把 Eden + From ...

2020-03-16 21:32:54 115 0

原创 Synchronized和ReentrantLock的实现原理有什么不同

其 实 , 锁 的 实 现 原 理 基 本 是 为 了 达 到 一 个 目 的 : 让 所 有 的 线 程 都 能 看 到 某 种 标 记 。 Synchronized 通 过 在 对 象 头 中 设 置 标 记 实 现 了 这 一 目 的 , 是 一 种 JVM 原 生 的 锁 实 现 方 式 ...

2020-03-15 10:28:27 135 0

原创 什么是AQS ?

AQS( AbstractQueuedSynchronizer 类 ) 是 一 个 用 来 构 建 锁 和 同 步 器 的 框 架 , 各 种 Lock 包 中 的 锁 ( 常 用 的 有 ReentrantLock、 ReadWriteLock) , 以 及 其 他 如 Semaphore、 C...

2020-03-15 10:21:33 56 0

原创 为 什 么 说 Synchronized 是 非 公 平 锁

非 公 平 主 要 表 现 在 获 取 锁 的 行 为 上 , 并 非 是 按 照 申 请 锁 的 时 间 前 后 给 等 待 线 程 分 配 锁 的 , 每 当 锁 被 释 放 后 , 任 何 一 个 线 程 都 有 机 会 竞 争 到 锁 , 这 样 做 的 目 的 是 为 了 提 高 执 行...

2020-03-15 10:15:38 1094 0

原创 线程池创建的具体流程分析(面试重点)

线 程 池 默 认 初 始 化 后 不 启 动 Worker, 等 待 有 请 求 时 才 启 动 。 每 当 我 们 调 用 execute() 方 法 添 加 一 个 任 务 时 , 线 程 池 会 做 如 下 判 断 : 如 果 正 在 运 行 的 线 程 数 量 小 于 core...

2020-03-14 08:59:26 72 0

原创 什么是泛型以及泛型的作用?

泛型是java 1.5之后推出来的新特性,他的出现是为解决对象向下转型所带来的一些安全隐患。其本质思想是:类的属性或者方法的参数都是可以由用户在使用的时候动态设置的,简单归纳来,泛型其实就是在定义类、接口、方法的时候不局限地指定某一种特定类型,而让类、接口、方法的调用者来决定具体使用哪一种类型的参...

2020-03-07 10:11:58 99 0

原创 zuul和Spring Cloud Gateway的比较

1.开源组织不同。 Spring Cloud Gateway 是 Spring Cloud 微服务平台的一个子项目,属于 Spring 开源社区,依赖名叫:spring-cloud-starter-gateway。 https://spring.io/projects/spring-clou...

2020-03-03 21:34:01 373 0

原创 分页组件工具类

package com.mischen.common.core.page; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * ...

2020-02-29 09:31:23 78 0

原创 EurekaServer注册中心详细代码示例

工具:eclipse,新建一个maven项目, 编写pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...

2020-02-12 11:32:32 70 0

原创 java日期工具类代码示例

适用于各种日期函数方法,直接上代码,大家对号入座: package com.roncoo.pay.common.core.utils; import java.sql.Timestamp; import java.text.ParseException; import java.text....

2020-02-11 08:22:20 36 0

原创 分布式事务-事务上下文代码实现

package org.mengyun.tcctransaction.utils; import org.mengyun.tcctransaction.common.MethodType; import org.mengyun.tcctransaction.api.TransactionCont...

2020-02-10 11:01:03 97 0

原创 TCC补偿切面核心代码实现

package org.mengyun.tcctransaction.spring; import org.apache.log4j.Logger; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.anno...

2020-02-10 10:51:59 53 0

原创 分布式事务的解决方案以及应用场景

常用的分布式事务解决方案: - 可靠消息最终一致(异步确何型) - TCC (两阶段型、补偿型) - 最大努力通知(非可靠消息 、定期校对) 三种解决方案均是基于柔性事务实现最终一致性。 异步消息确保型方案,基于MQ中间件实现,或者说是对MQ不支持分布式事务进行的改进,使用...

2020-02-10 10:47:05 174 0

原创 tcc总配置文件详解

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns...

2020-02-10 10:26:55 49 0

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