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

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

Java學(xué)習(xí)筆記-2022年12月12日

2022-12-13 00:11 作者:搜糞海  | 我要投稿

(這是第一行)

牢記使命:文化基因的傳播

暫時(shí)的計(jì)劃:優(yōu)秀程序員

項(xiàng)目需求

管理系統(tǒng):程序員書店

網(wǎng)頁游戲:模擬程序員人生

小說形式的Java從入門到精通

學(xué)習(xí)方法

形而上的是意思,不是文字,盡量不要發(fā)展自己的namespace,否則別人不懂

工科,不必看太細(xì)

自言自語,輸入同時(shí)輸出,學(xué)習(xí)是為了面試、跟同事討論、做視頻輸出

我的優(yōu)勢:項(xiàng)目想象力、知識點(diǎn)串連

程序員的工作就是邊做邊學(xué),工科,實(shí)現(xiàn)最重要

每次進(jìn)度慢下來,這是直覺在提醒我,走錯(cuò)路了。我要讓成功變成必然

回憶好狀態(tài):智力題(聯(lián)系現(xiàn)實(shí)),讀書-進(jìn)化心理學(xué)(創(chuàng)作)

多用百度

腦子動(dòng)起來,迷茫時(shí)關(guān)注大佬up主

學(xué)概念時(shí),哲學(xué)三問:這是什么?這怎么實(shí)現(xiàn)的?這可以用來做什么?

喜歡學(xué)理論,腦子動(dòng)起來,迷茫時(shí)關(guān)注大佬

認(rèn)清自己,單兵實(shí)干家

學(xué)習(xí)過程中找狀態(tài),不著急

關(guān)注大佬up主,跟著大佬的思路

自己做整理,存ROM,求精不求多,對新的概念做聯(lián)想

腦子動(dòng)起來,腦子從一個(gè)狀態(tài)變成另一個(gè)狀態(tài),混亂時(shí)停下來,及時(shí)止損

?

Java基礎(chǔ)

注釋

/* 注釋 */

// 注釋

/**

?* 多行注釋

?*/

?

public class

package

import

?

Class object = new Class();

?

基本類型

數(shù)字 * 6 + char + boolean

byte short int long float double char boolean

void用于空返回的方法

long默認(rèn)0L

float默認(rèn)0.0f

double默認(rèn)0.0d

char最小值是 \u0000;最大值是 \uffff

?

引用類型

Java引用類型的變量類似于C/C++的指針。

變量一旦聲明后,類型就不能被改變了。

對象、數(shù)組都是引用數(shù)據(jù)類型。

所有引用類型的默認(rèn)值都是null。

一個(gè)引用變量可以用來引用任何與之兼容的類型。

?

final double PI = 3.14; // final不可修改,通常用大寫字母

?

自動(dòng)類型轉(zhuǎn)換

short轉(zhuǎn)int,float轉(zhuǎn)double

boolean不能

float轉(zhuǎn)int,舍棄小數(shù),不是四舍五入

?

強(qiáng)制類型轉(zhuǎn)換

int i = 100;

byte b = (byte) i;

?

隱含強(qiáng)制類型轉(zhuǎn)換

整數(shù)默認(rèn)int

小數(shù)默認(rèn)double

float f = 1.1f // 定義float時(shí)要有f

?

Java語言支持的變量類型有:

類變量:方法之外,用 static 修飾。

實(shí)例變量:方法之外,沒有 static 。

局部變量:類的方法中的變量。

?

Java 局部變量

在方法、構(gòu)造方法、語句塊

不能用訪問修飾符

分配棧內(nèi)存,run時(shí)new,run完就沒了

?

實(shí)例變量

在類中,但在方法、構(gòu)造方法和語句塊之外,多是private

對象被new之后,實(shí)例變量就有了,在對象被銷毀的時(shí)候銷毀

在靜態(tài)方法或其他類中,應(yīng)該用完全限定名:ObjectReference.VariableName。

?

類變量(靜態(tài)變量)

大多數(shù)是public static final,用大寫字母。

存在靜態(tài)存儲區(qū),只有一份,在第一次被訪問時(shí)創(chuàng)建,在程序結(jié)束時(shí)銷毀。

?

同一個(gè)類private,同一個(gè)包(默認(rèn)),子類protected,所有包public

?

private

private用來隱藏類的實(shí)現(xiàn)細(xì)節(jié)和保護(hù)類的數(shù)據(jù)

private可用于變量、方法、構(gòu)造方法

類和接口不能用private

private變量只能通過類中的public?getter方法被外部類訪問

?

protected(復(fù)雜,少用)

如果子類和基類不在同一package:那么在子類中,子類實(shí)例可以訪問其從基類繼承而來的 protected 方法,而不能訪問基類實(shí)例的protected方法。

?

運(yùn)算符

算術(shù)運(yùn)算符 + - * / % ++ --

關(guān)系運(yùn)算符 == != > < >= <=

邏輯運(yùn)算符?&& || !

賦值運(yùn)算符?= += -= *= /= %=

三元運(yùn)算符?int max?= a > b?? a?: b

位運(yùn)算符,少用

?

instanceof 運(yùn)算符

String str = "abc";

boolean b?= str?instanceof String; // 由于 str 是 String 類型,所以返回真

?

循環(huán)控制

while( i > 0?)

至少一次的do while

for( int i = 0; i < 10; i++)

for each

?

break 打斷循環(huán)或switch

?

continue 關(guān)鍵字

continue 讓程序立刻跳轉(zhuǎn)到下一次循環(huán)。

在 for 循環(huán)中,continue 跳轉(zhuǎn)到更新語句i++。

在 while 或者 do…while 循環(huán)中,跳轉(zhuǎn)到布爾表達(dá)式的判斷語句i>0。

?

if else

?

switch case

?

包裝類

Number Boolean Character

?

日期時(shí)間

?

正則表達(dá)式

?

try catch finally

為什么要有try?方法調(diào)用時(shí),不可run,返回原因

?

extends class

implements?interface

this自己 super引用當(dāng)前對象的父類

final

?

重寫(Override)?extends父類

重載(Overload)?同一class中,方法名同,參數(shù)不同,返回值隨意

?

多態(tài)

?

implements interface

?

HashMap key-value

HashSet沒重復(fù)

?

泛型:

E - Element (集合的元素)

T - Type(Java 類)

K - Key(鍵)

V - Value(值)

N - Number(數(shù)值類型)

??- 不確定的 java 類型

?

JVM

JRE

JDK

.txt -> .exe // 編譯之后,操作系統(tǒng)可直接run

.java -> .class -> JVM // 編譯之后,給JVM解釋執(zhí)行,JVM運(yùn)行在操作系統(tǒng)上

JavaWeb

Servlet是一個(gè)能處理HTTP請求,發(fā)送HTTP響應(yīng)的程序

JSP簡單輸出HTML,混帶Java代碼

out

session

request

?

Cookie存在用戶瀏覽器中

Session存在服務(wù)器端,存在服務(wù)器上的文件、數(shù)據(jù)庫、內(nèi)存或 Redis 這種內(nèi)存型數(shù)據(jù)庫。

Session ID存在Cookie和服務(wù)器各一份

客戶端之后對同一個(gè)服務(wù)器進(jìn)行請求時(shí)會順帶Cookie,服務(wù)器收到之后找Session ID,繼續(xù)之前的業(yè)務(wù)操作。

框架

順序

new Maven Project

pom.xml

application.yml

前端html放進(jìn)來

再后面全是java類

Spring

控制反轉(zhuǎn)IoC

對象實(shí)例化的控制權(quán)交給外部環(huán)境(Spring框架、IoC容器)

例如:現(xiàn)有類A依賴于類B

●傳統(tǒng)的開發(fā)?:在類A中手動(dòng)new一個(gè)B的對象

●使用IoC思想的開發(fā)?:通過IoC容器(Spring框架)來實(shí)例化對象,要用哪個(gè)對象,直接從IoC容器里面拿

?

Bean依賴注入DI

Spring中的bean

?

面向切面AOP

多個(gè)方法的相同位置出現(xiàn)了重復(fù)的代碼,比如:權(quán)限檢查,日志代碼等,橫切邏輯代碼

AOP橫向抽取,把橫切邏輯代碼和業(yè)務(wù)邏輯代碼分離

SpringMVC

對接前端

簡化Servlet

MyBatis

簡化數(shù)據(jù)庫操作

MyBatis工作量大,要寫SQL,性能好

對比Hibernate隱藏SQL

SpringBoot

Ctrl-v SpringBoot骨架代碼from官網(wǎng)

?

自動(dòng)配置,省事

SpringCloud

微服務(wù)

分布式

注冊中心、配置中心、服務(wù)器集群、負(fù)載均衡

SQL

對data的操作都有封裝,要用時(shí)查字典

?

Database,Table,Column

?

SELECT * FROM students;

SELECT * FROM students WHERE score >= 80;

SELECT id, name, score FROM students;

SELECT id, name, score FROM students ORDER BY score;

SELECT id, name, score FROM students ORDER BY score DESC;

SELECT COUNT(*) FROM students;

SELECT AVG(score) average FROM students;

INSERT INTO students (name, score) VALUES ( '小明', 80);

UPDATE students SET name='小明', score=90 WHERE id=1;

DELETE FROM students WHERE id=1;

?

視圖是虛擬的表,用戶只能拿到視圖,安全

?

存儲過程是對一系列 SQL 操作的批處理。

好處:

代碼封裝,安全;

代碼復(fù)用;

預(yù)先編譯,高性能。

?

在存儲過程中用游標(biāo)對一個(gè)結(jié)果集做移動(dòng)遍歷。

游標(biāo)用于交互式應(yīng)用,用戶對數(shù)據(jù)集中的任意行做瀏覽和修改。

?

觸發(fā)器在某個(gè)操作時(shí)自動(dòng)run:DELETE、INSERT、UPDATE。

觸發(fā)器在語句run之前run用 BEFORE ,之后run使用 AFTER 。

BEFORE 用于數(shù)據(jù)驗(yàn)證和凈化,AFTER 用于審計(jì)跟蹤,將修改記錄到另外一張表中。

MySQL 不允許在觸發(fā)器用 CALL ,不能調(diào)用存儲過程。

?

事務(wù)(transaction)

回退(rollback)

提交(commit)

不能回退 CREATE 和 DROP 語句

?

索引

B樹BalanceTree

B+樹

hash散列

Redis

NoSQL

緩存 響應(yīng)快

6種數(shù)據(jù)結(jié)構(gòu),邏輯少,速度快

理論

設(shè)計(jì)模式

常用的軟件設(shè)計(jì)原則

軟件工程

開發(fā)流程:

分析、設(shè)計(jì)、實(shí)現(xiàn)、測試

?

軟件設(shè)計(jì)原則:

高內(nèi)聚、低耦合,文件為單位

?

直接完整開發(fā),瀑布模型。

為了預(yù)防需求變更,增量模型。

算法

一組動(dòng)作,有結(jié)果,時(shí)間有限

結(jié)構(gòu)*3:順序、判斷、循環(huán)

常用的排序、查找

遞歸:用到自己,每次不同,最后有結(jié)果

數(shù)據(jù)結(jié)構(gòu)

數(shù)組

鏈表

隊(duì)列

二叉樹

操作系統(tǒng)

抽象硬件,管理硬件,提供API,提供用戶界面UI

?

管理:內(nèi)存、進(jìn)程、硬件設(shè)備、文件

?

餓死:進(jìn)程缺資源,不能run了

?

死鎖:

互斥

占有和等待

不可搶占

環(huán)路等待

?

自舉

網(wǎng)絡(luò)

單機(jī)之間的通信是互聯(lián)網(wǎng)

軟件進(jìn)程線程之間的通信歸操作系統(tǒng)管

硬件之間的通信用總線

?

HTTP

三個(gè)部分

get / HTTP

key-value

post參數(shù)

?

UDP 無連接 不可靠 低耗

TCP 面向連接 可靠

IP 標(biāo)識唯一的連接

?

URL

C/S

P2P

?

分組交換

每個(gè)分組都有首部和尾部,包含了源地址和目的地址等控制信息,在同一個(gè)傳輸線路上同時(shí)傳輸多個(gè)分組互相不會影響

?

總時(shí)延 = 排隊(duì)時(shí)延 + 處理時(shí)延 + 傳輸時(shí)延 + 傳播時(shí)延

處理時(shí)延:主機(jī)或路由器收到分組時(shí)進(jìn)行處理所需要的時(shí)間,例如分析首部、從分組中提取數(shù)據(jù)、進(jìn)行差錯(cuò)檢驗(yàn)或查找適當(dāng)?shù)穆酚傻?/p>

傳輸時(shí)延:主機(jī)或路由器傳輸數(shù)據(jù)幀所需要的時(shí)間

傳播時(shí)延:電磁波在信道中傳播所需要花費(fèi)的時(shí)間

?

網(wǎng)絡(luò)分層

5層

應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層

7層OSI

應(yīng)用層,表示層,會話層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層

幫助應(yīng)用程序開發(fā)者處理表示層和會話層

TCP/IP

應(yīng)用層,傳輸層TCP,網(wǎng)絡(luò)層IP,網(wǎng)絡(luò)接口層

TCP/IP 體系結(jié)構(gòu)不嚴(yán)格遵循 OSI 分層概念,應(yīng)用層可能會直接使用 IP 層或者網(wǎng)絡(luò)接口層

?

HTTP的URL前綴是http://,端口號默認(rèn)80

HTTPS的URL前綴是https://,端口號默認(rèn)443,安全性高,但耗費(fèi)更多服務(wù)器資源

計(jì)算機(jī)組成

1010是基礎(chǔ),有了10之分,就有了變數(shù)

?

CPU軟件、內(nèi)存數(shù)據(jù)、IO硬件

?

CPU

CPU組成:算術(shù)邏輯單元、控制單元、一系列寄存器

?

內(nèi)存

寄存器+RAM+ROM(IO快的容量?。?/p>

RAM通過地址找ROM

?

IO

總線連接各個(gè)硬件

總線分類:數(shù)據(jù)、地址、控制

數(shù)據(jù)

數(shù)字:自然界的類似抽象為相同

文本:人類交流

音頻:模擬,有損,話筒輸入,音箱輸出

圖像:二維點(diǎn)圖或形狀描述圖

視頻:連續(xù)圖像帶音頻

程序設(shè)計(jì)語言

發(fā)展:

1010、匯編、C、C++、Java、Spring

?

匯編

最快,CPU相關(guān),不可移植

用英文字母、符號串來替代一個(gè)特定的指令的二進(jìn)制串,比如,用"ADD"代表加法,"MOV"代表數(shù)據(jù)傳遞等等

匯編程序的每一句指令只能對應(yīng)實(shí)際操作過程中的一個(gè)很細(xì)微的動(dòng)作,例如移動(dòng)、自增

?

C語言

C語言把相關(guān)的機(jī)器指令合成為單條指令,去掉了操作細(xì)節(jié),例如操作寄存器。

在C語言之前,操作系統(tǒng)是用匯編語言寫的,不可移植。

移植性:C語言的核心以及ANSI函數(shù)調(diào)用都具有移植性,但僅限于流程控制、內(nèi)存管理和簡單的文件處理。其他的東西都跟平臺有關(guān)。

比如說,為Windows和Mac開發(fā)可移植的程序,用戶界面部分就需要用到與系統(tǒng)相關(guān)的函數(shù)調(diào)用,所以要寫兩次用戶界面代碼。有一些庫可以減輕工作量。

?

C++

C語言+面向?qū)ο?/p>

面向?qū)ο缶幊淌墙Y(jié)構(gòu)化編程的下一步。

程序由對象組成,其中的對象是數(shù)據(jù)和函數(shù)的離散集合。

有很多對象庫,編程簡單,只要將一些程序堆在一起。

比如說,有很多的GUI和數(shù)據(jù)庫的庫實(shí)現(xiàn)為對象的集合。

優(yōu)點(diǎn):組織大型程序時(shí)比C好得多。支持面向?qū)ο蟆Mㄓ脭?shù)據(jù)結(jié)構(gòu)組成的庫減輕了處理低層細(xì)節(jié)的負(fù)擔(dān)。

缺點(diǎn):非常大而復(fù)雜。跟C一樣語法濫用。比C慢。

移植性:比C好多了,但還不是很好。因?yàn)樗蠧語言相同的缺點(diǎn),大多數(shù)可移植性用戶界面庫都使用C++對象實(shí)現(xiàn)。

?

Java

Java從C++中借用了大量的語法,丟棄了C++的復(fù)雜功能,強(qiáng)制面向?qū)ο?,所以緊湊、易學(xué)。

沒有指針、自動(dòng)分配垃圾回收、虛擬機(jī)機(jī)制,所以不易崩潰且不會泄漏資源。

移植性好,二進(jìn)制碼可移植到其他平臺。

內(nèi)含的類庫非常標(biāo)準(zhǔn)且極其健壯。

缺點(diǎn):虛擬機(jī)run可移植的字節(jié)碼而非本地機(jī)器碼,程序?qū)⒈日嬲幾g器慢。早期的功能如AWT沒經(jīng)過慎重考慮,雖然被正式廢除,但為了向后兼容而保留。

?

編程語言都有一些共性是不變的,3點(diǎn):

1:1或0,內(nèi)存電位的設(shè)置

2:if?else條件判斷,該功能可通過邏輯門實(shí)現(xiàn)

3:goto程序下一條指令地址可設(shè)置,可循環(huán),默認(rèn)順序

?

鏈接庫,靜態(tài)或動(dòng)態(tài)的

編譯,txt轉(zhuǎn)成exe,run exe

解釋,run txt,按行run

?

對比其他exe軟件,編程軟件為專業(yè)人員專用

人工智能

問題求解

蠻力搜索或啟發(fā)式搜索

?

專家系統(tǒng)

可以推理的基于規(guī)則的系統(tǒng)

抽象事實(shí),得到知識

可控的

?

神經(jīng)網(wǎng)絡(luò)

仿生,接受刺激則加強(qiáng)聯(lián)系

?

造機(jī)器人

感知、學(xué)習(xí)、思考、動(dòng)作

如果加入進(jìn)化心理學(xué),給單機(jī)行為動(dòng)機(jī),機(jī)器就有自主行為,像人一樣,之后發(fā)育成為超人

大事記錄

1997年10月6日出生

2022年10月21日決定自學(xué)Java,走優(yōu)秀程序員路線,最終目標(biāo)永不變:文化基因的傳播

2022年11月7日開了這篇整理

2022年11月29日到12月3日,刷了一遍進(jìn)化心理學(xué)

Java學(xué)習(xí)筆記-2022年12月12日的評論 (共 條)

分享到微博請遵守國家法律
宾阳县| 涿州市| 香港| 乌拉特前旗| 山丹县| 新余市| 依兰县| 安阳县| 赣榆县| 平阴县| 蒲江县| 彭阳县| 龙里县| 贞丰县| 广州市| 会宁县| 蓬溪县| 逊克县| 越西县| 乐亭县| 虹口区| 娄烦县| 普兰县| 永州市| 巴林左旗| 台东市| 明水县| 广德县| 静安区| 汉源县| 海南省| 徐水县| 休宁县| 界首市| 山阳县| 沈阳市| 疏附县| 绿春县| 兰州市| 五华县| 晋州市|