![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 73
dengjili
一个人在党性、真诚、智慧三样东西中,只可能拥有两样
update by 2022/2/9
同时拥有党性、真诚、智慧,已经不是普通人
展开
-
容错机制记录
当我们使用某些功能的时候,有时候不一定会成功,那么我们将采取什么样的策略处理这种异常情况呢,下面我们通过例子说明如上图所示,app2通过网络调用app1接口,app1是是由三台机器共同组成的集群failfast快速故障当系统发生错误,立即反馈错误eg1:当app2携带错误Token访问app1接口时,app1立即反馈错误信息failsafe故障安全当系统发生错误,将故障在不会造成影响或尽量减少影响eg1:当app2调用接口查询app1某些接口时,如查询IPhone 10终端手机的颜色,app原创 2021-03-14 00:46:41 · 198 阅读 · 0 评论 -
编程范式:命令式编程(Imperative)、声明式编程(Declarative),函数式编程(fp)
参考比较好的博客:https://www.cnblogs.com/sirkevin/p/8283110.html下面是我自己的总结命令式编程命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。对应英文即为How,如何实现(Imperative is How to do)eg1. 命令式事务,使用者自行实现@Componentpublic class Utils { @Autowired private DataSourceTransactionManager d原创 2021-03-11 23:22:33 · 714 阅读 · 0 评论 -
Btrace使用
使用场景当我们的应用服务发布以后,出现了问题,需要加一些日志辅助定位怎么办,添加代码,重启服务?,代价太高了,应用不能随意启停,那么我们可以考虑使用Btrace,动态的插入一些代码。下载工具btrace下载地址我下载的版本是:https://github.com/btraceio/btrace/releases/download/v2.0.1/btrace-bin.tar.gz目录结构...原创 2020-04-26 11:43:07 · 375 阅读 · 3 评论 -
jconsole解决 the management agent is not enabled on this process
将%TEMP%和%TMP%环境变量更改为指向在新的位置(例如C:\ Users \ [YOUR_NAME] \ Temp)中创建的文件夹即可解决解决后原创 2019-11-23 15:20:39 · 352 阅读 · 0 评论 -
靓号,java正则表达式的实现
QQ靓号:https://haoma.qq.com/shop.html?ADFROM=other.actimport java.util.regex.Pattern;public class QQMatches { public static void main(String args[]) { // 顶级靓号 // AABBCC (允许A==B==C) String p...原创 2019-02-22 01:34:02 · 4043 阅读 · 2 评论 -
java中常用的压缩与解压
目录各算法测试结果比较抽象接口具体的算法实现deflategzipbzip2lzolz4snappy测试代码对象生成辅助类测试类公共代码重构抽象基类AbstractCompress重构后Bzip2Compress如下其他各算法测试结果比较压缩时间包括对象创建,压缩,解压过程,这里没有移除调对象创建时间,可根据代码多文件大小进行多次测试,这里仅仅是举例算法名称压缩前文件大小压缩后文...原创 2019-01-19 16:40:00 · 1471 阅读 · 7 评论 -
java中常用的对称加密与非对称加密
目录特殊说明对称机密DES3DESAES非对称机密RSA特殊说明所有的算法都有main方法,可直接运行对称机密同一个秘钥DESimport java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.util.Base64;import java.util.loggin...原创 2019-01-05 17:41:35 · 3025 阅读 · 5 评论 -
java中的深拷贝与浅拷贝
目录概念浅拷贝快速入门例子(不带对象属性)深拷贝快速入门例子(不带对象属性)属性未实现Cloneable 例子(浅拷贝)属性实现Cloneable 例子(浅拷贝)概念浅拷贝(浅复制、浅克隆):被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅拷贝仅仅复制所拷贝的对象,而不复制它所引用的对象。深拷贝(深复制、深克隆):被复制对象的所有变量...原创 2019-01-03 19:56:28 · 3190 阅读 · 2 评论 -
spring xml装配bean (装配bean一)
最基础的装配xml配置 <bean id="helloWorld" class="priv.dengjl.spring.HelloWorld"> <property name="message" value="Hello World!" /> </原创 2018-10-31 20:20:15 · 193 阅读 · 0 评论 -
优雅的解决工具类设计
目录优雅案例一针对bean2Map的问题,由于是类型转换,我们很容易想到适配者思想针对map2Bean与map2Bean2的两种不同实现,我们很容易想到策略者模式,针对不同的实现封装类优雅案例二优雅案例一问题思考:在考虑设计工具类时候,大多数情况我都习惯的都是涉及为一个类,然后定义一个常量方法,然后通过调用这个常量方法复用,大体如下举例说明:类型转换工具类,bean与map的转换,说明两种场...原创 2019-03-26 23:45:46 · 326 阅读 · 0 评论 -
基于java 8 的时间工具类封装
import java.time.DayOfWeek;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.ZoneId;import java.time.ZonedDateTime;import java.time.format.Da...原创 2019-05-06 14:26:53 · 897 阅读 · 1 评论 -
java 8 Stream中flatMap方法
在java 8 Stream中,flatMap方法是一个维度升降的方法举例说明给 定 单 词 列 表[“Hello”,“World”] ,要返回列表 [“H”,“e”,“l”, “o”,“W”,“r”,“d”] 。使用map方法,代码如下:public class StreamStr { public static void main(String[] args) { List<...原创 2019-05-26 01:33:13 · 17942 阅读 · 3 评论 -
java Exception异常使用
e.getCause()使用 @Test public void test1() { try { try { try { int i = 1 / 0; } catch (Exception e) { throw new CompletionException("asdf", e); } } catch (Exception e) {...原创 2019-05-26 15:14:18 · 587 阅读 · 0 评论 -
谈谈Junit4
为什么要使用Junit结合自己在企业项目的感受,谈谈为什么一定要用Junit来写测试类。之前看过好多人写的代码都是通java main方法来完成测试。主要是谈谈两者区别?从代码从此分析入手一下,定义一个类public class Calculate { public int compute(int x, int y) { return x + y; }}main方法测试p...原创 2019-05-27 01:13:23 · 243 阅读 · 0 评论 -
java 大文件拆分、压缩传输
当前需求每个文件压缩前最大为50M,超出文件限制指标在新文件中存储,新文件序号+1,序号从001开始最大为999,性能文件生成后采用gzip压缩存储。分析文件压缩、解压文件拆分、合并文件拆分、合并生成测试文件public class GenerateFileDemo { public static void main(String[] args) throws IOEx...原创 2019-06-25 13:34:53 · 7013 阅读 · 0 评论 -
Lombok使用
Lombok下载官网下载链接:https://projectlombok.org/download安装双击刚刚下载的软件选择eclipse所在目录目录点击安装,安装成功查看eclipse安装目录文件eclipse.ini使用Lombok导入maven<dependency> <groupId>org.projectlomb...原创 2019-08-03 21:47:32 · 216 阅读 · 0 评论 -
String intern
intern api描述public String intern()返回字符串对象的规范化表示形式。 一个初始为空的字符串池,它由类 String 私有地维护。 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。 ...原创 2019-08-23 00:33:03 · 130 阅读 · 0 评论 -
基于普通ajax封装业务框架
代码如下,具体不解释var gz_rm = { // 统一定义web层返回关键字 SUCCESS : '0', FAILED : '-1', RESULTCODE : 'RESULTCODE', TOTAL : 'TOTAL', SUCCESS_NUM : 'SUCCESS_NUM', ERROR_NUM : 'ERROR_NUM', RESULTINFO : 'RESU...原创 2018-10-19 10:53:53 · 279 阅读 · 0 评论 -
使用maven方式利用mybatis-generator自动生成代码
基于maven搭建mybatis-generator自动生成代码下载已有工程https://github.com/dengjili/mybatis-generator需要更改的文件generatorConfig.xml基础配置文件需要生成的表相关sql生成代码方式选择右键generatorConfig.xml输入命令mybatis-generator:generate...原创 2018-09-22 17:18:51 · 478 阅读 · 0 评论 -
java泛型
为什么需要泛型在使用java集合时,我们常常见到泛型,为什么要使用泛型呢?先看一个列子package dj.generic;import java.util.ArrayList;public class ArrayListTest { public static void main(String[] args) { ArrayList list = n...原创 2018-02-11 15:53:28 · 166 阅读 · 0 评论 -
BufferedInputStream中的mark()和reset()用法,及其中readlimit相关的问题
mark与reset基本用法官方文档,虽然没什么用 mark reset 调用流程 在BufferedInputStream中,有一个定义一个byte数组来存放流,文件等数据(俗称缓冲区数组),如下图所示将文件数据部分读入缓冲区,缓冲区大小为10 从缓冲区中取出1,2两个数据 调用mark(int readlimit)方法,具体值为:mark(3) ...原创 2018-03-01 17:52:22 · 6378 阅读 · 5 评论 -
BufferedInputStream源码分析,解答readlimit相关的问题
承接上面一个主题:BufferedInputStream中,readlimit相关的问题BufferedInputStream源码分析 BufferedInputStream类是一个装饰者子类,FilterInputStream为装饰者基类,InputStream类和其子类是被包装的类原理图原始InputStream读取方式,应用程序直接从物理设备上读取数据 Buf...原创 2018-03-01 19:26:21 · 1057 阅读 · 3 评论 -
回调函数正确理解
回调过程简单理解就是,A调用B,然后B在调用A对应模型 对应代码回调接口package callback;public interface CallBack { void backMethod();}调用者package callback.other;import callback.CallBack;public class Cal...原创 2018-03-22 16:34:15 · 997 阅读 · 0 评论 -
Java RMI入门详细搭建过程
RMI:远程方法调用(Remote Method Invocation)。能够让A电脑的java虚拟机上的对象调用B电脑的java 虚拟机中的对象上的方法。类似于websocket的远程调用所需代码客户端代码:链接: https://pan.baidu.com/s/1t5DaLvbNzbRikVYBWrDa_Q 密码: iptcRmiTestClient- - rmi...原创 2018-03-29 22:05:42 · 1486 阅读 · 0 评论 -
java-zip方式压缩和解压缩,操作单个文件源码
代码可直接使用import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.z...原创 2018-03-26 15:50:00 · 395 阅读 · 0 评论 -
java文档注释
Java 支持三种注释方式。前两种分别是 // 和 /* */,第三种被称作说明注释,它以 /** 开始,以 */结束。 这里主要讲述,最后一种方法注释,因为可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。注释方式主要有以下三种行首注释关键字 关键字 描述 @see 引用其他类 @version 版本号 ...原创 2018-04-02 21:37:53 · 3462 阅读 · 0 评论 -
java流程控制 break,continue,与label
break跳出当前for循环 for (int i = 0; i < 4; i++) { if (i == 2) { break; } System.out.println(i); }运行结果01continue终止循环...原创 2018-04-04 11:29:59 · 177 阅读 · 0 评论 -
switch中break用法
switch 与break用法 byte a = 2; switch (a) { case 1: System.out.println(" A "); break; case 2: System.out.println(" B "); cas...原创 2018-04-04 15:04:55 · 14184 阅读 · 1 评论 -
JAVA的包访问权限
JAVA的包访问权限 private默认访问权限protectedpublic类本身√√√√相同包中子类×√√√相同包中的非子类×√√√不同包中的子类××√√不同包中的非子类子类×××√ ...转载 2018-04-06 11:54:05 · 191 阅读 · 0 评论 -
继承、实现关系判断 instanceof, isinstance,isAssignableFrom
instanceofB instanceof A如果B类型为Class<? extends A> 或者B implements A,返回truePS:其中B为具体的实例对象isinstance功能与instanceof功能一致A.class.isInstance(B)如果B类型为Class<? extends A> 或者B implement...原创 2018-04-20 17:18:25 · 653 阅读 · 0 评论 -
小型系统的权限设计--基于常量0x设计
关于常量0x定义在阅读源代码的时候,我们经常看到如下定义Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代...原创 2018-08-03 21:05:12 · 247 阅读 · 0 评论 -
位运算符
指定 A = 60(0011 1100); B = 13 (0000 1101) 这里用八位宽度存储表示二进制按位与(&amp;amp;amp;)同时为1为1,其余为0原创 2018-08-04 13:57:23 · 570 阅读 · 0 评论 -
Eclipse从数据库逆向生成实体类
从数据库中映射实体类数据库创建表过程参考:https://blog.csdn.net/dengjili/article/details/82770719打开 data source explorer试图新建一个连接选择对应的数据库配置jar包和数据库信息jar包数据库连接信息###创建完成对应表新建一个java工程将工程强转成jpa工程配置数据库连接信息...翻译 2018-09-19 14:13:09 · 2232 阅读 · 0 评论 -
spring aop角度讲解静态代理,动态代理过程
静态代理一般代码接口,实现package priv.dengjl.proxy.bean;public interface IPersonService { void sayHello(); void printName(); void test();}package priv.dengjl.proxy.bean;/** * 业务代码,普通业务开发员工编写 * ...原创 2018-09-21 15:56:21 · 294 阅读 · 0 评论 -
spring aop入门 和 代理模式的衔接
建议先看一下代理模式:下面会进行对比在Spring AOP中,有 4 种类型通知(advices)的支持:通知(Advice)之前 - 该方法执行前运行通知(Advice)返回之后 – 运行后,该方法返回一个结果通知(Advice)抛出之后 – 运行方法抛出异常后,环绕通知 – 环绕方法执行运行,结合以上这三个通知。先看一个spring 例子被代理类package priv....原创 2018-09-21 16:51:09 · 177 阅读 · 0 评论 -
spring Aspectj入门
建议先看一下:1.代理模式 https://blog.csdn.net/dengjili/article/details/828026142.spring aop入门 和 代理模式的衔接 https://blog.csdn.net/dengjili/article/details/82804163在Aspectj 需要引入包aspectjweaveraspectjrt下载相关代码,可运...原创 2018-09-22 15:00:49 · 181 阅读 · 0 评论 -
为什么重写equals时还必须重写hashcode方法
为什么重写equals时还必须重写hashcode方法先看一个例子 Apackage other.equals;public class A { @Override public boolean equals(Object obj) { return true; }}Bpackage other.equals;publi...原创 2018-02-11 01:48:10 · 2101 阅读 · 0 评论