大數據分析技術之JAVA基礎(一):數據類型

寫在前面:這幾天開學了學校開了大數據課程,前期需要學習JAVA的基礎,所以我打算開一個JAVA的學習系列,這個就當自己學習的一個記錄,方便期末複習。

學習內容安排

JAVA基礎課程學習:數據類型(一)、運算符表達式和程序結構控制(二)、面向對象基礎:類與對象和接口(三)、面向對象基礎:繼承抽象多態封裝(四)、異常類和常用實用類(五)、組件和事件處理(六)、IO和JDBC(七)、泛型和集合函數(八)。
後續的大數據相關基礎的話就重新開一個系列,那今天就開始第一個內容,數據類型初始。

一、數據類型初識

今天的內容我們會對標識符介紹以及命名的規則、JAVA基本數據類型的簡單講解、輸入輸出數據、數組等。


標識符
所謂標識符就是用來表示類名、變量名、方法名、類型名、數組名、文件名的有效字符序列成爲標識符,也就是一個名字,一般情況下我們使用駝峯命名法來命名標識符,也就是類似於examScore(變量名)、TextMax(類名)這樣的。那麼對於JAVA一般還有一些約定的命名的規則,(1)標識符第一個字符不能是數字字符;(2)標識符不能是true、false、null;(3)標識符不能是關鍵字;(4)最好是由英文單詞構成,方法屬性變量的首字母小寫、類和文件名單詞首字母大寫;(5)不能設爲關鍵字也就是比如byte、int、float、short、boolean、double、if等;(6)最好不要設置爲漢字,後期會存在很多亂碼的問題。


JAVA基本數據類型
在JAVA中有8中基本的數據類型,這8中基本的數據類型又可以分爲以下四大類,
邏輯類型:boolean(聲明邏輯變量,有true和false兩種)
整數類型:byte(1個字節,佔8位,意味着byte型變量的取值範圍在-27到27-1)
     short(2個字節,佔16位,意味着其取值範圍在-215到215-1)
     int(4個字節,佔32位,取值範圍在-231到231-1)
     long(8個字節,佔64位,取值範圍在-263到263-1)
字符類型:char(用來聲明常量一個字符,在JAVA中漢字也爲一個字符)
浮點類型:float(佔32,位需要加上後綴f或者F)
     double(佔64位,定義更大範圍浮點數後綴爲D可省略)
下面展示一下在JAVA程序中如何去聲明各種類型的變量,

/*
此程序用於展示說明8類基本數據類型變量
*/
package test; // 這裏的package就是指的test文件夾

public class Test {
	boolean on = true, boy = false;
	byte score = 100;
	short age = 45;
	int id = 20200224;
	long value = 2020022424;
	
	char sex = 'M', name = '男';
	
	float g = 99.8f, h = 99.8F;
	double m = 99.8D, k = 99.8;
}

在此之後我們希望轉換一下數據的類型,首先我們需要明白在JAVA中的數據基本類型按照精度從低到高依次排列爲,
byte、short、char、int、long、float、double
將低級別的變量賦值給高級別變量的時候,系統會自動完成,但反過來則需要使用對應方法才能轉換,

/*
此程序用於展示基本數據類型轉換
*/
package test;

public class Test {
	public static void main(String aa[]){ //這個是固定句式
		double x = 89.54D;
		int y = (int)x;
		float z = (float)x;
	}
}

輸入輸出數據
在我們運行完後希望瞭解一下如何輸出查看數據以及我們有時候想讓程序更靈活一些應該怎麼樣來輸入數據呢?來看下面這段程序,我們使用System.out.print()輸出Scanner方法進行輸入,這裏注意輸入需要載入包;

/*
此程序用於計算1到N求和,N由用戶自行輸入
*/
package test;
import java.util.Scanner;
public class Test {
	public static void main(String aa[]){ //這個是固定句式
		Scanner in = new Scanner(System.in) // 聲明輸入對象
		int sum = 0;
		System.out.print("please input the N(1 + 2 + ... + N):")
		int t in in.nextInt()
		for (int i = 1; i <= t; i++){
			sum = sum + i;
		}
		System.out.println("sum="+sum); //println表示換行輸出
	}
}

這樣我們就實現了一個手動輸入的從1到N求和的函數,當然還可以輸入一些字符串,

/*
此程序用於輸入字符串並輸出
*/
package test;

public class Test {
	public static void main(String aa[]){ //這個是固定句式
		Scanner in = new Scanner(System.in) // 聲明輸入對象
		System.out.print("please input your name:");
		String m = in.nextLine();
		System.out.println("Hello "+m+", good morning!"; //該函數可以通過輸入sout然後按下tab鍵自動填充
	}
}

數組
本節的最後我們來講一下數組的JAVA基本使用,數組對於編程來說能夠減少大量的重複工作,下面展示一下數組如何在JAVA中進行聲明以及如何使用,

/*
此程序用於聲明數組並進行循環運算
*/
package test;

public class Test {
	public static void main(String aa[]){ //這個是固定句式
		int ar1[], ar2[][]; //首先是聲明數組
		float [] br1, [][] br2; //前爲一維數組,後爲二維數組
		
		ar1 = new int[4]; //然後爲數組分配元素空間
		
		ar1[0] = 1;
		ar1[1] = 2;
		ar1[2] = 3;
		ar1[3] = 4;
		
		int sum = 0;
		for(int i =0; i < 4; i++){
			sum = sum + ar1[i];
		}
		System.out.println(sum);
	}
}

這種聲明數組的方法其實也顯得有些累贅,下面我們介紹另一種數組聲明、分配空間、賦值一體的辦法。

/*
此程序用更簡潔的方法聲明數組並進行循環運算
*/
package test;

public class Test {
	public static void main(String aa[]){ //這個是固定句式
		int ar[] = [1,2,3,4]
		int sum = 0;
		for(int i =0; i < ar.length; i++){
			sum = sum + ar[i];
		}
		System.out.println("avg="+sum/ar.length); //.length 返回數組長度
	}
}
avg = 2  // 這裏因爲sum是int類型於是捨去小數點後

小練習
設計一個二分的算法來尋找目標整數是否存在已有數組中,

/*
本程序用於尋找目標數值是否出現在數組中,二分法
*/

package tt;

import java.util.Scanner;

public class Homework1 {
    public static void main(String aa[]){
        int s, len, scores[] = {1,24,25,26,45,67};
        len = scores.length;
        for(int i = 0; i < len; i++){
            for(int j = i+1; j < len; j++){
                if(scores[i] > scores[j]){
                    s = scores[j]; scores[j] = scores[i]; scores[i] = s;       
                }
            }
            System.out.println(scores[i]); //展示排序後的數組
        } //設計一個排序的算法,讓數字首先從小到大依次排列
        
        
        int a = 1, b = len, m = (int)len/2;
            
        Scanner in = new Scanner(System.in);
        System.out.print("[請輸入你需要尋找的整數]> ");
        int goal = in.nextInt(); //輸入尋找目標值
            
        while(true){
            m = (b + a)/2;
            if (goal == scores[0] ||goal == scores[len - 1]){
                System.out.println(goal+" 在數組中!");
                break;
            } //用來判斷數據是否在開頭和結尾存在;
                
            if (b - a == 1){
                System.out.println(goal+" 在數組中不能找到!");
                break; //用來結束搜索
            }else{
                if (goal > scores[m-1]){
                    a = m;
                }else if(goal < scores[m-1]){
                    b = m; //調整兩端
                }else{
                    System.out.println(goal+" 在數組中!");
                    break;
                }//正常的二分搜索區間縮小已經尋找過程
            }
        }
    }
}

結語
在本節中我們分享了JAVA基礎的數組、以及輸入輸出和數組的運算。後續會隨着我課程的更新而更新。
謝謝閱讀.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章