Dalvik指令集

.class public LCalculate;#定义类名

.super Ljava/lang/Object;#定义父类
.method public static main([Ljava/lang/String;)V#申明静态main()方法,L表示这是一个类
.registers 5   #方法中使用5个寄存器
.prologue  #代码起始指令
nop #空指令
nop
nop
nop
new-instance v0, LCalculate;   #构造一个Calculate实例
invoke-direct{v0},LCalculate;-><init>()V      #调用构造函数
sget-object v1,Ljava/lang/System;->out:Ljava/io/PrintStream;  #静态字段操作指令
const/4 v2,0x5      #将5存入寄存器V2
const/4 v3,0x3    #将3存入寄存器V3
invoke-virtual{v0,v2,v3},LCalculate;->foo(II)I  #调用LCalculate实例foo虚函数(V0为隐式的LCalculate对象引用,后面二个是参数)
move-result v0  #获取foo函数执行后返回的结果
invoke-virtual{v1,v0},Ljava/io/PrintStream;->println(I)V  #方法调用指令
return-void  #函数从一个void方法返回
.end method  #方法结束符号

# direct methods     #表示这是一个直接方法
.method public constructor <init>()V    #构造函数
    .registers 1   #一个寄存器

.prologue   #代码起始指令
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V #调用实例的直接方法

return-void #函数从一个void方法返回

.end method  #方法结束符号

# virtual methods  #表示这是一个虚方法
.method public foo(II)I  #方法名为foo,二个参数且都是int类型,并且返回值为int
.registers 5  #方法中使用5个寄存器
.prologue #代码起始指令
add-int v0,p1,p2 #p1,p2两个int类型相加,结果保存在V0
sub-int v1,p1,p2#p1,p2两个int类型相减,结果保存在V1

mul-int/2addr v0,v1  #v0,v1两个寄存器进行乘法运算,结果存储在v0寄存器
return v0   #返回寄存器V0的值
.end method #方法结束符号

java源码:

public class
Calculate
{
public int foo(int a,int b){
return (a+b)*(a-b);
}
public static void main(String[] argc) 
{
Calculate cal=newCalculate();
System.out.println(cal.foo(5,3));
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

用Dalvik指令集写个java类的更多相关文章

  1. 请写一个java类,在任何时候都可以向它查询“你已经创建了多少个对象?”

    这个问题解决方法很简单,只要设置一个类的静态整型成员(事例中我设置的是n),初始化值为1,然后在其构造函数中添加语句使其+1(n++),这样需要查询创建了多少个对象时直接查询n的值就可以了,如下: p ...

  2. mac os intellij如何快路查看一个java类的所有方法,结构

    如果是自己写的java类,点击点击导航的project-setting-show members 如果是系统库的,点击structure 再点一下lib中的类,或者快捷键 command+F12

  3. Java类的静态块の一

    类的静态块在类加载时候执行,执行早于构造函数,并且只执行一次. 下面这个例子可以帮助理解: package untility; public class A { // 静态块 static { A c ...

  4. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  5. java中IO写文件工具类

    以下是一些依据经常使用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 当中jodd中提供的JavaUtil类中提供的方法足 ...

  6. 编写了几个Java类,但是一直运行某一个class,这种是因为:main方法写错

    编写了几个Java类,但是一直运行某一个class,这种是因为:main方法写错

  7. 千万别在Java类的static块里写会抛异常的代码!

    public class Demo{ static{ // 模拟会抛异常的代码 throw new RuntimeException(); } } 如果你在Java类的static块里写这样会抛异常的 ...

  8. JAVA一个文件写多个类

    JAVA一个文件写多个类,并且是同级类,需注意: 在一个.java文件中可以有多个同级类,  其修饰符只可以public/abstract/final/和无修饰符 public修饰的只能有一个,且必须 ...

  9. [转载]Dalvik指令集

    这篇文章是转载的,为了便于查找一些指令,贴在这里. 转自:http://blog.csdn.net/canfengxiliu/article/details/20144119 ------------ ...

随机推荐

  1. Appium之python API

    webdriver contexts(self) 说明:返回多个会话内容 使用:driver.contexts current_context(self) 说明:返回单个会话的内容 使用:driver ...

  2. Redis教程(八):事务详解

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/135.html?1455806987 一.概述: 和众多其它数据库一样,R ...

  3. T-SQL使用JOIN执行UPDATE语句

    问题: In SQL Server, it's possible to insert into a table using a SELECT statement: INSERT INTO Table ...

  4. aix5下安装python和cx_Oracle

    之前写了一个 linux下安装python和cx_Oracle 这次其实差不多. 1.解压安装包: Python-2.5.4.tar.bz2 cx_Oracle-5.0.4.tar.gz 2.安装py ...

  5. Knime 使用 初探

    使用数据挖掘工具 Knime,分析某公司用户使用情况. 首先,打开csv文件数据,看到有以下门类: 时间.track id 歌曲名.用户行为.用户id.日期.snap_id 即歌曲门类 然后,打开Kn ...

  6. 读取同一文件夹下多个txt文件中的特定内容并做统计

    读取同一文件夹下多个txt文件中的特定内容并做统计 有网友在问,C#读取同一文件夹下多个txt文件中的特定内容,并把各个文本的数据做统计. 昨晚Insus.NET抽上些少时间,来实现此问题,加强自身的 ...

  7. Nginx 和 IIS 实现动静分离【转载】

    前段时间,搞Nginx+IIS的负载均衡,想了解的朋友,可以看这篇文章:<nginx 和 IIS 实现负载均衡>,然后也就顺便研究了Nginx + IIS 实现动静分离.所以,一起总结出来 ...

  8. python细碎语法点

    在系统入门python有的是没有遇到,有的是学过了缺乏使用没有记住,就开篇随笔记录这些基础的语法点,随时更新. with...as... 也就是说with是一个控制流语句,跟if/for/while/ ...

  9. 洛谷 [P251] 餐巾计划问题

    有上下界的最小费用最大流 可以联想到供求平衡问题,所以我们要拆点做这道题 把每天分为二分图两个集合中的顶点Xi,Yi,建立附加源S汇T. 1.从S向每个Xi连一条容量为ri,费用为0的有向边. 2.从 ...

  10. Django(十六)Form组件扩展

    http://www.cnblogs.com/wupeiqi/articles/6144178.html Form组件 - form表单(验证:保留上次内容) - - Ajax(验证:无需上次内容) ...