Java 學習記錄:基礎到進階之路(一)

今天,讓我們深入到 Java 項目構建、基礎語法及核心編程概念的領域,一探究竟。

軟件安裝及環境配置請查看之前更新的博客有著詳細的介紹:

IDEA軟件安裝&環境配置&中文插件-CSDN博客

目錄

1.Java 項目構建基礎

1.項目中的 SRC 目錄

2.包結構的奧秘

2.第一個 Java 項目

3.Java 注釋

4.變量:程序中的動態元素

變量的基本概念

變量使用注意事項

5.數組:數據的有序集合

1.數組的定義與特點

2.數組的遍歷與應用

6.循環:程序的 “重復執行者”

1.for 循環的使用

2.用循環遍歷數組

7.數據篩選與處理

1.篩選數據

2.數據統計

3.數據最值

4.邏輯運算

8.未來企業工作小技巧


1.Java 項目構建基礎

1.項目中的 SRC 目錄

在 Java 項目里,SRC(Source 的縮寫)目錄可謂是重中之重,它是我們放置源代碼的地方。就如同圖書館里分類擺放書籍的書架,SRC 將我們的代碼有序地組織起來。

2.包結構的奧秘

包結構在 Java 中為代碼提供了一種命名空間和組織結構,像是給每個代碼模塊貼上獨特的標簽,方便管理和識別。

  • 第一層包結構:這一層揭示了項目的性質。
    • com代表商業類型的項目,是 “company” 的縮寫。商業項目往往注重功能實現與商業價值,像電商平臺的后端代碼可能就以com開頭。
    • org用于開源組織的項目,源自 “organization”。開源項目強調社區協作與代碼共享,比如 Apache 基金會下眾多的開源項目,為全球開發者提供了豐富的工具和框架。
    • edu對應教育類型的項目,即 “education”。教育項目常作為教學案例或學生實踐的成果,幫助大家更好地理解和掌握 Java 編程。
    • gov則是政府類型的項目,全稱為 “government”。政府項目通常對安全性、穩定性有極高要求,用于政務處理、公共服務等領域。

  • 第二層包結構:這里代表公司或團隊名稱。例如com.alibaba,一看便知是阿里巴巴公司相關的項目。在 Java 全棧開發中,無論是前端頁面與后端服務的交互,還是數據庫的操作,清晰的包結構能讓不同模塊的代碼各司其職,提高開發效率。像在一個大型電商項目中,阿里巴巴可能會將用戶管理、商品管理等不同功能模塊放在以com.alibaba開頭的不同子包中。
  • 第三層包結構:代表項目名稱。以com.alibaba.druid為例,druid就是阿里巴巴開源的一個數據庫連接池項目名稱。合理的包結構設計,有助于在團隊協作開發中,快速定位和理解代碼的功能歸屬,避免命名沖突,就如同清晰的街道地址能讓人迅速找到目的地一樣。

2.第一個 Java 項目

當我們開啟第一個 Java 項目時,就像踏上一段全新的冒險之旅。

package com.iw.day01;
public class Hellworld{//主函數,為程序員提供一個啟動入口public static void main(String[] args){System.out.println("Hello World!");}
}

這段簡單的代碼,package聲明了該類所在的包,就像是給代碼安排了一個 “住址”。而public class Hellworld定義了一個公共類,類名是Hellworldmain方法則是 Java 程序的入口,程序從這里開始執行,System.out.println("Hello World!");語句會在控制臺輸出 “Hello World!”,這是我們向 Java 編程世界發出的第一聲問候。

3.Java 注釋

注釋在代碼中扮演著至關重要的角色,它就像是代碼中的 “貼心注釋員”。

  • 注釋的作用:一方面,注釋用于解釋代碼,幫助其他開發者(甚至未來的自己)快速理解代碼的意圖和功能。另一方面,當我們暫時不想刪除某些代碼,但又希望它不參與程序運行時,可以將其注釋掉,起到廢棄代碼的作用。
  • 注釋的分類
    • 單行注釋:使用//,可以在一行代碼的末尾或者單獨一行對代碼進行簡短說明。例如//輸出:姓名,它能讓閱讀代碼的人一目了然這行代碼的目的。在 Java 全棧開發中,前端 JavaScript 代碼與后端 Java 代碼交互時,單行注釋可以清晰標注數據傳遞的邏輯。快捷鍵Ctrl + /能快速添加或取消單行注釋,極大提高開發效率。
    • 多行注釋:用/**/包裹起來,可以對一段代碼進行詳細解釋。比如/* 以下4行代碼:做簡單的自我介紹 */,適用于注釋內容較多的情況。其快捷鍵為Ctrl + Shift + /?。
    • 文檔注釋:以/**開頭,*/結尾,通常放置在方法上方或類的上方。它的作用是為未來導出代碼文檔做準備,通過工具可以將這些注釋提取出來生成詳細的 API 文檔,方便團隊成員查閱和使用。例如:
public class Introduce {/*** 文檔注釋:通常放置在 方法上方 & 類的上方* 作用:為未來導出代碼文檔做準備* @param args*/public static void main(String[] args){//輸出:姓名System.out.println("Aphelios");//輸出:年齡System.out.println(21);System.out.println("Male");System.out.println("hobbies:music,game,coding");}
}

4.變量:程序中的動態元素

變量的基本概念

變量,簡單來說,就是在一定范圍內內容可以改變的量。從本質上講,它是一塊可以改變內容的內存空間。在 Java 中,定義變量的語法為數據類型 變量的名稱 = 初始值;?,例如int age = 18;,這里int是數據類型,表示整數,age是變量名,18是初始值。=是賦值運算符,它將右邊的值賦給左邊的變量。在 Java 全棧開發的后端代碼中,變量用于存儲從數據庫查詢到的數據、計算過程中的中間結果等;在前端代碼中,變量可用于存儲用戶輸入的數據、頁面元素的狀態等。

public class test01{public static void main(String[] args){//變量語法:  數據類型 變量的名稱 = 初始值;//=賦值運算符 作用:將右邊的東西 賦值 給左邊的變量int age = 18;System.out.println(age);age = 22;System.out.println(age);}
}

變量使用注意事項

  • 初始值的重要性:變量一定要賦初始值,否則在使用時可能會引發編譯錯誤。這就好比我們出門前要確保車子有油,才能順利行駛。
  • 變量名的唯一性:變量名不能重復,在同一個作用域內,每個變量都要有獨一無二的名字,否則程序會混淆,不知道操作的是哪個變量。
  • 作用范圍的界定:變量有其作用范圍,可分為局部變量和全局變量。局部變量在方法內部定義,作用范圍僅限于該方法內;全局變量定義在類中方法外,作用范圍是整個類。例如:
public class VariableScope {//全局變量static int globalVar = 10;public static void main(String[] args) {//局部變量int localVar = 20;System.out.println(globalVar);System.out.println(localVar);}
}

5.數組:數據的有序集合

1.數組的定義與特點

數組是一種存儲大量相同類型數據的數據結構。它具有以下特點:

  • 數據類型相同:數組中每個元素的數據類型必須一致,比如int[]類型的數組只能存儲整數。
  • 存儲空間連續:數組在內存中的存儲空間是連續的,這使得數據的訪問和處理效率較高。
  • 數組長度固定:一旦數組被創建,其長度就固定下來,不能隨意改變。
    數組的定義方式有兩種:

//方式一:指定數組長度
數據類型[] 變量名稱 = new 數據類型[數組的長度]; 
//方式二:直接初始化數據
數據類型[] 變量名稱 = {初始數據}; 

例如:

public class Test01 { public static void main(String[] args) { int[] arrs = new int[6]; //數組操作方式:采用下標 arrs[0] = 11; arrs[1] = 23; arrs[2] = 22; arrs[5] = 45; /*打印整個數組,需導入java.util.Arrays包*/System.out.println(Arrays.toString(arrs)); /*打印特定位置的值:*/ System.out.println(arrs[0]); System.out.println(arrs[1]); } 
}
public class Test02 { public static void main(String[] args) { int[] arrs = {11,23,12,22,14};//更推薦 System.out.println(Arrays.toString(arrs)); arrs[2] = 50; System.out.println(Arrays.toString(arrs)); } 
} 

2.數組的遍歷與應用

當數組元素個數較多時,我們需要通過循環遍歷的方式來訪問每一個元素。在 Java 全棧開發中,后端從數據庫獲取的數據集可能以數組形式存儲,通過遍歷數組可以對數據進行處理,然后傳遞給前端展示。

public static void main(String[] args) { int[] arrs = {11,22,23,12,32,44,55}; //獲得數組長度 int length = arrs.length; //遍歷整個數組 for (int i = 0; i < length; i ++){ System.out.println(arrs[i]); } 
}

6.循環:程序的 “重復執行者”

循環的作用是讓程序周而復始地做相同的事情。在 Java 編程中,循環是控制程序流程的重要手段,在 Java 全棧開發中廣泛應用于數據處理、頁面渲染等環節。

1.for 循環的使用

for循環的語法為for(初始變量; 循環判斷條件; 控制變量的改變){ //循環體 }。例如,使用for循環打印輸出 0 - 100 的數:

for(int i = 0; i <= 100; i++){System.out.println(i);
}

2.用循環遍歷數組

通過for循環可以方便地遍歷數組,例如:

public static void main(String[] args) { int[] arrs = {11,22,23,12,32,44,55}; int length = arrs.length; for (int i = 0; i < length; i ++){ System.out.println(arrs[i]); } 
}

練習題:對于int[] arrs = {44,54,43,23,11};,使用循環遍歷該數組。

7.數據篩選與處理

1.篩選數據

后端程序員的重要工作之一就是搗騰數據,if語句在數據篩選中起著關鍵作用。例如,從數組中篩選出偶數:

public class Test04 { public static void main(String[] args) { int[] arrs = {44,54,43,23,11,34,33}; int length = arrs.length; for (int i = 0; i < length; i ++){ //偶數:余2 == 0 if(arrs[i] % 2 == 0){ System.out.println("偶數:" + arrs[i]); } } } 
} 

練習題:

  1. 找出數組中的奇數。
  2. 找出數組中大于 30 的數。

2.數據統計

在實際開發中,我們常常需要對數據進行統計。比如統計數組中有多少個負數:

public static void main(String[] args) { int[] arrs = {44,54,-43,-23,11,-34,33}; int count = 0;//計數器 for(int i = 0; i < arrs.length; i++){ //判斷:是否是負數 if(arrs[i]<0) { count++; } }//遍歷結束:給出結果 System.out.println(count); 
}

3.數據最值

尋找數組中的最大值和最小值也是常見的需求。例如,尋找數組中的最小值:

public static void main(String[] args) { int[] arrs = {44,54,-43,-23,11,-34,33}; int min = arrs[0]; /*開始遍歷,判斷*/ for (int i = 0 ; i < arrs.length; i ++){ if(min > arrs[i]){ min = arrs[i]; } }//遍歷結束 System.out.println("最小數:" + min); 
}

4.邏輯運算

邏輯運算符&&(邏輯與)、||(邏輯或)、!(邏輯非)在 Java 編程中用于組合條件判斷。

  • 邏輯與(&&):條件必須全部滿足,且自帶短路效果。例如,找男朋友的條件:首先是個男的,身高 1.8m ,學歷本科以上,有車有房,這幾個條件必須同時滿足才為true
  • 邏輯或(||):條件任意滿足,也自帶短路效果。
    例如,從數組{11,30,23,22,50,33,45,48}中找出既能被 2 整除,又能被 5 整除的數:
public static void main(String[] args) { int[] arrs = {11,30,23,22,50,33,45,48}; //找出既能被2整除,又能被5整除的數 for (int i = 0; i < arrs.length; i ++){ if(arrs[i] % 2 == 0 && arrs[i] % 5 == 0 ){ System.out.println(arrs[i]); } } 
}

練習題:

  1. 從數組{11,30,23,22,50,33,45,48}中找出既能被 2 整除,或能被 5 整除的數。
  2. 從數組{11,30,23,22,50,33,45,48}中找出既不能被 2 整除,又不能被 5 整除的數 。

8.未來企業工作小技巧

  • 代碼規范遵循:在企業中,遵循統一的代碼規范至關重要。阿里巴巴的 Java 開發手冊是很好的參考,它涵蓋了命名規范、代碼結構、異常處理等多方面內容,能讓團隊協作開發更加順暢,減少溝通成本。例如,類名使用大駝峰命名法,方法名使用小駝峰命名法等。
  • 版本控制工具使用:學會使用 Git 進行版本控制。在 Java 全棧項目開發中,無論是前端代碼還是后端代碼,通過 Git 可以方便地管理代碼版本,實現多人協作開發。例如,創建不同的分支進行功能開發,定期將代碼合并到主分支等操作。
  • 日志記錄與調試:在開發過程中,合理使用日志記錄工具(如 Log4j)。在遇到問題時,詳細的日志信息能幫助快速定位和解決問題。比如在后端服務器出現錯誤時,通過查看日志可以了解錯誤發生的時間、位置以及相關變量的值,提高調試效率。

隨著對這些基礎概念的深入理解和不斷實踐,我們在 Java 編程的道路上又邁出了堅實的一步。持續學習,不斷探索,相信在未來的 Java 全棧開發工作中,這些知識將成為我們攻克難題、創造價值的有力武器。

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

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

相關文章

Yashan DB 對象管理

一、什么是數據庫對象 數據庫對象是數據庫里面用來存儲和指向數據的各種概念和結構的總稱。數據庫支持的對象包括&#xff1a; ? 表&#xff1a;表是一個邏輯概念&#xff0c;是數據庫組織管理數據的基本單位。 ? 索引&#xff1a;索引是建立在表上的邏輯對象&#xff0c;索…

deepseek 3FS編譯

3FS在ubuntu22.04下的編譯&#xff08;記錄下編譯過程&#xff0c;方便后續使用&#xff09; 環境信息 OS ubuntu 22.04內核版本 6.8.0-52-genericlibfuse 3.16.1rust 1.75.0FoundationDB 7.1.66meson 1.0.0ninja 1.10.1 libfuse編譯 以下建議均在root下執行 pip3 install…

python-uiautomator2 安裝教程

目錄 一、簡介 二、支持平臺及語言 三、工作原理 四、安裝 一、簡介 uiautomator2是一個python庫&#xff0c;用于Android的UI自動化測試&#xff0c;其底層基于Google uiautomator&#xff0c;Google提供的uiautomator庫可以獲取屏幕上任意一個APP的任意一個控件屬性&…

無頭瀏覽器與請求簽名技術-Cloudflare防護

在實際數據采集實踐中&#xff0c;許多目標網站&#xff08;例如 Amazon&#xff09;都會采用 Cloudflare 等防護措施&#xff0c;防止機器人和非正常流量。本文將分享一個故障場景下的排查與改進方案&#xff0c;講述如何利用無頭瀏覽器、請求簽名技術以及爬蟲代理 IP來實現數…

Spring Cloud之注冊中心之Nacos健康監測和環境隔離

目錄 Nacos健康檢查 兩種健康檢查機制 Nacos服務類型實例 Nacos環境隔離 創建namespace 配置namespace Nacos健康檢查 兩種健康檢查機制 Nacos作為注冊中?, 需要感知服務的健康狀態, 才能為服務調??提供良好的服務. Nacos 中提供了兩種健康檢查機制&#xff1a; 客?…

Vue3實戰學習(Element-Plus常用組件的使用(輸入框、下拉框、單選框多選框、el-image圖片))(上)(5)

目錄 一、Vue3工程環境配置、項目基礎腳手架搭建、Vue3基礎語法、Vue3集成Element-Plus的詳細教程。(博客鏈接如下) 二、Element-Plus常用組件使用。 &#xff08;1&#xff09;el-input。(input輸入框) <1>正常狀態的el-input。 <2>el-input的disable狀態。 <3…

微服務——網關、網關登錄校驗、OpenFeign傳遞共享信息、Nacos共享配置以及熱更新、動態路由

之前學習了Nacos&#xff0c;用于發現并注冊、管理項目里所有的微服務&#xff0c;而OpenFeign簡化微服務之間的通信&#xff0c;而為了使得前端可以使用微服務項目里的每一個微服務的接口&#xff0c;就應該將所有微服務的接口管理起來方便前端調用&#xff0c;所以有了網關。…

2025年3月11日(有限元牛頓迭代法:通俗講解與示例)

牛頓迭代法的正確流程解釋 是的&#xff0c;你的理解基本正確&#xff01;但需要更準確地描述內外力的關系和迭代邏輯。以下是更清晰的步驟說明&#xff1a; 核心流程&#xff08;修正版&#xff09; 假設已知 外力 ( F_{\text{ext}} )&#xff08;如2000 N&#xff09;&…

爬蟲的精準識別:基于 User-Agent 的正則實現

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

【AI大模型】LLM訓練deepseek如何識別視頻

要讓像DeepSeek這樣的大語言模型&#xff08;LLM&#xff09;具備視頻識別能力&#xff0c;需要結合多模態學習技術&#xff0c;將視覺信息與文本語義進行融合。以下是實現這一目標的關鍵步驟和技術要點&#xff1a; --- 一、視頻識別的核心挑戰 1. 多模態數據&#xff1a;視頻…

【物聯網-以太網-W5500】

物聯網-以太網-W5500 ■ W5500-簡介■■■■ ■ W5500-簡介 ■ ■ ■ ■

centos linux安裝mysql8 重置密碼 遠程連接

1. 下載并安裝 MySQL Yum 倉庫 從 MySQL 官方網站下載并安裝 Yum 倉庫配置文件。 # 下載MySQL 8.0的Yum倉庫包 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 安裝Yum倉庫包 sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm2. 啟…

C++【類和對象】(超詳細!!!)

C【類和對象】 1.運算符重載2.賦值運算符重載3.日期類的實現 1.運算符重載 (1).C規定類類型運算符使用時&#xff0c;必須轉換成調用運算符重載。 (2).運算符重載是具有特殊名字的函數&#xff0c;名字等于operator加需要使用的運算符&#xff0c;具有返回類型和參數列表及函數…

【面試】Java 多線程

多線程 1、什么是線程和進程2、創建線程有幾種方式3、線程有幾種狀態4、什么是上下文切換5、什么是守護線程&#xff0c;和普通線程有什么區別6、什么是線程池&#xff0c;如何實現的7、Executor和Executors的區別8、線程池處理任務的流程9、線程數設定成多少更合適10、執行exe…

宿主機運行pyspark任務讀取docker hadoop容器上的數據

熬了四個大夜才搞明白&#xff0c;最晚一天熬到早上十點/(ㄒoㄒ)/~~&#xff0c;最后發現只要加個參數就解決了。。。抱頭痛哭 問題描述&#xff1a; Hadoop集群部署在docker容器中&#xff0c;宿主機執行pyspark程序讀取hive表 問題一&#xff1a;當master(local[*])時&…

《平凡的世界》:在泥土中尋找星辰的勇氣

“平凡不是平庸的代名詞&#xff0c;而是千萬人用脊梁扛起時代的勛章。”——路遙的《平凡的世界》用百萬字書寫了黃土地上孫少安、孫少平兩兄弟的掙扎與覺醒&#xff0c;撕開了“奮斗逆襲”的浪漫濾鏡&#xff0c;告訴你&#xff1a;真正的英雄主義&#xff0c;是在認清了生活…

【SpringMVC】深入解析使用 Postman 和瀏覽器模擬將單個與多個參數傳遞到后端和后端接收過程

SpringMVC—請求(Request) 訪問不同的路徑&#xff0c;就是發送不同的請求&#xff1b;在發送請求時&#xff0c;可能會帶一些參數&#xff0c;所以學習Spring的請求&#xff0c;主要是學習如何傳遞參數到后端以及后端如何接收&#xff1b; 我們主要是使用 瀏覽器 和 Postman …

04 | 初始化 fastgo 項目倉庫

提示&#xff1a; 所有體系課見專欄&#xff1a;Go 項目開發極速入門實戰課&#xff1b;歡迎加入我的訓練營&#xff1a;云原生AI實戰營&#xff0c;一個助力 Go 開發者在 AI 時代建立技術競爭力的實戰營&#xff1b;本節課最終源碼位于 fastgo 項目的 feature/s01 分支&#x…

Docker 安裝成功后,安裝 Dify 中文版本的步驟

Docker 安裝成功后&#xff0c;安裝 Dify 中文版本的步驟如下1&#xff1a; 克隆 Dify 代碼倉庫&#xff1a;在終端中執行以下命令&#xff0c;將 Dify 源代碼克隆至本地環境。 bash git clone https://github.com/langgenius/dify.git進入 Dify 的 docker 目錄&#xff1a; b…

RPC服務調用深度解析:從原理到Java實踐

一、RPC的核心原理與架構設計 1.1 RPC的本質 RPC&#xff08;Remote Procedure Call&#xff09;是一種分布式系統間通信協議&#xff0c;允許程序像調用本地方法一樣調用遠程服務。其核心目標是通過位置透明性和協議標準化隱藏網絡通信細節。RPC的調用流程可抽象為以下步驟&…