Java加法运算方法有哪些
更新:HHH   时间:2023-1-7


这篇文章主要讲解了“Java加法运算方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java加法运算方法有哪些”吧!

1.int加法

1.1 简单的demo

public class add{
    public static void main(String[]args)
    {
        int a=10;
        int b=11;
        b=a+b;
        System.out.println(b);
    }
}

1.2 编译运行输出结果。


1.3 class文件探索。

1.3.1 这里是上两节讲的常量池。



1.3.2 访问标志(access_flags)



(1)ACC_ENUM标志位

首先来看这个,如果定义了枚举类,那么JVM虚拟机就会把access_flags的第二位为1。

(2)ACC_ANNOTATION标志位

看单词的含义ANNOTAION注释,这里就是如果有注解类,KVM就会把access_flags的第三位置为1

(3)ACC_SYNTHETIC标志位

如果不是JVM编译器编译的,是用户自己的就会把第四位置为1。

(4)ACC_ABSTARACT标志位

定义某一个类的时候,JVM会把ACC_ABSTARACT标志位置为1。

(5)ACC_INTERFACE标志位

定义接口的时候,JVM会把ACC_INTERFACE标志位置为1。

(6)ACC_SUPER标志位

对于定义的类,JVM会把ACC_SUPER标志位置为1。

(7)ACC_FINAL标志位

如果类被声明了final类型,如果是,就会把ACC_FINAL标志位置为1。

(8)ACC_PUBLIC标志位

如果类被声明了public类型,JVM就会把ACC_PUBLIC标志位置为1。

1.3.3 该文件探索



1.4 更简单的查看方式。



javap -v name;

直接查看即可。

1.5 smali文件分析

这里就不详细介绍,class文件是怎样转换成smali文件的方法了。详细请参考
Android逆向-java代码基础(1)

1.5.1这个是smali代码的整体情况。



1.5.2必备的一个



1.5.3 main函数



2 float加法

2.1 demo

public class add{
    public static void main(String[]args)
    {
        float a=1.1f;
        System.out.println(a+a);
    }
}

2.2 class文件分析



2.3 smali文件分析

2.3.1 必备



2.3.2main


add-float/2addr vx,vy  #Adds vy to vx.

也就是说把vx和vy的值相加。
其他的语法我们都是见过的,而且在Android逆向-java代码基础(2)中非常详细的讲解过,这里就不赘述了。

3尝试使用smali写一段代码。

3.1demo

.class public Ladd;
.super Ljava/lang/Object;
.source "add.java".method public constructor <init>()V
    .registers 1    .prologue
    .line 1    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void.end method

.method public static main([Ljava/lang/String;)V
    .registers 3

    .prologue #start
    const v0,0x3f8ccccd

    const v1,0x4f8ccccd

    sget-object v2,Ljava/lang/System;->out:Ljava/io/PrintStream;

    add-float/2addr v0,v1

    invoke-virtual {v2,v0},Ljava/io/PrintStream;->println(F)V

    return-void.end method

3.2jar编译


感谢各位的阅读,以上就是“Java加法运算方法有哪些”的内容了,经过本文的学习后,相信大家对Java加法运算方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!

返回网络安全教程...