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轉換爲字符串類型。