hw120219
码龄6年
  • 127,891
    被访问
  • 106
    原创
  • 1,695,825
    排名
  • 12
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2015-11-23
博客简介:

hw120219的博客

查看详细资料
个人成就
  • 获得29次点赞
  • 内容获得16次评论
  • 获得153次收藏
创作历程
  • 5篇
    2020年
  • 57篇
    2019年
  • 3篇
    2018年
  • 40篇
    2017年
  • 5篇
    2016年
成就勋章
TA的专栏
  • git
    2篇
  • java代码优化
    2篇
  • lambda
    1篇
  • angularJS
    1篇
  • memcached
    2篇
  • mybatis
    5篇
  • spring
    6篇
  • springMvc
    2篇
  • 多线程
    17篇
  • bootstrap
  • javascript
    1篇
  • jquery
    2篇
  • jvm
    11篇
  • html
    1篇
  • css
    1篇
  • 数据结构-算法
    2篇
  • redis
    9篇
  • poi
    1篇
  • 日志
    2篇
  • nginx
    1篇
  • mysql
    4篇
  • restful
    1篇
  • sessin
    2篇
  • token
    1篇
  • java后台
    10篇
  • mq
    4篇
  • 设计模式
    4篇
  • dubbo
  • zookeeper
    3篇
  • kafka
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Lambda的Optional处理null值

原创
发布博客 2020.09.02 ·
871 阅读 ·
0 点赞 ·
0 评论

git 常用指令

1、回退命令:回退到上个版本git reset --hard HEAD^回退到前2次提交之前,以此类推,回退到n次提交之前git reset --hard HEAD~2退到/进到 指定commit的sha码git reset --hard commit_id2、强推到远程:git push origin HEAD --forcegit 版本找回方法在 git reset --hard 之后,git 的版本会回退。这个时候,需要使用 git reflog 去查看之前的操作然后, 找到
原创
发布博客 2020.08.18 ·
60 阅读 ·
0 点赞 ·
0 评论

lambda常用方法汇总

public class AdjustTests {public static void main(String[] args){ Person p1 = new Person(1,"张三","男",18,new BigDecimal(100)); Person p2 = new Person(2,"李四","女",16,new BigDecimal(200)); Person p3 = new Person(3,"王五","男",18,new BigDecimal(300));
原创
发布博客 2020.08.12 ·
457 阅读 ·
0 点赞 ·
0 评论

Long型比较是否相等的四个方法

Long a = 200L; Long b = 200L; System.out.println(a.equals(b)); System.out.println(a.longValue()==b.longValue()); System.out.println(a-b==0); System.out.println(a.compareTo(b) == 0);共四种方法,前两种较为常用。注意如果比较的值在-128到12..
原创
发布博客 2020.07.01 ·
798 阅读 ·
0 点赞 ·
0 评论

关于Controller层向前端返回枚举类型的字段结构优化

经常碰到类似订单状态返回,数据库只存储了状态数字,而前端要展示对应值这种情况,如何在后台进行优雅的处理呢,我来分享一种方案。如果查询返回的是实体类,则新建专门用于返回前端的DTO类,DTO类继承实体类,新增一个属性返回状态对应的文字public class SupplierRebateResDTO extends SupplierRebate { private String rebateTypeStr; }重写实体类中的状态的set方法 @Override public vo
原创
发布博客 2020.05.13 ·
557 阅读 ·
0 点赞 ·
0 评论

list lamda排序及多次分组

日期类型排序 List<Date> datas = new ArrayList<>(); String s1 = "2019-08-10 22:18:22"; String s2 = "2018-08-10 22:18:22"; String s3 = "2017-08-10 22:19:22"; Date...
原创
发布博客 2019.12.05 ·
737 阅读 ·
1 点赞 ·
0 评论

git 常见错误总结

git push 时,报错如下To https://g*********.git ! [rejected] stage -> stage (fetch first)error: failed to push some refs to 'https:/**.git'hint: Updates were rejected because the remote c...
原创
发布博客 2019.09.20 ·
191 阅读 ·
0 点赞 ·
0 评论

创建线程的四种方式

1.继承于Thread类,重写run()方法;2.实现Runable接口,实现里面的run()方法;前两种不用多说3.使用 FutureTask 实现有返回结果的线程,可以返回线程执行结果public class Test { public static void main(String[] args) throws InterruptedException, ExecutionExc...
原创
发布博客 2019.08.22 ·
73 阅读 ·
0 点赞 ·
0 评论

session,cookie,token的一点理解

cookie的出现是为了解决http协议的无状态问题,cookie是存储在浏览器中的。用户登录后,将登录信息写入cookie,浏览器每次访问携带,来证明登录的合法性。cookie要携带登录用户的信息,这样造成了不安全性,session就是为了解决这个问题。session将用户信息存储在服务器,将生成的唯一id存入cookie,也就是sessionId。这样cookie每次只携带sessionId...
原创
发布博客 2019.08.21 ·
91 阅读 ·
0 点赞 ·
0 评论

http协议详解

三次握手第一次握手客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN=1,同时随机生成初始序列号 seq=x,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。这个三次握手中的开始。表示客户端想要和服务端建立连接。第二次握手TCP服务器收到请求报文后,如果同意连接,则发出确认报文...
原创
发布博客 2019.08.20 ·
157 阅读 ·
0 点赞 ·
0 评论

高级java工程师面试题

1.char为什么比varchar快?varchar存储的时候前两个字节会存储整个字符串的长度,最后一个字节会存储标志符。varchar读取到内存中的时候,是最大的设置,比如varchar(200),虽然实际值存储4个字符,但是在内存还是会占用200字符。varchar如果长度过大,还会造成拆分或者分页机制。如果频繁的修改字符串的长度,varchar还要涉及重新计算长度等。总体来说,char快的...
原创
发布博客 2019.08.20 ·
714 阅读 ·
0 点赞 ·
0 评论

spring动态代理的实现方式

java动态代理: 利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。cglib动态代理: 利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。JDK动态代理和CGLIB字节码生成的区别?JDK动态代理只能对实现了接口的类生成代理,而不能针对类CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中...
原创
发布博客 2019.08.15 ·
2000 阅读 ·
0 点赞 ·
1 评论

设计模式终篇

18解释器模式解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。用的地方比较少。19备忘录模式备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。介绍意图:在不破...
原创
发布博客 2019.08.15 ·
92 阅读 ·
0 点赞 ·
0 评论

设计模式中篇

9桥接模式实现的系统可以多角度分类,每一个分类又有多种变化,就把变化分离出来让它们独立变化,减少耦合。适用场景:当需要大量的继承类处理的时候,造成有大量的继承类,可以适用桥接模式。桥接模式用聚合和合成代替继承。例如手机有多个品牌,每个品牌有各自多个功能,这会涉及大量的继承。10模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类...
原创
发布博客 2019.08.15 ·
61 阅读 ·
0 点赞 ·
0 评论

设计模式首篇

首先说设计模式六大法则:1.单一原则(Single Responsibility Principle):一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化;  a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;2.里氏替换原则(LSP liskov substitution principle):子类可以扩展父类的功能,但不能改...
原创
发布博客 2019.08.14 ·
109 阅读 ·
0 点赞 ·
0 评论

spring aop知识点整理

Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。Pointcut(切点):表示一组 joint point,这些 joint...
原创
发布博客 2019.08.12 ·
234 阅读 ·
0 点赞 ·
0 评论

kafka基础知识扫盲

kafka的主题会分为多个区,生产者发送到kafka的同一主题的消息会分散到多个区,这其中有几个策略实现的原理也很简单List<PartitionInfo> partitions = cluster.partitionsForTopic(topic); return Math.abs(key.hashCode()) % partitions.size();简单来说是通...
原创
发布博客 2019.08.08 ·
151 阅读 ·
0 点赞 ·
0 评论

countDownLatch与cyclicBarrier的区别

countDownLatch举例说明public class countDownlatchTest { public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(5); f...
原创
发布博客 2019.08.07 ·
71 阅读 ·
0 点赞 ·
0 评论

多线程callable

传统的thread里面,在执行完任务之后无法获取执行结果。通过共享变量或者使用线程通信获取结果,比较麻烦。就是Runnable接口,线程的真正业务在run里面。jdk1.5 开始提供Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。二 futureCallable 和Future位于java.util.concurrent 包下。Callable 是个接口,...
原创
发布博客 2019.08.07 ·
60 阅读 ·
0 点赞 ·
0 评论

2pc,3pc协议

参考 倪超 所著书籍《从poaxs到zookeeper 分布性一致协议》2pc3PC无论2PC或3PC,均无法彻底解决分布式一致性问题。解决一致性问题,唯有Paxos 。
原创
发布博客 2019.08.06 ·
867 阅读 ·
0 点赞 ·
0 评论
加载更多