当前位置: 编程技术>移动开发
本页文章导读:
▪JVM初学1 JVM初学一
在水木上看到了一则关于撒加的文章,于是看了看它关于JVM的介绍,并开始收集了关于JVM的资料,并开始查看JVM spec.网上有中文和英文两个版本 书中从第三章开始步入正题.........
▪ 小小漫笔 小小随笔
今天是个好日子
......
▪ Animations应用 (四) Animations使用 (四)
Animations的第二种使用方法(第一种见1)步骤:1 在res文件夹线面新建一个名为anim的文件夹 2 创建xml文件,并首先加入set标签,改标签如下<set xmlns:android="http://schemas..........
[1]JVM初学1
来源: 互联网 发布时间: 2014-02-18
JVM初学一
在水木上看到了一则关于撒加的文章,于是看了看它关于JVM的介绍,并开始收集了关于JVM的资料,并开始查看JVM spec.网上有中文和英文两个版本
书中从第三章开始步入正题介绍了关于JVM的基本概念,CLASS文件的结构,常量池及其解析。并在后面介绍了JVM的基本指令集,一般JAVA源码的编译和一些优化。其中最重要的还是前面的基本概念,这里是看懂JVM指令代码的基础。因为是Spec,所以它的宗旨是介绍Class文件格式及其其中的含义,并为JVM提供解析Class文件并运行它提供一个准则。也就是说,Class文件也可以由其他语言例如C语言实现。只要Class文件满足Spec,并通过JVM的链接过程。
JVM运行是基于以下数据的:
1 运行期数据,包括:PC寄存器,Java栈,堆,方法区。
A PC寄存器
和普通汇编指令中的没有什么区别
B Java栈
每个线程拥有一个栈,这点和以前的常识一样。它的作用主要存储JVM框架,其实就是栈帧。栈帧包括:局部变量表,操作数栈及一些其他引用信息。这些引用信息包括方法和类实例的引用。运行期间会利用这些信息进行一些连接操作。
C Java堆
所有线程共享此存储区。用于运行期间new object或者new array,交由GC进行回收。
D 方法区
这部分也是所有线程共享的,GC也可以进行回收它。可以将它理解为汇编代码中的正文段,它包含:常数池,域,方法数据,方法,构造函数以及<init><clinit>代码。
a 常数池
相当于Symbol表,对应于class文件中的constant_pool
b 自身方法栈
这个是为Native方法服务的,可以设置它的大小。
c 方法,构造行数及<init><clinit>代码
就是执行代码,对应于class文件中的methods
d 域
对应于class文件中fields
e 接口
对应于class文件中interfaces
在class文件加载的时候建立方法区,当进行方法调用的时候会操作Java栈,并有可能因为创建实例或数组操作Java堆。我们可以先从Class文件结构开始来了解方法区的布局,并创建它的数据结构
在水木上看到了一则关于撒加的文章,于是看了看它关于JVM的介绍,并开始收集了关于JVM的资料,并开始查看JVM spec.网上有中文和英文两个版本
书中从第三章开始步入正题介绍了关于JVM的基本概念,CLASS文件的结构,常量池及其解析。并在后面介绍了JVM的基本指令集,一般JAVA源码的编译和一些优化。其中最重要的还是前面的基本概念,这里是看懂JVM指令代码的基础。因为是Spec,所以它的宗旨是介绍Class文件格式及其其中的含义,并为JVM提供解析Class文件并运行它提供一个准则。也就是说,Class文件也可以由其他语言例如C语言实现。只要Class文件满足Spec,并通过JVM的链接过程。
JVM运行是基于以下数据的:
1 运行期数据,包括:PC寄存器,Java栈,堆,方法区。
A PC寄存器
和普通汇编指令中的没有什么区别
B Java栈
每个线程拥有一个栈,这点和以前的常识一样。它的作用主要存储JVM框架,其实就是栈帧。栈帧包括:局部变量表,操作数栈及一些其他引用信息。这些引用信息包括方法和类实例的引用。运行期间会利用这些信息进行一些连接操作。
C Java堆
所有线程共享此存储区。用于运行期间new object或者new array,交由GC进行回收。
D 方法区
这部分也是所有线程共享的,GC也可以进行回收它。可以将它理解为汇编代码中的正文段,它包含:常数池,域,方法数据,方法,构造函数以及<init><clinit>代码。
a 常数池
相当于Symbol表,对应于class文件中的constant_pool
b 自身方法栈
这个是为Native方法服务的,可以设置它的大小。
c 方法,构造行数及<init><clinit>代码
就是执行代码,对应于class文件中的methods
d 域
对应于class文件中fields
e 接口
对应于class文件中interfaces
在class文件加载的时候建立方法区,当进行方法调用的时候会操作Java栈,并有可能因为创建实例或数组操作Java堆。我们可以先从Class文件结构开始来了解方法区的布局,并创建它的数据结构
[2] 小小漫笔
来源: 互联网 发布时间: 2014-02-18
小小随笔
今天是个好日子
今天是个好日子
[3] Animations应用 (四)
来源: 互联网 发布时间: 2014-02-18
Animations使用 (四)
Animations的第二种使用方法(第一种见1)
步骤:
1 在res文件夹线面新建一个名为anim的文件夹
2 创建xml文件,并首先加入set标签,改标签如下
3 在该标签中加入rotate,alpha,scale或者translate标签
例:
Alpha的alpha.xml文件编写方法(这些标签都是放在set标签中的)
rotate.xml
这里要特别注意跟位置有关的参数pivotX和pivotY
3种写法对应3种相对位置方式的设置方式:
android:pivotX="50" 绝对定位
android:pivotX="50%" 相对于控件本身
android:pivotX="50%p" 相对于父控件
translate.xml
scale.xml
4 在代码中使用AnimationUtils装载xml文件,并生成Animation对象
Animations的第二种使用方法(第一种见1)
步骤:
1 在res文件夹线面新建一个名为anim的文件夹
2 创建xml文件,并首先加入set标签,改标签如下
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> ... </set>
3 在该标签中加入rotate,alpha,scale或者translate标签
例:
Alpha的alpha.xml文件编写方法(这些标签都是放在set标签中的)
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:atartOffset="500" android:duration="500" />
rotate.xml
<rotate android:fromDegrees="0" android:toDegrees="+350" //正350度 android:pivotX="50%" android:pivotY="50%" android:duration="3000" />
这里要特别注意跟位置有关的参数pivotX和pivotY
3种写法对应3种相对位置方式的设置方式:
android:pivotX="50" 绝对定位
android:pivotX="50%" 相对于控件本身
android:pivotX="50%p" 相对于父控件
translate.xml
<translate android:fromXDelta="50%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="100%" android:duration="1000" />
scale.xml
<scale android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="2000" />
4 在代码中使用AnimationUtils装载xml文件,并生成Animation对象
Animation animation=AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha); //载入布局文件 imageView.startAnimation(animation);
最新技术文章: