Java學習地址
視頻地址
真的很推薦大家去聽老韓的課(非常細誰聽誰知道):【零基礎 快速學Java】韓順平 零基礎30天學會Java_嗶哩嗶哩_bilibili
使用心得
說一下我使用的心得:
1. 學過C和C++,作為軟體工程的學生大一下學期的 Java 屬實是混過去的(60飄過),當我真正想開始好好學專業課時才發現,面向物件的思想和語言真的很重要,而且幾乎貫穿了你整個大學生涯,而Java 又作為典型的面向物件語言,毫不夸張的講,不會 Java你會寸步難行,十分難受,
2. 由于算是有一點基礎,但是聽老韓的課也沒有想象中的啰嗦,大可以二倍速聽前面的基礎內容,如果你一點基礎沒有,一定要正常速度跟著老韓敲代碼,如果你認為前面回圈選擇分支和陣列你都沒有什么問題,也可以從面向物件的思想直接開始,很基礎很入門,同樣也很實用,
編譯器
可以使用老韓上課講的命令列,但是由于我已經習慣了idea 所以直接用了idea進行編程,之后會出一篇簡單使用 idea 的博客,
筆記軟體
以前用的 有道云筆記 ,因為有學姐推薦,然后一直在用,但是開始記Java的時候用的 語雀 ,給大家看一下界面,比較討喜,同步也還不錯,

Java重要特點
- 面向物件(oop)
- 健壯性:強型別機制,例外處理,垃圾的自動收集
- 跨平臺性的 (一個編譯好的.class可以在多個系統下運行)
TEST.java -> TEST.class (java虛擬機機制) 在windows上和在Linux都可以運行
- java語言是解釋型的語言 : js php java 解釋型語言(代碼不能在編譯器直接運行,需要用到解釋器) c/c++ 編譯型語言 (二進制代碼,可以直接在編譯器里面運行)
Java開發快速入門
執行流程分析
.java檔案 編譯后 .class檔案 運行后 結果
(源檔案) Javac (位元組碼檔案) java
編譯:通過編譯器將其編譯成JVM可以識別的位元組碼檔案 通過javac編譯工具對其.java檔案進行編譯 如果程式沒有錯誤 酒鬼生成位元組碼檔案,即為可以執行的Java程式
運行:本質就是將 .class檔案裝載到 jvm機執行
注意:對修改后的Java檔案需要重新編譯后,再生成新的.class檔案后才能正常運行
Java開發注意事項

- 由 class 組成
- main 方法由固定的書寫格式
- 一個源檔案最多只有一個 public 類 但其他類的個數不限制
- 每一個類編譯以后,都對應一個.class檔案 (,class 檔案可以為空類)
- 檔案中如果有public類,檔案必須與public類同名
- 可以將main方法寫在非public類中,然后指定運行當前類,這樣入口就是非public類的main方法

Java轉義字符
//注釋,也代表轉義字符的演示 // \n 換行符 // \t 對齊符 public static void main(String[] args){ System.out.println(" "); } // \ 輸出一個斜杠 寫法: \\win11 // 第一個用作轉義符 第二個才是真正輸出的\ // 如果要輸出兩個 \ 寫法: \\\win11 // 想要輸出雙引號 “” 寫法: "老韓說:\"要好好學習\"" // \r 一個回車 public static void main(String[] args){ System.out.println("韓老師教育\r北京"); } // 輸出結果為:北京師教育 如果改為: public static void main(String[] args){ System.out.println("韓老師教育\r\n北京"); } // 輸出結果為:韓老師教育 // 北京
易犯錯誤(用cmd里的錯誤)
- 找不到檔案
- 主類名和檔案名不一致
- 缺少分號
- 英文與中文字符混在一起(非法字符)
- 拼寫錯誤?環境錯誤?(業務錯誤)
注釋(comment)
- 提高代碼可讀性(思想通過注釋表達出來)
- 幫助其他閱讀你代碼的人理解代碼
- 對你自己的程式負責任
代碼演示
// 單行注釋 /* 多行注釋 */ 細節: 注釋掉的代碼塊是不會被程式 (解釋機) 執行 多行注釋中不允許再嵌套多行注釋 有兩個或多個結尾字符!!!! javadoc 檔案注釋 基本格式: javadoc標簽 Javadoc -d 檔案夾名 -xx -yy 檔案.java (-xx和-yy就是標簽) /** * @author 王帥 * @version 1.0 */ public static void main(String[] args){ System.out.println(" "); }
Javadoc標簽匯總:
|
標簽 |
描述 |
示例 |
|
@author |
標識一個類的作者 |
@author description |
|
@deprecated |
指名一個過期的類或成員 |
@deprecated description |
|
{@docRoot} |
指明當前檔案根目錄的路徑 |
Directory Path |
|
@exception |
標志一個類拋出的例外 |
@exception exception-name explanation |
|
{@inheritDoc} |
從直接父類繼承的注釋 |
Inherits a comment from the immediate surperclass. |
|
{@link} |
插入一個到另一個主題的鏈接 |
{@link name text} |
|
{@linkplain} |
插入一個到另一個主題的鏈接,但是該鏈接顯示純文本字體 |
Inserts an in-line link to another topic. |
|
@param |
說明一個方法的引數 |
@param parameter-name explanation |
|
@return |
說明回傳值型別 |
@return explanation |
|
@see |
指定一個到另一個主題的鏈接 |
@see anchor |
|
@serial |
說明一個序列化屬性 |
@serial description |
|
@serialData |
說明通過writeObject( ) 和 writeExternal( )方法寫的資料 |
@serialData description |
|
@serialField |
說明一個ObjectStreamField組件 |
@serialField name type description |
|
@since |
標記當引入一個特定的變化時 |
@since release |
|
@throws |
和 @exception標簽一樣. |
The @throws tag has the same meaning as the @exception tag. |
|
{@value} |
顯示常量的值,該常量必須是static屬性, |
Displays the value of a constant, which must be a static field. |
|
@version |
指定類的版本 |
@version info |
檔案注釋范例
import java.io.*; /** * 這個類演示了檔案注釋 * @author Ayan Amhed * @version 1.2 */ public class SquareNum { /** * This method returns the square of num. * This is a multiline description. You can use * as many lines as you like. * @param num The value to be squared. * @return num squared. */ public double square(double num) { return num * num; } /** * This method inputs a number from the user. * @return The value input as a double. * @exception IOException On input error. * @see IOException */ public double getNumber() throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader inData = new BufferedReader(isr); String str; str = inData.readLine(); return (new Double(str)).doubleValue(); } /** * This method demonstrates square(). * @param args Unused. * @return Nothing. * @exception IOException On input error. * @see IOException */ public static void main(String args[]) throws IOException { SquareNum ob = new SquareNum(); double val; System.out.println("Enter value to be squared: "); val = ob.getNumber(); val = ob.square(val); System.out.println("Squared value is " + val); } }
Java代碼規范
- 類、方法的注釋要以Javadoc的方式來寫;
- 非Javadoc注釋是為了給代碼的維護者來(閱讀者)看;
- tab將選中代碼整體右移,shift+tab將選中代碼整體左移;
- 運算子和等號兩邊習慣加上兩個空格;
int n; int a = 10; int b = a + n;
- 源檔案要用 UTF-8 存盤;
- Java代碼每一行的行寬盡量不要超過80個字符;
- 代碼撰寫的 次行風格 和 行尾風格 ,
import java.awt.*; import javax.swing.*; public class Circle99Frame extends JFrame { public static void main(String args[]){ JFrame frame=new Circle99Frame(); frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); frame.setSize(600,600); frame.setVisible(true); } public void paint( Graphics g){ g.drawString("circle 99",20,20); int x0=getSize().width/2; int y0=getSize().height/2; for(int r=0;r<getSize().height/2;r+=10){ g.setColor(getRandomColor()); g.drawOval(x0-r,y0-r,r*2,r*2); } } Color getRandomColor(){ return new Color( (int)(Math.random()*255),//random本身只產生(0~1)之間的小數, (int)(Math.random()*255), (int)(Math.random()*255) ); } } import java.awt.*; import javax.swing.*; public class Circle99Frame extends JFrame { public static void main(String args[]) { JFrame frame=new Circle99Frame(); frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE); frame.setSize(600,600); frame.setVisible(true); } public void paint( Graphics g) { g.drawString("circle 99",20,20); int x0=getSize().width/2; int y0=getSize().height/2; for(int r=0;r<getSize().height/2;r+=10) { g.setColor(getRandomColor()); g.drawOval(x0-r,y0-r,r*2,r*2); } } Color getRandomColor() { return new Color( (int)(Math.random()*255),//random本身只產生(0~1)之間的小數, (int)(Math.random()*255), (int)(Math.random()*255) ); } }
變數
變數是程式的基本組成單位,
不論是用通過哪種高級語言撰寫程式,變數都是基本單位,
變數基本要素
型別,名稱,數值
public static void main(String [] args){ int a=1; int b=3; b=89; System.out.println(a); System.out.println(b); }
變數的基本原理

變數的使用基本步驟
- 宣告變數
- 賦值 (把 60賦給a)
- 使用
- 輸出 (沒有輸出的程式是沒有意義的)
面向物件編程
用單獨的變數來解決問題不利于解決資料的管理
Java的設計者引入類與物件就是基于現有的問題新開發的一種手段和技術
class Cat{ // 屬性(成員變數)field String name; int age; String color; } //實體化一個貓類 public static void main(String [] args){ Cat cat1 = new Cat(); //用 cat1 來接受new的cat cat1.name = "小白"; cat1.age = 3; cat1.color = "白色"; Cat cat2 = new Cat(); cat2.name = "小黑"; cat2.age = 6; cat2.color = "黑色"; //訪問物件屬性 System.out.println("第一只貓的資訊"+cat1.name+" "+cat1.age+" "+cat1.color) }
理解類與物件
- 類是抽象的,概念的,比如人,貓,
- 物件是實體的,具體的,代表一個具體事物,
- 類是物件的模板,物件是類的實體,
物件在記憶體中的存在形式
資料一定有它對應地址

屬性的注意事項
- 屬性的定義語法詞變數:訪問修飾符、屬性型別、屬性名
class Person{ int age; String name; double str; boolean isPass; } public static void main(String [] args){ // 創建person物件 // p1是物件名(物件參考) // new Persom() 創建的物件空間(資料)才是真正的物件 Person p1 = new Person(); }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/455574.html
標籤:其他
上一篇:Spring Boot啟動流程
下一篇:MyBatis 及 MyBatis Plus 純注解方式配置(Spring Boot + Postgresql)
