- 浏览: 177552 次
- 性别:
- 来自: 杭州
-
最新评论
-
lgh1992314:
String.intern()在全局常量池1.8在native ...
Java 内存模型 -
lgh1992314:
try with resource
Java GC的过程 -
lgh1992314:
JDK8 HotSpot 方法区在MetaSpace
Java 内存模型 -
空城回转:
永洁童心 写道最后的图中,在afterload_1步骤中,op ...
栈帧、局部变量表、操作数栈 -
永洁童心:
最后的图中,在afterload_1步骤中,operand s ...
栈帧、局部变量表、操作数栈
文章列表
方法的调用不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。 一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局的入口地址(入口地址相当于直接引用),需要在类加载期间甚至到运行期间才能确定目标方法的直接引用。 通过javap -verbose+类名 可以看到,Java虚拟机中提供了四条方法调用字节码指令, 1.invokestatic 调用静态方法 2.invokespecial 调用实例构造器(init)方法、私有方法和父类方法 ...
1.创建commons-logging的配置文件commons-logging.properties置于代码的根目录下,并指定使用Log4J的Logger
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
2.创建Log4J的配置文件log4j.properties置于代码的根目录下
#using log4j 1.2.x
#root Logger for all class
log4j.rootLogger=DEBUG,console,logfile
#Logger for sp ...
LoadingCanvas.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center" verticalAlign="middle" backgroundColor="green" >
<mx:Script>
<![CDATA[ ...
Class文件结构:
Class常量池数据数据类型
1.定义 栈帧(stack frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。 每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 对于执行引擎来说,活动线程中,只有栈顶的栈帧是有效的,称为当前栈帧,这个栈帧所关联的方法称为当前方法。执行引擎所运行的所有字节码指令都只针对当前栈帧进行操作。
2.组成 (1)局部变量表 局部变量表是一组变量值存储空间,用于存放方法参数和方法内部定义的局部 ...
类加载器按照层次,从顶层到底层,分为以下三种: (1)启动类加载器(Bootstrap ClassLoader) 这个类加载器负责将存放在JAVA_HOME/lib下的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的类库加载到虚拟机内存 ...
1.加载
(1)通过类的全限定名来获取此类的二进制字节流
(2)将此字节流代表的静态存储结构转化为方法区的运行时数据结构
(3)在Java堆中生成一个代表这个类的Class对象,作为方法区这些数据的访问入口
...
一.如何判断对象“已死”,目前主要有两种主流的算法
1.引用计数算法
给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就+1,当引用失效时,计数器就-1,任何时候,计数器为0的对象就是不可能再被使用的。但是这种算法很难解决对象间互相循环引用的问题:
A a = new A();
A b = new A();
b.instance = a;
a.instance = b;
a = null;
b = null;
这个时候a和b的引用计数器都还没有变成0,因此他们不能被回收。 2.根搜索算法
主流的商业语言中(Java、C#)都是使用根搜索 ...
强引用
类似“A a = new A()”这类的引用,只要强引用还在,垃圾收集器永远不会回收被引用的对象
软引用
用来描述一些还有用,但非必要的对象。在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之内,并进行第二次回收。如果这次回收还没有足够的内存,才会抛出OOM。
弱引用
也是用来描述非必须对象的,它的强度比软引用更弱,每当垃圾收集器开始工作,无论当前内存是否足够,弱引用关联的对象都会被回收。
虚引用
最弱的一种引用关系,一个对象是否有虚引用的存在,完全不会对其生存时间构成影响,也无法通过虚引用来取得一个对象实例。为一个对象设置虚引用的唯一目的就是希望能在这个对象被收集器回收时收到 ...
Eclipse快捷键大全(转载)
- 博客分类:
- Eclipse
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ ...
MyEclipse(eclipse)的自动补全(联想输入)分两种,直接提示和按快捷键提示,设置方法分别如下
一、每次输入都自动提示
Window->preferences->Java->Editor->Content Assist
再右下角Auto activation triggers for Java里面改为
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
这样每次输入上面字母都会自动提示了
你还可以修改下Auto activation delay,修改一下提示的延迟。
二、 ...
client端
package com.tongtech.ti.cxf.demo.security.X509.client;
/**
* Please modify this class to meet your needs
* This class is not complete
*/
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import javax.xml.namespace.QName;
import org.apache.cxf.endpoint.En ...
核心思想:加密和解密采用不同的密钥
一般发送者和接收者拥有自己的公钥和密钥,公钥是公开的,密钥不公开。
保密机制:A向B发送消息时,首先用B的公钥对消息进行加密,生成密文发送,B接收到密文后,用自己的密钥进行解密,进而得到消息原文。因为B公钥加密过的消息只有B的密钥才能解密,所以实现了保密功能。
认证机制:A向B发送消息时,首先用自己的密钥加密,B接收到密文后用A的公钥解密,得到原文。因为只有A的公钥才可解开A密钥加密过的消息,所以可以确认解密后的原文必是来自A。
若要同时实现保密和认证机制,需要对消息进行两次加密。