
Java 运行时数据区可以分成 方法区、 堆、 栈、 程序计数器、 本地方法栈
堆:Java 对象, 线程之间共享的
栈:方法运行,每一个方法对应一个栈帧,每一个线程对应一个栈,
每个栈帧包括 操作数、局部变量表、指向运行时常量池的引用,方法返回地址、附加位区 所以是线程不共享
方法区(静态区):被虚拟机加载的类信息、静态(static)变量,常量(final),即时编译器编译后的代码等数据。运行常量池是方法区的一部分,class文件除了有类的版本、字段、接口、方法等描述信息之外,还有一项信息常量池保存编译期生成的字面量和符号引用。 线程之间共享的
程序计数器:指出某一个时候执行某一个指令、执行完毕之后要返回的位置,当执行的Java方法的时候,这里保存的当前执行的地址,如果执行的是本地方法的时候,那么程序计数器为空。线程不共享。

开发JAVA程序的三个步骤: 1.编写JAVA的源程序 2.编译程序生成字节码.class文件(java是高级语言,不会直接生成机器语言) 3.通过JVM解释执行(通过jvm解释为特定的操作系统如Windows、Linux等能理解的机器码,最终JAVA程序得以执行)

run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,没有达到多线程的目的。


import java.math.BigInteger;
import java.util.Scanner;
public class Main2 {
public static String AddLongInteger(String addend,String augend){
BigInteger bigInteger = new BigInteger(addend);
BigInteger bigInteger1 = new BigInteger(augend);
bigInteger = bigInteger.add(bigInteger1);
String str = String.valueOf(bigInteger);
return str;
}
public static void main(String args[]){
Scanner sc =new Scanner(System.in);
while(sc.hasNext()){
String addend = sc.nextLine();
String augend = sc.nextLine();
System.out.println(AddLongInteger(addend, augend));
}
}
}
利用Java中的大数类,BigInteger的参数是字符串类型,

然后用add函数将二者相加,最后再把bigInteger转换为字符串类型。
4379

被折叠的 条评论
为什么被折叠?



