1. 程式人生 > >Java 基礎篇之程式設計基礎

Java 基礎篇之程式設計基礎

基本資料型別

java 是強型別語言,在 java 中儲存的資料都是有型別的,而且必須在編譯時就確定其型別。

基本資料型別變數儲存的是資料本身,而引用型別變數存的是資料的空間地址。

基本型別轉換

自動型別轉換

把一個表數範圍小的數值或變數直接賦給另一個表數範圍大的變數時,系統將會進行自動型別轉換,否則需要強制轉換。

強制型別轉換

強制型別轉換可能存在溢位導致資料精度丟失的情況。

字串

Java 沒有內建的字串型別,而是提供了一個標準類庫 String。

特徵:不可變字串

優點:編譯器可以讓字串共享(只有字串常量是共享的,而 + 或 substring 等操作產生的結果並不是共享的)

運算子

自增自減

int a = 5;
int b = ++a; // a 先自增,再賦值給 b
System.out.println(a); // 6
System.out.println(b); // 6
int a = 5;
int b = a++; // a 先賦值給 b,再自增
System.out.println(a); // 6
System.out.println(b); // 5

條件判斷

switch (表示式) {
    case value1:
        statement1;
        break;
    case value2:
        statement2;
        break;
    case valuen:
        statementn;
        break;
    default:
        預設執行的程式碼;
}

當 switch 後表示式的值和 case 語句後的值相同時,從該位置向下執行,直到遇到 break 語句或者 switch 語句塊結束;如果沒有匹配的 case 語句則執行 default 塊的程式碼。

  • case 後面的值可以是常量數值,也可以是一個常量表達式,但不能是變數或帶有變數的表示式

  • 可以把功能相同的 case 語句合併起來

  • default 塊可以出現在任意位置,也可以省略

迴圈

While

while (condition) {
    statement;
}

do-While

do {
    statement;
} while (condition);

for

for (迴圈變數初始化; 迴圈條件; 迴圈變數變化) {
    statement;
}

迴圈跳轉

  • break

  • continue

陣列

陣列是用來儲存固定大小的同類型元素。一旦陣列初始化完成,陣列在記憶體中所佔的空間將被固定下來,因此陣列的長度將不可以改變,即使某個陣列的元素被清空,但是它所佔的空間依然保留。

陣列本身也是一種引用型別,既可以儲存基本資料型別,也可以儲存引用型別,只要儲存的陣列元素具有相同的型別即可。

動態初始化

執行動態初始化時,系統會根據宣告的陣列型別自動為陣列元素分配初始值。如果是引用型別,則陣列元素的初始值為 null。

int[] scores;
scores = new int[5]; // 宣告一個長度為5的整型陣列

// 上面兩步可以合為一步
int[] scores = new int[5]; 

靜態初始化

顯示指定每個元素的初始值

int[] scores;
scores = new int[] {1,2,3,4};

// 上面兩步可以合為一步
int[] scores = {1,2,3,4};// 方式二

遍歷陣列

  • for 迴圈遍歷陣列

  • foreach 遍歷陣列:foreach 不是 java 中的關鍵字,是 for 語句的特殊簡化版。在遍歷陣列、集合時更方便

int[] scores = {1,2,3,4};

for (int score : scores) {
    System.out.println(score);
}

陣列的本質

將陣列看成兩個部分,一個部分是陣列引用,也就是在程式碼中定義的陣列引用變數;另一部分是實際的陣列物件,這部分是在堆記憶體中執行的,通常無法直接訪問它,只能通過引用變數來訪問。

二維陣列

二維陣列本質上還是一維陣列,只是其陣列元素也是引用,陣列元素裡儲存的引用指向一維陣列。

String [][] str1 = {new String[3], new String[]{"hello"}};

上面程式碼的示意圖:

相關推薦

Java 基礎程式設計基礎

基本資料型別 java 是強型別語言,在 java 中儲存的資料都是有型別的,而且必須在編譯時就確定其型別。 基本資料型別變數儲存的是資料本身,而引用型別變數存的是資料的空間地址。 基本型別轉換 自動型別轉換 把一個表數範圍小的數值或變數直接賦給另一個表數範圍大的變數時,系統將會進行自動型別轉換,否則需要

java基礎基礎

靜態程式碼塊執行一次,隨著類載入而載入 public class Test { static HashMap hashMap = new HashMap(){ // map優雅的寫法 { put("1","2"

java基礎nio與aio

sre 非阻塞 只有一個 accept ava 使用步驟 截取 city writable 1.同步和異步 同步:指一個任務運行完以後接著運行下一個任務 異步:接到一個任務後開啟一個新的線程運行此任務,基本不占用原線程時間 2.阻塞與非阻塞 阻塞:多個線程同時訪問一份數據時

Java基礎常量、變數、運算子

資料型別 : Java中的基本型別功能簡單,不具備物件的特性,為了使基本型別具備物件的特性,所以出現了包裝類,就可以像操作物件一樣操作基本型別資料。 基本型別對應的包裝類 基本型別 byte int short long float double boolean char 包裝型別

Java基礎順序、選擇、迴圈結構

程式流程  java程式語句執行的順序包括4種基本控制結構:順序結構、選擇結構、迴圈結構、異常處理邏輯結構。 順序結構  Java程式中,語句執行的基本順序按各語句出現的位置先後順序執行,即為順序結構。 例1:順序結構:已知三角形三邊,求三角形面積: pub

java基礎-----------抽象類 、最終類、介面

一、抽象類: 我們把一類事物抽象出來,類中只宣告方法,不實現,這就是抽象類存在的意義; 抽象類: 含有抽象方法的類,被abstract 關鍵字修飾; 抽象方法:只有方法宣告沒有方法實體,被abstract關鍵字修飾; 注意要點: 1、抽象類沒有例項物件,只能通過別的類繼承實現抽象方法

C/C++ 程式設計基礎淺析堆&棧

C/C++ 程式設計基礎篇之淺析堆&棧(轉) 在C++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。 1、棧: 就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數,函式

Java基礎環境搭建

伺服器環境:Centos jdk安裝包:.tar.gz 第一步:在官網下載JDK安裝包 第二步:解壓縮安裝包:tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java ps:壓縮到/usr/local/java目錄

java基礎GC

概述 java和C++有著一堵 記憶體動態分配 和 垃圾收集技術 圍成的“高牆”,外面的人想進去,裡面的人想出來。 java垃圾回收 GC(Garbage Collection) 的歷史比java還要久遠,1960年誕生的Lisp語言當時就在考慮三個問題:

Windows核心程式設計基礎使用自旋鎖

   連結串列之類的結構總是涉及多執行緒,這時候就要用到使用鎖。     當然在處理臨界區的時候,這個是必須要考慮的呀。    在驅動開發的程式碼中,大多是在於多執行緒執行環境的。     下面將介紹使用簡單的自旋鎖。     如下的程式碼將初始化一個自旋鎖: KSPIN

java基礎5-------一維陣列的拷貝

作業: 1、{1,2,3,4,5,6} 將奇數放在偶數前面 大小順序不要求 public static int[] sortArray(int[] a) { int odd = 0;// 奇數下標 int even

Java 基礎異常

異常 異常層次 Error:Java 執行時系統的內部錯誤和資源耗盡錯誤。應用程式不應該丟擲這種型別的物件。如果出現了這樣的內部錯誤,除了通告給使用者,並盡力使程式安全地終止之外,再也無能為力了。 Exception RuntimeException:由程式錯誤導致的異常 其他異常:程式本身沒有問題,

Java 基礎集合

List 集合 List 集合中元素有序、可重複,集合中每個元素都有其對應的索引順序。 List 判斷兩個物件相等,只要通過 equals 方法比較返回 true 即可。 看個例子: public class A { public boolean equals(Object obj) {

Java 基礎反射

反射 使用反射獲取程式執行時的物件和類的真實資訊。 獲取 Class 物件 每個類被載入之後,系統會為該類生成一個對應的 Class 物件,通過該 Class 物件可以訪問到 JVM 中的這個類。 使用 Class 類的 forName(String clazzName) 靜態方法。字串引數的值是某個類

Django基礎數據庫選擇及相關操作

setting 必須 需要 mysql pyc -- creates 127.0.0.1 settings 在djanjo框架中我們最常用的框架分別就是mysql和sqlit了,下面我們將分別講述一下這倆種數據庫的基礎必備知識 mysql 一、利用命令創建(在終端上執行)

基礎集合(一)(List)總結

intern ansi [] 集合 add 引用 public log ++ 1. List集合下常用的集合(ArrayList,LinkedList,Vector);   JVM垃圾回收GC,Java中采取了可達性分析法,標記所有從根節點開始的可達對象,未被標記的對象就

基礎集合(二)總結

線程不安全 emp abstract 和集 write next 不可變 叠代器 關系 1. Map集合和collection結合的區別 1》Collection一次存一個元素;Map一次存一對元素; 2》Collection是單列集合;Map是雙列集合; 3》Map中的存

python基礎面向對象

col blog pri ini sel style span class 面向 面向對象編程 對象就是一個實實在在存在的,可以具體描述出來的實體。 面向對象編程是一種上帝視角,是可以制定規則的。   之前學習的大多數是面向過程編程的,執行下來會有一個固定的結果     面

python基礎基本數據類型們

我們 align clas text pytho code div style tex Python3 基本數據類型 Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以後該變量才會被創建。 在 Python 中,變量就是變量,它沒有類型,我們所說的"類

機器學習讀書筆記(四)樸素貝葉斯基礎網站賬號分類

pan 技巧 nbsp 增強 就是 使用 分類問題 預測 結果 一、條件概率 在學習計算p1和p2概率之前,我們需要了解什麽是條件概率,就是指在事件B發生的情況下,事件A發生的概率,用P(A|B)來表示。 根據文氏圖,可以很清楚地看到在事件B發生的情況下,事件A發