自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 资源 (3)
  • 收藏
  • 关注

原创 优雅的获取多层对象嵌套值

2. 方法二是利用java8新特性stream方式取值,相比较第一种比较简洁;简单一行代码就可以代替之前多层判断;1. 方法一是比较传统的做法,判空并获取值,清晰明了,但缺点是代码比较荣誉,不停的判断判空;先准备创建本次测试需要用到对象。所以更倾向于第二种。

2023-06-24 16:35:16 559

原创 在线PS拉伸指定尺寸图片

3. 双击图片,选中当前图片,并勾选“对号”2)操作: 从电脑打开, 选择图片, 打开。1登录在线PS网址,需要微信授权登录;4. 操作完成,并导出图片;

2023-06-22 09:25:08 1290

原创 学习学习之高效学习

只有不断的学习,才能不被淘汰,但学习能力有高有低,要怎么做才能高效学习呢?有一些方法可以参考下《学习力》上提到三大学习策略:1. 功利性学习,从实际出发,学习后立马用,定问题,定范围,实际用;2. 搭框架学习,构建学习体系,整体性,调整性,转换性,从不同的角度构建,个人能力,职业目标,业务领域、3. 做到可迁移,多样化场景应用知识,对知识做到更高层的抽象。

2023-05-28 01:08:07 868

原创 学习学习之五星笔记法

所谓五星笔记法,就是每次做笔记之前,先画一个五角星,每个星代表一个问题。一共五个问题,做笔记的过程就是回答五个问题的过程。背后的核心原理:别人说出来的东西,就算记下来也是别人的,需要对别人的东西二次加工,放在自己的体系里。2)记录对方讲解的逻辑是什么,不仅仅是说了什么,而是背后的思考逻辑,有批判性的思考;4)对方的做法,想法可以提炼为那些有效的策略,应对其他的问题;3)这次讨论,有什么疑问和启发,想到了那些相关案例和经验。1)预判核心内容,为什么这个内容值得讨论?--文章内容取自_致问。

2023-05-28 00:45:14 518

原创 经验积淀大级沟通修行

沟通●找服务方沟通之前,必须准备文档,描述自己的背景,需求,最好有一些初步方案。切勿空手直接干聊,这样容易导致服务方理解不了我们的场景,从而导致沟通效率低下。●借助一些战役,拔高自己业务的重要性。这点能有的话,跟服务方谈几乎是事半功倍的。●沟通完必须要定 Action 及时间点,方便持续跟进推动,否则很容易服务方忙着忙着就忘了这事,导致白沟通。修行金惟纯先生在《人生只有一件事》中说人生只有一件事就是"修行"。与其说修行,不如说学习,人生就是在不断学习、迭代自己,让自己具备解决更复杂问题的

2023-04-12 12:30:00 61

原创 何为达克效应

然而很多很牛逼的人,因为自己知道得太多了,就会反而陷入一种固步自封,自卑到怀疑自己,因为自己的见识所限,所以就会有一些谨慎和自我怀疑。能力欠缺的人在自己欠考虑的决定的基础上得出错误结论,但是无法正确认识到自身的不足,辨别错误行为。所以就会用自己的认识做出很多自己认为是正确而且无误的判断。但是结果却是贻笑大方。常常高估自己的能力水平,却无法客观评价他人的能力。这些能力欠缺者们沉浸在自我营造的虚幻的优势之中,很多很菜逼的人,因为自己的见识,能力不够,用白话来说,就是人的认识是一种阶段,达克效应的发现定义是,

2023-04-11 12:00:00 72

原创 曾国藩的五句话

3. 天下古今之庸人,介意一惰字致败,天下古今之才人,皆以一傲字致败;5. 天下无易境,天下无难境,终身有乐处,终身有忧处;1. 不为圣贤,便为禽兽。莫问收获,但问耕耘;2. 物来顺应,未来不迎,当下不杂,既过不恋。4. 大处着眼,小处着手;

2023-04-10 11:00:00 65

原创 但行好事,莫问前程

但行好事,莫问前程。意思是自身要多行义举,做好当下。出处五代冯道《天道》:但知行好事,莫要问前程。明代的《增广贤文》:但行好事,莫问前程。河狭水激,人急计生。明知山有虎,莫向虎山行。

2023-04-09 22:16:33 72

原创 设计模式之备忘录

备忘录模式在生活中还是挺常见的一种功能,像编辑器的恢复之前操作,浏览器中的后退以及玩游戏中的悔棋都属于较为常见的一种。备忘录模式(Memento)的结构暂时略过:代码示例(黑箱实现):(大致原理:游戏发起人内部定义Memo对象 对外实现IMemo接口,并保存在Caretker对象里,等Originator经过一系列操作如fight,后想要恢复则调用内部recover接口,参数则是之前保存在Caretker对象里的IMemo对象 从而实现黑箱备忘录实现, 这样对发起人实现了宽接口, 对外实现了

2022-05-25 06:57:47 139

原创 设计模式之命令模式

命令模式顾名思义不要去询问(Tell, Don’t Ask)”原则。从字面意思讲,一个对象应该命令其他对象要干什么,而不是去查询其他对象状态再决定要做什么。通过引入命令接口实现发起者和执行者之间的解耦;如果后期更换执行者,可以优雅的实现扩容,符合设计模式的开闭原则。但也增加的代码架构复杂度。UML类图如下:(待更新)代码如下:package com.mp.mng.platform.command;/** * 命令模式 命令接口 */public interface Comm

2022-05-21 08:12:24 122

原创 mysql之:一条sql查询语句是如何执行的?

我们经常说,看一个事儿千万不要直接陷入细节中,你应该先鸟瞰其全貌,这样能帮助你从高纬度理解问题。同样,对于mysql的学习也是这样。平时我们使用的数据库,看到通常是一个整体。比如,你有个最简单的表,表里有个id字段,在执行下面语句时候:select * from T where ID = 10;我们看到的知识输入的一条语句,返回一个结果,却不知道这条语句在mysql中内部的执行过程。所以今天我想和你一起吧mysql拆解一下,看看里面有哪些零件,希望借由这个拆解过程,对mysql有更深入的理解。

2022-03-31 23:04:45 2853 1

原创 高效代码开发50例学习总结

一. 常量与变量1. 直接使用常量本身赋值,而不是直接创建一个新对象。后者一定会在堆内创建一个新对象,前者可能使用到常量池。2. 当类成员变量无需改变时,使用常量static限制住。 因为对象中的普通成员变量会每个对象一份,而静态变量只有一份,避免浪费堆内内存。3. 不要基本数据类型和包装类型交替使用。尤其是循环内,尽量使用包装类型为好,可以自己判空,避免null包装类型赋值给基本数据类型,直接产生NPE.4. 如果变量的初始值一定会被覆盖,就没必要给变量付初始值。因为初始值会申请堆内存,也

2022-03-23 16:28:39 517

原创 迟来的2021年终终结

2021已经过去3个多月了, 由于种种(lan,duo)原因直到今天才有时间写上年的年终总结。上年主要事件跳槽了, 从一家小公司跳到了我认为的大公司。之前恕我井底之蛙了,一直不知道大公司和小公司(作坊)的区别,自入新公司,才知道见识的人更多了,需要协调的事情也多了,自然遇到的牛人也就更多了,见识到什么是优雅的代码,以及一些之前不以为意的编码细节。故如果你是即将毕业的学生,还在小作坊迷茫的人们,有机会一定要去大厂历练历练,才能有意想不到的提高。总结今年基础知识提高了很多,了解了些底层源码,之前

2022-03-13 08:26:01 1116

原创 code review 总结(更新ing)

1. 静态工厂方法,不用构造器;(Effective java)2. 枚举类代替魔法值,以及不可变常量放入final类中,构造器私有,防止被误实例化;3. 少用内部类,因为每新增一个类,都要被类加载,耗费性能;(遵循最小用够用原则);4.对象转换时候少用BeanUtils.copyProperties(dest, oirgin),因为底层是通过反射实现的,较为耗费性能;推荐使用对象getset方法,推荐idea优秀插件之codeMaker...

2022-03-07 23:32:11 185

原创 IDEA优秀插件之codeMaker

在idea-plugins搜索codeMaker,如图直接安装即可;测试代码@Datapublic class PersonDO { private String id; private String name; private String sex; private String address; private String school;}@Datapublic class PersonDTO { privat

2022-03-07 23:09:41 2584

原创 关于Collections.toMap的坑

首先看下代码import lombok.AllArgsConstructor;import lombok.Data;import org.assertj.core.util.Lists;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class TestMap { public static void main(String[] args) {

2022-03-01 23:52:03 555

原创 idea-debug断点lamda表达式

使用jdk8开发过程中经常会用到lamda表达式。由于式匿名函数lamda缩写 所以断点有时候没有效果;本文旨在介绍stream断点;public class TestLamda { public static void main(String[] args) { Stream.of(new Integer[]{2,4,5,6,7,8,8,8,5}).filter(integer -> integer != 6). forEach(

2022-02-25 11:07:48 1252

原创 spring代理模式实现对已有项目redis操作监控日志

最近项目要加监控, 由于当时开发没有很好的去封装stringRedisTemplate操作接口。所以业务代码直接使用stringRedisTempate.set() 的等操作redis了, 没有做到很好的分层。然后想了三种方法实现解耦方式的加redis日志:1 首先, 最简单的方法是加一层代理层, stringRedisTemplateProxy 实现业务层的所有模板操作方法。如 set, get ,setNX, expire等操作 ,然后业务层 使用stringRedisTemplatePr...

2021-09-17 23:27:35 406

原创 设计模式之模板模式

1. 背景最近闲暇时间看了一篇关于模板模式的文章, 仔细想了下很是巧妙;结合曾经做过的项目,现在想想都可以通过模板模式来实现,顾作次此文,以记之。2. 概念在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 ...

2021-07-19 22:59:30 126

原创 java并发编程之Future

future是java1.5引入的interface,可以方便的用于异步结果的获取。常见的应用比如像一些调用http接口不能及时返回数据这样代码形成阻塞,而引入future模式可以先调用http接口,然后获得futrue实例(相当于票据) 去干其他事情,这样提高了代码效率;下面就简单介绍下future的简单使用;1 Future的主要方法get()方法可以当任务结束后返回一个结果,如果调用时,工作还没有结束,则会阻塞线程,直到任务执行完毕get(long timeout,TimeUn

2021-07-08 23:28:58 282 3

原创 Idea中Git应用之分支合并

背景:最近项目中用到拉分支,在idea中很容易操作 直接在远程分支.。如下图

2021-06-02 15:24:53 910

原创 springboot jar 上传文件到服务器找不到路径问题

springboot 本地上传一直没有问题,但是部署上服务器就总是报找不到路径问题 , 特此记录,以备后用。首先 由于springboot 本地找到是本目录,到到服务器上由于没有权限在jar里写文件 只能在jar同级目录写文件@Configurationpublic class WebApiConfigurer implements WebMvcConfigurer { //静态资源配置 @Override public void addResourceH..

2021-04-30 15:07:22 1346 1

原创 2020年终总结

时光飞逝PuPuPu ....不知不觉已到年末, 年初的疫情几乎发生在昨天,眼看当下疫情又要复发。 截止目前 全球感染新冠已经超过9000w,不禁感叹生命之脆弱,生活之艰苦, 健康平安生活来之不易;回顾今年发生的事情, 林林总总, 浮光掠影 ,尽收眼底。年初的疫情,让本来匆忙的年假得到了久违的扩容,我想自从毕业以来再也没有在家呆过如此长的时间了(30+天),即使如此,还是觉得在老家的时光短暂。工作中没有遇到什么太大的挑战的问题;时而匆忙,时而悠闲;但是总是没忘记把学习的东西尽量记录下来。..

2021-01-12 19:37:43 111 2

原创 SpringBoot1.4 集成Acuator

如官网所示,SpringBoot自带监控功能,是springboot 的子工程;可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等本文将介绍springboot 1.4 +Acutor + Spring Security的方法 需要用户名密码访问首先pom,xml 增加引用 <dependency> <groupId>org.springframework.boot</group..

2020-12-18 10:52:37 321

原创 Springboot2.3集成RocketMQ4.7.1

首先要部署安装rocketmq服务,安装教程请看上篇文章切入正题,springboot 集成rocketmq 要pom引入rocketmq-client 注意一定和安装的rocketmq版本保持一致;<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.7.

2020-12-15 14:04:52 703

原创 linux 安装 RocketMQ4.7.1

rocketmq 是由阿里捐赠给Apache的一款分布式、队列模型的开源消息中间件,经历了淘宝双十一的洗礼。官网http://rocketmq.apache.org/docs/quick-start/首先, 安装rocketmq 需要支持jdk1.8以上环境, maven 3.2 以上环境, 这里就不再赘言了。首先去官网下载压缩包上传到服务指定目录/usr/local/src/然后解压unzip rocketmq-all-4.7.1-source-release.z..

2020-12-15 13:39:04 588

原创 Java 并发编程之semaphore

sempaphore 中文意思为信号, 信号灯;顾名思义,就是控制流量,协调各个线程之间资源分配问题。semaphore 是一种信号计数量,内部是基于AQS的共享模式。他就相当于一个synchronized 的加强版。应用场景:一个停车场有固定100个车位, 就可以用semaphore设计实现,new Semaphore(100);当有新车进入时,void acquire() 获取一个许可,同时相当于占用了一个车位,当没有获取许可前,当前线程一直处于阻塞状态;当车辆出场时void rel..

2020-12-11 13:56:18 162

转载 代码质量小结

命名严格遵守lowerCamelCase、UpperCamelCase,不要想当然哪里想大写就大写 不要用下划线命名 单元测试类命名 XxxTest,而不是TestXxx 注释需要遵守Javadoc规范(类、类属性、类方法) 不要使用行尾注释 建议把工具方法放在util包里 包名全要小写 成员变量要用包装类型,局部变量可用基本数据类型 消除魔法值,代码中不能凭空出现常量 使用线程池替代显示创建线程 及时清..

2020-11-05 10:31:02 145

转载 浅谈JVM内存模型

首先, 众所周知,JVM 内存大致可以分成两个部分。堆 和方法区 为所有线程共享非堆 包括 虚拟机栈, 本地方法栈, 程序计数器 为线程私有;堆占据JVM 大部分的内存;我们常说的jvm内存调优, 也主要是针对堆来调整内存分配;堆内存 = 新生代(Eden) + 老年代 ;往往分配比例 新生代和老生代(大小比例1:2),而 新生代由Eden 和s0 和s1 组成 ;比例是8:1:1;方法区: 也成为永久代,存放着类型,常量...

2020-10-24 15:02:03 73

原创 Java 接口作为方法参数

Java 接口作为方法参数好处:1 可以很方便封装起来,供调用者使用;2 参数为接口类型可以实现代码解耦;3 对调用者而言, 无需关心内部构造逻辑 , 只要实现调用相关方法 实现自己的下部逻辑即可,做到开箱即用的效果;4 我们翻看jdk源码发现大量这样应用的代码;...........................下面我们就举例实现说明用户人 基类 ,方法应用时候用到import lombok.AllArgsConstructor;import lombok.Bui.

2020-09-18 14:27:18 9298 3

原创 linux 查看tomcat 进程 以及子进程的命令总结

1 获取tomcat进程pidps -ef|grep tomcat2统计该tomcat进程内的线程个数ps -Lf 进程号 |wc -l3 查看 进程负载top4查看子进程号 以及负载top -Hp pid

2020-09-15 14:14:58 2562

原创 spring 优雅整合httpclient(RestTemplate)

在今天以前 我写http请求第三方的接口是这样的方式一: HttpPost httpPost = new HttpPost(url + "?" + params); StringEntity entity = new StringEntity(JSON.toJSONString(map)); entity.setContentEncoding("UTF-8"); entity.setContentType("applic..

2020-08-10 10:37:45 378

原创 Java基础篇之值对象值传递和引用传递

当一个对象被当做参数传递到一个方法后,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。下面来看个例子 :public class Test006 { public static void main(String[] args)throws Exception { Response r = new Response(); step1(r); Sys

2020-07-29 15:04:01 221

原创 mybatis 中@Insert 注解的实用方法之@Options返回自增id

不知不觉,7月也要进入尾声了, 整个7月几乎没干什么事情。总算是在接近尾声的时候,小小的解决了困扰已久的问题。其实也不是什么多么重要的,多么高深的知识点,主要是之前没去刻意的解决, 最近刚解决掉,总算是一点收获吧。感觉最近也懈怠了, 没有学习什么东西,也没有看什么新的知识, 上班划水的时候 ,也没有想着搞点东西。 哈哈 题外话了。。。切入正题:==========问题缘由==========由于最近项目做分表,之前用mybatis 封装的insert方法 很香,但是分表由于不能映射到对应的.

2020-07-25 23:45:42 2401 1

原创 springboot集成jasypt

Jasypt这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成hibernate,Spring Security(Acegi)来增强密码管理。Jasypt开发团队推出了Java加密工具Jasypt 1.4,它可与Spring Framework、Hibernate和Acegi Security集成;详情见URLspringboot 集成jasypt首先是版本选择 建议:springboot版本 jasypt版本 2.1

2020-06-09 13:26:31 267

转载 【转】深入理解Java中的String

本文转自平凡希-深入理解java中的string,写的很好, 是我见过最好的几篇之一,感谢, 转发以记之。想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码:public final class String implements java.io.Serializable, Comparable<String>, CharSeque...

2020-05-08 10:55:04 126

原创 patchca生成图形验证码

最近在搞图形验证码,两个思路, 可以服务端生成验证码 ,放在云上(七牛云或者oss)上下发客户端地址 ;也可以直接让客户端段访问 以IO流的方式传输到页面,并在页面直接展示;而服务端产生图形验证码的方式有很多种 ,主要都是通过java.swing 来画, 下面着重介绍patchca产生验证码的过程; 首先pom 引入<!-- https:/...

2020-05-07 17:14:16 470

原创 记一次idea缺少jar引用,编译不通过的问题

1 情景重现:红叉满天飞;2 情况描述: maven project 里面可以查看到引用;但是External libraries缺少相应的引用;看File-》Project Structure-》 libraries 下缺少相应jar引用3 常规解决方法1 Invalidate and Restart2 Build -》 build Project3 Maven P...

2020-04-08 09:49:21 606

原创 spring-jdbc之AbstractRoutingDataSource源码解析

翻看之前springboot集成的mybatis读写分离,发现还有些疏漏 ,有的还不甚理解,于是翻看下源码;读写分离 主要就是数据路由的时候重写roundRobinDataSouceProxy方法,roundRobinDataSouceProxy中最重要的是 AbstractRoutingDataSource类中的一个抽象方法determineCurrentLookupKey()下面我们...

2020-03-30 17:10:07 423

转载 Git常用指令

记性不好 经常忘掉指令 放在这里提醒自己git 的操作git config –global user.name “Your Name” 设置姓名git config –global user.email “[email protected]” 设置邮箱git init 初始化一个版本库git status 查看仓库状态git add 文件 添加文件到暂存区git c...

2020-03-13 13:50:10 187

mycat-1.6.6.1

分库分表工具,支持mysql oracle, sqlserver win版本

2018-10-16

firefox火狐浏览器

firefox该浏览器版本兼容httprequest等插件工具,适合开发使用

2018-10-09

支付宝支付demo

支付宝支付demo,含有app支付,网页支付,wap支付,等等方便开发者开发demo

2017-10-12

空空如也

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

TA关注的人

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