注意: 學(xué)習(xí)Java,一定要學(xué)會查閱 API 文檔
Java概念總結(jié)(二)
參數(shù)列表: 參數(shù)類型+參數(shù)個數(shù)+參數(shù)順序
方法簽名: 方法名稱+方法參數(shù)列表
注意:在同一個類中席函,方法簽名是唯一的
方法體: 方法的{}中的代碼,表示具體完成該功能的代碼
返回值: 在方法內(nèi)部:使用return關(guān)鍵字
功能1:給調(diào)用者返回一個結(jié)果
功能2:結(jié)束一個方法
實際參數(shù): 調(diào)用者在調(diào)用某一方法的時候,實際傳遞的參數(shù)值
多維數(shù)組: 就是數(shù)組包數(shù)組, 數(shù)組中的數(shù)組
從java5開始 ,java提供了了一種新的語法:增強for循環(huán)(foreach)-> 語法糖
注意:foreach的本質(zhì):for循環(huán) + 索引(就是迭代變量或者說是循環(huán)變量)
語法糖:讓復(fù)雜的語法變的簡單
斷點調(diào)試
/*
* 斷點調(diào)試的作用:
* a,查看程序的執(zhí)行流程
* b,調(diào)試程序
* 斷點:
* 其實就是一個標(biāo)記
*
* 在哪里加斷點呢?
* 在代碼區(qū)域的左邊雙擊即可
*
* 如何運行加斷點的程序呢:
* 代碼程序-右鍵-debug-java Application
* 彈出一個框讓我們選擇是否進(jìn)入debug視圖,我們選擇yes,并且把記住選項也勾上
*
* 如何讓程序往下執(zhí)行呢?
* 按f6
*
* 看哪些區(qū)域呢?
* 代碼區(qū)域:看程序的執(zhí)行流程
* debug區(qū)域:看程序的執(zhí)行流程
* Variables:看變量的變化
* Console:看程序的輸入和輸出
*
* 如何去掉斷點呢:
* a,單個:雙擊
* b,多個:在debug視圖下,找到Breakpoints,選擇要刪除的斷點,點擊雙x即可
*/
public class DebugDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = a + b;
System.out.println(c);
}
}
Object: java語言中的根類
冒泡排序:(Bubble Sort)
依次比較相鄰的兩個元素大小關(guān)系,若大則交換位置,經(jīng)過第一輪比較后可得出最大值,然后使用同樣的方法把剩下的元素逐個比較即可
選擇排序:(Select Sort)
選擇某個索引位置的元素,然后和后面元素依次比較,若大于則交換位置,進(jìn)過第一輪比較排序后可得出最小值,第二輪可選出第二個小的值,直到最后
強引用:默認(rèn)情況下,對象采用的均為強引用(這個對象的實例沒有其他對象引用绑谣,GC時才會被回收)
軟引用:軟引用是Java中提供的一種比較適合于緩存場景的應(yīng)用(只有在內(nèi)存不夠用的情況下才會被GC)
弱引用:在GC時一定會被GC回收
虛引用:由于虛引用只是用來得知對象是否被GC
匿名對象: 沒有名稱的對象, 作用是作為方法的實參來傳值
AJAX: 異步的 JavaScript 和 XML 代碼
JAVA不能多繼承
抽象方法:就是將方法設(shè)計和實現(xiàn)分離
接口只有:常量, 抽象方法
最常見的兩個異常:數(shù)組下標(biāo)越界和空引用異常
JAVA項目使用快捷鍵CRTL+F11運行,WEB項目使用快捷鍵ALT+SHIFT+X或者先按“CTRL+SHIFT+L”,之后根據(jù)快捷鍵提示鳄厌,選中合適的運行方式即可
StringBuilder: 效率高,線程不安全
StringBuffer: 效率低妈踊,線程安全
常見狀態(tài)碼
2xx: 正確
3xx: 重定向
4xx: 客戶端錯誤
5xx: 服務(wù)器錯誤
在文件夾操作中了嚎,mkdirs()和mkdir()相比mkdirs()會在沒有找到文件目錄的情況下創(chuàng)建目錄,而mkdir()不會
Java運行過程
1.編譯javac: 把源文件編譯成class字節(jié)碼文件
2.運行java: 運行class文件
成員變量只能在類里使用
變量
局部變量廊营,成員變量(實例變量)歪泳,靜態(tài)變量(類變量)
引用類型: 數(shù)組 對象 接口
弱管理: 數(shù)組 數(shù)據(jù)多了,將同類型的數(shù)據(jù)放到一起
強管理: 結(jié)構(gòu)體 數(shù)據(jù)多了露筒,數(shù)據(jù)復(fù)雜了呐伞。將不同類型的數(shù)據(jù)放到一起
超強管理: 對象 數(shù)據(jù)多了,類型復(fù)雜了慎式,行為復(fù)雜了伶氢,將不同類型的數(shù)據(jù)放到一起
this:
普通方法中趟径,調(diào)用本方法的對象
構(gòu)造方法中,正要初始化的對象
還可以用來調(diào)用其他構(gòu)造方法
super:
指向直接父類
static:
用它修飾的變量和方法癣防,就變成了靜態(tài)變量和靜態(tài)方法
package:
package必須位于非注釋行第一句
包名蜗巧,域名在這兒寫
import:
引入外部的類
final:
修飾變量: 常量(命名規(guī)范:全部大寫,多個單詞間通過下劃線隔開)
修飾方法: 不能被重寫
修飾類: 不能被繼承
多態(tài):
三個必要條件: 繼承蕾盯,方法重寫惧蛹,父類引用指向子類對象
Java使用動態(tài)綁定,所以效率慢
內(nèi)存機制
棧
1.存放局部變量
2.不可以被多個線程共享
3.空間連續(xù)刑枝,速度快
堆
1.存放對象
2.可以被多個線程共享
3.空間不連續(xù)香嗓,速度快慢,但靈活
方法區(qū)
1.存放類的信息: 代碼装畅,靜態(tài)變量靠娱,字符串常量等
2.可以被多個線程共享
遞歸算法
- 遞歸頭: 什么時候不調(diào)用自己
- 遞歸體: 什么時候調(diào)用自己
ArrayList: 底層實現(xiàn)是數(shù)組。所以查詢快掠兄。修改像云,插入,刪除慢
LinkedList: 底層實現(xiàn)是鏈表蚂夕,所以查詢慢迅诬。修改,插入婿牍,刪除快
Vector: 線程安全侈贷,效率低
Map底層實現(xiàn): 數(shù)組+鏈表
HashMap效率高,線程不安全
Hashtable效率低等脂,線程安全
Get方式: 提交速度快俏蛮,簡單,不安全上遥,傳輸數(shù)據(jù)有限
Post方式: 提交速度慢搏屑,安全性好,傳輸數(shù)據(jù)大
.class是字節(jié)碼文件粉楚,需反編譯為.java文件才能查看
CUP 32位 吞吐量4個字節(jié) 64位 吞吐量 8個字節(jié)
正數(shù)的原碼最高位是0辣恋,負(fù)數(shù)的原碼最高位是1
正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼1變0模软,0變1
正數(shù)的補碼與原碼相同伟骨,負(fù)數(shù)的補碼是在反碼的基礎(chǔ)上加1