- 浏览: 62204 次
- 性别:
- 来自: 深圳
最新评论
文章列表
Java虚拟机的JVM垃圾回收机制
- 博客分类:
- JVM
1.JVM内存空间
JVM堆(Heap)= 新生代(Young) + 旧生代(Tenured)
分区作用:
新创建的对象通常先将其分配在新生代中,在新生代中经过若干次GC之后仍未释放的对象,再将它移动到旧生代。为了让内存回收更高效(GC会暂停JVM中的应用),Sun JDK在1.2开始对堆采用了分代管理的方式。在分配对象遇到内存不足时,先对新生代进行GC(Young GC);当新生代GC之后仍无法满足内存空间分配需求时, 才会对整个堆空间以及方法区进行GC (Full GC)
相关参数:
-Xms -- 设置堆内存初 ...
java中几种reference区别
- 博客分类:
- JVM
Java.lang.ref 是 Java 类库中比较特殊的一个包,它提供了与 Java 垃圾回收器密切相关的引用类。这些引用类对象可以指向其它对象,但它们不同于一般的引用,因为它们的存在并不防碍 Java 垃圾回收器对它们所指向的对象进行回收 ...
JVM处理Java数组方法
- 博客分类:
- JVM
记得vamcily 曾问我:“为什么获取数组的长度用.length(成员变量的形式),而获取String的长度用.length()(成员方法的形式)?”
我当时一听,觉得问得很有道理。做同样一件事情,为什么采用两种风格迥异的风格呢?况且,Java中的数组其实是完备(full-fledged)的对象,直接暴露成员变量,可能不是一种很OO的风格。那么,设计Java的那帮天才为什么这么做呢?
带着这个疑问,我查阅了一些资料,主要是关于“JVM是如何处理数组”的。
数组对象的类是什么?
既然数组都是对象,那么数组的类究竟是什么呢?当然不是java.util.Arrays啦!我们以int一维数组 ...
JVM分代垃圾回收策略的基础概念
- 博客分类:
- JVM
为什么要分代
分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。
在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程中生成的临时变量,这些对象生命周期会比较短,比如:String对象,由于其不变类的特性,系统会产生大量的这些对象,有些对象甚至只用一次即可回收。
试想,在不进行对象存活时间区分的情况下,每次垃圾回收都是对整个堆空间进行 ...
JVM内存模型及垃圾收集策略解析(3)
- 博客分类:
- JVM
2.3 JVM的垃圾收集策略 GC的执行时要耗费一定的CPU资源和时间的,因此在JDK1.2以后,JVM引入了分代收集的策略,其中对新生代采用"Mark-Compact"策略,而对老生代采用了“Mark-Sweep"的策略。其中新生代的垃圾收集器命名为“minor gc”,老生代的GC命名为"Full Gc 或者Major GC".其中用System.gc()强制执行的是Full Gc.
2.3.1 Serial Collector
Serial Collector是指任何时刻都只有一个线程进行垃圾收集,这种策略有一个名字“stop t ...
JVM内存模型及垃圾收集策略解析(2)
- 博客分类:
- JVM
二 JAVA垃圾收集器
2.1 垃圾收集简史
垃圾收集提供了内存管理的机制,使得应用程序不需要在关注内存如何释放,内存用完后,垃圾收集会进行收集,这样就减轻了因为人为的管理内存而造成的错误,比如在C++语言里,出现内 ...
JVM内存模型及垃圾收集策略解析1
- 博客分类:
- JVM
一 JVM内存模型
1.1 Java栈
Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。栈空间随着线程的终止而释放。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。
1.2 堆
Java中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等。
1.2.1 Generation
JVM堆一般又可以分为以下三部分:
HTTP协议 (二) 基本认证
- 博客分类:
- http协议
http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢?
阅读目录
什么是HTTP基本认证
HTTP基本认证的过程
HTTP基本认证的优点
每次都要进行认证
HTTP基本认证和HTTPS一起使用就很安全
HTTP OAuth认证
阅读目录
什么是HTTP协议
Web服务器,浏览器,代理服务器
URL详解
HTTP协议是无状态的
打开一个网页需要浏览器发送很多次Request
HTTP消息的结构
Get和Post方法的区别
状态码
目录:[ - ]
1.Web service的概念
2.Web Service架构和云
3.Web Service的优势
4.Web Service 三个基本技术
4.1 SOAP
4.2 WSDL
这一节我们来探讨一下WebService安全问题,如果所有系统都运行在一个封闭的局域网内,那么可以不考虑网络攻击,拒绝服务,消息篡改,窃取等问题。但通常情况都接入互联网,那么我就得考虑信息安全问题,像前面那样直接将消息裸传,肯定不行。那么,我们就得给消息加密。CXF可以结合WSS4J来对消息安全进行管理,可以使用令牌,X.509认证对消息头或内容进行加密。这节我只对令牌加密做一个简单的描述,我们还以Demo的形式来讲解一下。 这个Demo是在CXF+Spring+Hibernate的基础修改而成。在这里我只针对修改的东西进行讲解。
Java代码
<?x ...
前一节仅仅只讲了与Spring整合,没有涉及到数据库,而且是直接将Java象传递到服务端。这一节我起到一个回顾前面章节的作用。用在客户端运用JABX将JAVA对象编组成XML文件,在客户端将XML解组成JAVA并存入数据库。下面我们就着手开发这个Demo: 服务端开发 第一步,编写数据资源层相关接口 DAO编写:
Java代码
public interface Hiberna
通过前面两节的讲解,相信你对CXF框架开始有一些认识了。在当今项目开发中,Spring框架基上都用到过,那么它怎么与CXF结合呢,这就是我们这一间要讲的内容。好了,闲话少说。 首先,在前面基础上再导入几个spring要用到的几个.jar包: spring-core.jar spring-jdbc.jar spring-context.jar spring-orm.jar spring-beans.jar spring-tx.jar 包导入完之后,我们还不能开如干活,配置几荐参数,便于下一步工作。 配置CXF框架 ...
前面几节我们讲解对象传递,但是通常情况下我们不直接传对象,因为直接传递对象安全性差,而且暴露了实体对象。所以我们选择传递XML文件,当然也可以传递JSON对象。这节我只针对传递XML,那么JAVA绑定成XML,服务端将XML解 ...
前面几节都是讲一些理论知识,现在又用一个例子来说明一下,这一节我们就CXF框架对象传递进行讲解。 第一步:创建传输对象Customer
Java代码
@XmlRootElement(name="Customer")
@XmlAccessorType(XmlAccessType.FIELD)