自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

物联网爱好者,持续分享电子DIY、物联网相关技术

持续分享电子DIY、物联网相关技术

  • 博客(13)
  • 收藏
  • 关注

原创 finalize()方法对垃圾回收的影响

概述 Java中提供了一个类似C++析构函数的机制: finalize()方法,该函数允许子类重载,用于在对象被回收是释放资源。但是一般情况下,尽量不要使用finalize函数进行资源的释放,原因主要有一下几点:finalize函数调用时,有可能导致对象复活。finalize函数执行的时间没有保障,他完全由GC线程决定,正常情况下,若不发生gc,则finalize一直都没有机会被执行。d

2015-05-29 21:04:04 3889

转载 Paoding Rose使用手册

本文转载自:http://www.54chen.com/rose.htmlrose手册计划rose项目源代码地址:http://code.google.com/p/paoding-rose/目标:光大rose在国内java行业的使用,降低java入门。人人网、糯米网释出的、开源的高效Java web开发框架。在小米米聊服务端再次被验证和使用。一个从零开始的创业公司,在大

2015-05-28 11:07:04 6837

原创 java中四种引用类型

强引用一般程序中通过new创建的对象的引用都是强引用,强引用只有在从根节点不可达的情况下才会被垃圾回收器回收,所以可能产生内存溢出。软引用使用SoftReference创建,弱于强引用,在内存紧张的时候会被回收,不会产生内存溢出。弱引用使用WeakReference创建,弱于软引用,在系统gc时只要发现弱引用直接回收,不会产生内存溢出。虚引用使用PhantomReference创建,最弱的引用类型,

2015-05-27 17:26:28 1042

原创 垃圾回收算法概述

引用计数:一个对象被引用计数器加一,取消引用计数器减一,引用计数器为0才能被回收。优点:简单。缺点:不能解决循环引用的问题,比如A引用B,B引用A,但是这两个对象没有被其他任何对象引用,属于垃圾对象,却不能回收;每次引用都会附件一个加减法,影响性能。标记清除法:分为两个阶段:标记阶段和清除阶段。标记阶段通过根节点标记所有可达对象,清除阶段清除所有不可达对象。缺点:因为清除不可达对象之后剩余的内存不

2015-05-27 15:40:11 1008

原创 直接内存和堆内存的性能比较

背景知识 在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆中来回复制数据。 显然

2015-05-27 13:55:09 2794 2

原创 常用JAVA虚拟机参数

-XX:+PrintGC 启动java虚拟机后,只要遇到gc,就打印日志。-XX:+PrintGCDetails gc发生时,打印更详细的日志。-XX:+PrintHeapAtGC gc发生时,打印更详细的堆信息。-XX:+PrintGCTimeStamps gc发生时,额外打印gc时间,该时间为虚拟机启动到现在的时间偏移量。-XX:+PrintGCApplicationConcur

2015-05-27 11:30:23 1654

原创 java虚拟机的基本结构

java堆用于存放对象示例,与数据相关,java栈主要与线程的函数调用相关函数调用一次出入java栈一次,调用的时候入栈,调用结束(return或者throw)出栈,函数参数和函数局部 变量保存在栈帧中,所以函数调用结束之后栈帧被弹出,相应的局部变量也就失效了。函数参数和局部变量越多,需要栈帧中保存的局部变量表就越大,函数调用的层次就会越少。局部变量是垃圾回收的很重要的根节点,任何被局部变量

2015-05-27 11:28:53 825

原创 初探java虚拟机

java 7开始,数字之间可以使用下划线分隔,增加可读性char在java中占2字节,在C中占1字节数字在计算机中使用补码表示,正数的补码为原码,负数的补码为反码+1

2015-05-27 11:27:55 807

转载 异步处理在分布式系统中的优化作用

本文根据阿里巴巴技术保障研究员赵海平在2015年QCon全球软件开发大会(北京站)主题演讲整理而成。赵海平在Facebook工作8年期间,主要针对后端进行性能优化的工作,包括PHP的优化,memcache的优化,等等后端组件。偶然有机会跟阿里的朋友沟通他们遇到的问题,聊得比较深入,就发现虽然阿里是用Java的,但在大的系统优化方面遇到的问题,跟Facebook是很类似的,因此回国加入阿里,

2015-05-10 23:18:26 1364

原创 ToStringBuilder介绍

ToStringBuilder简单介绍ToStringBuilder是用于构建一个类的toString字符串的工具类,提供了多种不同的格式,同时还能自定义打印哪些变量。ToStringBuilder主要方法append()方法: 该方法用于自定义添加需要打印哪些变量,只有使用append添加的变量才会在toString函数中打印。reflectionToString()方法: 该方法使用反射机制

2015-05-10 23:12:02 2572

原创 Markdown介绍

Markdown简介说明:文章首发于简书,转载请注明出处! Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。 Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如LaTeX,Doc

2015-05-06 13:58:22 936

原创 使用simple json时遇到的一个小问题

使用simple json时遇到的一个小问题发现问题最近写了个程序,在构建http参数的时候使用到了org.json.simple.JSONObject这个类,上线之后有客户反馈说http参数格式不正确,如果参数中包含斜杠(/)则前面都会自动加上一个反斜杠()。调查问题发现问题之后首先去看了一下simple json的源代码,在他的源码中发现如下一段: public static void

2015-05-05 20:36:10 2014

原创 代理与反向代理

简单理解代理 代理的是客户端。反向代理 代理的是服务端。更详细的说明代理 比如客户端C需要访问网站B, 但是由于B被墙了,C不能直接访问,然而有另外一个中间客户端P,他能翻 墙,能访问B网站。所以就有这样一种解决方案:C将访问B网站的请求先发给P,然后P再将这个请求转发给B,最后P将B网站返回的结果返回给C。这里面P就起到中介,代理的作用,所以P就叫代理。反向代理 客户端C需要访

2015-05-04 11:42:00 1180

空空如也

空空如也

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

TA关注的人

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