自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Calvin's Blog

God help those who help themselves

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

原创 Hello World!

嗯,可能要开始写博客了吧记录自己日常遇到的问题和解决办法加油!!!!

2017-11-19 10:50:59 1047

原创 @Autowired和@Resource的对比

@Autowired和@Resource的对比

2024-09-24 17:40:28 65

原创 Java 零拷贝样例

Java 零拷贝样例。

2024-09-12 20:04:01 197

原创 用Java实现Nginx插件

用Java实现Nginx插件

2023-10-09 09:39:16 261

原创 不要异步使用HttpServletRequest

不要异步使用HttpServletRequest

2022-08-12 10:21:48 466 1

原创 Maven shade 打包导致SPI失效

当使用maven shade打包时,会导致SPI的文件被覆盖

2022-06-01 16:45:45 917

原创 mysql的datetime与timestamp设置null对比

mysql的datetime与timestamp设置null对比

2021-11-27 21:58:49 1130

原创 重写异常的fillInStackTrace方法避免回溯堆栈

1.定义一个异常类public class MyException extends Throwable { public MyException(String message) { super(message); }}2.抛出这个异常 @RequestMapping("exception") public String exception() throws MyException { System.out.println("exception");

2021-08-28 16:55:31 1776

原创 Nginx负载均衡失效

1.配置 upstream test_api_backend { server 192.168.0.1:8080; server 192.168.0.2:8080; server 192.168.0.3:8080; session_sticky cookie=test_web_route; }2.现象负载均衡失效,通过域名访问后请求总是打到同一台机器。3.原因使用了session_st

2021-08-01 21:09:41 2022

原创 java火焰图的生成

采集工具:async-profiler(为什么不用perf?因为它采集的数据生成svg老是报错,太菜,不会解决) 绘图工具:FlameGraph1.async-profilergit clone https://github.com/jvm-profiling-tools/async-profilercd async-profilermake执行以下命令进行数据的采集-d代表采集时间,单位为秒${pid}为需要采集的进程id其他参数可以执行./profiler.sh看帮助./p

2021-07-28 19:11:56 1078

原创 Guava中EventBus,事件发布订阅使用

引入依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1.1-jre</version> </dependency>

2021-06-17 16:57:54 1246 3

原创 git revert 之后还想要提交该分支的代码怎么办

方法:revert这次revert开发分支:version主分支:master过程如下:提交merge request 合并version到master 由于某些原因,这部分代码暂时无需合并到master,因此revert这次mr 现在又想重新提交version分支的代码,但是却提示无改动,因为revert是在之前的基础上生成了一个回滚的提交记录 git pull 拉取远程最新的master代码,切换到version分支,merge master的代码 找到上次reve.

2020-08-06 15:48:23 4364

原创 mac 安装eclipse mat java内存分析工具

此版本为独立版,无需安装eclipse1. 进入官网下载软件https://www.eclipse.org/mat/如果下载较慢,可以切换镜像2. 下载后解压,直接打开软件提示报错查看该日志文件,提示该目录无法写入,可以使用-data参数java.lang.IllegalStateException: The platform metadata area could not be written解决办法:收到建立工作目录,并修改软件包内容中的In...

2020-07-01 16:42:20 2848 2

原创 使用lombok,参数名称第二个字母大写导致参数接收不到

import lombok.Data;@Datapublic class TestDTO { private Integer pId;}如上代码所示,在这个DTO中,传递如下参数,但是后端无法接收{ "pId":1}原因:使用lombok的@Data注解后,生成的get/set方法如下// 参数名的首字母和第二个字母都变成了大写getPId();...

2020-05-02 19:16:23 7418 2

原创 get请求,把一个url当做参数,进行url重定向的一些坑

场景http://www.domain.com/redirect.action?url=xxx发送给用户的是上面的链接,用户点击后跳到redirect.action里进行一些处理,然后重定向到url坑1url为http://www.real.com?name=zhangsan&age=40实际链接http://www.domain.com/redirect.act...

2019-09-10 17:38:00 7528

原创 记录一次数据库回滚操作

回滚工具git地址https://github.com/danfengcao/binlog2sql过程:执行sql,update xxx set a = 1 ........执行卧槽,忘了加条件咦咦咦,之前用Navicat打开了这张表,数据还在。。。。刷新,卧槽,我为什么要刷新gg要被开除了赶紧百度,mysql没有事务怎么回滚binlog2sql------前提...

2019-03-22 16:07:02 4245

原创 mysql主从复制配置

参考https://blog.csdn.net/deeplearnings/article/details/78398526两个mysql版本最好相同,或者前面的版本相同,如5.7.x MASTERvim /etc/my.cnf# 添加如下配置,如提示这个文件只读,把权限改成777,改完后再改回664,要不然mysql无法启动[mysqld]log-bin=mysql...

2019-02-15 15:32:03 1075

原创 canal 监控mysql数据更新

官方的quickStarthttps://github.com/alibaba/canal/wiki/QuickStart本文参考https://blog.csdn.net/hackerwin7/article/details/37923607过程1.打开mysql的binlog-在mysql的my.cnf文件里[mysqld]log-bin=mysql-bin #添加...

2019-02-14 15:55:57 3178

原创 redis 主从复制,哨兵模式 sentinel, 集群模式Redis Cluster

本文配置文件部分,进行了引用https://www.cnblogs.com/zxtceq/p/7676911.htmlhttps://blog.csdn.net/u010648555/article/details/79430105https://www.cnblogs.com/yuanermen/p/5717885.html一个pc运行多个redis只需复制一份配置文件...

2019-02-12 16:05:42 1181

原创 微信公众号-自动回复

git代码https://github.com/1065712890/wxwx官方文档https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;id=mp1421135319在公众号后台-开发-基本配置,进行如下配置1.服务器地址是微信会将接收到的用户消息发送到你的这个地址2.令牌是用来验证消息的确来自微信服务器,在你的代码...

2019-02-10 18:00:06 1796

原创 java8 lambda stream

目录 为什么要使用lambda和streamlambda表达式基本语法练习四大核心函数式接口方法引用与构造器引用创建StreamStream筛选与切片Stream映射Stream排序Stream查找与匹配Stream归约与收集 Stream练习为什么要使用lambda和streampackage lambda;import org....

2018-12-03 16:03:58 1197

原创 Java NIO Demo

Buffer相关操作, position limit capacity markpackage nio;import org.junit.Test;import java.nio.ByteBuffer;/** * @program: netty_hello * @description: test buffer * @author: dengbin * @create: ...

2018-11-23 16:10:15 956

转载 JDK动态代理和CGLIB代理

参考 https://www.cnblogs.com/MOBIN/p/5597215.html通过实现接口实现通过动态代理,给普通的对象生成代理对象,对其中的方法进行前置和后置的处理 例如spring的事务使用动态代理的五大步骤 1.通过实现InvocationHandler接口来自定义自己的InvocationHandler;2.通过Proxy.getProxy...

2018-08-28 12:16:12 1026

原创 Java并发编程(二)

CountDownLatch 解释一下这张图 新建一个coundDownLatch,值为3 线程A调用coundDownLatch的await方法,线程将被阻塞 线程1执行的实现调用coundDownLatch.countDown方法,则coundDownLatch的值减一,变成2 知道coundDownLatch的值为0,线程A恢复运行public class CountD...

2018-08-09 11:06:00 851

原创 Java并发编程(一)

等待更新package cn.dengbin97.concurrency;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Sem...

2018-08-05 12:55:29 913

原创 Java 类加载机制,双亲委派模型和实现自己的类加载器

类加载可以看这个博客 http://www.importnew.com/25295.html双亲委派模型启动类加载器(Bootstrap ClassLoader):负责加载 JAVA_HOME\lib 目录中的,或通过-Xbootclasspath参数指定路径中的,且被虚拟机认可(按文件名识别,如rt.jar)的类。扩展类加载器(Extension ClassLoader):...

2018-08-03 11:12:56 1085

原创 MySql锁机制

锁的分类 按操作分:读锁/写锁 按粒度分:表锁/行锁表锁偏向MyISAM存储引擎,开销小,加锁快,无死锁,锁定粒度大,发生冲突概率高,并发度低读锁//建表mysql&amp;amp;amp;gt; create table mylock( -&amp;amp;amp;gt; id int not null primary key auto_increment, -&amp;amp;amp;gt; name varchar...

2018-08-02 22:48:05 929

原创 MySql查询截取分析

小表驱动大表 总结 子查询为小表时用in,因为此时是子查询驱动主查询 子查询为大表时用exists,因为此时是主查询驱动子查询

2018-08-02 16:24:13 1285

转载 Java 常见异常类

转载自 https://blog.csdn.net/liu_jian140126/article/details/50517001受检查的异常 ,需显式处理java.lang.ClassNotFoundException(类加载异常) Class.forName(&amp;quot;myclass&amp;quot;);java.lang.IllegalArgumentException(方法参数错误)...

2018-08-01 17:14:48 1492

原创 MySQL索引

索引(index)是帮助MySQL高效获取数据的数据结构 索引的目的在于提高查询效率,可以类比字典 可以理解为:排好序的快速查找数据结构优势 1.类似大学图书馆建立书目索引,提高数据检索的效率,降低数据库的IO成本 2.通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗劣势 1.实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也是要...

2018-07-29 16:46:15 944

原创 MySql引擎

MySql服务层主要用于定义一些与存储引擎无关的东西,因为底层的存储引擎可能不同,所以不能依赖具体的存储引擎存储引擎针对表而不是针对库,也就是一个数据库里的表存储引擎可以不同,但是这样不推荐。MyISAMMyISAM存储引擎表由MYD(数据文件)和MYI(索引文件)组成特性:1. 并发性和锁级别 使用表级锁,也就是会对整张表进行加锁,进行读的时候加共...

2018-07-27 10:43:28 1414

原创 一些java程序员的知识点

进程阻塞的原因不包括A时间片切换 B等待I/O C进程sleep D等待解锁A,A发生后,进程为就绪态,不是阻塞最佳适应算法最佳适应算法是指从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区的一种计算方法,这种方法能使碎片尽量小。 空闲分区从小到大排序,从小的开始查找PreparedStatement与Statement1.PreparedStat...

2018-07-19 20:08:50 1454

原创 java线程,线程池

线程状态 NEW 状态是指线程刚创建, 尚未启动 RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, Sleep等 BLOCKED 这个状态下, 是在多个线程有同步操作的场景, 比如正在等待另一个线程的synchronized 块的执行释放, 或...

2018-07-08 13:49:36 969

原创 tcp三次握手,四次挥手,ssl握手协议

三次握手 图中ack为ackbit,也就是ack标志位 (1)客户端发送连接请求,synbit为1,并且初始化一个随机序列号(客户端为SYN_SENT状态) (2)服务端收到请求,同意请求,分配空间,返回synack段给客户端,其中synbit为1,ackbit为1,acknum为客户端初始序列号+1,同时产生一个自己的初始序列号(服务端为SYN_RCVD状态) (3)客户端收到后发送...

2018-06-30 10:55:13 3185

原创 深信服科技2019年校园招聘 移动应用开发 一面

1、spring, aop, ioc2、springmvc前端控制器,怎样找到对应的处理处理器 设计这个查找模块。。答的map 怎样用别的方式快速查找。。包括查找带有正则匹配的3、一个公交站在1分钟内有车经过概率是p,问3分钟内有车经过概率4、http的格式、http缓存机制、怎么禁用缓存 Cache-Control Cache-C...

2018-06-23 16:46:34 1247

原创 深信服科技2019年校园招聘研发试题

1、#include &lt;stdio.h&gt;int main(){ char *str1 = "abcd\n"; char str2[10] = "abcd\n"; char str3[][10] = {"abcd\n",""}; char *str4[] = {"abcd\n",""}; printf("

2018-06-21 22:18:08 6302 4

原创 37互娱,2019秋招提前批,Java服务端二面

1、项目 2、学校有哪些课程,平时怎么学习 3、java多线程 4、java集合类,currentmap 5、java虚拟机 6、垃圾回收 7、io和nio没有什么具体的问题,给个主题,然后自己说…....

2018-06-21 21:56:28 1361

原创 37互娱,2019秋招提前批,Java服务端一面

1、netty的了解 2、说一下java里的一些数据结构 3、hashmap默认容量,arraylist默认容量,hashmap怎么解决冲突 4、tcp,udp,滑动窗口 5、mysql存储过程 6、进程和线程的区别 7、设计模式 8、掌握哪些技术,能在做游戏时有哪些应用 9、项目,遇到的问题,怎么解决。...

2018-06-19 19:47:00 1179

转载 OSI七层模型,TCP/IP模型,五层模型

本文摘自慕课网,计算机网络精品课程(李全龙、聂兰顺、史建焘)

2018-06-08 20:39:41 899

原创 37互娱,2019秋招提前批,Java

1、以下哪个是原子操作 A、x = 10 B、y = x C、x++ D、x = x + 1 前三个都至少需要先读取,再操作,非原子操作。而D的话,直接赋值。“原子操作(atomic operation)是不需要synchronized”,这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 contex...

2018-06-07 20:46:46 1498

空空如也

空空如也

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

TA关注的人

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