1. 程式人生 > 實用技巧 >和為 S 的兩個數字

和為 S 的兩個數字

目錄

Java資料型別

  • 基本資料型別(8種)
    • 數字型別
      • 整數型:byte,short,int,long
      • 浮點型:float,double
    • 字元型別:char
    • 布林型別:boolean
  • 物件型別(引用型別)
資料型別名稱 二進位制位數(位元組數) 預設值 封裝容器
byte 8(1byte) 0 Byte
short 16(2bytes) 0 Short
int 32(4bytes) 0 Int
long 64(8bytes) 0L Long
float 32(4bytes) 0.0f Float
double 64(8bytes) 0.0 Double
char 8(1byte) \u0000(空格) Character
boolean 1 false Boolean
  • byte資料型別是有符號的,以二進位制補碼錶示的整數,最小值是-128(-27,最大值是127(27-1)
  • short資料型別是有符號的,以二進位制補碼錶示的整數,最小值是-32728(-215,最大值是32767(215-1)
  • int資料型別是有符號的,以二進位制補碼錶示的整數,最小值是2,147,483,648(-231,最大值是2,147,483,647(231 - 1),一般地整型變數預設為int型別
  • long資料型別是有符號的,以二進位制補碼錶示的整數,最小值是-9,223,372,036,854,775,808(-263
    ,最大值是9,223,372,036,854,775,807(263 -1)
  • float資料型別是單精度、32位、符合IEEE 754標準的浮點數,float在儲存大型浮點陣列的時候可節省記憶體空間,最小值是1.4E-45,最大值是3.4028235E38
  • double資料型別是雙精度、64位、符合IEEE 754標準的浮點數,浮點數的預設型別為double型別,最小值是4.9E-324,最大值是1.7976931348623157E308
  • char資料型別最小值是'\u0000'(即為0),最大值是'\uffff'(即為65,535),char資料型別可以儲存任何字元

實際上,JAVA中還存在另外一種基本型別void,它也有對應的包裝類 java.lang.Void,不過我們無法直接對它們進行操作。



public class Demo {
	public static void main(String[] args) {
		// byte
		System.out.println("基本型別:byte 二進位制位數:" + Byte.SIZE);
		System.out.println("包裝類:java.lang.Byte");
		System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
		System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
		System.out.println();
		// short
		System.out.println("基本型別:short 二進位制位數:" + Short.SIZE);
		System.out.println("包裝類:java.lang.Short");
		System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
		System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
		System.out.println();

		// int
		System.out.println("基本型別:int 二進位制位數:" + Integer.SIZE);
		System.out.println("包裝類:java.lang.Integer");
		System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
		System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
		System.out.println();

		// long
		System.out.println("基本型別:long 二進位制位數:" + Long.SIZE);
		System.out.println("包裝類:java.lang.Long");
		System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
		System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
		System.out.println();

		// float
		System.out.println("基本型別:float 二進位制位數:" + Float.SIZE);
		System.out.println("包裝類:java.lang.Float");
		System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
		System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
		System.out.println();

		// double
		System.out.println("基本型別:double 二進位制位數:" + Double.SIZE);
		System.out.println("包裝類:java.lang.Double");
		System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
		System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
		System.out.println();

		// char
		System.out.println("基本型別:char 二進位制位數:" + Character.SIZE);
		System.out.println("包裝類:java.lang.Character");
		// 以數值形式而不是字元形式將Character.MIN_VALUE輸出到控制檯
		System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE);
		// 以數值形式而不是字元形式將Character.MAX_VALUE輸出到控制檯
		System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE);
	}
}
基本型別:byte 二進位制位數:8
包裝類:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本型別:short 二進位制位數:16
包裝類:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本型別:int 二進位制位數:32
包裝類:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本型別:long 二進位制位數:64
包裝類:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本型別:float 二進位制位數:32
包裝類:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本型別:double 二進位制位數:64
包裝類:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本型別:char 二進位制位數:16
包裝類:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535

Java預設值

  • 物件資料型別預設值為null
  1. 但是如果在main方法中只宣告變數但未初始化會提示錯誤未初始化變數
public class Demo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a;
		double b;
		System.out.println(a);
		System.out.println(b);
	}
}

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	The local variable a may not have been initialized
	The local variable b may not have been initialized

	at Demo.main(Demo.java:8)
  1. 如果變數是類成員則不會報錯

public class Demo {

	private byte a;
	private short b;
	private int c;
	private float d;
	private double e;
	private boolean f;
	private char g;
	private Demo2 demo2;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Demo demo = new Demo();
		System.out.println(demo.a);
		System.out.println(demo.b);
		System.out.println(demo.c);
		System.out.println(demo.d);
		System.out.println(demo.e);
		System.out.println(demo.f);
		System.out.println(demo.g);
		System.out.println(demo.demo2);
	}
}
0
0
0
0.0
0.0
false
 
null
  1. 特別的,如果是static型別的變數,也可以不建立物件直接使用
public class Demo {

	private static int a;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(a);
	}
}
0