lpp`s blog


  • 首页

  • 归档

  • 分类

  • 关于

  • 搜索

java 对象内存结构

发表于 2016-11-17   |   分类于 java

前言

HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。HotSpot虚拟机的对象头包括两部分信息,第一部分用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等,这部分数据的长度在32位和64位的虚拟机(暂不考虑开启压缩指针的场景)中分别为32个和64个Bits,官方称它为“Mark Word”。对象需要存储的运行时数据很多,其实已经超出了32、64位Bitmap结构所能记录的限度,但是对象头信息是与对象自身定义的数据无关的额外存储成本,考虑到虚拟机的空间效率,Mark Word被设计成一个非固定的数据结构以便在极小的空间内存储尽量多的信息,它会根据对象的状态复用自己的存储空间。例如在32位的HotSpot虚拟机中对象未被锁定的状态下,Mark Word的32个Bits空间中的25Bits用于存储对象哈希码(HashCode),4Bits用于存储对象分代年龄,2Bits用于存储锁标志位,1Bit固定为0。

阅读全文 »

短信及邮件轰炸

发表于 2016-11-15   |   分类于 网络安全

前言

短信轰炸和邮件轰炸是指攻击者可以通过脚本刷短信和邮件发送接口,从而持续的向用户发送短信和邮件,导致用户收到大量垃圾短信和邮件的一种攻击方式。

阅读全文 »

XSS 跨站点脚本攻击

发表于 2016-11-15   |   分类于 网络安全

前言

XSS又称CSS,全称Cross SiteScript,即跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如盗取用户Cookie、破坏页面结构、重定向到其它网站等。

阅读全文 »

CSRF 跨站点请求伪造

发表于 2016-11-15   |   分类于 网络安全

前言

CSRF(Cross Site Request Forgery, 跨站点请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作,有很大的危害性。

阅读全文 »

文件上传漏洞

发表于 2016-11-15   |   分类于 网络安全

前言

一般在web网站中都有文件上传的功能(例如:头像上传,数据导入等),如果服务端没有对上传的文件格式做合法性校验,很可能就会被非法上传,一些可执行文件(例如:jsp文件,php文件,shell脚本等),这些可执行文件一旦触发执行,就会危害服务器安全,比如获取服务器操作权限,删除服务器资源等危害。

阅读全文 »

URL 重定向及跳转漏洞

发表于 2016-11-15   |   分类于 网络安全

前言

url跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。

阅读全文 »

设计模式之享元模式

发表于 2016-11-06   |   分类于 软件设计

前言

享元模式(Flyweight Pattern),以共享的方式高效的支持大量的细粒度对象,通过复用内存中已经存在的对象,降低系统创建对象实例的性能损耗。在某些特殊情况下,大量细粒度对象的创建,销毁及存储所造成的资源和性能上的损耗,可能会在系统运行时形成瓶颈,这时我们就可以采用享元模式的思想来解决此类问题。在享元模式中,享元对象是有状态的,分为两种:内蕴状态(Internal State)和外蕴状态(External State);其中,内蕴状态是不变的,而外蕴状态则是变化的。

阅读全文 »

设计模式之原型模式

发表于 2016-11-06   |   分类于 软件设计

前言

原型模式(Prototype Pattern),核心思想是用原型实例复制出新实例对象,在java中通过Object中的clone方法进行对象的复制,当我们需要类实例可复制时,该类要实现Cloneable标志性接口,用于标明该类实例是可复制的,否则,当我们调用该类实例的clone方法时,会抛出CloneNotSupportedException异常。

阅读全文 »

设计模式之单例模式

发表于 2016-10-30   |   分类于 软件设计

前言

单例模式(Singleton Pattern),顾名思义,是指确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式下类的构造函数要是私有的private,防止外部直接new实例化对象。

阅读全文 »

设计模式之建造者模式

发表于 2016-10-30   |   分类于 软件设计

前言

建造者模式(Builder Pattern),是一个构造复杂对象的设计模式,将复杂对象的创建过程分步完成,使得构建复杂对象变得不是那么复杂;JDK中的StringBuilder和StringBuffer就是建造者模式的应用,前面分步append(“xxx”),在最后一步toString()得到一个完整的,预期的String对象。

阅读全文 »
1…111213…15
lipanpan

lipanpan

142 日志
26 分类
GitHub
友情链接
  • 阿里中间件博客
  • 并发编程网
  • InfoQ
  • Java-api-examples
  • ITFLY8架构师之家
© 2018 lipanpan
由 Hexo 强力驱动
主题 - NexT.Mist