![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA底层
文章平均质量分 53
飞鱼武士
这个作者很懒,什么都没留下…
展开
-
JAVA类动态载入的实现
JAVA类动态载入的实现1 前言前段时间因为项目的需要,我搞了一套类似Servlet重新载入的一个框架,实现了类的动态载入过程。本文写了一些我的学习成果以及心得供大家分享一下。2 类载入的原理(下面引用网上的一篇文章): 当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构: bootstrap clas转载 2014-07-05 16:34:36 · 696 阅读 · 0 评论 -
java静态代理和动态代理(JDK&cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为转载 2015-08-31 15:31:34 · 281 阅读 · 0 评论 -
AOP和IoC的实现原理
用过spring的朋友都知道spring的强大和高深,都觉得深不可测,其实当你真正花些时间读一读源码就知道它的一些技术实现其实是建立在一些最基本的技术之上而已;例如AOP(面向方面编程)的实现是建立在CGLib提供的类代理和jdk提供的接口代理,IOC(控制反转)的实现建立在工厂模式、java反射机制和jdk的操作XML的DOM解析方式. 下面来对spring源码中的基本技术进转载 2015-08-31 15:38:02 · 901 阅读 · 0 评论 -
每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
本文转自:http://blog.csdn.net/cywosp/article/details/23397179/ 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环转载 2015-07-24 17:19:04 · 531 阅读 · 0 评论 -
KV系统中的chunk和路由设计
引言: 在目前很多KV系统或分布式Cache中,路由策略都是基于物理节点而设计,例如Voldemort的一致性Hash,其Ring中的每个节点,都会对应现实中的某一台物理机器。这样的设计,对于一个比较单纯且相对独立的KV系统而言,应付某个海量的KV应用场景可能没什么问题。但我们现实中的应用场景往往可能是,多个业务场景,都希望访问一个统一的KV集群。那么在这个海量KV系统中,如何有效的转载 2015-07-24 16:17:06 · 615 阅读 · 0 评论 -
聊聊并发——HashMap、HashTable及ConcurrentHashMap
本文转自:http://www.infoq.com/cn/articles/ConcurrentHashMap/术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组转载 2015-07-24 16:33:13 · 474 阅读 · 0 评论 -
构建需求响应式亿级商品详情页
商品详情页是什么商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口。京东商城目前有通用版、全球购、闪购、易车、惠买车、服装、拼购、今日抄底等许多套模板。各套模板的元数据是一样的,只是展示方式不一样。目前商品详情页个性化需求非常多,数据来源也是非常多的,而且许多基础服务做不了的都放我们这,因此我们需要一种架构能快速响应和优雅的解决这些需求问题。因此我们重新设计了商品详情页转载 2015-09-04 14:07:52 · 1103 阅读 · 0 评论 -
JDK1.7的新特性
JDK7 新特性系列之一 总览本文转自:http://www.ibm.com/developerworks/cn/java/j-lo-jdk7-1/JDK 全称 Java Development Kit,是一套供 Java 开发人员使用的软件开发工具,其中包括了 JRE(Java Runtime Environment),以及 Java、Jar、Javac、 Javap、Javah、J转载 2015-08-06 19:37:56 · 813 阅读 · 0 评论 -
将响应数据进行压缩处理的过滤器(CompressionFilter)
本文来源于:http://www.cnblogs.com/hemingwang0902/archive/2012/01/12/compression-filter.html同类内容有: 通用的用户登录过滤器(SessionFilter) 设置不使用缓存的过滤器(ClearCacheFilter) 设置站点黑名单的过滤器(Bann转载 2015-11-26 08:58:26 · 766 阅读 · 0 评论 -
Java常见内存溢出异常分析(OutOfMemoryError)
1.背景知识1).JVM体系结构 2).JVM运行时数据区JVM内存结构的相关可以参考:http://my.oschina.net/sunchp/blog/3697072.堆溢出(OutOfMemoryError:java heap space)堆(Heap)是Java存放对象实例的地方。堆溢出可以分为以下两种情况,这两种情况都会抛出OutO转载 2015-07-15 15:35:42 · 783 阅读 · 0 评论 -
【JAVA多线程】JAVA内存模型总结
学习资料:http://www.infoq.com/cn/articles/java-memory-model-1Java的并发采用的是共享内存模型(而非消息传递模型),线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现同步是显式进行的。程序员必须显式指定某个方法或某段代码需要在线转载 2015-07-15 14:06:17 · 506 阅读 · 0 评论 -
java.lang.OutOfMemory分析
一、内存溢出类型1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了转载 2015-07-15 15:06:42 · 621 阅读 · 0 评论 -
java静态代理和动态代理
本文动态代理部分内容大量引自:http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/一、代理概念为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。转载 2015-04-26 09:35:20 · 396 阅读 · 0 评论 -
ThreadLocal设计模式
本文主要整理自本文摘自:ThreadLocal设计模式线程安全问题的由来 在传统的Web开发中,我们处理Http请求最常用的方式是通过实现Servlet对象来进行Http请求的响应.Servlet是J2EE的重要标准之一,规定了Java如何响应Http请求的规范.通过HttpServletRequest和HttpServletResponse对象,我们能够轻松地与Web容器交互.转载 2015-05-21 19:29:39 · 554 阅读 · 0 评论 -
JAVA技术框架选型
在做新项目的时候,遇到项目技术选型问题,思考了一下,可以从以下几个方面进行考虑:1. 技术应用场景 2. 技术可靠性稳定性考虑,该技术是否得到了一定的应用 3. 技术API文档是否完善,与其他框架的性能比较; 4. 是否开源,收费(如果需要进行开源改造) 5. 技术团队的技术氛围,新技术需要能尽量贴合团队成员的一贯开发路线;原创 2015-06-16 20:41:50 · 2250 阅读 · 1 评论 -
socket阻塞与非阻塞,同步与异步、I/O模型
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回转载 2015-06-17 15:32:03 · 651 阅读 · 0 评论 -
Filter介绍
Filter介绍 Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。它与Servlet的区别在于:它不能直接向用户生成响应。完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。Filter有如下几个转载 2015-06-01 10:04:43 · 430 阅读 · 0 评论 -
过滤器、监听器、拦截器的介绍与区别
1.过滤器Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面转载 2015-06-01 10:16:48 · 490 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m -转载 2015-06-30 09:05:31 · 376 阅读 · 0 评论 -
Java NIO:浅析I/O模型
也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Pr转载 2015-07-07 17:05:32 · 308 阅读 · 0 评论 -
使用过滤器Filter实现网页静态化
设计目标: 实现网页的静态化。设计思路: 实现方法有三种:1. 通过动态模板引擎FreeMarker、Velocity渲染后,直接输出到一个静态文件中。2. 通过Nginx的相关插件(lighttpd、squid)做静态化处理,具体可以参考:http://www.oschina.net/question/54100_91053.原创 2015-11-26 09:49:58 · 2921 阅读 · 0 评论