自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1387)
  • 资源 (199)
  • 收藏
  • 关注

原创 双亲委派模型-java自定义类加载器

JVM预定义的三种类型类加载器: 首先classloader 分三个级别,最上级: bootstrap classLoader 中间级: extension classLoader 最低级: app classLoader.1.启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面的类库加载...

2018-03-09 17:57:12 453

原创 mark text 编辑区小问题

mark text 编辑区

2022-06-24 11:53:39 1965 1

原创 java异常使用

java 异常

2022-04-19 11:57:20 1579

原创 HttpURLConnection 设置Host 头部无效

这个问题的起因是在使用FeignClient 设置header信息的时候无效@FeignClient(url = "http://localhost:8083", name = "demoClient")public interface FeignTest { @RequestMapping(value = "/hello", method = RequestMethod.GET, headers = "host=www.test.com") String hello(@RequestP

2021-11-17 16:57:49 2174

原创 springboot LocalDateTime 格式化问题

默认情况下,springboot 返回的 Date和LocalDateTime 格式是这样的2021-11-05T11:17:09也就是带有T的,但是我们很多时候不想要这个T这种情况网上有一种解决方法说的是配置JsonFormat @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date createdDate; @JsonFormat( pattern = "yyyy-MM-dd

2021-11-05 23:18:39 1122

原创 费曼学习法

费曼学习法-最高效的学习方法一句话总结:通过向别人清楚的解说某一件事情来确认自己是否真正懂了这件事。1.选择目标确定目标:比如一门技术、一门语言、一个概念等等掌握目标:看书、博客、视频、请教别人来完成目标2.教学教学方式:写作、录制视频、音频、直接跟别人讲记录问题:不清楚、不明白、模棱两可地方3.纠错学习解决问题:解决2中出现的问题,通过反复查阅资料、学习、强化记忆顺利教学:重复第二步教学直到可以实现本能式的教学4.简化简化教学:对学习内容进行提炼、简化、去除非必要的,

2021-06-10 19:50:24 957

原创 java lambda 表达式实现原理

源代码public class LambdaTest { public static void printString(String str, Print<String> print) { print.print(str); } public static void main(String[] args) { printString("hello", s -> System.out.println(s)); }}int

2021-05-19 17:53:50 266 2

原创 时序图

代码sequenceDiagram participant z as 张三 participant l as 李四 loop 日复一日 z->>l: 吃了吗您呐? l-->>z: 吃了,您呢? activate z Note left of z: 想了一下 Note right of z: 又想了一下 alt 还没吃 z->>l: 还没吃呢,准备回去吃 else 已经吃了 z->>l: 我也吃了,哈哈 end

2021-05-14 16:50:23 236

原创 k8s部署实例无法启动情况总结

问题原因:健康检查失败在使用k8s进行部署springcloud项目的时候经常遇见一些服务无法启动的情况,只是因为服务的健康检查没有通过。这些健康检查包括 数据库、redis、apollo、kafka等等这些第三方的软件。具体定位方式:查看当前的服务状态:一般这个时候会报503错误,就是服务没有启动kubectl describe pod serviceName -n dev-phoenix解决办法:定位失败原因查看具体的失败原因需要进入docker里面去执行查询:kubectl exec

2021-03-23 17:30:44 1512

原创 mysql 优化-数据类型不匹配导致的全表扫描

一条sql执行时间特别长,很多时候页面都直接504 timeout,sql内容大致如下,其中a表的数据有2000w+数据,b表有600w+数据SELECT a.*FROM aWHERE a.user_id = 123AND a.id NOT IN ( SELECT b.pay_record_id AS pay_record_id FROM b WHERE b.user_id = 456)ORDER BY create_time DESC;本来这2条sql语句里面

2021-03-08 16:41:00 418 2

原创 学习新知识的正确方式

带着目标去学习首先我们学习知识的时候,第一步就是要明白这个知识的目的是啥?带着目的去学习才不会被文字符号或者是复杂的逻辑给蒙蔽了双眼。才能不至于淹没到知识的海洋中,不至于从入门到放弃。时刻都要想着目标,没有目标的学习就是浪费生命。接下来我们讨论一下学习中遇到的常见的具体问题。一个知识点牵扯到更多知识点我们学习知识会经常遇到自己不清楚,或者自己不是很明白的东西,而且在学习过程中新的知识又会牵扯出新的未知知识,如果我们遇到未知就去看结果往往像在一堆无序的绳子里面顺序往下找,最后连开始的目的都忘了。但是如

2021-02-20 23:24:53 257

原创 代码梳理之道:目标驱动

很痛苦,很纠结我们无论是在看别人代码,还是在研究源码的过程中都会面临一个基本的问题,那就是代码逻辑梳理,尤其是在代码比较复杂,或者是代码逻辑比较混乱的时候,问题更加明显。当我们梳理完这样的代码之后,我们的收获就是:乱。先不说代码那些框架里面的代码设计有很多,而且有的真的实现很复杂,不是一下子就能明白的。我们从最简单的入手:就说我们日常的代码维护和重构,因为这是我们平时遇到最多的情况了。就我们工作中遇到的代码来说,80%-90%的代码是没有设计在里面的。基本上就是流水账,这种代码其实逻辑并不复杂,我们之

2021-02-07 23:56:06 531

原创 DerInputStream.getLength(): lengthTag=111, too big.

在调用Apns推送接口的时候需要用到公钥和私钥,密钥文件统一放到项目src/main/resources的某个目录下,然后本地启动测试,启动过程中报错:DerInputStream.getLength(): lengthTag=111, too big.解决过程:把密钥文件存放到绝对路径下然后去加载结果正常,说明编译过程中密钥文件被修改了,所以解决问题的关键就是不要让maven打包过程中修改这个密钥文件。解决办法:1.非springboot项目<plugin> <gro

2021-02-01 12:18:59 8275 3

原创 docker nginx 代理宿主机服务

docker 的出现解决了我们很多问题,让我们避免陷入各种依赖安装的痛苦中,但是docker本身自己也有一些自己的规则,如果不知道也会让我们走很多弯路。最近在阿里云服务启动了一个nginx容器,在代理静态文件的时候都是正常访问的,但是在进行反向代理tomcat服务的过程中就一直报错:[error] 37#37: *5 connect() failed (111: Connection refused) while connecting to upstream, client: 111.199.4.122

2021-01-29 23:07:52 3826

原创 阿里云服务器装数据库

最近在阿里云服务器上安装数据库,数据库本身是通过docker创建的容器,用户名密码啥的都正常,但是就是登录不了。防火墙也设置好了,但是就是连不上。最开始一直在纠结防火墙的问题,试了各种方式都不行,而且端口telnet根本没反应。后来想是不是阿里云自己对端口有控制,于是从阿里云控制台找到配置规则,添加了数据库的3306端口,再连成功了!这个事情还是挺坑人的,如果想不到阿里云方面的控制,那么这问题就无解了。...

2021-01-29 22:46:26 290

原创 自定义拦截feign错误

定义Feign错误处理的Decoderpackage com.test.admin.util;import com.test.admin.util.exception.AdminFeignException;import feign.Response;import feign.codec.ErrorDecoder;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;@Slf4jpubli

2021-01-15 21:01:57 1260 1

原创 指定不加载框架的某些配置

有时候公司框架默认会加载一些配置,但是这些配置我们当前工程不一定需要,或者跟我们本身的功能有冲突,这个时候我们可以指定不加载这些配置# 不加载框架默认的配置spring.autoconfigure.exclude=com.xxx.AthenaFeignConfiguration...

2021-01-15 20:45:39 146

原创 统一打印FeignClient 日志

import com.rcplatform.athena.admin.util.FeignErrorDecoder;import feign.Logger;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * 打印feign log* @Author ztd*/@Configurationpublic clas

2021-01-15 20:41:11 908

原创 mysql join 相关例子

# 表a数据:mysql> select * from a;+----+-----------+------+| id | name | age |+----+-----------+------+| 1 | Pirate | 10 || 2 | Monkey | 20 || 3 | Ninja | 20 || 4 | Spaghetti | 20 |+----+-----------+------+# 表b数据:mysql

2021-01-12 14:45:54 242

原创 知识+场景=灵活运用

知识只有跟场景联系起来才能发挥它的作用,才可能实现对知识的灵活运用。知识脱离的真实的场景将会变得无比枯燥(因为知识仅仅是一堆符号而已)。仅有知识没有场景就会变成书呆子。学习知识一定要找到对应的使用场景:我们很难记住知识,但是我们很容易记住场景。举个简单的例子,同样是勺子,但是生活中有大勺和小勺,如果对于没有使用过勺子的人,你让他说出他们的区别,其实他能讲出来的很有限,无非就是大小的区别。但是使用过的人就会说我们把饭从锅里盛到碗里的时候用的是大勺,把粥从碗里喝到嘴里的时候使用的是小勺。如果没有这种使用体验我

2020-11-19 22:33:39 605 1

原创 idea常用的插件

2020-10-29 16:26:29 297

原创 maven 包依赖、包冲突分析

1.如果项目本身启动有问题,那么说明是编译有问题,执行如下命令来查看问题原因mvn clean package -DskipTests2.如果项目启动报了jar包依赖冲突,那么执行如下命令来查看当前项目有效的依赖mvn help:effective-pom > effective.txt当然也可以使用 idea maven 自带的工具:在 maven 模块下选中项目,右键选择 【Show Effective POM】3.根据冲突的 jar 包查找顶层引用,处理包冲突mvn depen

2020-09-16 18:15:42 450

原创 maven 定位失效的仓库

在我们开发过程中可能会遇到jar包下载不下来的问题,这个问题如果只是通过刷新 idea 的 maven 插件很难看出来是什么问题,最多就是看到我们依赖了某个仓库,而这个仓库我们链接不上,大致情形如下:其实我们已经知道,这个仓库目前已经不可以使用了,但是我们却不知道是哪里配置了这个仓库。这时候直接分析这个截图我们很难弄明白是哪里导致的问题,这时候我们可以通过执行 maven 的命令来看看到底是在获取哪一个依赖的时候出错了,maven会把详细的出错位置指出来供我们来分析问题。在 terminal 里面执

2020-09-08 12:56:25 247

原创 Nodejs 中通过 babel 来体验 es6 语法

Nodejs 中通过 babel 来体验 es6 语法1.安装依赖:npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/nodenpm install --save @babel/polyfill2.创建 babel.config.js 文件const presets = [ ["@babel/env", { targets: { edge: "17",

2020-08-09 19:44:15 489

原创 js格式化long类型的值为日期

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>js格式化long类型的值为日期</title></head><body> &lt

2020-07-24 22:49:52 287

原创 Maven 配置 Jacoco 插件,查看代码覆盖率

1、简介Jacoco 是一个开源的覆盖率工具。Jacoco 可以嵌入到 Ant 、Maven 中,并提供了 EclEmma Eclipse 插件,也可以使用 JavaAgent 技术监控 Java 程序。很多第三方的工具提供了对 Jacoco 的集成,如 sonar、Jenkins 等。之所以在此引入 Jacoco 是因为在使用 Cobertura 的时候,不能完全的适配 Jdk 8 Lambda 表达式,而 Jacoco 可以适配。2.pom 文件中配置 Jacoco 插件<plugin&g

2020-06-10 14:23:21 3114

原创 vscode 调试 js

1.使用 chrome 调试页面这种方式其实不需要使用 vscode 来调试页面,vscode 只是我们的编辑器,我们使用 vscode 来编辑我们的页面,然后通过 vscode 在 chrome 中打开我的页面。步骤如下:1.安装插件:open in browser2.在要调试的页面上右键选择 open in browser其中第一个选项是在默认浏览器中打开,第二个选项是在其他浏览器中打开3.在 chrome 中打开开发者工具2.使用 vscode 调试页面使用 vscode 调试页

2020-05-25 23:01:45 2442 1

原创 通过跑步彻底搞懂CountDownLatch、CyclicBarrier、Semaphore

CountDownLatch:这个类使一个线程等待其他线程各自执行完毕后再执行。CyclicBarrier:这个类使所有线程都等待完成后才会继续下一步行动。Semaphore:这个类是控制线程的并发数量。下面通过我们熟悉的跑步运动来做比喻,让你轻松的明白他们之间的差别:CountDownLatch例子:裁判等运动员package com.dada.test;import java.u...

2020-03-28 23:31:28 484

原创 volatile保证可见性不保证原子性

对于i++动作来说,只有getstatic和putstatic指令能保证是原子的,同步的,而其他几个指令都无法保证原子性,所以就会出现并发的数据安全问题。

2020-03-28 21:44:43 245

原创 jar包发布到maven仓库流程

1.在setting.xml文件中配置访问仓库的权限 <server> <id>snapshots</id> <username>deploy</username> <password>123456</password> </server> <server>...

2020-02-28 11:26:34 400 1

原创 定位java最耗cpu进程

1.定位最耗cpu进程1.通过jps命令来查找对应的java线程如果一个服务器上java进程很少,我们一眼就可以定位出这个线程。77 jar255 Jps2.通过top命令来查找cpu使用最高的线程如果一个服务器上有多个java服务,那么使用top命令对多个java进程进行观察,找出耗费cpu最大的进程,从下面可以看出是PID为77的进程最耗cputop - 14:21:59 up...

2019-12-30 22:32:35 504

原创 telnet检测指定端口是否可访问

1.首先安装telnetyum install telnet;2.使用telnet语法:telnet ip porttelnet 一个可以访问的端口示例:其中 ip 跟 port 之间是空格隔开,如果访问端口能通那么接下来可以通过 ctrl + ] 以及 quit 来关闭连接。~ telnet 10.120.128.136 8081 Trying 10.120...

2019-11-19 20:13:47 1164

原创 1.jvm内存模型

文章目录一、内存模型1.线程私有区:2.线程共享区:二、 详细模型1 程序计数器PCJava 多线程的实现:2 虚拟机栈1.栈帧(Stack Frame)结构:1.局部变量表:2.操作栈:3.动态连接4.方法返回地址5.额外附加信息2.异常(Exception)3 本地方法栈1.异常(Exception):4 Java堆1.新生代1.Eden Space(伊甸园区)2.Survivor Space...

2019-11-18 22:32:30 295

原创 20.慢查询定位

文章目录1.简介2.参数说明3.设置步骤4.测试1.简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。2.参数说明1.slow_query_log 慢查询开启状态2.slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)3.l...

2019-11-18 19:45:19 214

原创 19.分布式锁

文章目录背景分布式锁应该有的功能分布式锁的实现方式:1.基于数据库的表分布式锁1.1.实现逻辑1.2.创建表1.3.锁住方法1.4.当方法执行完毕之后,想要释放锁的话,需要执行以下Sql:1.5.数据库实现方式存在的问题1.6.面对上面问题的解决办法1.6.使用数据库锁的优缺点2.基于redis缓存实现分布式锁2.1.基于SetNX实现:2.2.实现代码2.3.优缺点3.基于zookeeper的分...

2019-11-18 19:43:38 184

原创 16.mysql 存储过程

1.存储过程1.创建存储过程#创建获取每一个元素的函数CREATE FUNCTION `func_get_split_string`(f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255) CHARSET utf8BEGIN declare result varchar(255) ...

2019-11-08 19:25:24 161

原创 OAuth2.0 与 SSO

OAuth2.0简介:http://www.ruanyifeng.com/blog/2019/04/oauth_design.htmlOAuth 2.0 的四种方式http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.htmlGitHub OAuth 第三方登录示例教程http://www.ruanyifeng.com/blog...

2019-10-24 23:51:37 196

原创 mysql 面试题

文章目录1.索引相关1.什么是索引2.索引是什么样的数据结构3.Hash索引和B+树索引有什么区别或者劣势Hash索引的实现原理:B+树索引实现原理:区别:4.什么是聚簇索引5.非聚簇索引一定会回表查询吗6.建立索引有哪些需要考虑的因素7.联合索引是什么?为什么需要注意联合索引中的顺序8.创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因9.何时索引失效2.事务相关1.什么是事务...

2019-10-10 12:59:52 751

原创 hash冲突处理

通过构造性能良好的hash函数可以减少hash冲突,但是不可能完全避免冲突,因此解决hash冲突是hash算法的另一个关键问题。创建hash表和查找hash表都会遇到冲突,两种情况下解决冲突的方法应该一致。下面以创建hash表为例,说明解决冲突的方法,常用的解决冲突的方法包括四种:1.开放定址法:再散列法这种方法又称为再散列法,其基本思想是:当关键字key的哈希地址p=H(key)出现冲突时,...

2019-10-08 20:18:46 411

原创 ajax 302 错误无法跳转

1.问题当cas登录失败之后如果继续执行ajax请求会报 302 重定向错误,但是因为是ajax请求,所以浏览器不会自动跳转,需要做处理。1.自己重写ajax方法:不推荐var Ajax = function() { var that = this; // 创建异步请求对象方法 that.createXHR = function() { if (wind...

2019-09-27 16:11:42 6931 1

dubbo 例子大全

dubbo 开发大全,包括2个 server,一个java client,一个 java web client

2016-09-14

dubbo 全例子

dubbo 例子,包括 dubbo 提供者,消费者,以及 web 消费者

2016-09-14

less 编辑器

less 编译器,window 平台

2016-09-12

dubbo 例子

dubbo 例子,里面既有 zookeeper 的基本操作例子,也有dubbo的客户端和服务端,如果你有安装 zookeeper 那么就直接配置你自己的 zookeeper 地址,如果没有的话,就启动那个 testzookeeper 里面的 net.xulingbo.zookeeper.TestMainServer就可以使用了。

2016-09-12

zookeeper 例子

zookeeper 测试例子,里面有一个简单的 zookeeper 日常操作例子,还有以zookeeper而实现的 leader 选举的例子...、分布式锁...

2016-09-11

disconf 例子

disconf 例子,包括使用 disconf.properties 文件和不使用的2种方式

2016-09-09

天猫京东菜单

天猫京东菜单,都是那个直接鼠标滑过就可以显示下级分类的菜单。

2016-07-25

springmvc 参数绑定例子1

springmvc 参数绑定例子,ajax 绑定,form绑定,对象绑定,参数绑定

2016-07-23

sitemesh 例子

sitemesh 例子,里面举例一个简单例子,而且还有一个简单文档说明

2016-07-22

mdwiki 使用

md wiki 使用方式,里面包括了如何使用图片等等,你下载下来之后直接在 【火狐浏览器中就可以查看效果了】,但是谷歌浏览器因为有防止 js 运行的安全机制,导致无法查看效果

2016-07-17

dubbo zookeeper

里面既有 zookeeper 和 dubbo-admin.war 文件,也有 dubbo 的示例程序

2016-06-28

springmvc 参数绑定例子

springmvc 参数绑定例子,@RequestParam @CookieValue @PathVariable @ModelAttribute

2016-06-15

省市县三级联动

省市县三级联动,包括 java + jsp + mysql 的实现方式,还有 dwr 实现方式,还有 js + html 实现方式

2016-04-13

pdf 转换为 word

pdf 转换为 word

2016-03-29

ceb格式转换PDF工具

ceb格式转换PDF工具

2016-03-29

jsonp 使用例子

jsonp 使用例子,json 调用的从 alert 开始,到调用远程的jsonp服务,到实现自己的 jsonp 服务。

2016-01-26

json jackson 工具类

对 jackson json 进行了封装,可以实现 string->json 的互转,包括简单对象的互转和复杂对象的互转

2015-12-24

springMVC hessian

此代码展示了如何使用 springMVC 搭建 hessian 服务和 Controller 服务,里面还有如何使用的 readme 文件,告诉你如何使用它们。

2015-12-09

maven 一键打包

本资源是针对使用 svn 管理的 maven 工程的自动打包脚本,可以做到一键实现集群部署,但是对于含有不同配置文件的还是需要手动的去修改配置文件。

2015-12-06

freemarkerTest

freemarker 的测试例子,里面使用了 servlet + freemaker 来实现页面的解析

2015-11-29

elastic-job使用介绍

elastic-job使用介绍,里面介绍了elastic-job的实现方式和分片实现方式

2018-09-12

java 自定义注解

# 自定义注解的规则: - 1.定义注解 - 2.定义注解的切面 - 3.使用注解

2018-06-01

rabbitmq springboot 例子

rabbitmq 使用例子 Created by zhangtengda on 2018/5/30.得到的

2018-05-31

spring mysql 读写分离

spring mysql 读写分离,可以一主一从,也可以一主多从

2018-03-23

chrome elasticsearch 插件

chrome elasticsearch 插件,chrome elasticsearch 插件chrome elasticsearch 插件

2018-03-12

hadoop 2.7.5 eclipse jar

hadoop 2.7.5 eclipse jar 包,只需要放到eclipse的plugin目录下重启即可

2018-02-13

thrift 的 java 和 python结合例子

一个java和python的thrift例子,其中java作为服务端,python作为客户端

2018-02-06

PortableHg_3.2.3.7z

sourceTree

2017-08-02

fastdfs 安装及使用

fastdfs 安装及使用,里面包含了fastdfs安装需要的软件,以及java-api工程,和使用实例

2017-07-14

jquery 显示正在上传

ajax 操作之前显示正在上传的一个旋转 gif,完成之后隐藏这个 gif

2017-07-04

react 计数例子

这个例子你只要下载下来 1.npm install 2.npm start 就可以运行了 当然你可以直接运行 dist 目录下的 index.html 文件也能看到效果

2017-06-29

springboot mybatis mapper.xml 配置

springboot mybatis mapper.xml 配置,里面包含了新增,修改,删除,查询,分页查询例子以及通过 网页访问的例子

2017-06-22

rabbitmq 例子

rabbitmq 例子

2017-06-16

oauth2 shiro 多表认证

多个表

2017-06-16

springmvc ajax 文件上传下载文件 multiple

springmvc 上传下载文件,支持 ajax,form 提交,支持 multiple 方式上传文件

2017-05-23

springmvc ajax 文件上传

本例子提供了2中 springMVC 上传的例子,通过 ajax 提交的方式,通过 Form 提交的方式,同时获取上传后文件名称,支持多个文件上传。

2017-05-21

mongo spring boot Aggregate 例子

mongo spring boot Aggregate 例子

2017-05-18

jmeter 例子

jmeter 测试的软件和使用的例子,让你在不同的测试环境之间的切换变得简单快速而且稳定。

2017-02-03

java 序列化和重写 hashCode 的原因

java 序列化和重写 hashCode 以及 equals 方法的例子

2016-12-02

java 观察者

java 观察者模式的使用示例

2016-11-24

空空如也

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

TA关注的人

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