Java parseInt vs parseLong

aan*_*dis 0 java integer long-integer

String a = "576055795"; 

long b = 10*Integer.parseInt(a);

long c = 10*Long.parseLong(a);

System.out.println(b); //Prints 1465590654 
System.out.println(c); // Prints 5760557950
Run Code Online (Sandbox Code Playgroud)

他们为什么不同?

use*_*031 11

Integer.parseInt()返回一个int带符号的32位整数. 10也是一个int; 乘以57605579510作为整数溢出和产生一个int,然后将其提升到一个long.

Long.parseLong()返回a long,这是一个带符号的64位整数.乘以它10产生一个长而没有溢出.

  • @zack:不,不是堆栈溢出.整数溢出. (2认同)
  • 我的意思是作为对堆栈溢出的钦佩.感觉到语气. (2认同)