Java 基礎學習 day01

来源:https://www.cnblogs.com/ctw-C/archive/2019/08/03/11296762.html
-Advertisement-
Play Games

Java 學習 day01 java的三大技術架構 Javase:java標準版,該體系的知識點主要是學習java基礎的知識點, 主要用於桌面應用軟體的開發。比如計算器,QQ軟體等。==市場上幾乎沒有人使用java去開發桌面應用程式,因為java在創立的時候定位該門語言是面向互聯網的一門語言。Jav ...


-------Java 學習 day01-------

 

java的三大技術架構

Javase:java標準版,該體系的知識點主要是學習java基礎的知識點, 主要用於桌面應用軟體的開發。比如計算器,QQ軟體等。==市場上幾乎沒有人使用java去開發桌面應用程式,因為java在創立的時候定位該門語言是面向互聯網的一門語言。Java的圖形化界面非常醜

Javaee:java企業版,基於javase的企業級應用的開發。比如淘寶,京東,ERP系統等。

Javame(已經被淘汰):java微型版,應用於移動設備和電子類產品的嵌入式開發。比如手機游戲,手機軟體等。 Android使用java語言去開發。

 

-什麼是java跨平臺?

通過java語言編寫的應用程式可以在不同的操作系統上直接運行。具有一次編譯,到處運行的特點。

 

java如何實現跨平臺?

a.通過JVM實現java語言跨平臺

b.在運行java程式的操作系統上,安裝對應的JVM虛擬機,實現java語言跨平臺

 

面試題:java語言編寫出來的軟體是否跨平臺? Jvm是否跨平臺?

跨平臺,jvm全稱java虛擬機, java虛擬機的作用就是用於解析class文件的。 Jvm不跨平臺。

 

--------2--------

什麼是jvm、什麼是jre, 什麼是JDK ? JVM、JRE、JDK三者之間的關係?

JVM:Java虛擬機,jvm的作用負責解析運行class文件,保證java程式跨平臺。(Java Virtual Machine)

JRE:(Java Runtime Environment) Java運行環境,包含JVM和核心類庫。如果只是想運行java程式,只要安裝JRE即可。

JDK:Java開發工具包,包含JRE和開發工具。如果程式員想要開發java程式,需要安裝JDK環境。

開發工具包括:編譯工具javac.exe  ,運行工具java.exe 等。

 

小結

jvm: java虛擬機負責解析運行class文件。

Jre: jre=jvm+核心類庫 。 Java運行環境,負責運行java的程式

Jdk: jdk = jre+ 開發工具

 

JVM、JRE、JDK三者之間的關係?

Jre=jvm+核心類庫

Jdk = jre+ 開發工具

 

--------03--------

Path環境變數的配置

 

為什麼要配置path環境變數?

a 為了在任意文件下能使用JDK的bin目錄下開發工具

 

配置步驟?

1、此電腦--->屬性--->高級系統設置--->高級--->環境變數==

2、新建系統變數

b1變數名:JAVA_HOME

b2變數值:JDK的安裝目錄(到bin目錄的上一層)

3、將 %JAVA_HOME%\bin 添加到Path變數中。 %環境變數名% 引用某指定的環境變數

4、打開DOS系統,輸入javac,驗證是否配置成功。

 

理解配置環境變數的意義

a 讓控制台在任意目錄下都可以使用java的開發工具。

 

疑問: 為什麼配置了path環境變數之後就可以在任意目錄下去使用java的開發工具了呢?

a 當我們在控制台輸入java命令的時候, Windows系統首先會在當前目錄下去搜索是否有java.exe 的開發工具,如果找到直接執行,如果沒有搜索到那麼就會根據path環境變數配置的路徑下去搜索是否有對應的可執行程式。如果有直接執行,如果還沒有直接報錯。

 

--------04--------

HelloWorld 案例

A    Java程式開發運行流程?

編寫代碼:編寫.java尾碼的源文件

編譯代碼:將.java文件編譯成.class尾碼的位元組碼文件

運行程式:使用 java工具運行編譯好的位元組碼文件

編譯: javac 文件名.java

運行: java  class文件名

 

Helloworld代碼

Public class helloworld {

  Public static void main(String[] args) {

    System.out.println("helloworld");

  }

}

 

Java程式運行的流程?

編寫java 的源代碼

編譯 javac java的源文件

運行 java class文件

編譯與運行分別使用哪個工具

編譯 javac java的源文件

運行 java class文件

獨立編寫並運行helloworld案例?

 

 

 --------05--------

helloworld案例常見問題

1)、中文符號問題。(java中的符號都是英文的)

2)、單詞大小寫問題。(java是區分大小寫的)

3)、文件擴展名問題。(java源文件擴展名為.java)

4)、程式主方法main書寫問題。(main為程式的主入口,單詞不能寫錯)

5)、文件名和類名不一致問題。(public限制java文件名和類名要一致)

 

Notepad++編碼設置

設置 --> 首選項 --> 新建,格式選擇Windows,編碼選擇ANSI。

 

--------06--------

註釋

註釋的作用?

對代碼進行解釋說明,便於開發人員理解和維護代碼。

註釋不會被程式編譯和運行。

註釋的分類?

單行註釋 //

多行註釋 /* */

文檔註釋 /** */

 

 

Java程式中最基本的組成單位是類。

類的定義格式:

Public class 類名 {

}

 

這是我定義的helloworld類

*/

Public class helloworld {

/*

這是main方法

Main方法是程式的入口方法,代碼的執行是從main方法開始的

*/

Public static void main(String[] args) {

// 這是輸出語句,""裡面的內容是可以改變的

System.out.println("itheima");

}

}

 

 

--------07--------

關鍵字

什麼是關鍵字?

在java語言中有特殊意義的單詞。

Java關鍵字的特點?

英文字母,全部小寫。

在高級開發工具中,關鍵字會有特殊的顏色標記。

Java中的關鍵字

Goto和const是java中的預留關鍵字。

 

關鍵字的作用是什麼?

在java程式中有著特殊含義的單詞稱作為關鍵字。 比如: class 定義類 public 公共的,所有人都可以訪問。

 

學習關鍵字的方法?

千萬不要死記硬背, 後期的程式會慢慢接觸到每一個關鍵字,然後知道關鍵字的作用即可。

 

--------08--------

常量

什麼是常量?

在程式運行過程中,其【值不可以發生改變】的量。

 

常量的分類

a字元串常量:使用雙引號 "" 括起來的0到多個字元。 "java" , "" , "  " , "A"

b字元常量:使用單引號 '' 括起來的【單個】字元。 'A' , '0' ,'我'

c整數常量:正負整數  10  -20

d小數常量:帶小數點的數字  -3.14   5.12

e布爾常量:表示真或假,只有true或false兩個值。

f空常量:值為null,不能使用輸出語句直接輸出。

 

代碼

  Public class constantdemo{

Public static void main(String[] args){

//字元串常量

System.out.println("");

System.out.println(" ");

System.out.println("1");

System.out.println("字元串常量");

System.out.println("---------------");

 

//字元常量(字元常量只能是單個字元,不能多個,也不能沒有)

System.out.println('1');

System.out.println('A');

System.out.println('中');

//System.out.println('10'); 引發編譯錯誤

//System.out.println('');  引發編譯錯誤

System.out.println(' ');

System.out.println("---------------");

 

//布爾常量

System.out.println(true);

System.out.println(false);

System.out.println(10>20); //fasle

 

//空常量 null 不能直接輸出

//System.out.println(null);   引發編譯錯誤

}

}:

 

  --------小結--------

 

什麼是常量?

a在程式運行過程中其值不能改變的量稱作為常量。

 


常量的類型?

字元串常量 ""雙引號引起來

 

整數常量 比如: 123

 

小數常量: 比如: 3.14

 

字元常量 是使用單引號括起來的, 並且只能出現一個字元。 比如: ‘a’

 

布爾常量 只有兩個值,真(true)與假 (false)

 

Null常量 學習到對象的時候才會去使用的。

 

--------09--------


數據類型

Java數據類型分類?

基本數據類型:4型8種

引用數據類型:字元串,數組,類,介面 ,null

 

使用註意·

整數預設是int類型,浮點數預設是double類型。

定義long類型的數據的時候,需要加 L 或 l,建議加L。

定義float類型的數據的時候,需要加 F 或 f,建議加F。

 

【練習題】下麵哪些是Java中的基本數據類型?(A,D,E)

A byte

B Byte

C String  //字元串

D char

E long

 

--------小結--------

數據類型的作用?

用於申請記憶體空間的。 開闢對應的記憶體空間。

 

Java中基本數據類型的四型八種是哪個?

整數

Byte 1個位元組

Short 2個位元組

Int 4個位元組

Long 8個位元組

 

小數

Float 4個位元組

Double 8個位元組

 

字元

Char 2個位元組

 

布爾

Boolean 1個位元組

 

--------10--------

變數

 

什麼是變數?

變數指程式運行過程中,其值在【一定範圍內】會發生【變化】的量。

 

變數的定義格式?

數據類型 變數名 = 初始化值;

 

Int a = 10;

Double d = 12.5;

 

變數使用的註意事項?

變數可以定義時初始化,也可以先定義,使用前進行初始化。

 

Int a = 10;

Int b;

B =20;

System.out.println(b);

 

沒有初始化的變數不能直接使用。

Int a;

System.out.println(a); //此處會報錯,變數沒有初始前不能直接使用

 

相同{}範圍內,變數名不能重覆。

Int  a  =10;

A = 20;  //重新賦值

Int a = 20; //變數名重覆,會編譯報錯

 

整數常量預設是int類型,定義long類型常量時需要加 L 或者l,建議加L。

Long b = 10000000000;  //超出intd的範圍,會編譯報錯,改成下麵的方式,加L

Long b = 10000000000L;

Long  a = 10L;

 

小數預設是double類型,定義float類型的時候需要在數字後面加F或者f,建議加F。

Float  f  = 3.14;  //此處會編譯報錯,因為小數預設是double類型。

Float  f  = 3.14F;

 

一行代碼上可以定義多個變數。(不推薦)

Int a=10,b=20;

 

變數的基本格式定義

/*

變數定義格式:

數據類型 變數名 = 變數值;

 

基本數據類型:

Byte,short,int,long,float,double,char,boolean

 

變數的使用:

取值格式:變數名

 

修改值格式:變數名 = 變數值;

*/

Public class variabledemo01 {

Public static void main(String[] args) {

//定義變數

Int a = 10;

//輸出變數

System.out.println(a);

 

//修改變數

A = 20;

System.out.println(a);

}

}

變數要註意的事項

/*

變數使用的註意事項:

名字不能重覆

變數未賦值,不能使用

Long類型的變數定義的時候,為了防止整數過大,後面要加L

Float類型的變數定義的時候,為了防止類型不相容,後面要加F

*/

Public class variabledemo02 {

Public static void main(String[] args) {

//定義byte類型的變數

Byte b = 10;

System.out.println(b);

 

//定義short類型的變數

Short s = 100;

System.out.println(s);

 

//定義int類型的變數

Int i = 10000;

System.out.println(i);

 

//定義double類型的變數

Double d = 13.14;

System.out.println(d);

 

//定義char類型的變數

Char c = 'a';

System.out.println(c);

 

//定義boolean類型的變數

//boolean b = true;

//System.out.println(b);

Boolean bb = true;

System.out.println(bb);

System.out.println("--------");

 

//定義long類型的變數

Long l = 10000000000L;

System.out.println(l);

System.out.println("--------");

 

//定義float類型的變數

Float f = 13.14F;

System.out.println(f);

}

}

 

--------小結--------

變數的作用?

變數的作用就是向jvm申請對應的記憶體空間存儲數據,在程式運行過程中其值可以發生改變。

 

變數的定義格式?

數據類型 變數名 = 數據;

 

==註意:以後我們存儲數據的時候該如何選擇數據類型呢?==

先明確你當前存儲的數據是什麼類型。

然後再根據對應的範圍大小去選擇。 但是這點是理論。 在實際開發中基本如果是i整數統一都使用int類型,如果是小數我們都使用double類型。

 

變數在使用的時候註意的事項?

變數名不能重覆

變數在使用之前必須要賦值

整數預設是int類型,如果需要表示為long類型需要在後面加上L或者l。

小數預設是double類型,如果需要表示為float類型,需要在後面添加F或者f。

 

--------11--------

標識符

 

標識符的作用?

給包,類,方法,變數起名的符號。

 

標識符的組成規則?

==英文大小寫字母,數字0~9 , 下劃線_ ,美元符$ ,中文==

 

註意:

不能數字開頭

不能是關鍵字

標識符的命名規範?

小駝峰式命名:變數名、方法名

第一個單詞首字母小寫,從第二個單詞開始每個單詞的首字母大寫。

Username,maxvalue等

 

大駝峰式命名:類名

每個單詞的首字母都大寫。

String, arraylist等

建議:標識符的起名儘量做到見名知意。

 

--------小結--------

a1標識符的作用?

a2標識符就是指在java程式中由我們自定義名字的則稱作為標識符。 比如: 類名

a3標識符的組成規則?

標識符的組成元素: 字元(a-za-Z,漢字可以)、數字、下劃線(_)、美元符號($)

數字不能開頭

不能是關鍵字

 

a4標識符的命名規範?

大駝峰命名規範: 所有單詞的首字母大寫,其他小寫。 比如: helloworld 。主要用於類名、介面名

小駝峰命名規範:首單詞全部小寫,其他單詞的首字元大寫,其他小寫。 比如: lasttime. 主要用於方法名、變數名

 

【練習題】下列不可作為java語言變數名的是( )

a1

B、$1

C、_1

D、5a   //不可以 ,數字開頭

E、num@   //不可以, @符號不是標識符的組成元素

F、class   //不可以,因為class是關鍵字

G、String   //可以, 但是不推薦, 因為String是字元串所使用類型。

 

--------12--------

類型轉換

 

隱式類型轉換(自動類型轉換)

==小類型變數==賦值給==大類型變數==,小類型會自動進行提升為大類型。

Byte、short、char ---> int ---> long ---> float ---> double

 

【筆試題】指出下麵一段代碼中有問題的代碼行號()

byte b = 10; short s = 20;

short s2 = b + s;

short s3 = s + 5;

short s4 = 10 + 20;

float f = 10 + 1.0;

double d = 10 + 1.0F;

 

強制類型轉換

從==範圍大==的類型到==範圍小==的類型的轉換,需要進行強制類型轉換。

格式:

==目標數據類型 變數名 = (目標數據類型) 值或變數;==

Int a =10;

Byte b = (byte)a;

System.out.println(b); //10

Int aa = (int)88.88;

System.out.println(aa); //88

弊端:

==強制轉換可能會造成數據精度丟失

/*

類型轉換

*/

Public class conversiondemo {

Public static void main(String[] args) {

//自動類型轉換

Double d = 10;

System.out.println(d);

 

//定義byte類型的變數

Byte b = 10;

Short s = b;

Int i = b;

 

//這是不可以的,類型不相容

//char c = b;

 

//強制類型轉換

Int k = (int)88.88;

System.out.println(k);

}

}

 

--------小結--------

為什麼要進行數據類型轉換?

Java這麼語言是不允許不同類型的數據在一起運算,這種需求在實際中是經常發生的。在運算的時候讓這些數據轉換為同一種數據類型。

 

數據類型轉換有哪些類型?

自動類型轉換 小數據類型向大數據類型

 

強制類型轉換 大數據類型---小數據類型

 

強制類型轉換可能會出現什麼問題?

丟失精度。丟失數據

 

//最後一題啦

 

【筆試單選題】以下關於數據類型的轉換,說法錯誤的是( )

A:int a = 1; byte b = 1; System.out.println(a+b); 程式不會報錯並且列印2  不會

B:int類型的數據轉為double類型,需要強制轉換。  //不需要  小--大  自動類型轉換

C:int類型轉成short砍掉2個位元組,可能造成數據丟失。

D:short h = 1; h=h+1; 需要使用強制轉換才能編譯成功。

 

                              --------以上內容如果有錯誤 請盡情懟我!!!--------

                              謝謝


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 變數的作用域在函數之外聲明的變數,叫做全局變數,因為它可被當前文檔中的任何其他代碼所訪問。在函數內部聲明的變數,叫做局部變數,因為它只能在當前函數的內部訪問。 ECMAScript 6 之前的 JavaScript 沒有 語句塊作用域;相反,語句塊中聲明的變數將成為語句塊所在函數(或全局作用域)的局 ...
  • 在 jQuery 中可以使用 hide() 和 show() 方法來隱藏和顯示 HTML 元素 ...
  • 示例代碼托管在: "http://www.github.com/dashnowords/blogs" 博客園地址: "《大史住在大前端》原創博文目錄" 華為雲社區地址: "【你要的前端打怪升級指南】" [TOC] 一. 需求描述 前端工程出包後實現簡易的自動化部署。 二. 預備知識 網站的建設可以使 ...
  • 舉個慄子 問題描述 上班的日子,上午狀態好,中午想睡覺,下午漸恢復,加班苦煎熬。根據時間的不同體現不同的工作狀態。 簡單實現 Work / 抽象狀態 Created by callmeDevil on 2019/8/3. / public abstract class State { public ...
  • 在RocketMQ中,使用BrokerStartup作為啟動類,相較於NameServer的啟動,Broker作為RocketMQ的核心可複雜得多 【RocketMQ中NameServer的啟動源碼分析】 主函數作為其啟動的入口: 首先通過createBrokerController方法生成Brok ...
  • Bean 的生命周期指的是 Bean 的創建、初始化、銷毀的過程。Spring 提供了一些方法,可以讓開發自定義實現在生命周期過程中執行一些額外操作。 1、在註解 @Bean 中指定初始化和銷毀時執行的方法名。 2、實現初始化和銷毀介面 InitializingBean、DisposableBean ...
  • 1.定義: 在運行狀態中對於任意一個類都能夠知道這個類的所有屬性和方法,對於任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱為java語言的反射機制。 2.應用場景: 編碼階段不知道需要實例化的類名是哪個,需要在runtime從配置文件中載入 在runtime ...
  • 迭代器 迭代器可以用來遍歷字元串、列表、元組、集合、字典。 可以使用next()獲取下一個元素: 錯誤、異常處理 except語句 ecxcept語句用來捕獲、處理錯誤、異常。 as e as是關鍵字,e是e是捕獲的異常實例(對象),可以自己隨便取名。 如果異常處理中用不到捕獲的異常對象,可以不要a ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...