`
twypx
  • 浏览: 14755 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
线上应用经常会出现OutOfMemoryError错误,档案引起原因多种多样,包括堆内存溢出(Java Heap Space)、方法区持久代内存溢出(Permanet Space)以及本文需要说道的Native操作本地内存出现的内存溢出问题。要说明这个问题,就先要说明Native函数库是怎样操作内存空间的。 NIO中的Native函数库 在JDK1.4中新加入了NIO类,引入一种基于渠道与缓冲区的I/O方式,它可以通过本机Native函数库直接分配本机内存,然后通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。所以由Native函数库引起的OOM ...
本文主要记录下给予python的nginx日志统计过程,主要原因是最近系统经常遭到未知程序的疯狂爬数据,虽然做了防爬机制,但是还是必须要找出是哪些IP访问次数比较多。想到的办法就是通过分析ngxin日志,从而找出这些IP排行即可。具体方案的操作步骤包括: ngxin日志每日切割功能; 设置ngxin的日志格式; 编写python代码在每日切割之前统计下access.log中的IP访问次数并将统计结果录入MongoDB; 编写web查询MongoDB进行统计。 下面按照每个步骤详细说明。
在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下6种调优经验。 1. 服务器资源 服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。 (1) 对于高 ...
在剖析该问题前请看如下代码 public static String bytes2HexString(byte[] b) {   String ret = "";   for (int i = 0; i < b.length; i++) {    String hex = Integer.toHexString(b[ i ] & 0xFF);    if (hex.length() == 1) {     hex = '0' + hex;    }    ret += ...
1. ByteArrayOutputStream 在实例化的时候会创建一个byte 类型的数组缓冲区,默认 32 个字节,可以无限增长。可以将内存中的对象读到该数组中。其中 write() 方法负责往数组中写数据。 实例化时的代码: /** * Creates a new byte array output stream. The buffer capacity is * initially 32 bytes, though its size increases if necessary. */ public ByteAr ...
<!-- [if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> ...
今天主要说说原型模式prototype,原型模式最基本的理解就是复制一份对象实例,它也是一种创建型模式。一般情况是我们新建一个原型对象类,然后对该对象进行复制,重新修饰中就可以当作新对象使用了。这在处理比较复杂的对象时是非常高效的,因为使用的是已经存在实例化的对象。 一般采用原型模式的原型对象都需要实现Cloneable接口,实现方式就是使用clone()方法。 /** * 原型模式——浅复制 * @author xiAoT * */ public class Prototype implements Cloneable { @Override prote ...
写单例模式,总是让我想起孔乙己写“茴香豆”的茴的四种写法,虽然感觉他比较迂腐,但是在说到单例模式时,却也是忍不住的要说单例模式也有好几种写法,这样算来,自己也算迂腐了。不过不管怎样,既然是做技术的,多掌握一点也是比较好的,同时也将积累的分享给大家,大家各凭所好吧。   在说“茴”字之前,需要先说下什么是“茴香豆”,也就是我们的单例模式。单例模式就是让一个对象只产生一个实例,并且对外提供一个全局的方法对其进行调用,通常来说方法名都使使用getInstance()。   再来说说,单例模式的整体架构。 (1)私有的构造函数 (2)私有的静态实例,该实例禁止外部访问。 (3)一个公有的静 ...
面向对象设计原则总结来讲包含六大基本原则,即开闭原则、里氏代换原则、合成复用原则、接口隔离原则、迪米特法则和依赖倒转原则。   掌握这六大基本设计原则的精髓,才能真正为以后的设计模式的学习做好铺垫,才能 ...
今天发现,原来JS是原生支持checkbox框的,有个属性indeterminate,其值为true/false,当为true时,checkbox就显示为绿色方块心的checkbox框。但是,该属性不能直接写在html标签里,必须使用js来赋值才行。 同时,可惜的是,该属性不支持firefox,看来在firefox下只能用图片代替了。。。
用例图 用例图主要用于系统的初期进行系统需求分析,用于描述系统有哪些功能,从用户的角度观察系统应支持哪些功能,帮助分析人员理解系统的行为,同时也可以帮助测试人员了解系统有哪些功能,便于编写测试用例。 一个系统中可以有多个用例图,每个用例图可以用来表示其中一个模块应有的功能。 用例图主要包括参与者、用例、系统边界、通信关联 四种组成部分。 参与者是指与系统发生交互的人或者其它系统或者其它模块。 用例是指系统应该提供的服务。 系统边界,用于圈定系统所处子系统的范围。 通信关联描述了参与者与用例之间的交互关系。
UML每一个视图针对团队中的不同受众 1. 系统的用例视图面向最终用户和测试人员; 2. 系统的逻辑试图面向分析人员和设计人员; 3. 系统的组件试图面向系统集成人员和编程人员; 4. 系统的部署视图面向系统和网络工程师;   UML建模过程 1. 需求分析——用例图; 2. 系统分析:分析业务规则——状态图; 3. 系统分析:分析业务流程——活动图; 4. 系统设计:设计静态结构——类图和包图; 5. 系统设计:类被调用关系——序列图; 6. 系统设计:用户调用类的过程——协作图; 7. 系统架构——组件图和部署图。
有时你在办公室里浏览乱七八糟的网站(反正跟工作无关就是啦),突然老板进来了,那么这枚叫做PanicButton的Chrome扩展就可以帮到你了,点击它之后即可隐藏所有标签页,为了保险起见你甚至可以设置一个安全页,比如说是你们公司的网站或是内部协作平台之类的,在隐藏那些标签页的同时让这个安全网页跳出来,证明你心系工作: 这个扩展也支持快捷键启动,那样就更加的迅雷不及掩耳盗铃之势了。作者甚至心细到为你设计了一个恢复密码,只有输入对了密码才能恢复之前浏览的网页,否则老板永远不知道你在做啥。 当然当然,最后的最后你还需要将这个扩展的按钮隐藏起来,让别人不知道你在玩这套把戏。 我怀疑这枚 ...
UML图可以归纳为静态建模和动态建模两大类。 静态建模主要包括     1. 用例图,主要坐拥是描述需求;     2. 静态图,包括类图、对象图和包图,主要作用是描述类的结构;     3. 实现图,包括组件图、部署图,主要作用是描述软件结构; 动态建模主要包括     1. 行为图,包括状态图、活动图,主要作用是描述动态建模;     2. 交互图,包括序列图、协作图,主要描述交互关系。      
Global site tag (gtag.js) - Google Analytics