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這麼語言是不允許不同類型的數據在一起運算,這種需求在實際中是經常發生的。在運算的時候讓這些數據轉換為同一種數據類型。
數據類型轉換有哪些類型?
自動類型轉換 小數據類型向大數據類型
強制類型轉換 大數據類型---小數據類型
強制類型轉換可能會出現什麼問題?
丟失精度。丟失數據
//最後一題啦