- <code class="language-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);
- }
- }
- </code>
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類
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
在此列舉兩個類方法:
1 |
boolean booleanValue() |
2 |
int compareTo(Boolean b) |
編寫代碼如圖:
運行結果如下圖:
第一個是返回這個布爾變量的原始值,第二個則是比較兩個布爾變量,返回負數表示此對象表示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 -- 這是類的實例,原始類型字節。
此處列舉兩個類方法:
1 |
byte byteValue() |
2 |
int compareTo(Byte anotherByte) |
編寫代碼如下圖所示:
運行結果如下圖所示
因為b為100,所以返回字節值也是100,比較a和b,因為a小於b,所以返回負值。
(十) Character類
java.lang.Character類封裝在一個對象的基本類型char值。字符類型的對象只包含一個字段,它的類型是char。列舉兩個方法:
1 |
static int charCount(int codePoint) |
2 |
char charValue() |
編寫代碼如圖所示:
輸出結果如下圖所示,因為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型。下面列舉兩種方法:
1. staticint abs(int a) 此方法返回一個int值的絕對值.
2. static double acos(double a)此方法返回一個值的反余弦值,返回的角度范圍從0.0到pi.
編寫代碼如下圖所示:
Math.abs求絕對值,然后acos是返回一個值的余弦值,運行結果如下圖所示:
(十四)Random類
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能帶來更多的收獲。