1. 程式人生 > >java十五個常用類學習及方法舉例

java十五個常用類學習及方法舉例

import java.util.Scanner;
import java.util.Properties;
import java.awt.SystemColor;
import java.util.Arrays;
import java.util.Random;
import java.text.DecimalFormat;  
import java.math.BigInteger;
public class Tsar {
	public static void main(String []args){
	}
}
class BigIntegerTest{
	public static void main(String []args){
		BigInteger a = new BigInteger("-1000000");
		System .out.println("加法操作: "+a.add(new BigInteger("55")));
		System.out.println("取絕對值操作: "+a.abs());
	}
}


class RandomTest{
	public static void main(String []args){
		Random r = new Random();
		double d1 = r.nextDouble();
		System.out.println("隨機產生一個雙精度數 "+d1);
		System.out.println("隨機產生一個0~10的整數  "+r.nextInt(10));
	}
}
class MathTest{
	public static void main(String []args){
		int x = 175;
	    int y = -184;
   // 得到他們的絕對值
	    System.out.println("Math.abs(" + x + ")=" + Math.abs(x));
	    System.out.println("Math.abs(" + y + ")=" + Math.abs(y));
	    double z = Math.PI / 2;
	    z  = Math.toRadians(z);//將引數值轉化為弧度
	    System.out.println("Math.acos(" + z + ")=" + Math.acos(z));
	}
}


class FloatTest{
	public static void main(String []args){
		 Float obj1 = new Float("10.56");
	     Float obj2 = new Float("10.20");
	     int retval =  obj1.compareTo(obj2);
	     if(retval > 0)
	        System.out.println("obj1 is greater than obj2");
	     else if(retval < 0)
	        System.out.println("obj1 is less than obj2");
	     else 
	        System.out.println("obj1 is equal to obj2");
	     float f = obj1.floatValue();
	     System.out.println("Float物件obj1的float值 = " + f);
	}
}




class DoubleTest{
	public static void main(String []args){
		Double obj1 = new Double("20");
		 byte b = obj1.byteValue();
		 System.out.println("Value = " + b);
		Double obj2 = new Double("30.95");
	     b = obj2.byteValue();
	     System.out.println("Value = " + b);
	     int retval = Double.compare(obj1, obj2);
	     System.out.println("obj1和obj2 的比較結果為"+retval);
	}
}


class CharacterTest{
	public static void main(String []args){
		 int cp = 0x12345;
		 int res;
		 res = Character.charCount(cp);
		 System.out.println("輸出比較值");
		 System.out.println( res );
		 Character a;
		 a = new Character('a');
		 Character ch = a.charValue();
		 String str = "a的原始的字元值是 " + ch;
		 System.out.println( str);
	}
}
class ByteTest{
	public static void main(String []args){
		 Byte a,b;
		 b = new Byte("100");
		 a=  new Byte("10");
		 int res;
		 res = a.compareTo(b);
		 byte bt;
		 bt = b.byteValue();
		 String str = "Primitive byte value of Byte object " + b + " is " + bt;
		 System.out.println( str );
		 System.out .print(res);
	}
}
class BooleanTest{
	public static void main(String []args){
		Boolean a,b;
		a = new Boolean(false);
		b = new Boolean(true);
		boolean bool;
		bool = b.booleanValue();
		String str = "Primitive value of Boolean object " + b + " is " + bool;
		System.out.println( str );
		int res;
		res = Boolean.compare(a, b);
		System.out.println(res);
	}
}
class ShortTest{
	public static void main(String []args){
		Short a = new Short((short)5);
		Short b = new Short((short)7);
		System.out.println(a.equals(b));
		String str = "78";
		//返回short型
		Short c = new Short(Short.valueOf(str));
		System.out.println(c);
	}
}
class LongTest{
	public static void main(String []args){
		Long a = new Long(56);
		Long b = new Long(43);
		
		System.out.println(a.compareTo(b));
		String str[] ={"43","34","543"};
		long sum=0;
		for(int i=0;i<str.length ;i++){
			long c= Long.parseLong(str[i]);
			sum+=c;
		}
		System.out .println("輸出陣列各元素相加之和");
		System.out .println(sum);
	}
}
class IntegerTest{
	public static void main(String []args){
		Integer i = new Integer(12);
		int k = i.intValue(); //Integer轉換成int 
		System.out.println(k);
		k =  Integer.parseInt("13");
		System.out.println(k);//字串轉換成int型別  
		k = Integer.parseInt("111",2);
		System.out.println("輸出二進位制111的十進位制形式");
		System.out.println(k);
	}
}
class ArrayTest{
	public static void main(String []args){
		int arr[]={1,4,3,2,4,5};
	    Arrays.sort(arr);//排序
	    System.out.println("輸出排序過後的陣列");
	    for(int i=0;i<=5;i++){
	    	System.out.print(arr[i]);
	    	System.out.print(" ");
	    }
	    System.out.println();
	    int index = Arrays.binarySearch(arr, 3);
	    System.out.println("3的索引位置是" + index);
	}
}
class StringTest{
	public static void main(String []args){
		System.out.println("統計字串的長度");
		Scanner input=new Scanner(System.in);
		String str=input.nextLine();
		int size = str.length();
		System.out.println(size);
		System.out.println("對字串實現小寫轉換");
		String str2 = str.toLowerCase();
		System.out.println(str2);
	}
}
class SystemTest{
	public static void main(String []args){
		long start = System.currentTimeMillis();
		String value = System.getProperty("os.name"); //獲取環境的屬性值
		System.out.println("當前系統"+value); 
		long end = System.currentTimeMillis();
		System.out.println("執行本程式所需時間 "+(end-start));
	}
}
class ScannerTest{
	public static void main(String []args){
		System.out.println("請輸入一個數:");
		Scanner input=new Scanner(System.in);
		int number=input.nextInt();
		System.out.println(number);
	}
}




JAVA實驗報告

學號  E31514034 專業  網路工程  姓名  陶碩  實驗日期2017年3月14日

一.實驗名稱:

掌握java的十五個常用類

二.實驗目的:

掌握JAVA常用類,包括Scanner類,System類,String類,Arrays類,Integer類,Long類,Short類,Boolean類,Byte類,Character類,Double類,Float類,DecimalFormat類,Math類,Random類,BigInteger類,BigDecimal類。

學習java的基本使用方式,熟練掌握java的操作方式。

發掘java語言和其他語言的相同之處,高效學習。

三.  實驗平臺:

Windows 8.164bit平臺  JDK8  eclipse

四.  實驗過程和結果分析:

Scanner 類可以用來從鍵盤讀取,可以輸入任意型別的字串,基本資料型別。

編寫如下程式碼:

執行結果:

(二)。System類

System類位於java.lang包中,它是系統類,包含三個成員變數,分別是in,out,err,

他們的型別分別為InputStream,PrintStream,PrintStream,且都為靜態的,分別代表標準輸入流,標準輸出流和標準錯誤輸出流。其中最常用的就是out了。例如輸出語句System.out,println()和System.out.print(),前者會換行,後者不會。此次列舉兩個方法:

 一個是獲取當前系統的時間從而可以利用時間差求得程式的執行時間。

一個是可以直接獲得本系統的屬性

程式執行結果如下:

由程式結果可知本計算機的系統環境是windows8,程式執行時間為1;

(三)String類

可以通過java.lang包中的String類,在Java中將字串作為物件來處理。

以下程式碼使用其中string類的其中兩個方法,分別是大小寫轉換和統計長度。

程式執行結果:

輸入的字串為HELLO AHU,length返回長度,所以共計9個字元,tolowcase小寫轉換為hello ahu;

(四)Arrays類

使用Arrays類的方法需要用到Java.util包,包中包含了很多關於陣列操作的方法

編寫程式碼引用排序和索引位置的方法。

執行結果如下:

Sort輸出陣列從小到大的排列順序,binarysearch利用二分的方法找到3在陣列中的位置。如圖所示。

(五)Integer類

Integer 類在物件中包裝了一個基本型別 int 的值。Integer 型別的物件包含一個 int 型別的欄位。此外,該類提供了多個方法,能在 int 型別和 String 型別之間互相轉換,還提供了處理 int 型別時非常有用的其他一些常量和方法。下面程式碼列舉三個方法,分別是Integer轉化為int型別和字串轉化為int型,還有一個是輸出給定進位制數值的十進位制形式。

實驗程式執行結果如下IntValue為Integer轉化為int,ParseInt是將字串轉化為int型,也可以輸出給定進位制數值的十進位制形式。

(六) Long 類

Java.lang包中的Long類,將基本型別long封裝成一個類,它是Number的子類,Long類在物件中包裝了一個基本型別long的值。此外,該類提供了多個方法,能在long型別和String型別之間互相轉換,還提供了處理long型別時非常有用的其他一些常量和方法。下面列舉兩種方法。

A.compareTo(long  another Long),在數字上比較兩個Long物件,如果這兩個值相等,則返回0,如果呼叫物件的值小於anotherLong的值,則返回負值,如果呼叫物件的數值大於anotherLong的數值,則返回正值。

B.  parseLong(String str)方法。該方法返回與呼叫該方法的數值字串相應的長整數(返回值為long)。

編寫以下程式碼:     

執行結果如下:

由於a>b,所以輸出1,陣列元素之和為620

(七)Short 類

Java.lang包中的Short類,將基本型別short封裝成一個類,它是Number的子類,Short類在物件中包裝了一個基本型別short的值。此外,該類提供了多個方法,能在short型別和String型別之間互相轉換,還提供了處理short型別時非常有用的其他一些常量和方法。下面闡述兩種方法。

    1,equals(Object  ShortObj)方法,該方法是用於比較此物件與指定物件是否相等。返回值是boolean型別的值。

2,valueOf(String  str)方法,該方法返回儲存制定制定String值的Short物件。

程式執行結果:

因為5不等於7,所以返回false。

輸出short型78

(八)Boolean類

java.lang.Boolean類封裝了一個值物件的基本布林型。 Boolean型別的物件包含一個單一的欄位中,其型別為布林值。

類宣告

以下是一個java.lang.Boolean類的宣告:

public final class Boolean

   extends Object

      implements Serializable,Comparable

在此列舉兩個類方法:

編寫程式碼如圖:

執行結果如下圖:

第一個是返回這個布林變數的原始值,第二個則是比較兩個布林變數,返回負數表示此物件表示false,引數表示true。

(九) Byte 類

java.lang.Byte類的基本型別byte值包裝在一個物件中。 Byte型別的一個物件,包含一個單一的欄位,它的型別是位元組。

屬性:

· static byte MAX_VALUE -- 保持的最大的值,可以有一個位元組,這是恆定,最大值為: 27-1.

· static byte MIN_VALUE -- 保持可以有一個位元組的最低值,這是一個恆定的,最大值為:-27.

· static int SIZE -- 這是用來表示一個位元組的值在2補碼二進位制形式的位元的數目。

· static Class<Byte> TYPE -- 這是類的例項,原始型別位元組。

此處列舉兩個類方法:

編寫程式碼如下圖所示:

執行結果如下圖所示

因為b為100,所以返回位元組值也是100,比較a和b,因為a小於b,所以返回負值。

(十) Character類

java.lang.Character類封裝在一個物件的基本型別char值。字元型別的物件只包含一個欄位,它的型別是char。列舉兩個方法:

編寫程式碼如圖所示:

輸出結果如下圖所示,因為Java.lang.Character.charCount()方法用法例項教程-數量決定了需要的char值表示指定character (Unicode code point)。指定字元是否是等於或大於0x10000的,那麼該方法返回2。否則,該方法返回1。所以此結果輸出2.而輸出a 的原始字元值即a。

(十一)Double類

java.lang.Double類包裝的原始型別的值的Double物件。 Double型別的物件只包含一個欄位,它的型別是double。

編寫程式碼如下圖所示:

java.lang.Double.byteValue()方法返回此double值為一個位元組(轉換為一位元組)。Compare則是比較obj1和obj2,如果obj1大於obj2,就返回大於0的數,等於返回0,小於返回小於0的數。

得到結果如下:

(十二)Float

java.lang.Float 類封裝了一個float基本型別的物件。Float型別的物件只包含一個欄位的型別是float. 此外,該類還提供多個方法,可以將float轉換為String,將String轉換為float,也提供了其他一些處理float時有用的常量和方法。

列舉兩個方法:

1.      Java.lang.Float.compareTo()方法

2.      Java.lang.Float.floatValue()方法 

編寫程式碼如下圖所示:

因為方法一是比較兩個Float物件的數值,方法二是返回當前Float物件的float值.,所以輸出應該是以下輸出;

(十三). Math類

java.lang.Math 類包含的方法進行基本的數字操作,如基本的指數,對數,平方根和三角函式等. Math提供了一些常量,E,表示自然對數,PI表示圓周率,均為double型。下面列舉兩種方法:

2.      static double acos(double a)此方法返回一個值的反餘弦值,返回的角度範圍從0.0到pi.

編寫程式碼如下圖所示:

Math.abs求絕對值,然後acos是返回一個值的餘弦值,執行結果如下圖所示:

Random類中實現的隨機演算法是偽隨機,也就是有規則的隨機。在進行隨機時,隨機演算法的起源數字稱為種子數(seed),在種子數的基礎上進行一定的變換,從而產生需要的隨機數字。相同種子數的Random物件,相同次數生成的隨機數字是完全相同的。也就是說,兩個種子數相同的Random物件,第一次生成的隨機數字完全相同,第二次生成的隨機數字也完全相同。這點在生成多個隨機數字時需要特別注意。

列舉兩種方法:

a、public boolean nextBoolean()該方法的作用是生成一個隨機的boolean值,生成true和false的值機率相等,也就是都是50%的機率。

b、public double nextDouble()該方法的作用是生成一個隨機的double值,數值介於[0,1.0)之間。

編寫程式碼如下圖所示:

執行結果如下:

(十五)BigInteger類

BigInteger類屬於java.math包,該型別的數字較Integer型別的數字範圍要大的多。BigInteger類支援任意精度的整數。BigInteger類中包含三個成員變數,分別為ONE,表示BigInteger 的常量 1。TEN,表示BigInteger 的常量10。ZERO,表示BigInteger 的常量 0。且它們都是static BigInteger型別。在BigInteger類中封裝了多種操作,除了基本的加,減,乘,除運算之外,還提供了絕對值,相反數,最大公約數以及判斷是否為質數的操作。

下面舉例兩種方法:

1.      abs,取大數的絕對值

2.      and,大數的加法

編寫程式碼如下圖所示:

執行結果:輸出-1000000+55的值和它自己本身的絕對值,如下圖所示

五,實驗小結:

   這次實驗運算元量很多,做的很辛苦,但是做完之後收穫也很大,初步理解了十五種常用類的使用方法。對java的操作愈加嫻熟,對於常用類的瞭解也愈加深厚,發現了很多java具備的其他例如C語言沒有的好屬性,為以後的學習打下了深厚的基礎。希望在以後的學習中java能帶來更多的收穫。