
JAVA
孔令宽
从事安卓、前端富客户端、java后台、netty的开发和研究
展开
-
过滤器、拦截器、controllerAdvice和aop的介入点 (图片参考自网络)
区别:1 实现机制不同、aop基于动态代理等技术:运行时动态生成class。过滤器拦截器等基于责任链设计模式,其中可能用到反射来增加灵活性。2 灵活性(拦截粒度)不同,过滤器和拦截器基于url匹配,粒度较粗,aop可以拦截一切,粒度最细。如何选择:根据粒度和业务实现难度来选择,需要全局拦截的情况,优先选过滤器,控制器方法级别的拦截优先选拦截器。拦截一切选择aop...原创 2020-06-28 17:53:37 · 1280 阅读 · 0 评论 -
JDK 自带 HttpURLConnection 实现简单HTTP代理服务器
自己撸的透传方式全代理实现HTTP请求和响应的代码 分享给有需要的人,代码不解释了,自己看,亲测可以代理,包括下载大文件。public class UnionPayProxyServlet extends HttpServlet { private String pathPrefix; private boolean includePathPrefix; priv...原创 2020-04-16 14:54:05 · 490 阅读 · 0 评论 -
记实践中得出的血泪经验
1 前端浏览器端base64编码的数据经过url编码后传到后端可能会有变化 比如+变成空格 导致解码出现神奇数据 后端一定要做必要的字符替换处理2 Tomcat热替换war包对于那些动态加载的依赖jar会不生效,比如加密实现提供者bcprov系列包 猜测原因可能是动态热部署war时 tomcat卸载之前加载的老jar有问题 正确的做法是部署新包后老老实实的重新启停服务器!!!3...原创 2019-12-11 21:44:42 · 263 阅读 · 0 评论 -
基于Java NIO的即时聊天服务器模型
基于Java NIO的即时聊天服务器模型前不久自己动手写了一个Android的聊天工具,跟服务器的交互还是基于HTTP方式的,在一般通讯上还算凑活,但是在即时聊天的时候就有点恶心了,客户端开启Service每隔3秒去询问服务器是否有自己的新消息(当然3秒有点太快了),在心疼性能和流量的前提下,只能自己动手写个服务器,传统的Socket是阻塞的,这样的话服务器对每个Socket都需要建立一个线程...转载 2013-11-19 13:04:04 · 1046 阅读 · 0 评论 -
Apache MiNa 实现多人聊天室
开发环境:System:WindowsJavaSDK:1.6IDE:eclipse、MyEclipse 6.6开发依赖库:Jdk1.4+、mina-core-2.0.4.jar、slf4j-api-1.5.11.jar、slf4j-log4j12-1.5.11.jarEmail:hoojo_@126.comBlog:http://blog.csdn.ne...转载 2013-11-19 13:47:17 · 835 阅读 · 0 评论 -
Java 线程池的原理与实现
Java 线程池的原理与实现最近在学习线程池、内存控制等关于提高程序运行性能方面的编程技术,在网上看到有一哥们写得不错,故和大家一起分享。[分享]Java 线程池的原理与实现这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧。线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。一提到池,我...转载 2013-10-29 08:50:41 · 596 阅读 · 0 评论 -
java线程终止探讨
程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的、难以发现的错误。 在本篇文章中,我们针对这些难题之一:如何中断一个正在运行的线程。 ...转载 2013-10-29 09:33:29 · 556 阅读 · 0 评论 -
Eclipse快捷键 10个最有用的快捷键
28 25 Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作...转载 2014-01-17 14:48:29 · 478 阅读 · 0 评论 -
类比JS面向对象和JAVA面向对象的设计思想
(个人理解,如有误导请指正)我们都知道JS面向对象是采用原型链的方式设计的,JAVA是采用正统的面向对象的思想设计的,通过我的类比分析,我得出一个结论,它们之间本质上是没有区别的。先讲一讲面向对象的特点: 封装和继承和多态。封装: 最原始的结构化编程理念是 “数据结构+操作”,比如C语言,通过结构体和对相应结构体的一堆操作函数来实现业务逻辑,相应函数的第一个参数都有一个指针形参来指向要...原创 2018-11-28 16:25:37 · 1676 阅读 · 0 评论 -
跟我学代码架构设计模式之--我的同步异步一统理论
我在这里提出一个独特的观点来统一异步和同步的概念,即:异步也归入了同步,异步只是同步的一种情况,只是因为既定约束条件的不同导致了同步和异步的区分。话不多说,直接出我的定义:所谓同步是指:为了在既定约束条件下获得正确的预期结果、多个自主的角色、随时间变化、为了访问共享的资源、而必须满足的访问时序!1 既定约束条件:直接举个例子:我希望客户端发起请求后在限定的等待时间内得到响应、我希望客户...原创 2018-12-28 09:53:18 · 188 阅读 · 0 评论 -
利用NIO建立Socket服务器
利用NIO建立Socket服务器2011-12-07 17:05 tonlion2046 tonlion2046的博客 我要评论(0) 字号:T | TSocket的Channel在Selector上注册某一种动作,Selector通过select操作,监视所有在该Selector注册过的Channel的对应的动作,如果监测到某一对应的动作,则返回selectedKeys,自己手动取到...转载 2013-11-19 10:43:03 · 722 阅读 · 0 评论 -
浅析Tomcat NIO 配置
浅析Tomcat NIO 配置2011-12-07 15:21 northc northc的博客 我要评论(0) 字号:T | TTomcat 6.X实现了JCP的Servlet 2.5和JSP2.1的规范,并且包括其它很多有用的功能,使它成为开发和部署web应用和web服务的坚实平台。AD: 2013云计算架构师峰会课程资料下载 Tomcat 6.X实现了JCP的Serv...转载 2013-11-19 10:38:18 · 682 阅读 · 0 评论 -
高吞吐高并发Java NIO服务的架构(NIO架构及应用之一)
博客分类: 高性能通讯 架构高吞吐高并发JavaNIO架构 Java NIO成功的应用在了各种分布式、即时通信和中间件Java系统中。证明了基于NIO构建的通信基础,是一种高效,且扩展性很强的通信架构。基于Reactor模式的高可扩展性架构这个架构的基本思路在“基于高可用性NIO服务器架构”(http://today.java.net/pub/a/today/2007/02/13...转载 2013-11-15 16:33:32 · 1167 阅读 · 0 评论 -
什么是java future模式
什么是Future?用过Java并发包的朋友或许对Future (interface) 已经比较熟悉了,其实Future 本身是一种被广泛运用的并发设计模式,可在很大程度上简化需要数据流同步的并发应用开发。在一些领域语言(如Alice ML )中甚至直接于语法层面支持Future。这里就以java.util.concurrent.Future 为例简单说一下转载 2013-11-13 08:39:12 · 709 阅读 · 0 评论 -
java自带线程池和队列详细讲解
一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是限制系统中执行线程的...转载 2013-10-28 09:05:24 · 558 阅读 · 0 评论 -
java中关键字volatile的作用
Java多线程threadJVMIBM用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A) ===================...转载 2013-12-06 17:34:41 · 446 阅读 · 0 评论 -
mina教程
简介: Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2 可以作为开发网络应用程序的一个良好基础。本文将介绍 Apache MINA 2 的基本概念和 API,包括 I/O 服务、I/O 会话、I/O 过滤器和 I/O...转载 2013-11-20 15:42:11 · 1391 阅读 · 0 评论 -
MINA使用之UDP篇
MINA是什么?MINA是JAVA非阻塞通讯模式框架(http://hi.baidu.com/yhzhw2121/blog/item/61506c420efb7a189313c619.html这里有详细说明非阻塞和阻塞通讯的区别),由APACHE组织开发。目前此类开源框架有很多各有利弊本人之所以选择MINA的主要原因是因为他出自APACHE之手。本文主要介绍的MINA版本是2.0M6...转载 2013-11-20 11:46:53 · 3596 阅读 · 0 评论 -
Java NIO学习-UDP的例子
这几天需要实现一个底层基于UDP的协议,该协议底层使用UDP传输但是具有拥塞控制、超时重发、数据确认等功能又比TCP简单 (RUDP,Reliable UDP)。在实现协议底层的UDP服务时准备使用Java的NIO,在网上查资料都是以TCP为例讲的,于是自己研究了一下基于UDP的NIO。NIO的思路是基于多路选择的,即由原来的每个连接都由一个线程来等待消息,改为每个连接都在选择器上注册,由选择...转载 2013-11-20 11:39:20 · 1282 阅读 · 0 评论 -
Http和Socket连接区别
相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。1、TCP连接要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连...转载 2013-11-20 11:00:57 · 658 阅读 · 0 评论 -
使用 Apache MINA 开发高性能网络应用程序
刘 冬 (javayou@gmail.com), 开发工程师, 广州市摩网信息技术有限公司 简介: 本文将通过一个简单的问候程序 HelloServer 来介绍 MINA 的基础架构的同时演示如何使用 MINA 开发网络应用程序。发布日期: 2007 年 12 月 24 日 访问情况 : 35823 次浏览 评论: (查看 | 添加评论 - 登录) 平均分 (86个评...转载 2013-11-19 13:58:20 · 1066 阅读 · 1 评论 -
OPENFIRE 编辑词条
基础简介编辑本段XMPPExtensible Messaging and Presence Protocol,简单的来讲,它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是二进制的东东也不是字符串,而是XML。正是因为使用了XML作为消息传递的中介,Extensible 才谈的上,不是么?IMInstant Messenger,及时通信软件,就是大家使用的QQ、M...转载 2013-11-19 13:52:59 · 1141 阅读 · 0 评论 -
Java NIO API详解
NIO API 主要集中在 java.nio 和它的 subpackages 中:java.nio定义了 Buffer 及其数据类型相关的子类。其中被 java.nio.channels 中的类用来进行 IO 操作的 ByteBuffer 的作用非常重要。 java.nio.channels定义了一系列处理 IO 的 Channel 接口以及这些接口在文件系统和网络通讯上的实现...转载 2013-10-28 09:02:25 · 602 阅读 · 0 评论