花幾千上萬學習Java,真沒必要!(二)

1、注釋:

java代碼注釋分3種:
單行注釋://注釋信息
多行注釋: /*注釋信息*/
文檔注釋:/**注釋信息*/

public class TestComments {// 這是單行注釋,用于注釋單行代碼或解釋代碼功能/* 這是多行注釋,用于注釋多行代碼或詳細說明代碼功能這里可以包含多行文字*//*** 這是文檔注釋,用于生成文檔,包括類、方法、參數和返回值的描述*/public static void main(String[] args) {// 單行注釋示例int x = 5; // 定義并初始化變量x為5/* 多行注釋示例定義并初始化變量y為10*/int y = 10;// 輸出變量x和y的值System.out.println("x = " + x);System.out.println("y = " + y);}
}

2、關鍵字:

Java關鍵字是預先定義的有特別意義的單詞,它們對Java的編譯器有特殊的意義,用于表示數據類型、程序結構等。Java一共有53個關鍵字,包括48個關鍵字和2個保留字(未來可能用作關鍵字),以及3個特殊直接量。
以下是Java中的關鍵字及其簡要說明:

關鍵字? ? ? ?說明
abstract?? ?表明類或者成員方法具有抽象屬性
assert?? ?斷言,用來進行程序調試
boolean?? ?基本數據類型之一,聲明布爾類型的關鍵字
break?? ?提前跳出一個塊
byte?? ?基本數據類型之一,字節類型
case?? ?用在switch語句之中,表示其中的一個分支
catch?? ?用在異常處理中,用來捕捉異常
char?? ?基本數據類型之一,字符類型
class?? ?聲明一個類
continue?? ?回到一個塊的開始處
default?? ?默認,例如用在switch語句中,表明一個默認的分支
do?? ?用在do-while循環結構中
double?? ?基本數據類型之一,雙精度浮點數類型
else?? ?用在條件語句中,表明當條件不成立時的分支
enum?? ?枚舉
extends?? ?表明一個類型是另一個類型的子類型
final?? ?表示不可變,最終的
finally?? ?用于處理異常情況,用來聲明一個基本肯定會被執行到的語句塊
float?? ?基本數據類型之一,單精度浮點數類型
for?? ?一種循環結構的引導詞
if?? ?條件語句的引導詞
implements?? ?表明一個類實現了給定的接口
import?? ?表明要訪問指定的類或包
int?? ?基本數據類型之一,整數類型
interface?? ?接口
instanceof?? ?用來測試一個對象是否是指定類型的實例對象
long?? ?基本數據類型之一,長整數類型
native?? ?用來聲明一個方法是由與計算機相關的語言(如C/C++語言)實現的
new?? ?用來創建新實例對象
package?? ?包
private?? ?私用模式,訪問控制修飾符
protected?? ?保護模式,訪問控制修飾符
public?? ?公用模式,訪問控制修飾符
return?? ?從成員方法中返回數據
short?? ?基本數據類型之一,短整數類型
static?? ?表明具有靜態屬性
strictfp?? ?用來聲明FP_strict(單精度或雙精度浮點數)表達式遵循IEEE 754算術規范
super?? ?表明當前對象的父類型的引用或者父類型的構造方法
switch?? ?分支語句結構的引導詞
synchronized?? ?表明一段代碼需要同步執行
this?? ?指向當前實例對象的引用
throw?? ?拋出一個異常對象
throws?? ?聲明在當前定義的成員方法中所有需要拋出的異常
transient?? ?聲明不用序列化的成員域
try?? ?嘗試一個可能拋出異常的程序塊
void?? ?聲明當前成員方法沒有返回值
volatile?? ?表明兩個或者多個變量必須同步地發生變化
while?? ?用在循環結構中2個保留字
Java中有兩個保留字,它們目前不是關鍵字,但未來可能用作關鍵字:const:保留關鍵字,沒有具體含義,是一個類型修飾符,使用const聲明的對象不能更新。
goto:保留關鍵字,沒有具體含義,指定跳轉到標簽。
3個特殊直接量
雖然它們不是關鍵字,但在Java中有特殊含義:true:布爾類型的真值
false:布爾類型的假值
null:空值

3、數據類型:

Java數據類型主要分為兩大類:基本數據類型和引用數據類型。

一、基本數據類型
基本數據類型是Java中不可變的值類型,它們直接包含數據值,并且存儲在棧內存中。Java共有八種基本數據類型,具體可以分為以下三類:

數值類型:
byte:字節型,占用1個字節(8位),取值范圍為-128到127。
short:短整型,占用2個字節(16位),取值范圍為-32768到32767。
int:整型,占用4個字節(32位),取值范圍為-2147483648到2147483647。這是最常用的整數類型。
long:長整型,占用8個字節(64位),取值范圍為-9223372036854775808到9223372036854775807。當數值很大或很小,超出一個int的范圍時,可以使用long。
float:單精度浮點型,占用4個字節(32位),用于存儲帶小數點的數字。
double:雙精度浮點型,占用8個字節(64位),用于存儲帶有小數點的數字。這是最常用的浮點數類型。
字符類型:
char:字符型,占用2個字節(16位),用于存儲單個字符。在Java中,char類型的字面量必須使用半角的單引號括起來。
布爾類型:
boolean:布爾型,占用1個字節,只有兩個值:true和false。用于判斷真或假。
二、引用數據類型
引用數據類型不是直接包含數據值,而是存儲了對象的引用(即對象的內存地址)。Java中的引用類型主要有三種:

類(Class):類是一種用戶定義的數據類型,它可以包含屬性(變量)和方法。類可以用來創建對象的實例,并存儲有關該對象的信息。
接口(Interface):接口是一種特殊的類,它定義了一組方法但沒有實現這些方法。接口可以用來定義一組相關的方法和常量,并可以在其他類中實現這些方法。
數組(Array):數組是一種特殊的數據結構,可以存儲多個相同類型的元素。數組可以是基本數據類型或引用數據類型的數組。
三、其他數據類型
Java中還有一些特殊的數據類型,如字符串(String)。字符串是由字符組成的序列,用于存儲和操作文本數據。字符串在Java中是不可變的,即一旦創建了一個字符串對象,就不能修改它的內容。

4、數據類型轉換:

自動數據類型轉換:

package test.com;
public class AutoTypeConversionDemo {  public static void main(String[] args) {  //當一個byte、short或char類型的值賦給一個更大范圍的整型(如int、long)變量時,會發生自動類型轉換.// 聲明一個byte類型的變量  byte b = 100;  // 自動數據類型轉換:byte到short,short到int,int到long,long到float,float到double  // 注意:byte -> int的轉換是自動的,盡管這里直接將其賦值給了一個short類型的變量  // 但實際上,byte首先被提升為int,然后再被賦值給short(因為short類型的變量可以接受int類型的值,只要這個值在short的范圍內)  // 這里直接演示byte到int的自動轉換,并通過顯式轉換到short以避免編譯器警告  short s = (short) b; // 顯式轉換,直接賦值給short通常不需要(但會有警告)  // byte到int的自動轉換  int i = b;  // int到long的自動轉換  long l = i;  // long到float的自動轉換(注意:這可能會導致精度丟失)  float f = l;  // float到double的自動轉換  double d = f;  // 打印結果,以驗證轉換  System.out.println("byte to int: " + i);  System.out.println("int to long: " + l);  System.out.println("long to float: " + f);  System.out.println("float to double: " + d);  // 演示char到int的自動轉換(因為char在內部是以Unicode值存儲的,即一個整數)  char c = 'A';  int charAsInt = c;  System.out.println("char to int (Unicode value): " + charAsInt); // 輸出65,因為'A'的Unicode值是65  }  
}

?強制數據類型轉換:

package test.com;
public class ExplicitTypeConversionDemo {  //強制數據類型轉換(也稱為顯式類型轉換)是當嘗試將一個大范圍數據類型的值賦給一個小范圍數據類型的變量時,需要明確告訴編譯器我們想要進行這種轉換的方式。//這種轉換可能會導致數據丟失或溢出,因為小范圍的數據類型可能無法容納大范圍數據類型中的所有值。public static void main(String[] args) {  // 聲明一個double類型的變量  double doubleValue = 123.456;  // 嘗試將double類型的值賦給int類型的變量,這會導致編譯錯誤  // int intValue = doubleValue; // 編譯錯誤  // 使用強制類型轉換將double類型的值賦給int類型的變量  // 注意:這會丟失小數部分,只保留整數部分  int intValue = (int) doubleValue;  // 打印結果,以驗證轉換  System.out.println("After casting double to int: " + intValue); // 輸出:After casting double to int: 123  // 另一個示例:將float類型的值強制轉換為byte類型  // 注意:這可能會導致溢出,因為byte的范圍是-128到127  float floatValue = 255.0f; // float類型,f或F后綴表示這是一個float字面量  byte byteValue = (byte) floatValue; // 強制轉換  // 打印結果,注意可能的溢出  System.out.println("After casting float to byte: " + byteValue); // 輸出可能是-1,因為255超出了byte的范圍  }  
}

5、常量:

a、字符串常量?

字符串常量直接在代碼中使用
String greeting = "Hello, World";通過變量存儲字符串常量的值
String message1 = "Welcome";
String message2 = "to Java";
String fullMessage = message1 + " " + message2; // fullMessage 的值為 "Welcome to Java"

?b、整數常量

整數常量默認為int類型,如果希望表示長整型常量,需要在數字后加上L或l來表示。例如:int number1 = 100; // 十進制整數常量
int number2 = 012; // 八進制整數常量,表示十進制10
int number3 = 0xFF; // 十六進制整數常量,表示十進制255long bigNumber = 123456789012345L; // 長整型常量整數常量在編程中經常用于表示具體的數值,例如計數器、索引等,可以直接在代碼中使用整數常量來表示固定的整數值。

c、小數常量

小數常量默認為double類型,如果希望表示單精度浮點型常量,需要在數字后加上f或F來表示。例如:double pi = 3.14159; // 雙精度浮點型常量
float height = 1.72f; // 單精度浮點型常量小數常量在編程中經常用于表示需要精確的小數值,如計算圓周率、表示身高等,可以直接在代碼中使用小數常量來表示固定的小數值。

d、字符常量?

字符常量是在程序中直接表示一個字符的固定值。在 Java 中,字符常量使用單引號 ' ' 包圍。例如,'A'、'b'、'7' 等都是字符常量。字符常量可以是一個普通的可打印字符(如字母、數字、標點符號)或者是一些特殊的控制字符(如換行符、制表符等)。特殊的字符在字符常量中使用轉義字符來表示,如 '\n' 表示換行符,'\t' 表示制表符。字符常量是基于 Unicode 編碼的,每個字符常量實際上代表一個 Unicode 字符。下面是一些字符常量的示例:char letter = 'A'; // 表示字母'A'
char number = '5'; // 表示數字'5'
char space = ' '; // 表示空格字符
char newline = '\n'; // 表示換行符
char tab = '\t'; // 表示制表符字符常量在編程中經常用于表示單個字符,比如在處理字符串、輸入輸出操作等場景下。在Java中,可以直接在代碼中使用字符常量來表示一個特定的字符。

?e、布爾常量

布爾常量的類型是 boolean,只有兩個取值:true(真)和false(假),布爾常量用來表示邏輯狀態或條件的真假。布爾常量主要用于控制流程、判斷條件以及邏輯運算。布爾常量的示例:boolean isTrue = true;
boolean isFalse = false;布爾常量在編程中經常用于條件判斷語句(如 if 語句、while 循環等)以及邏輯運算(如與、或、非等),幫助程序根據不同的條件來執行不同的代碼段。

f、 null

空常量指的是一個特殊的常量值,表示沒有指向任何對象的引用,空常量對應的是 null 值。
null 也是一個關鍵字,用于表示一個變量沒有引用任何對象。當一個對象被賦予 null 值時,表示這個對象不指向任何內存位置,即為空。null通常用于初始化變量,表示該變量目前沒有指向任何實際的對象。在對應使用這個變量時,需要注意判斷是否為空,以避免空指針異常。
例如:
String str = null;
str 變量被初始化為 null,表示沒有指向任何字符串對象。當嘗試訪問 str 變量所引用的對象時,需要先進行空指針檢查,以確保不會出現空指針異常。

6、變量

變量的聲明:

package test.com;
public class VariableDemo {  public static void main(String[] args) {  // 聲明整型變量  int number = 10;  // 聲明浮點型變量  double pi = 3.14;  // 聲明字符型變量  char letter = 'A';  // 聲明布爾型變量  boolean isTrue = true;  // 聲明并初始化字符串變量  //字符串不是基本數據類型,而是String類的對象。String greeting = "Hello, World!";  // 打印變量值  System.out.println("Number: " + number);  System.out.println("PI: " + pi);  System.out.println("Letter: " + letter);  System.out.println("Is True: " + isTrue);  // 打印字符串  System.out.println(greeting); }  
}

?變量的作用域:

package test.com;
//變量的作用域是指變量在程序中可以被訪問的區域。
//在Java中,變量的作用域取決于聲明它的位置。
//局部變量:在方法、構造函數或代碼塊中聲明的變量。它們的作用域是從聲明點開始到包含它的代碼塊結束。
//實例變量(也稱為字段):在類的方法外部但在類內部聲明的變量。它們的作用域是整個類,但只能被該類的實例訪問。
//類變量(也稱為靜態變量):使用static關鍵字聲明的變量。它們的作用域是整個類,但可以通過類名直接訪問,而不需要創建類的實例。
public class ScopeDemo {  // 類變量  static int classVar = 100;  public static void main(String[] args) {  // 方法變量  int methodVar = 200;  // 局部變量  {  int blockVar = 300;  System.out.println("Block Variable: " + blockVar); // blockVar 只能在當前塊中訪問  }  // 類變量和方法變量都可以在這里訪問  System.out.println("Class Variable: " + classVar);  System.out.println("Method Variable: " + methodVar);  // blockVar 在這里不能訪問,因為它只在定義它的塊中可見  }  
}

?7、標識符

標識符是用來給變量、方法、類、接口等命名的字符串。
標識符的命名規則遵循以下基本原則:

首字符:標識符的首字符可以是字母(A-Z 或 a-z)、美元符號($)或下劃線(_)。注意,首字符不能是數字(0-9)。
后續字符:除了首字符外的后續字符可以是字母、數字、美元符號($)或下劃線(_)。
關鍵字:Java中的關鍵字(如class、int、return等)不能用作標識符。
大小寫敏感:Java是大小寫敏感的語言,因此MyClass和myclass會被視為兩個不同的標識符。
長度:理論上,標識符的長度沒有限制,但出于可讀性和實用性的考慮,應避免使用過長的標識符。
命名約定:雖然Java沒有強制的命名約定,但遵循一定的命名習慣(如駝峰命名法)可以使代碼更易于閱讀和維護。例如,變量名和方法名通常以小寫字母開頭,隨后的單詞首字母大寫(小駝峰命名法),而類名則以大寫字母開頭,隨后的單詞首字母也大寫(大駝峰命名法)。
Unicode字符:從Java 1.0.2版本開始,Java標識符可以使用Unicode字符集中的字符,但不建議使用非ASCII字符,因為它們可能會降低代碼的可讀性。
特殊字符:雖然$和_可以在標識符中使用,但它們通常被保留給特定的命名習慣或庫/框架中的特定用途(例如,內部類或變量命名)。
以下是一些有效的Java標識符示例:

age
userName
_myVariable
$salary
EmployeeID
而以下是一些無效的Java標識符示例:

1stClass(以數字開頭)
class(關鍵字)
my-variable(包含非法字符-)
Hello World(包含空格)
選擇清晰、描述性強且遵循Java命名約定的標識符,可以使代碼更加易于理解和維護。

常用的命名規則:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44385.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44385.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44385.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kotlin runCatching try-catch耗時比較

Kotlin runCatching try-catch耗時比較 fun main(args: Array<String>) {val lists arrayListOf("z")val idx 10/***納秒統計** ns&#xff08;nanosecond&#xff09;&#xff1a;納秒。一秒的10億分之一&#xff0c;10的-9次方秒。*   1納秒0.000001 毫秒…

基于實現Runnable接口的java多線程

Java多線程通常可以通過繼承Thread類或者實現Runnable接口實現。本文主要介紹實現Runnable接口的java多線程的方法, 并通過ThreadPoolTaskExecutor調用執行&#xff0c;以及應用場景。 一、應用場景 異步、并行、子任務、磁盤讀寫、數據庫查詢、網絡請求等耗時操作等。 以下…

筆記:在Entity Framework Core中如何處理多線程操作DbContext

一、目的&#xff1a; 在使用Entity Framework Core (EF Core) 進行多線程操作時&#xff0c;需要特別注意&#xff0c;因為DbContext類并不是線程安全的。這意味著&#xff0c;你不能從多個線程同時使用同一個DbContext實例進行操作。嘗試這樣做可能會導致數據損壞、異常或不可…

C語言排序之快速排序

快速排序是一種高效的排序算法。它采用了分治的策略&#xff0c;通過選擇一個基準元素&#xff0c;將待排序的序列劃分為兩部分&#xff0c;一部分的元素都比基準元素小&#xff0c;另一部分的元素都比基準元素大&#xff0c;然后對這兩部分分別進行快速排序&#xff0c;從而實…

前端開發工具

Lodash 有普通的 CommonJS 版本&#xff08;通常稱為 lodash&#xff09;和 ES6 模塊版本&#xff08;稱為 lodash-es&#xff09;。它們的主要區別包括&#xff1a; 模塊化&#xff1a;lodash 是傳統的 CommonJS 模塊&#xff0c;可使用 require 或 import 引入&#xff1b;lo…

2024年,搞AI就別卷模型了

你好&#xff0c;我是三橋君 2022年11月30日&#xff0c;OpenAI發布了一款全新的對話式通用人工智能工具——ChatGPT。 該工具發布后&#xff0c;僅用5天時間就吸引了100萬活躍用戶&#xff0c;而在短短2個月內&#xff0c;其活躍用戶數更是飆升至1億&#xff0c;成為歷史上增…

ARP協議介紹與ARP協議的攻擊手法

ARP是什么&#xff1f; ARP是通過網絡地址&#xff08;IP&#xff09;來定位機器MAC地址的協議&#xff0c;它通過解析網絡層地址&#xff08;IP&#xff09;來找尋數據鏈路層地址&#xff08;MAC&#xff09;的網絡傳輸協議。 對個定義不能理解的話&#xff0c;可以結合 TCP/I…

《戀與深空》2.0上線肉鴿模式,乙游玩家會買賬嗎?

乙游和肉鴿&#xff0c;看似八竿子打不著的兩個賽道&#xff0c;被疊紙給融合起來了。 根據《戀與深空》官方消息&#xff0c;即將在7月15日更新的2.0交錯視界版本中&#xff0c;會上線全新常駐玩法“混沌深網”&#xff0c;配置高隨機性Roguelike模式&#xff0c;并搭載了管理…

理想文檔發布了~一個集合了多個優秀開源項目的在線云文檔

兩年前我做了一個簡單的在線云文檔項目&#xff0c;選擇了開源的思維導圖、白板、流程圖、幻燈片等項目&#xff0c;在它們基礎上添加了云存儲的功能&#xff0c;然后寫了一個簡單的工作臺管理文件夾和文件&#xff1a; 放在了自己的個人網站上使用&#xff0c;同時寫了一篇水文…

【Leetcode 每日一題】349. 兩個數組的交集

給定兩個數組 nums1 和 nums2 &#xff0c;返回 它們的 交集 。輸出結果中的每個元素一定是 唯一 的。我們可以 不考慮輸出結果的順序 。 示例 1&#xff1a; 輸入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 輸出&#xff1a;[2]示例 2&#xff1a; 輸入&#xff1a;nums…

[web]-代碼審計-運維失誤

打開頁面可以看到如下&#xff1a; 1、查看源代碼&#xff0c;發現驗證碼功能是正常生成的隨機的&#xff0c;輸入也沒有過濾&#xff0c;無法采用爆破。 2、根據題目提示運維失誤&#xff0c;使用dirsearch掃描&#xff0c;發現提交的地址check.php, 使用php5、.bak可以打開&…

2.The DispatcherServlet

The DispatcherServlet Spring的Web MVC框架與許多其他Web MVC框架一樣&#xff0c;是請求驅動的&#xff0c;圍繞一個中央Servlet&#xff08;即DispatcherServlet&#xff09;設計&#xff0c;該Servlet將請求分派給控制器&#xff0c;并提供其他功能以促進Web應用程序的開發…

創建I/O文件fopen

#include〈stdio.h〉 int mian(int argc,char *argv[]){ FILE *fp;//結構體fp fpfopen&#xff08;“1.txt”&#xff0c;“r”&#xff09;; }

程序的控制結構——if-else語句(雙分支結構)【互三互三】

目錄 &#x1f341; 引言 &#x1f341;if-else語句&#xff08;雙分支結構&#xff09; &#x1f449;格式1&#xff1a; &#x1f449;功能&#xff1a; &#x1f449;程序設計風格提示&#xff1a; &#x1f449;例題 &#x1f449;格式2&#xff1a; &#x1f449;…

Monaco 使用 ColorProvider

Manco 中可以使用調色板對色值進行修改&#xff0c;首先看一下調色版效果。 調色板是 Monaco-Editor 中一個特別的組件&#xff0c;通過兩個方法實現呼出調色板&#xff0c;provideColorPresentations 顯示調色窗口&#xff0c;provideDocumentColors 監聽頁面的變更&#xff0…

如何將libwebsockets庫編譯為x86架構

在之前的文章中&#xff0c;我們已經詳細介紹了如何交叉編譯libwebsockets并將其部署到ELF 1開發板上。然而在調試階段&#xff0c;發現將libwebsockets在Ubuntu環境下編譯為x86架構可能更為方便和高效。 通過在主機環境中編譯運用x86架構下的libwebsockets庫&#xff0c;可以…

阿里ChatSDK使用,開箱即用聊天框

介紹&#xff1a; 效果&#xff1a;智能助理 ChatSDK&#xff0c;是在ChatUI的基礎上&#xff0c;結合阿里云智能客服的最佳實踐&#xff0c;沉淀和總結出來的一個開箱即用的&#xff0c;可快速搭建智能對話機器人的框架。它簡單易上手&#xff0c;通過簡單的配置就能搭建出對…

Flowable工作流引擎核心事件詳細解釋說明

Flowable工作流引擎核心事件詳細解釋說明 流程執行事件 需要了解全部詳細事件的請看這個鏈接Flowable&#xff08;一個開源的工作流和業務流程管理引擎&#xff09;中與事件相關的一些核心概念 流程開始和結束事件 PROCESS_STARTED&#xff1a;標記流程實例的開始。PROCESS…

公益快報 | 中科億海微以企業獎學金為紐帶,深化校企合作

近日&#xff0c;為回報母校、激勵湖南大學機器人視覺感知與控制技術國家工程研究中心廣大學生&#xff0c;中科億海微電子科技&#xff08;蘇州&#xff09;有限公司&#xff08;簡稱“中科億海微”&#xff09;捐贈設立企業獎學金。此項獎學金的設立標志著校企合作邁向全方位…

【C++】C++中struct結構體和class類的區別

在C中&#xff0c; struct 和 class 在很多方面都非常相似&#xff0c;它們都可以包含數據成員&#xff08;變量&#xff09;和成員函數&#xff08;方法&#xff09;。然而&#xff0c;它們之間還是存在一些關鍵的區別&#xff1a; 1. 默認訪問權限 struct 的成員默認是 pub…