自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 问答 (1)
  • 收藏
  • 关注

原创 java并发学习回顾与总结02

详见github:https://github.com/wangmingyangid/LearningRecord (并发编程.md)

2021-02-21 23:15:23 66

原创 java并发学习回顾与总结01

详见github地址:https://github.com/wangmingyangid/LearningRecord

2021-02-07 21:41:41 67

原创 markdown 学习记录

笔记详见github:https://github.com/wangmingyangid/LearningRecord

2021-01-31 23:29:29 55

翻译 IntelliJ IDEA 调试技巧

原文出处:https://mp.weixin.qq.com/s/-DxVHKkIytCsvy1sXV_DuQ一、条件断点应该是i==10二、回到上一步可以查看上个断点处的值三、多线程调试多线程调试时,控制断点停在哪个线程四、临时执行表达式/修改变量的运行值...

2021-01-24 21:34:00 94

翻译 netty in action 中WebSocket章节demo实现

代码详情:https://github.com/wangmingyangid/netty01通过定义如下几个Handler实现该功能:1.HttpServerCodec将字节解码为 HttpRequest、HttpContent 和 LastHttpContent。并将 HttpRequest、HttpContent 和 LastHttpContent 编码为字节。2.ChunkedWriteHandler写入一个文件的内容(在文件需要进行加解密和压缩时使用)3 .Http...

2021-01-17 23:44:58 100

翻译 使用Spring Security实现OAuth2授权认证

介绍OAuth 2标准中定义了以下几种角色:资源所有者(Resource Owner):即代表授权客户端访问本身资源信息的用户,客户端访问用户帐户的权限仅限于用户授权的“范围”。 客户端(Client):即代表意图访问受限资源的第三方应用。在访问实现之前,它必须先经过用户者授权,并且获得的授权凭证将进一步由授权服务器进行验证。 授权服务器(Authorization Server):授权服务器用来验证用户提供的信息是否正确,并返回一个令牌给第三方应用。 资源服务器(Resource Serv.

2021-01-10 22:32:40 487

原创 netty实战学习问题记录

Q1:ChannelHandlerContext 的firexxxx方法是自动调用的?答:通过在服务端添加俩个同样的handler,并复写了channelRead方法进行实验,当客户端发送过来消息时,入站的第一个handler会被调用,第二个并不会被调用。通过查阅ChannelInboundHandlerAdapter的源码就会发现,它的默认实现是通过ctx.fireChannelRead(msg);将消息转发给下一个handler;所以,要想实现两个channelRead方法都被调用,需要第一个

2021-01-03 20:58:20 207

原创 netty学习记录03

尚硅谷netty学习笔记见github:https://github.com/wangmingyangid/LearningRecord

2020-12-27 18:57:07 50

原创 netty学习02

本周学习了netty组件基本的知识,包含channel、pipeline、handler。具体代码参考:https://github.com/wangmingyangid/netty01

2020-12-20 22:19:16 68

原创 netty学习记录(从NIO到Netty)

代码详见:https://github.com/wangmingyangid/netty01

2020-12-13 19:50:58 88

原创 mina框架学习

实战代码:参加github:https://github.com/wangmingyangid/minaIOHandler这个接口是你编写业务逻辑的地方,从上面的示例代码可以看出,读取数据、发送数据基本都在这个接口总完成,这个实例是绑定到IoService 上的,有且只有一个实例(没有给一个IoService 注入一个IoHandler 实例会抛出异常)。它有如下几个方法:A. void sessionCreated(IoSession session):这个方法当一个...

2020-12-06 21:24:03 206

原创 redis实战01

搭建完成微服务架构的美食项目;实现单点登录;自定义redis分布式锁实现一人一单,及防止超卖。详见GitHub:https://github.com/wangmingyangid/food-social-contact-parent

2020-11-29 19:18:35 105

原创 SpringCloud 学习笔记01

本周学习了SpringCloud Eureka相关的知识笔记详见:https://github.com/wangmingyangid/LearningRecord

2020-11-22 21:17:58 74

原创 支付系统研究01

构建支付系统项目:实现支付宝PC支付和微信Native支付详见:https://github.com/wangmingyangid/pay

2020-11-08 21:45:35 107

原创 spring-boot学习记录03

整合redis与rabbitmq详见github:

2020-11-01 22:11:53 65

原创 spring-boot学习记录02

详见GitHub:https://github.com/wangmingyangid/LearningRecord

2020-10-25 20:59:09 58

原创 spring-boot学习记录01

详见github地址:https://github.com/wangmingyangid/LearningRecord

2020-10-18 21:37:41 60

原创 web基础总结

详见githubhttps://github.com/wangmingyangid/LearningRecord

2020-10-11 21:22:51 76

原创 redis学习01(数据结构实操)

参加本人github地址https://github.com/wangmingyangid/LearningRecord

2020-09-27 19:59:27 92

原创 整合SSM实现一个CRUD的小项目

项目地址详见:https://github.com/wangmingyangid/ssm-crud

2020-09-20 21:40:11 163 1

原创 git 学习记录

参加本人github地址https://github.com/wangmingyangid/LearningRecord

2020-09-13 12:18:22 70

原创 java 基础学习

多态的特点在多态中成员函数的特点:在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。在运行时期:参阅对象所属的类中是否有调用的方法。简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。但是,有一种特别要注意,那就是多态中,成员变量:无论编译和运行,都参考左边(引用型变量所属的类)。package org.wmy.test;public class A { public int age; public A(){} publi

2020-09-06 22:18:32 64

翻译 redis学习

目录列表字典集合有序集合总结参考与说明Redis 是一种键值(Key-Value)数据库。Redis 中只包含“键”和“值”两部分,只能通过“键”来查询“值”。Redis 主要是作为内存数据库来使用,也就是说,数据是存储在内存中的。尽管它经常被用作内存数据库,但是,它也支持将数据存储在硬盘中。Redis 中,键的数据类型是字符串,但是为了丰富数据存储的方式,方便开发者使用,值的数据类型有很多,常用的数据类型有这样几种,它们分别是字符串、列表、字典、集合、有序集合。列表

2020-08-30 23:07:31 80

翻译 java 线程池学习记录

创建线程,需要底层调用操作系统的API申请各种资源,这个成本很高,所以线程是一个重量级的对象,应该避免频繁创建和销毁。因此避免方案就是采用线程池。目前业界线程池的设计,普遍采用的都是生产者 - 消费者模式。线程池的使用方是生产者(提供待执行的任务),线程池本身是消费者(线程池里的线程执行任务)。下面通过一个简单的例子,来看看线程池实现的基本原理://简化的线程池,仅用来说明工作原理class MyThreadPool{ //利用阻塞队列实现生产者-消费者模式 BlockingQ

2020-08-21 19:44:22 94

翻译 并发编程原子类学习

目录原子类(CAS原理)原子类概况参考与说明原子类(CAS原理)对于简单的原子性问题,还有一种无锁方案。Java SDK 并发包将这种无锁方案封装提炼之后,实现了一系列的原子类。无锁方案相对互斥锁方案,最大的好处就是性能。互斥锁方案为了保证互斥性,需要执行加锁、解锁操作,而加锁、解锁操作本身就消耗性能;同时拿不到锁的线程还会进入阻塞状态,进而触发线程切换,线程切换对性能的消耗也很大。 相比之下,无锁方案则完全没有加锁、解锁的性能消耗,同时还能保证互斥性,既解决了问题,又没有带来.

2020-08-16 22:23:18 110

翻译 java并发基础知识学习03

目录原子性问题到底该如何解决呢?简易锁模型vs改进后的锁模型Java 语言提供的锁技术:synchronized锁和受保护资源的关系参考与说明原子性问题到底该如何解决呢?原子性问题的源头是线程切换,如果能够禁用线程切换那不就能解决这个问题了吗?而操作系统做线程切换是依赖 CPU 中断的,所以禁止 CPU 发生中断就能够禁止线程切换。在早期单核 CPU 时代,这个方案的确是可行的,但是并不适合多核场景。在多核场景下,同一时刻,有可能有两个线程同时在执行,一个线程执行在 C.

2020-08-09 22:40:21 124

翻译 java并发基础知识学习02

目录Happens-Before 规则1. 程序的顺序性规则2. volatile 变量规则3. 传递性4. 管程中锁的规则5. 线程 start() 规则6. 线程 join() 规则被我们忽视的 final总结参考与说明如何解决其中的可见性和有序性导致的问题,这也就引出来了今天的主角——Java 内存模型。导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性、有序性最直接的办法就是禁用缓存和编译优化,但是这样问题虽然解决了,我们程序的性能可就堪

2020-07-31 20:29:03 139

翻译 java并发基础知识学习01

目录缓存导致的可见性问题线程切换带来的原子性问题编译优化带来的有序性问题总结参考与说明CPU、内存、I/O 设备三者的速度差异很大。为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为:CPU 增加了缓存,以均衡与内存的速度差异; 操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异; 编译程序优化指令执行次序,使得缓存能够得到更加合理地利用。缓存导致的可见性问题多核时

2020-07-31 19:57:46 161

空空如也

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

TA关注的人

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