自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

转载 七张图彻底讲清楚ZooKeeper分布式锁的实现原理

目录七张图彻底讲清楚ZooKeeper分布式锁的实现原理【石杉的架构笔记】一、写在前面二、ZooKeeper分布式锁机制三、总结七张图彻底讲清楚ZooKeeper分布式锁的实现原理【石杉的架构笔记】转载信息:作者:石杉的架构笔记链接:https://juejin.im/post/5c01532ef265da61362232ed来源:掘金一、写在前面之前写过一篇文章《拜托,面试请不要再...

2019-10-04 16:42:25 277

原创 maven本地jar包打入war包

maven本地jar包打入war包1.添加依赖2.资源扫描)有时需要将本地的jar包打包到war中已实现一些功能,尝试了两种方式将本地jar包打入war包。1.添加依赖添加dependency,配置scope为system 以及jar所在的路径 <dependency> <groupId>com.sun</groupId> ...

2019-08-19 19:16:18 957

原创 java ClassPath获取资源路径

ClassPath路径项目中很多时候会用到classpath:来获取资源路径。很多时候我们在xml中定位资源的时候,不知道如何定义。其实我们只要明白一点就很容易了:资源文件的定位只需要按打好的包的文件路径描述就没问题了。如下图所示classes 就是 ClassPath 代表的路径,所以引入资源文件的位置就可以按照相对与于classes的路径来写。如下所示:...

2019-05-06 18:46:34 1662

原创 高并发网络服务器设计

小白模式毕业入职第一家公司的入职作业就是写一个高并发的http服务器。当时的大致思路是这样:主线程创建监听端口,将监听端口放入epoll监听列表,然后epoll开始循环监听,当到来的读请求是监听端口,则接受客户端连接,并将客户端连接放入监听队;当到来的读请求来自于客户端连接时,直接开启新的线程来处理客户端发来的请求。高端模式使用过一些高并发网络通信框架之后发现,它们的实现方式大多都是这样...

2019-04-28 12:43:57 1210

原创 mvc单个请求处理线程不变

mvc单个请求处理线程不变问题疑问思考结论问题通过拦截器讲用户信息解析到threadlocal中,在后续的处理流程里面将这个用户的信息取出来疑问这个取到的用户信息一定就是现在所处理请求对应的用户信息吗,也就是说这个这个线程中途万一处理了别的请求那么thread local里面存的就是别的用户的信息了思考这种情况是不会发生的一个线程从人物队列中取出一个请求处理,那么这个请求就不会再被别...

2019-04-22 12:29:39 363

原创 @Value 注入属性值(补充)

在@Value 注入属性值(下)中发现@Value注解注释的属性是在InstantiationAwareBeanPostProcessor的postProcessPropertyValues方法注入到bean中的。但是当时并没有发现是在哪一个实现了postProcessPropertyValues接口的类中对@value注解进行了注入。今天通过学习@Autowire注解的注入时机,有了新的发现 ...

2018-08-27 19:17:54 1465

原创 @Value 注入属性值(下)

@Value 注入属性值(中)之前试验过@Value是在&amp;amp;lt;init&amp;amp;gt;对象实例化后,在注入属性(即调用类的set方法实现属性的初始化)前其作用的。 具体是如何起作用以及是什么时候其作用的。 下图是spring中一个bean的生命周期:&amp;amp;lt;init&amp;amp;gt;对象实例化即时途中的“实例化”那一步。注入属性即时图中的“设置属性值”。那么@Value的作用时间可能在...

2018-08-22 19:30:27 836

原创 @Value 注入属性值

本次实验室为了测试@Value注解是在什么时候起效的 下面是程序详情: 配置文件 study.propertiesstudy=123spring配置文件&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" ...

2018-08-16 19:59:05 6042

原创 bean 初始化<clinit><init> 初探

bean 初始化&lt;clinit&gt; &lt;init&gt; 初探java文件编译后会为每个类自动生成一个&lt;clinit&gt;和&lt;init&gt;函数。&lt;clinit&gt; 函数是在类第一次加载到jvm方法区的时候调用,实现对类中的一些静态变量赋值以及执行静态语句块。&lt;init&gt;是在对象实例初始化时候调用,对类中的一些变量赋值以及执行一些语句...

2018-08-08 20:26:13 314

原创 main函数结束后程序会怎样

本人之前一直是使用c/c++进行编程,现在转用java已经一年了,觉得这里面还是有很多使用上的不同。C/C++每个c/c++代码有一个main函数,程序启动后,会开启一个主线程执行main函数,在main函数内部我们可以开启很多的线程,如果主函数main return的话,这些在main函数里开启的线程都会结束。javajava 也是一样,想要程序运行的话也必然会有一个ma

2018-01-22 18:20:51 3137

原创 Netty channel 关闭之后收到大量处理包

现象Netty Channel.close()触发channelInactive此时 channel state isOpen=false, isActive=false, isWritable=false,此时channel不会在接收来至客户端的请求。但是此时继承于SimpleChannelInboundHandler 的handler的channelRead0还是在不断处理数

2018-01-18 18:57:26 8084 7

原创 网络传输Byte数组

网络传输Byte数组案例背景需要将byte数组,以Json的方式传输,Json默认会将Byte数组转化成String作为key的value。我们也可以自己将Byte数组转化为String在放入Json键值对里。在接手端再从Json中解析出Byte数组。但是项目中的问题是:传过来的Byte数组还原不了。接收端解析得到的Byte数组的长度和发送端的原始Byte数组的长度都不一样。

2018-01-17 18:26:03 11143 3

原创 Vector erase操作 core down

Vector erase操作 core down复现代码第一个坑还有坑改进代码Vector erase操作 core down复现代码for(std::vector<int>::iterator iter=uid.begin(); iter!=uid.end(); iter++) { if( *iter == temp_uid) {

2017-12-21 17:03:53 622

原创 多态

多态C语言面向对象语言C虚函数虚继承面向对象语言java多态C语言函数指针是发源于C语言的。是在C语言中实现多态的手段#include <iostream>typedef int (*calculate)(int a, int b);int add(int a, int b);int sub(int a, int b);int cal(int a, int b, calculate

2017-10-19 15:28:17 189

原创 Netty Tls实现

Netty Tls实现TLS作用TLS发展历史TLS基本原理客户端发出请求ClientHello服务器回复ServerHello客户端回应服务器最后回应证书生成Netty 代码实现服务端实现客户端代码调试观测Netty Tls实现TLS作用如果没有使用TLS的话会存在一下风险(1) 窃听风险(eavesdropping):第三方可以获知通信内容。(2) 篡改风险(tamper

2017-10-07 16:35:28 4068

原创 java socket与Netty服务器通信

java socket与Netty服务器通信 C/C++中在进行网络通信的过程中直接面对的是字节流或是字符流。java中网络通信的话面对的是缓冲区buffer。ByteBuffer是来自于java.nioByteBuf是来自于io.netty.buffer 两者相互转换自然是可以的。ByteBuf的nioBuffer()方法

2016-08-28 16:05:42 5000 1

基于服务器实现客户端与客户端之间会话

编写一个客户端程序,一个服务器程序。服务器先开启,客户端登录,在登录时将自己在聊天是的监听端口发送给服务器,服务器保存该客户端的监听端口及ip地址。并在客户端弹出好友列表对话框,当另一客户也已上线后,在对话框的列表空间中点击该好友点的项目条,此时客户端发送一个封装了对方账户名的消息给服务器,服务器接到消息后,将此好友的ip及监听端口封装后发送给请求客户端。此时客户端弹出聊天界面即可与好友聊天。

2011-06-11

空空如也

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

TA关注的人

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