最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【狂神說(shuō)Java】Java零基礎(chǔ)學(xué)習(xí)視頻通俗易懂

2023-08-07 11:33 作者:安藝倫也桑  | 我要投稿

學(xué)習(xí)路線


寫(xiě)博客的重要性

DOS:Disk Operation System


alt+f4 關(guān)閉窗口

shift+del 永久刪除

運(yùn)行窗口下新建任務(wù):explorer //顯示桌面


shitf+右鍵 打開(kāi)powershell

JavaSE服務(wù)端

Java EE企業(yè)端

Java ME移動(dòng)端

java優(yōu)勢(shì):

簡(jiǎn)單性、面向?qū)ο?、可移植、高性能、分布式、?dòng)態(tài)性、多線程、安全性、健壯性


學(xué)習(xí)Java的特性,主動(dòng)愛(ài)上Java的魅力

Write once,Run anywhere


JDK、JRE、JVM的關(guān)系

編譯javac xx.java

運(yùn)行Java xx

文件名和類(lèi)名必須保持一致



Java程序運(yùn)行機(jī)制

編譯型:一次編譯,隨時(shí)運(yùn)行

解釋型:每次從頭運(yùn)行

idea中

#生成一個(gè)main方法 psvm

#打印 sout


書(shū)寫(xiě)注釋是一個(gè)非常好的習(xí)慣

三種注釋:

  • 單行注釋 //
  • 多行注釋 /* */
  • 多行注釋/** */
  • 文檔注釋

標(biāo)識(shí)符:類(lèi)名、變量名和方法名都被稱為標(biāo)識(shí)符

關(guān)鍵字


標(biāo)識(shí)符:數(shù)字、字母、下劃線組成,其中數(shù)字不能作為開(kāi)頭,不能使用關(guān)鍵字作為變量名和方法名,標(biāo)識(shí)符大小寫(xiě)敏感


Java是一種強(qiáng)類(lèi)型語(yǔ)言,先定義后使用

數(shù)據(jù)類(lèi)型:基本類(lèi)型(byte、short、int、long、float、double、Boolean、char)、引用類(lèi)型(接口、類(lèi)、數(shù)組)

float后面的參數(shù)要加F,因?yàn)楦↑c(diǎn)數(shù)默認(rèn)是double

long后面的參數(shù)要加L


浮點(diǎn)數(shù)盡量避免比較,使用Big Decimal數(shù)學(xué)工具類(lèi)比較

所有字符本質(zhì)都是數(shù)字

Unicode編碼給每個(gè)字符一個(gè)編號(hào)

#轉(zhuǎn)義字符 \u

#換行 \n

#制表符 \t


Boolean默認(rèn)為true

多字節(jié)強(qiáng)制轉(zhuǎn)換成低字節(jié)會(huì)照成內(nèi)存溢出

#(類(lèi)型)變量名

強(qiáng)制轉(zhuǎn)換:高->低 //可能會(huì)照成損失精度或內(nèi)存溢出,比如int轉(zhuǎn)char就不會(huì)錯(cuò)誤

自動(dòng)轉(zhuǎn)換:低->高 //自動(dòng)填充

強(qiáng)制類(lèi)型轉(zhuǎn)換可以在定義時(shí)強(qiáng)轉(zhuǎn),也可以在輸出時(shí)強(qiáng)轉(zhuǎn)

shift+F10自動(dòng)運(yùn)行

數(shù)字可以這樣表示1000_0000_000


三種變量:

常量:final double PI=3.14;

# 運(yùn)算符


CTRL+D復(fù)制當(dāng)前行到下一行

【cast:V.轉(zhuǎn)換】

運(yùn)算符

++ 自增

--自減


a++ //a先賦值再自增1

++a //a先自增1再賦值

#冪函數(shù)計(jì)算 double pow =Math.pow(2,3) //8,很多運(yùn)算會(huì)使用一些工具類(lèi)來(lái)運(yùn)算

#輸出字符串加結(jié)果:System.out.println("a&&b的結(jié)果:"+(a&&b));


短路運(yùn)算

異或:相同為0,不同為1


面試題:2^4怎么算最快

答:位運(yùn)算往左移2位

位運(yùn)算

a+=b //等價(jià)于a=a+b


面試題:int+String和String+int的不同


三元運(yùn)算符

x?a:b X為true返回a,否則返回b


包機(jī)制

公司利用域名倒置作為包名,如com.baidu.www

#定義包 package 包名

#導(dǎo)包import package

import java.util.Date //導(dǎo)入Date包

【param:參數(shù)】

/**+Enter //輸出參數(shù)

Java Doc參數(shù)信息

#生成文件 javadoc -encoding UTF-8 -charset UTF-8 xx.java


# java流程控制

Scanner對(duì)象

#獲取用戶輸入:java.util.Scanner

【util】全稱utility,一種實(shí)用的包


Scanner s=new Scanner(System.in);

通過(guò)next()和nextLine()方法獲取輸入的字符串,讀取前用hasNext()和hasNextLine判斷是否還有輸入的數(shù)據(jù)

區(qū)別:


Summary:


Ctrl+左鍵,點(diǎn)擊類(lèi)名查看它的方法


# 順序結(jié)構(gòu)

#選擇結(jié)果

#if多選擇結(jié)構(gòu):

規(guī)則:

#if嵌套結(jié)構(gòu)

if(){ if() }else


#switch case結(jié)構(gòu)

switch(條件){

case'A':

break; //可選,如果滿足A則不輸出后面的內(nèi)容

case‘B’:

default: //可選,如果都不滿足則輸出此條件下的內(nèi)容

}

//case后可跟字符串,Jdk7新特性


#idea反編譯:把class文件和放在源Java所對(duì)應(yīng)的工程文件夾下,在idea下打開(kāi)class文件


#while循環(huán)

  • 只要布爾表達(dá)式為true,循環(huán)會(huì)一直執(zhí)行下去
  • 大部分情況需要讓循環(huán)停止下來(lái)
  • 小部分情況需要一直執(zhí)行,比如服務(wù)器的請(qǐng)求監(jiān)聽(tīng)

#do...while:至少會(huì)執(zhí)行一次

while和do...while的區(qū)別:

  • do...while至少會(huì)執(zhí)行一次
  • while先判斷后執(zhí)行,do...while先執(zhí)行后判斷
  • do...while總是保證循環(huán)體至少執(zhí)行一次


#for循環(huán)

關(guān)于for:

1、最先執(zhí)行初始化步驟,可以聲明一種類(lèi)型,但可初始化一個(gè)或多個(gè)循環(huán)控制變量,也可以是空語(yǔ)句

2、中間是布爾表達(dá)式

3、執(zhí)行一次循環(huán),更新循環(huán)控制變量

4、再次檢查布爾表達(dá)式,循環(huán)執(zhí)行上面的過(guò)程

#簡(jiǎn)化,如for(int i; i<100;i++),簡(jiǎn)化后for( ;i<100;i++); //簡(jiǎn)化后要提前聲明并賦值給i

#死循環(huán)for( ; ; ){ }


#增強(qiáng)for循環(huán):用于數(shù)組或集合

#break用于強(qiáng)行退出循環(huán),不執(zhí)行循環(huán)剩余的語(yǔ)句(break也可在switch語(yǔ)句中使用)

#continue語(yǔ)句用在循環(huán)體中,跳過(guò)尚未執(zhí)行的語(yǔ)句,并進(jìn)行下一次是否執(zhí)行循環(huán)的判定


#兩個(gè)作業(yè):九九乘法表和打印正三角形(5行)


# 學(xué)會(huì)打斷點(diǎn):能夠知道程序的運(yùn)行機(jī)制

步過(guò):一行一行的往下走,不會(huì)進(jìn)入到其他方法的內(nèi)部。

步入:如果當(dāng)前行有方法執(zhí)行,可以進(jìn)入方法的內(nèi)部(不會(huì)進(jìn)入官方定義的方法,僅能進(jìn)入自定義的方法)。

強(qiáng)制步入:如果當(dāng)前行有方法執(zhí)行,可以進(jìn)入方法的內(nèi)部(可以進(jìn)入官方定義的方法,這在查看底層源碼時(shí)非常有用)。

智能步入:如果當(dāng)前行有多個(gè)方法同時(shí)被執(zhí)行,IDEA 將會(huì)詢問(wèn)你要進(jìn)入哪個(gè)方法。

步出:從步入的方法內(nèi)執(zhí)行完該方法,然后退出到方法調(diào)用處。

重置 Frame:恢復(fù)到上一個(gè)斷點(diǎn)的開(kāi)始處。

————————————————


#方法

如:System.out.println() //System是類(lèi),out是對(duì)象,println是方法 ,即調(diào)用System類(lèi)下out對(duì)象的一個(gè)方法println


形參:用來(lái)定義作用的

實(shí)參:實(shí)際調(diào)用傳遞給他的參數(shù)


Java是值傳遞

#方法的重載:在一個(gè)類(lèi)中,有相同的函數(shù)名稱,但形參不同的函數(shù)

規(guī)則:

  • 方法名稱必須相同
  • 參數(shù)列表必須不同(個(gè)數(shù)不同、或類(lèi)型不同等)



# 用命令行給方法傳遞參數(shù)

在src目錄下運(yùn)行,同時(shí)后面跟上參數(shù)


# 可變參數(shù)

指定參數(shù)類(lèi)型后加一個(gè)省略號(hào)(...)

一個(gè)方法只能指定一個(gè)可變參數(shù),它必須是方法的最后一個(gè)參數(shù),如何普通的參數(shù)必須在它之前申明。

public static void main(String args[]){ int 1,2,3,4}

public static void a(int...i){ }


#遞歸結(jié)構(gòu):

  • 遞歸頭:什么時(shí)候不調(diào)用自身方法。如果沒(méi)有頭,將陷入死循環(huán)。
  • 遞歸體:什么時(shí)候調(diào)用自身方法。

邊界條件:遞歸有一個(gè)盡頭邊界

前階段:未達(dá)到邊界條件前的階段

返回階段:n*(n-1)

原理:棧機(jī)制

小點(diǎn)的數(shù)可以用棧機(jī)制可以快速解決問(wèn)題,大量數(shù)據(jù)不要使用棧機(jī)制,這樣會(huì)照成內(nèi)存溢出

#寫(xiě)一個(gè)計(jì)算器

思路:

  • 寫(xiě)4個(gè)方法:加減乘除
  • 利用循環(huán)+switch進(jìn)行用戶交互
  • 傳遞需要操作的兩個(gè)數(shù)
  • 輸出結(jié)果

[鏈接](https://blog.csdn.net/EasonYoung1/article/details/131495075?spm=1001.2014.3001.5501)



# 數(shù)組

  • 數(shù)組聲明:int[ ] nums;
  • 使用new創(chuàng)建數(shù)組,分配空間:

nums=new int[3];//存放3個(gè)int類(lèi)型的數(shù)字,這里的3是空間大小,不是數(shù)組下標(biāo)

  • 聲明同時(shí)創(chuàng)建int[ ] nums=new int[3]
  • 給數(shù)組元素賦值

nums[0]=1;

nums[1]=3;

nums[2]=5;

nums[3]=7;

  • 數(shù)組長(zhǎng)度 nums.length

## 數(shù)組特點(diǎn):

1、長(zhǎng)度不可變

2、元素必須相同

3、元素可以是基本類(lèi)型和引用類(lèi)型

4、數(shù)組對(duì)象屬于引用類(lèi)型,數(shù)組可看作對(duì)象,每個(gè)元素相當(dāng)于成員變量

數(shù)組本身就是對(duì)象,Java中對(duì)象是在堆中的,無(wú)論數(shù)組保存原始類(lèi)型還是其他對(duì)象類(lèi)型,數(shù)組本身是在堆中的。

#內(nèi)存分析(堆、棧和方法區(qū))

聲明數(shù)組放入棧

創(chuàng)建數(shù)組放入堆,在堆中開(kāi)辟一塊區(qū)域

## 三種初始化

  • 靜態(tài)初始化

int[ ] a={1,3,5};//創(chuàng)建直接賦值

  • 動(dòng)態(tài)初始化

int[ ] a=new int[3];//創(chuàng)建并分配3個(gè)空間

  • 默認(rèn)初始化

數(shù)組是引用類(lèi)型,其元素相當(dāng)于類(lèi)的實(shí)例變量,一旦數(shù)組被分配空間,數(shù)組每個(gè)元素被按照實(shí)例變量同樣的方式被隱式初始化


## 數(shù)組使用

  • For-Each循環(huán)
  • 數(shù)組作方法入?yún)?/li>
  • 數(shù)組作返回值

## 二維數(shù)組

在一維數(shù)組的基礎(chǔ)上,每一個(gè)元素都是一個(gè)數(shù)組

int a[ ][ ]=new int [1][2];//可看作一個(gè)兩行三列的數(shù)組


int[ ] [ ] array={{1,2},{3,2},{2,0}};//看作3行兩列的數(shù)組

#Arrays類(lèi)

  • 先導(dǎo)包import java.util.Arrays;
  • 再使用Arrays.toString(類(lèi)型【】 數(shù)組名);

Arrays.fill(int[] 數(shù)組名)//填充數(shù)組


# 稀疏數(shù)組

當(dāng)一個(gè)數(shù)組中大部分元素是0,或?yàn)橥恢档臄?shù)組時(shí),可以使用稀疏數(shù)組來(lái)保存該數(shù)組

  • 處理方式:
  • 記錄幾行幾列,有多少不同值
  • 把不同值元素和行列及值記錄在一個(gè)小規(guī)模數(shù)組中,從而縮小程序的規(guī)模

#打印一個(gè)稀疏數(shù)組


#面向?qū)ο?/strong>

return:結(jié)束方法,返回一個(gè)結(jié)果

break:跳出當(dāng)前循環(huán)

屬性+方法就是一個(gè)類(lèi)

面向過(guò)程:步驟清晰簡(jiǎn)單,適合處理簡(jiǎn)單問(wèn)題

面向?qū)ο螅何镆灶?lèi)聚,分類(lèi)思維模式,適合處理復(fù)雜問(wèn)題

#面向?qū)ο蟮谋举|(zhì)

以類(lèi)的方式組織代碼,以對(duì)像的組織(封裝)數(shù)據(jù)


三大特性:封裝、繼承、多態(tài)


類(lèi)分靜態(tài)類(lèi)和非靜態(tài)類(lèi),非靜態(tài)類(lèi)要實(shí)例化才能使用

public class Student{

String name;

}

public static void main{

Student student=new Student(); //實(shí)例化

student.name="ian";//賦值

sout+student.name //(偽代碼)輸出

}


## 創(chuàng)建與初始化對(duì)象

使用new關(guān)鍵字創(chuàng)建對(duì)象:

  • 使用new關(guān)鍵字創(chuàng)建,除了分配內(nèi)存空間,還會(huì)給創(chuàng)建好的對(duì)象進(jìn)行默認(rèn)的初始化,以及對(duì)類(lèi)中構(gòu)造器的調(diào)用。
  • 類(lèi)中的構(gòu)造器也稱為構(gòu)造方法,是在進(jìn)行創(chuàng)建對(duì)象時(shí)必須要調(diào)用的,特點(diǎn)如下

1、必須和類(lèi)名相同

2、必須沒(méi)有返回類(lèi)型,不能寫(xiě)void

* 作用:
* 1、new本質(zhì)在調(diào)用構(gòu)造方法
* 2、初始化對(duì)象的值
* 注意:定義有參構(gòu)造后,如果使用無(wú)參構(gòu)造,可以定義一個(gè)無(wú)參構(gòu)造
*
* 創(chuàng)建構(gòu)造器快捷鍵:ALT+Insect
* this.對(duì)象 //this指當(dāng)前類(lèi)


#內(nèi)存分析:



小結(jié):

1、類(lèi)與對(duì)象

類(lèi)是一個(gè)模板:抽象

對(duì)象是一個(gè)具體實(shí)例

2、方法:定義與調(diào)用

3、對(duì)象的引用

引用類(lèi)型:基本類(lèi)型

對(duì)象是提高引用來(lái)操作的:棧->堆

4、屬性:字段field 成員變量

默認(rèn)初始化:

數(shù)字 0 0.0

char: u0000

boolean: false

引用:null


5、對(duì)象的創(chuàng)建與使用

必須使用new創(chuàng)建對(duì)象,建立構(gòu)造器

對(duì)象的屬性 ian.name

對(duì)象的方法 ian.fx()


6、類(lèi)

靜態(tài)的屬性 屬性

動(dòng)態(tài)的行為 方法


# 封裝:

高內(nèi)聚、低耦合

高內(nèi)聚:類(lèi)的內(nèi)部操作細(xì)節(jié)自己完成,不允許外部干涉

低耦合:僅暴露少量的方法給外部使用

屬性私有,get/set

set中可以對(duì)接收的數(shù)據(jù)判斷是否合法,進(jìn)行操作


Alt+Insect 快捷生成


意義:

1、提高程序的安全性,保護(hù)數(shù)據(jù)

2、隱藏代碼實(shí)現(xiàn)的細(xì)節(jié)

3、統(tǒng)一接口

4、系統(tǒng)的可維護(hù)性增加了


# 繼承

子類(lèi)在類(lèi)定義時(shí):

public class Person(){} //父類(lèi)

public class extends Person(){} //子類(lèi)


Ctrl+H //查看層次結(jié)構(gòu)

所有的類(lèi),都直接或間接繼承object類(lèi)


知識(shí)點(diǎn):

  • java中只有單繼承,沒(méi)有多繼承。一個(gè)兒子只有一個(gè)爸爸,一個(gè)爸爸可以有多個(gè)兒子
  • 繼承是類(lèi)和類(lèi)之間的一種關(guān)系。除此之外,類(lèi)和類(lèi)之間還有依賴、組合、聚合等。


object類(lèi)

super

方法重寫(xiě)


# super

注意點(diǎn):

1、super調(diào)用父類(lèi)的構(gòu)造方法,必須在構(gòu)造方法的第一個(gè)

2、super必須只能在子類(lèi)的方法或構(gòu)造方法中!

3、super和this不能同時(shí)調(diào)用方法!


對(duì)比this:

1、代表的對(duì)象不同:

  • this:本身調(diào)用這個(gè)對(duì)象
  • super代表父類(lèi)對(duì)象的引用

2、前提:

  • this:沒(méi)有繼承也可以使用
  • super:只能在繼承條件下才可以使用

3、構(gòu)造方法

  • this():本類(lèi)的構(gòu)造
  • super():父類(lèi)的構(gòu)造


方法的重寫(xiě):重寫(xiě)的方法的重寫(xiě),與屬性無(wú)關(guān)

//靜態(tài)方法的調(diào)用只和左邊,定義的數(shù)據(jù)類(lèi)型有關(guān)
//非靜態(tài)的方法能重寫(xiě)


  • 重寫(xiě):需要有繼承關(guān)系,子類(lèi)重寫(xiě)父類(lèi)的方法:

1、方法名必須相同

2、參數(shù)列表必須相同

3、修飾符:范圍可以擴(kuò)大,不能縮小:

private<Default<protected<public

4、拋出的異常:范圍,可以縮小,但不能擴(kuò)大:

ClassNotFoundException->Exception(大)

5、子類(lèi)的方法和父類(lèi)要一致,方法體不同。


重寫(xiě)的意義:父類(lèi)的功能,子類(lèi)不一定需要,或不一定滿足!

Alt+O;override


多態(tài):

同一個(gè)方法可以根據(jù)發(fā)送對(duì)象的不同而采取多種不同的行為方式

一個(gè)對(duì)象的實(shí)際類(lèi)型的確定的,但可以指向?qū)ο蟮囊妙?lèi)型有很多(父類(lèi),有關(guān)系的類(lèi))


多態(tài)存在的條件

1、有繼承關(guān)系

2、子類(lèi)重寫(xiě)父類(lèi)方法

3、父類(lèi)引用指向子類(lèi)對(duì)象


注意:多態(tài)是方法的多態(tài),屬性沒(méi)有多態(tài)性

instanceof 判斷兩個(gè)對(duì)象是否有聯(lián)系

(類(lèi)型轉(zhuǎn)換)引用類(lèi)型

eg: ((Student) s2). fx();


抽象類(lèi):abstract

1、不能new這個(gè)抽象類(lèi),只能在子類(lèi)去實(shí)現(xiàn)它:約束!

2、抽象類(lèi)可以寫(xiě)普通方法

3、抽象方法必須在抽象類(lèi)中

4、new,存在構(gòu)造器


# 接口

普通類(lèi):只有具體實(shí)現(xiàn)

抽象類(lèi):具體實(shí)現(xiàn)和規(guī)范(抽象方法)都有

接口:只有規(guī)范!自己無(wú)法寫(xiě)方法~專業(yè)的約束!約束和實(shí)現(xiàn)分離:面向接口編程

  • 接口就是規(guī)范,定義的是一組規(guī)則,體現(xiàn)了現(xiàn)實(shí)世界中“如果你是...則必須能...”的思想
  • 接口的本質(zhì)是契約
  • oo的精髓,是對(duì)對(duì)象的抽象

接口關(guān)鍵字:interface

實(shí)現(xiàn)類(lèi)關(guān)鍵字:implement


內(nèi)部類(lèi)

內(nèi)部類(lèi)就是在一個(gè)類(lèi)的內(nèi)部再定義一個(gè)類(lèi),如,A類(lèi)定義一個(gè)B類(lèi),那么B類(lèi)相對(duì)于A類(lèi)來(lái)說(shuō)稱為內(nèi)部類(lèi),A類(lèi)相對(duì)于B類(lèi)來(lái)說(shuō)就是外部類(lèi)

1、成員內(nèi)部類(lèi)

2、靜態(tài)內(nèi)部類(lèi)

3、局部?jī)?nèi)部類(lèi)

4、匿名內(nèi)部類(lèi)


# 異常



異常體系結(jié)構(gòu):

Error:

Error類(lèi)對(duì)象由Java虛擬機(jī)生成并拋出,大多數(shù)錯(cuò)誤與代碼執(zhí)行者所執(zhí)行的操作無(wú)關(guān)

Exception:

在Exception分支中有一個(gè)中有一個(gè)重要的子類(lèi)RuntimeException(運(yùn)行時(shí)異常)



Alt+Enter 處理波浪線









【狂神說(shuō)Java】Java零基礎(chǔ)學(xué)習(xí)視頻通俗易懂的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平谷区| 浙江省| 修文县| 延长县| 湖州市| 社旗县| 堆龙德庆县| 百色市| 长岭县| 光山县| 丰城市| 临朐县| 石门县| 信阳市| 阿克苏市| 会宁县| 兴海县| 咸阳市| 若羌县| 金秀| 广灵县| 阳高县| 叙永县| 开原市| 达孜县| 济阳县| 汉沽区| 淄博市| 广元市| 舒兰市| 永新县| 定远县| 察雅县| 应城市| 永吉县| 东光县| 康马县| 鄂伦春自治旗| 阜康市| 古浪县| 织金县|