Java
tuhuolong
足球,NBA
展开
-
Android Java和JavaScript互调
(1)JavaScript调JavaaddJavascriptInterface通过Android中 WebView.addJavascriptInterface(new JavaClass(),"JSName")注册Java对象 (注册死了-固定名字)JavaScript里windows.JSName调用(2)Java调JavaScript原创 2012-01-05 15:13:49 · 739 阅读 · 0 评论 -
Dalvik内存管理
Dalvik内存:1.系统堆/外部堆(External heap)/CRT堆(Java方法调用栈/Java函数调用栈/...)----malloc/calloc/realloc/free OS系统启动本地程序->创建CRT(包括堆)->入口函数2.系统栈(Dalvik函数调用栈) 系统创建:SP指针3.GC堆(系统申请内存,dl组织成GC堆)----dvmMallo原创 2011-04-01 14:41:00 · 4618 阅读 · 1 评论 -
jar包的分析
jar包(Java应用):.class文件+META-INF/MANIFEST.MF java -jar XXX 运行jar包 JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java原创 2010-09-27 15:22:00 · 1651 阅读 · 0 评论 -
Java垃圾回收
在Java中,通常通讯类型的服务器对GC(Garbage Collection)比较敏感。通常通讯服务器每秒需要处理大量进出的数据包,需要解析,分解成不同的业务逻辑对象并做相关的业务处理,这样会导致大量的临时对象被创建和回收。同时服务器如果需要同时保存用户状态的话,又会产生很多永转载 2011-03-09 14:33:00 · 694 阅读 · 0 评论 -
全面分析Java的垃圾回收机制
引言 Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码转载 2011-03-09 14:52:00 · 581 阅读 · 0 评论 -
Hotspot垃圾回收
Hotspot VM 使用分代回收算法(Generational Collector) GC堆的分代:(1)Young Generation(年青代):大多数对象 Eden区+Survivor_1区+Survivor_2区(2)Old Gene转载 2011-03-09 15:43:00 · 1055 阅读 · 0 评论 -
C++和Java区别
C++ for Java ProgrammersBarbara Staudt LernerSeptember 1998C++ was developed in the early 1980s. Its goal was to introduce object-orientation to C while maintaining backwards compatibility转载 2011-06-12 21:57:00 · 1602 阅读 · 0 评论 -
Java平台
Sun: (1)Classic (2)Exact VM (3)KVM (4)CDC HotSpot (5)CLDC HotSpot (6)Squawk VM (7)meta原创 2010-09-28 15:05:00 · 1059 阅读 · 0 评论 -
IBM Java垃圾回收
垃圾回收策略,第1部分垃圾回收策略,第2部分 出色的"清洁工具"--理解IBM Java垃圾回收器,第1部分:对象分配出色的"清洁工具"--理解IBM Java垃圾回收器,第2部分:垃圾回收出色的"清洁工具"--理解I转载 2010-11-03 14:38:00 · 896 阅读 · 0 评论 -
Dalvik記憶體
dvmGcStartup 朋友曾介紹一個小工具 tree ,這是一個能在文字模式下,將目錄及檔案以樹狀形式呈現。用 tree 列出 vm/ 目錄下所有子目錄和檔案,能看到有一個 GC.h 在 vm/alloc/ 目錄下。這應該就是我們所需要的。在 GC.h 裡面可以看到十來個转载 2011-09-13 09:33:22 · 1428 阅读 · 0 评论 -
JVM架构
原创 2011-12-22 16:22:00 · 581 阅读 · 0 评论 -
Eclipse Outline图标
红色代表私有,蓝色代表公有实体方形代表方法空心方形代表属性图形后加字母S代表该属性或方法为static静态的,加字母F代表它为final的。方法后加蓝色三角代表它是继承至父类的方法断点为蓝色小圆形蓝色旗状图形代表书签白底上加蓝色对钩代表task C 代表 createS 代表 staticF 代表 finalA 代表 abst转载 2012-04-13 16:00:27 · 821 阅读 · 0 评论 -
java线程池(ThreadPool)
(1)自定义ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, Tim原创 2013-02-20 10:14:49 · 347 阅读 · 0 评论 -
不可实例化的类
public class UtilityClass { private UtilityClass(){ }}原创 2017-06-06 12:21:57 · 1550 阅读 · 0 评论 -
java serialization/deserialization (序列化对象自描述)
serialization:对象的类信息+对象的成员变量deserialization:对象的类信息->加载Class->比较serialVersionUID->创建实例->读取成员变量原创 2015-11-05 23:24:23 · 1429 阅读 · 0 评论 -
dalvik对于Java方法调用的实现
<br />(入口一)字节码OP_INVOKE_ (汇编实现)<br />1.dvmResolveMethod:(C函数)决议方法的Method :方法名字字符串找ClassObject中Method<br />2.(设置调用环境)创建一个方法调用栈帧(设置参数)<br />3.分支----(汇编)<br />->本地方法:nativeFunc(C函数)<br /> ...........<br /> ...........<br />->Java方法:(1)设置interpState(字节码)初始原创 2011-05-17 14:48:00 · 2836 阅读 · 0 评论 -
java类标识:ClassLoader+PackageName+ClassName
原创 2015-03-04 21:53:09 · 769 阅读 · 0 评论 -
【Java】基本数据类型长度
private int primitiveSize(Class type) { if (type == byte.class || type ==boolean.class) { return 1; } if (type == short.class || type ==char.class) {原创 2014-06-01 16:35:42 · 763 阅读 · 0 评论 -
【Java】内部类访问的外部变量定义成final (数据保持一致,外部修改后无法通知内部,编译的时候会通过构造方法传进来) Java内部类一般访问不了外部变量
原创 2014-06-07 19:17:24 · 674 阅读 · 0 评论 -
【Java】abstract class : 对外统一接口+公共方法+必须实现的方法
原创 2014-05-05 00:59:09 · 1810 阅读 · 0 评论 -
【Android】ClassLoader Tree
http://www.techjava.de/topics/2008/01/java-class-loading/原创 2014-03-30 17:29:06 · 1430 阅读 · 0 评论 -
jarsigner签名过程
【1】Hash: 每一个文件的摘要(Hash值),并写入MANIFEST.MF文件【2】二次Hash: (MANIFEST.MF文件的摘要(Hash值))+MANIFEST.MF文件每一个项(如下)的摘要(Hash值) 写入.SF文件------------------------Name: xxxxSHA1-Digest: xxxx----------------原创 2012-12-28 13:53:26 · 1840 阅读 · 0 评论 -
Java对象序列化(对象->字节流)
原创 2013-02-21 19:51:19 · 708 阅读 · 0 评论 -
基于栈和基于寄存器的Java虚拟机
<br />基于栈和基于寄存器的虚拟机区别:存放操作数的位置(操作数栈/寄存器)----操作数栈即求值栈<br />JVM通常将操作数栈放到方法调用栈帧,Dalvik则将部分操作数放入虚拟寄存器。<br />字节码只能看到操作数栈/虚拟寄存器,局部变量和参数,这三者都是平台无关的。<br />字节码能够操纵局部变量、参数在操作数栈/寄存器中完成各种运算。<br />经过javac编译以后,字节码就知道局部变量、参数和操作数栈/寄存器的类型和位置---由javac编译器识别虚拟机结构<br />-------原创 2011-06-01 11:21:00 · 5556 阅读 · 0 评论 -
Java方法
Java方法(Method)的调用:(1)常规方法:(对应的Method)放入解释器执行(2)本地方法:直接调用原创 2010-11-08 15:50:00 · 633 阅读 · 0 评论 -
JNI Java本地接口(双向接口)
<br />JNI:Java程序(VM)与本地函数的双向接口(调用通道)<br />(1)Java --JNI通道-->本地函数(JNI函数)<br />(2)本地程序--JNI通道的JNI接口-->Java<br /> <br />JNI使Java丧失跨平台性(本地程序需重新编译) <br /> <br />本地函数通过JNI以Java机制与VM交互,而不是C/C++规则<br /> <br />使用本地函数实现类库没有实现或效率更高的本地功能,最后通过JNI与VM交互<b原创 2010-12-30 10:21:00 · 963 阅读 · 0 评论 -
Java Annotation
1. 定义annotate 英文里面注解的意思。Java annotation 又称为java 内注( 内建) 的意思。从sun 官方网站上面看到关于java 内注的定义:java 内注提供了关于代码的一些数据( 注解), 它本身不是java 代码的一部分。它不能直接影响它注释的代码的运行。java 在jdk5 之前本身提供了一些专门的注解机制( 如transient :防止序列化) 。网上看到的另外的一些定义:Annotation 提供了一条与程序元素关联任何信息或者任何元数据(metadat转载 2010-10-15 09:54:00 · 537 阅读 · 0 评论 -
Dalvik class加载的处理
Dalvik加载.class文件后,创建ClassObject对象转载 2010-10-12 18:54:00 · 972 阅读 · 0 评论 -
Java 注解
<br />阅读提示:文中提到的程序成员或者程序元素是一个概念,指组成程序代码的单元:如类、方法、成员变量。<br /><br />一、Annotation究竟是什么?<br /><br />Annotation提供了一条与程序元素关联任何信息或者任何元数据(metadata)的途径。从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。这些信息被存储在annotation的“name=value”结构对中。annot转载 2010-10-11 14:30:00 · 564 阅读 · 0 评论 -
Dalvik分析(二)
<br />論軟體, Dalvik 算小物,但也非一時三刻能說的完。前篇談到 Dalvik 建 gDvm ,至此算是完成初始化。可開始執行 bytecode。Dalvik 在功能劃分算是明顯, vm/Jni.c 透過 JavaVM 和 JNIEnv ,提供 user 功能介面,一方面則保全內部細節,不為外視。然而,別忘了初衷,我們欲了解 VM 的運作,至此只是摸清了外觀。而 VM 內部功能如銀河繁星,無法細數。必先擇一目標,集中分析,才不致於迷罔於程式碼間。對分析 VM 而言,我們最想知道,也最转载 2010-10-12 19:30:00 · 1171 阅读 · 0 评论 -
Dalvik分析(三)
<br />fds转载 2010-10-12 19:33:00 · 677 阅读 · 0 评论 -
Dalvik分析(一)
<br />近來 Android 十分熱門, Google 的大動作,撼動整個業界。雖已震天撼地,和過去 MS 或 Apple所興之波瀾相較,還是有些差距。身為一個技術研究者,新聞性似乎不是這麼重要,倒底葫蘆裡賣的是什麼藥,才是吾輩所想知道。小弟最近獲邀加入某團體,而擇主題研究,企圖改善國內 Open Source 的風氣和態度。於是著手分析 Dalvik 程式碼。 Dalvik 的成分 <br />Dalvik 是一個 VM (Virtual Machine) ,相當於 Java 的JVM转载 2010-10-12 19:28:00 · 1239 阅读 · 0 评论 -
一个Java程序员应该掌握的10项技能
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。2、 命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、 javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java 实际上还很不了解。3、工具转载 2010-09-27 10:54:00 · 540 阅读 · 0 评论 -
.class文件格式(java字节码文件的格式)
一个.class文件对应一个类(Class)包含虚拟机指令转载 2010-09-27 17:15:00 · 2279 阅读 · 0 评论 -
Java基本概念
(1) C++:include (直接复制包含) Java:import (修改/补全使用的符号名)(2)jad原创 2010-09-27 10:35:00 · 590 阅读 · 0 评论 -
Javac编译过程
1.词法/语法分析,输入符号表 (1)词法分析 ---->Token序列 (2)语法分析 ---->抽象语法树 (3)输入符号表---->符号表 每个编译单元的抽象诧法树的顶层节点都先被放到待处理列表中 逐个处理列表中的节点 所有类符号被输入到外围作用域的符号表中 若找到package-info.java,将其顶层树节点加入到待处理列表中 确定类的参数(对泛型类型而言)、超类原创 2010-09-28 12:38:00 · 938 阅读 · 0 评论 -
Dalvik线程模型
dalvik在初始化时会创建java.lang.Thread对象(里面包含java.lang.VMThread对象),作为元数据java.lang.Thread |--java.lang.VMThread |-- |--原创 2010-12-09 10:55:00 · 1015 阅读 · 0 评论 -
JVM 方法区
在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。jvm实现的设计者决定了类型信息的内部表现形式。如,多字节变量在类文件是以big-endian存储的,但在加载到方法区后,其存放形式由jvm根据不同的平台来具体定义。jvm在运行应用时要大量使用存储在方法区中的类型信息。在类型信息的表示上,设计者除了要尽可能提高应用的运行效率外,还要考虑空间问题。根据不同的需求,jvm的实现转载 2010-10-19 16:15:00 · 1945 阅读 · 0 评论 -
JVM工作原理和特点
<br />JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. <br />1.创建JVM装载环境和配置 <br />2.装载JVM.dll <br />3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 <br />4.调用JNIEnv实例装载并处理class类。 <br />在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.JVM是Java程序运行的环境,但是他同时一个操作系统的一个应用程序转载 2010-10-20 12:21:00 · 905 阅读 · 0 评论 -
Java方法 signature
方法的Signature 方法的Signature是由方法的参数和返回值的类型一起构成的,下面是他们的结构: "(argument-types)return-type" 其中Java程式中参数类型和其对应的值如下: Signature Java中的类型 Z boolean B byte C原创 2010-11-05 10:01:00 · 1470 阅读 · 0 评论