日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

poker java idea_JavaBasic学习笔记

發布時間:2025/3/21 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poker java idea_JavaBasic学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DAY 1 概述

Java語言版本————JDK與openJDK

Java SDK最早叫Java Software Develop Kit,后來道改名為JDK,即Java Develop Kit。JDK作為Java開發工具包,主要用于構建在Java平臺上運行的應用程序、回Applet 和組件等。

其中包括了Java編譯器、JVM、大量的Java工具以及Java基礎度API里面是Java類庫和Java的語言規范,同時Java語言的任何改進都應當加到其中,作為后續版本發知布。(JDK,JRE和JVM:https://www.cnblogs.com/mambahyw/p/7978832.html)

Java語言特點

編譯型語言:用這種語言寫出代碼首先通過編譯器的編譯,全部轉化成目標代碼(在win上,就是二進制可執行文件.exe),然后依次在操作系統中運行。

解釋型語言:轉化一句,執行一句。

從?.java--->.class--->java虛擬機 這個角度來講,Java是解釋型語言

跨平臺——通過Java語言編寫的應用程序在不同的系統平臺上都可以運行——實現原理:Java程序在jvm上運行,而非直接運行于操作系統

面向對象

健壯

分布式

多線程

解釋型

動態

高效

結構中立(字節碼)

開源

(Java核心技術I p2-6)

Java運行原理

Path環境變量與Classpath

path環境變量:告訴操作系統到哪里去找javac可執行程序配置

classpath環境變量:給JVM用,告訴JVM到哪里去加載字節碼文件配置

配置path環境變量的官方推薦方式:

1.JAVA_HOMEH環境變量:F:\java\bin——根據自己的javac位置

2.配置path環境變量:%JAVA_HOME%\bin

在Java語言中,一個Java文件中只能定義一個被public修飾的類,且被public修飾的類的類名,必須和Java文件的文件名相同

DAY2

IDEA的基本使用

1.在idea的一個窗口,一次只能打開一個project。

2.idea中module就相當于一個項目——類比為eclipse里的workspace,一個project中可以有多個module,多個module之間相互獨立

關鍵字(變量等起名不可用的)

被java語言賦予了特殊含義的單詞(目前有且僅有50個)

特點:組成關鍵字的單詞全部小寫

注意事項:在高級的編譯器或專門的開發工具中,關鍵字會有高亮效果,goto和const作為保留字符存在,目前并不使用

標識符(自己可以起的名字)

就是給類、接口、方法、變量等起名字時使用的字符序列

組成規則:a.英文字母大小寫

b.數字字符

c.$和_

注意事項:不能以數字開頭,不能是java中的關鍵字(保留字),區分大小寫

常見命名規則:駝峰命名

包命名:單級和多級包名,在java語言中,以包來組織java中的l類

為了保證包名的唯一,以域名(唯一)反轉的方式來命名包

單級:一個全部小寫的單詞

多級:以域名反轉的 方式來命名,單詞全部小寫,單詞之間以 . 來分隔,例如com.baidu.name

類的接口命名:

單個:首字母大寫,其余字母全部小寫

多個單詞:每個單詞首字母大寫,其余字母全部小寫

變量和方法的命名:

單個:所有字母小寫

多個單詞:第一個單詞首字母小寫,第二個單詞開始,每個字母首字母大寫? intValue

常量的命名:所有字母全部大寫

單個:單詞的所有字母全部大寫。例如:MAX

多個單詞:每個單詞全部大寫,單詞之間以下劃線分隔? 例如MAX_AGE

在實際開發當中,命名遵循的一個核心原則是見名知意

注釋

單行注釋? ?//

多行注釋? /* 注釋內容 */

文檔注釋 /** 文檔注釋內容 */

常量、進制、進制轉化、有符號表示

字面值常量:字面值常量,字符串常量,小數常量,字符常量,布爾常量,空常量(NULL)

自定義常量

變量

變量定義的格式:數據類型 變量名 = 變量值

類型

占用存儲空間

表數范圍

byte

1字節

-128~ 127

short

2字節

-2^15~2^15-1

int

4字節

-2^31~2^31-1

long

8字節

-2^63~2^63-1

float

4字節

-3.403E38~3.403E38

double

8字節

-1.798E308~1.798E308

不同類型之間的轉化規則:

Boolean類型的變量不能直接轉化為其他類型的值

byte,short,char相互之間不能轉化 ——>int——>long——>float——>double

byte,short,char相互之間不轉換,他們參與運算首先轉換為int類型

變量的數據類型和類型轉化

目標類型 變量名=(目標類型)(被轉換的數據);

字符串的拼接

操作數1 + 操作數2? ? ? ? 兩個操作數中,只要至少有一個是字符串, +操作執行的就是字符串拼接

除法運算

當參與除法運算的除數與被除數,他們都是整數的時候,此時除法運算的結果,會丟棄小數部分,只保留整數部分

邏輯運算符

位運算符

位運算符:針對變量的二進制位來進行運算

運行其他人的項目——>new一個directory(在項目下新建一個項目文件夾)命名為out——>設置一下編譯輸出路徑project structure(若沒有,自己新建一個編譯輸出目錄即可)——>將project complier output設置為自己新建的輸出目錄即可

Scanner in中 int? 和boolean都以空格作為分隔符,string以回車作為分隔符

DAY 4

順序結構

選擇結構

if語句

與三目運算符的一些區別:

對于三目運算符,結果一定是一個值,例如a>b?1:2? 而不能是a>b?System.out.print(a):System.out.print(b)

用if語句實現把獲取兩個數據較大的值給輸出出來,這個通過三元運算符就沒辦法寫了。

switch語句

switch語句表達式的取值:byte,short,int,char

case后面的值,不能相同,但必須得是常量值,必須和表達式值的類型相同

break可以省略,但是省略之后會出現case穿越

default可以省略,一般不建議省略(根據開發的實際情況決定),且不一定要放在最后,如果不在最后,仍然會發生case穿越

DAY 5

循環結構

for循環

while循環

do-while循環:與while相比不管是否滿足循環條件,都首先執行一次循環體中的代碼

for(;;)---while(true)死循環并非不能使用(在多線程時可以)

for-each循環? for(變量類型 變量名:數組)————從頭到尾的遍歷數組

跳轉控制語句

break:在for循環中只是停止當前層的循環,外層循環依然可以執行

想要停止整個循環,在最外層設置一個標簽outer

outer:for(int i=0; i<3; i++)

{for(int j=0; j<3; j++)

{if(j==2)

{breakouter;

}

}

}

continue:退出循環的一次迭代過程,必須配合if使用

return:不是為了跳出循環體,更常用的功能是結束一個方法(函數),也就是退出一個方法,跳轉到上層調用的方法

方法

格式說明:

修飾符:現在先認為是public static

返回值類型:方法體中的代碼執行結果的數據類型

方法名:標識符

參數:類比數學中函數的自變量z = f(x,y)

方法體:實現具體功能的語句結合

return:跳轉控制關鍵字

返回值:方法執行的到的最終結果

沒有返回值的方法,可以有return,也可以沒有return

void

調用沒有返回值的方法,只能使用直接調用

方法調用的注意事項

方法不調用不執行

方法與方法是平級關系,不能嵌套定義

方法定義的時候參數之間用逗號隔開

方法調用的時候

方法重載(over load)

在同一個類中,允許存在一個以上的同名方法

只要他們的參數個數不同

參數類型不同

參數順序不同:不是指形式參數的變量名順序,而是指形式參數的類型順序

public static int add(double a, intb){

}public static int add(int a , doubleb){

而非public static int add(double b, int a){

所以,編譯器區分方法的是通過區分方法簽名(方法名+參數列表)

但是編譯器并不會考慮方法的返回值

public static int add(int x,inty) {

}public static double add(int x, inty){

直接調用add(a,b),沒用調用double和int,編譯器自然無法區分。因此再次印證了編譯器只通過方法簽名來區分,而不能通過返回值類型來區分

比較兩個數據是否相等

編譯器默認的方向是小范圍轉大范圍,重載的時候是尋找最接近的數據類型。

DAY6

數組

相同數據類型的數據元素的有序集合(容器)

同一數組的單元都是物理緊鄰

訪問數組中任意元素,所用時間幾乎相同(而數組的元素類型相同,也是為了保證隨機存取)

數組當中可以存放:1.基本類型數據  byte,short char int double float

2.引用類型數據?  對象

Java中的數組必須先初始化,然后才能使用 ——所謂的初始化,就是為數組中的元素分配內存空間,并為每個數組元素賦初值

數組初始化的方式:動態初始化:初始化時程序只指定數組的長度,由jvm為數組分配初始值

靜態初始化:初始化時指定每個數組元素的初值,由系統決定數組長度

靜態初始化:

int[] a = new int[]{1,2,3}

簡化寫法:int[] a = {1,2,3}//只有在聲明數組的時候才能使用,聲明好的數組變量不能使用

JVM虛擬機內存模型:一個Java程序在虛擬機運行的過程中,在內存中需要保存很多種類型的數據。比如說局部變量,數組等。不同類型的數據,其使用方式和生命周期,都不相同。為了更好的管理這些不同類型的數據,jvm將自己的內存空間劃分為不同的內存區域,各個區域針對不同類型的數據,其內存空間有不同的管理方式。

棧(stack):存儲局部變量

堆(heap):存儲new出來的東西

方法區:

本地方法棧(系統相關):比如說c/c++

程序計數器:指明代碼執行的位置

棧上的變量

堆上的變量

變量類型

局部變量

new出來的東西

初值

局部變量的初始值,coder自己給變量賦初值

天然有初值,jvm賦予的

整數類型(byte,int等):0

字符型char:'\u0000'碼值0對應的字符

小數型(float,double):0.0

布爾類型:false

引用類型:null

內存管理方式

管理和作用域相關

和棧內存管理方式完全不同(比如有垃圾回收期來管理堆空間上的內存)

DAY7

二維數組

存儲一維數組的數組

初始化格式:

1.數據類型[][] 變量名 = new數據類型[m][n];2.數據類型[][] 變量名 = new數據類型[m][];

沒有給出一位數組的元素個數,可以動態的給出3.數據類型[][] 變量名 = new 數據類型[][]{{元素,...},{元素,...},{元素,...}};

DAY8

參數傳遞:

如果是基本數據類型,形參的改變不影響實參

參數有兩份,同時參數對應的數據的值,也有兩份

如果是引用數據類型,形參的改變會改變實參

參數值有兩份,但是兩個數組類型引用變量,對應的值(數組),只有一個

在Java語言中,不管參數的類型,是引用類型還是基本數據類型,實際參數和形式參數進行值傳遞的方式只有一種:實際參數的值復制一份賦值給形式參數;所以實參的值其實有兩份,調用方法中一份,被調用方法中一份

關于棧空間的內存管理:

1.棧空間內存分配的基本單位:

局部變量(方法的形式參數和方法中定義的變量)存儲在棧空間中

一個方法當他被調用執行的時候,方法中的局部變量等,才需要在棧空間上存儲

即每一個運行中的方法,都需要占用棧內存中的一片存儲空間

于是,每一個運行中的方法,都會在棧上分配一片,只屬于該運行中的方法的內存空——棧幀

2.何時分配,何時回收(銷毀)內存

當一個方法被調用執行的時候,給該運行中的方法分配棧幀

當一個方法執行完畢的時候,他所對應的棧幀被回收(銷毀)

棧幀:給每一個運行中的方法來使用,每一個運行中的方法都對應著一個棧幀

當方法被調用執行時棧幀被創建,當方法調用結束棧幀被回收

同一方法多次執行,每一次執行的時候,都會在棧上分配一個棧幀

遞歸

遞歸的定義:方法定義中調用方法本身的現象

核心思想:分而治之

遞歸的注意事項:

遞歸一定要有出口

次數不能太多,不然還是會出現StackOverFlowException

警惕遞歸方法的缺陷:有重復計算的問題

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的poker java idea_JavaBasic学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。