正在黑馬學習,整理了一些課程知識點和比較重要的內容分享給大家,也是給自己拓寬一些視野,僅供大家交流學習,大家有什么更好的內容可以發給我 ,現有黑馬教程2000G QQ 1481135711
這是我總結的基礎班第一章課程,
人與計算機交流的方式
如果人要與計算機交流,那么就要學習計算機語。計算機語言有很多種,如:C,C++,Java等。
人機交互:
軟件的出現實現了人與計算機之間的更好的交互。
交互方式:
圖形化界面(Graphical User Interface GUI):這種方式簡單直觀,使用者易於接受,容易上手操作。
命令行方式(Command Line Interface CLI):需要有一個控制台,輸入特定的指令,讓計算機完成一些操作。較為麻煩,需要記錄住一些命令
Java語言概述:
1. Java語言是SUN公司(Stanford University Network,斯坦福大學網絡公司)1995年推出的一門高級編程語言。
2. Java語言是一門面向Internet的編程語言。
3. 隨着Java技術在web方面的不斷成熟,Java語言已經成為Web應用程序的首選開發語言。
4. Java語言是簡單易學,完全面向對象,安全可靠,與平台(操作系統)無關的編程語言。
P.S:Java是允許使用者將應用程序通過Internet從遠端服務器傳輸到本地機上並執行的一種語言。
Java語言的三種技術架構:
J2EE(Java 2 Platform Enterprise Edition) 企業版
是為開發企業環境下的應用程序提供的一套解決方案。
該技術體系中包含的技術如Servlet、Jsp等,主要針對於Web應用程序開發。
J2SE(Java 2 Platform Standard Edition) 標准版
是為開發普通桌面和商務應用程序提供的解決方案。
該技術體系是其他兩者的基礎,可以完成一些桌面應用程序的開發,比如Java版的掃雷。
J2ME(Java 2 Platform Micro Edition) 小型版
是為開發電子消費產品和嵌入式設備提供的解決方案。
該技術體系主要應用於小型電子消費類產品,如手機中的應用程序等。
P.S
1、Java5.0版本后,三種技術架構分別更名為JAVAEE、JAVASE、JAVAME。
2、由於現在已經出現了Android、iOS、Windows Phone等手機操作系統,所以J2ME架構基本上已經不用了。目前,流行的手機軟件都是基於這些最新的手機操作系統進行開發。
跨平台性:
什么是跨平台性?
通過Java語言編寫的應用程序在不同的系統平台上都可以運行。
原理是什么?
只要在需要運行java應用程序的操作系統上,
先安裝一個Java虛擬機(JVM Java VirtualMachine)即可。
由JVM來負責Java程序在該系統中的運行。
<ignore_js_op>
PS: java語言是跨平台,jvm不是跨平台的。
什么是JRE,JDK?
JVM、JRE和JDK的區別:
JVM(Java Virtual Machine):java虛擬機,用於保證java的跨平台的特性。
JRE(Java Runtime Environment):java的運行環境,包括jvm+java的核心類庫。
JDK(Java Development Kit):java的開發工具,包括jre+開發工具
JDK的下載與安裝:
JDK(Java DevelopmentKit Java開發工具包)
官方下載網址:www.oracle.com
1.點擊Downloads下的Java for Developers。
2. 點擊JDK下的DOWNLOAD按鈕。
3.點擊Accept License Agreement 接受JDK的許可證協議,然后再點擊jdk-8u45-windows-i586.exe(32位)/jdk-8u45-windows-x64.exe(64位)進行下載。
PS: 查看系統是多少位,用鼠標右鍵點擊我的電腦屬性,查看系統類型。
傻瓜式安裝,下一步即可。
建議:安裝路徑不要有中文或者特殊符號如空格等。
配置環境變量path:
配置:
我的電腦--屬性--高級--環境變量
1.新創建一個環境變量名為JAVA_HOME ,變量值為java工具所在目錄,
2.在path中通過%%動態的獲取JAVA_HOME的值即可。 %JAVA_HOME%:動態獲取名稱為JAVA_HOME環境變量的值。
例如:
JAVA_HOME=F:\jdk1.6.0_01(java工具(JDK)所在目錄)
path=%JAVA_HOME%\bin;%path%
%path%:動態獲取path環境變量的值。
<ignore_js_op>
<ignore_js_op>
檢測:
打開DOS命令行(1.徽標鍵 +R ,輸入CMD。2.點擊開始-->所有程序-->附件-->命令提示符),任意目錄下敲入javac
<ignore_js_op>
錯誤原理:當前執行的程序在當前目錄下如果不存在,windows系統會在系統中已有的一個名為path的環境變量指定的目錄中查找。如果還沒有找到,就出現以上的錯誤提示。
如果進入到 jdk安裝路徑\bin目錄下,執行javac就可以看到javac參數提示信息,這說明我們的JAVA_HONE的環境變量沒有配置成功。
<ignore_js_op>
配置環境變量class_Path:
由於可能頻繁執行多個class文件,並且多個class文件可能存儲在不同的目錄下,那么每次都在命令提示符窗口中切換目錄會相當的麻煩。
classpath環境變量的作用類似於path環境變量,但是它的作用在於告訴JVM去哪里找到class文件。
環境變量path和classpath的作用是什么?
(1)path是配置Windows可執行文件的搜索路徑,即擴展名為.exe的程序文件所在的目錄, 用於指定DOS窗口命令的路徑。
(2)Classpath是配置class文件所在的目錄,用於指定類搜索路徑,JVM就是通過它來尋找該類的class類文件的。
第二章
概述:被Java語言賦予特定含義的單詞
特點:組成關鍵字的字母全部小寫
注意事項:
goto和const作為保留字存在,目前並不使用(保留字:在JDK的新版本中可能提升為關鍵字)
類似Notepad++這樣的高級記事本,針對關鍵字有特殊的顏色標記,非常直觀
組成規則:英文大小寫字母、數字字符、$和_命名規范:
包名:多單詞組成時所有字母都小寫,
類名接口名:多單詞組成時,所有單詞的首字母大寫
變量名和函數名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫
常量名:所有字母都大寫。多單詞時每個單詞用下划線連接
注意事項 :不能以數字開頭、不能是Java中的關鍵字、區分大小寫要見名知意,駝峰命名
常量
概述:在程序執行的過程中其值不可以發生改變
常量分類:
1、字面值常量
2、自定義常量(面向對象部分講)
字面值常量的分類
二進制的由來:任何數據在計算機中都是以二進制的形式存在的。二進制早期由電信號開關演變而來。
不同進制的數據組成:
二進制 由0,1組成。以0b開頭 例:0101
八進制 由0,1,…7組成。以0開頭 例:032
十進制 由0,1,…9組成。整數默認是十進制的 例:12
十六進制 由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭 例:0x42b6
規律:進制越大,表現形式越短。
轉換(可以通過計算機的程序員計算器)
8421碼(8421碼是BCD代碼中最常用的一種。)
100轉成二進制 0110 0100
101101轉成十進制 45
二進制和八進制,十六進制進行轉換是以十進制作為橋梁
二進制到八進制是3位二進制組成一位八進制
二進制到十六進制是4位二進制組成一位十六進制
在計算機內,有符號數有3種表示法:原碼、反碼和補碼。所有數據的運算都是采用補碼進行的。
原碼:就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
反碼:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
變量
概述:在程序執行的過程中,在某個范圍內其值可以發生改變的量
格式:數據類型 變量名 = 變量值;
好處: 可以用來不斷的存放同一類型的常量,並重復使用
數據類型
概述:Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間
Java中數據類型的分類
分類:基本數據類型(4類8種) 和引用數據類型
<ignore_js_op>
整數型
byte 占一個字節 -128到127
short 占兩個字 -2^15~2^15-1
int 占四個字節 -2^31~2^31-1
long 占八個字節 -2^63~2^63-1
浮點型
float 占四個個字節 -3.403E38~3.403E38
double 占八個字節-1.798E308~1.798E308
字符型
char 占兩個字節 0~65535
布爾型
boolean
boolean理論上是占八分之一個字節,因為一個開關就可以決定是true和false了,但是java中boolean類型沒有明確指定他的大小
注意事項
作用域 :變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。
初始化值:沒有初始化值不能直接使用
在一行上可以定義多個變量,但是不建議只定義一個
數據轉換
默認轉換
byte,short,char—int—long—float—double
byte,short,char相互之間補轉換,他們參與運算首先轉換為int類型
強制轉換
目標類型 變量名=(目標類型)(被轉換的數據);
boolean類型不能轉換為其他的數據類型
運算符
<ignore_js_op>
加法(+): 1、加法 System.out.println("a+b="+(a+b)) ,此處是求(a+b)的值
2、正數 int b = +3; 此處表示b是正數3
3、字符串連接符 System.out.println("a=“+a+"b="+b)) ‘+’為字符串連接符號,不參與運算,顯示的為 a=a,b=b
除法(/):1、整數相除,只能得到整數2、要想得到小數,可以*1.0
/和%的區別:
除法和平時用法一樣,取模就是取余數,負數對正數取模結果為負數。正數對負數取模結果為正數。舉個栗子:
-2%5= -2 -2是被模數,5是模數,負數的取模運算結果是不是負數看左邊。
++和--的應用:
++運算單獨存在時放左放右是沒有區別的,
參與其他運算時 b = ++a相等於 b = a+1 ,
b = a++ b應為a的初始值,a為a+1
賦值運算符
符號:
= , +=, -=, *=, /=, %=
=為基本的賦值運算符,其他的為擴展的賦值運算符
=賦值號
+=加賦值
把左邊和右邊的結果賦值給左邊。注意:左邊不能是常量
關系運算符
<ignore_js_op>
比較運算符的結果都是boolean型,也就是要么是true,要么是false。
比較運算符“==”不能誤寫成“=” 。
第三章
邏輯運算符
邏輯運算符一般用於連接boolean類型的表達式或者值。
表達式:就是用運算符把常量或者變量連接起來的符合java語法的式子。
算術表達式:a + b
比較表達式:a == b(條件表達式)
特點:偶數個不改變本身。
舉個栗子:
用來連接boolean模式的表達式
&(與): 3<x<5應寫成 x>3 & x>5
兩邊都是true,結果是true,否則都是false
true & true = true ;
true & false = false;
false & true = false;
false & false = false ;
|(或): x<3 | x>5
兩邊都是false,結果是false,否則都是true
true | true = true ;
true | false = true;
false | true = true;
false | false = false ;
^(異或):
兩邊相同為false,兩邊不同為true。
true ^ true = false ;
true ^ false = true;
false ^ true = true;
false ^ false = false ;
!(非):
true = false;
“&”和“&&”的區別:
單&時,左邊無論真假,右邊都進行運算;
雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。
異或( ^ )與或( |)的不同之處是:當左右都為true時,結果為false。
位運算符
<ignore_js_op style="word-wrap: break-word; font-family: 微軟雅黑; line-height: 30.8px;">
|:有1位為1,結果為1
^:相同則0,不同則1 ,a^b^b a異或b兩次還是a。
~:按位取反 6取反 ~6+1=-6
三元運算符
格式:(關系表達式)?表達式1:表達式2 如:z=(x>y)?x:y
如果條件為true,運算后的結果是表達式1
如果條件為false,運算后的結果是表達式2
和if else 的簡寫差不多
一定要返回一個變量或者值不能是其他語句。
鍵盤錄入的基本格式
1.導入包: import java.util.Scanner;
2.在main函數中實例化對象: Scanner sc = new Scanner(System.in);
接受用戶輸入:
2.1) 接收整數:
int num = sc.nexInt();
2.2) 接收字符串:
String str = sc.next();
2.3)接收浮點值:
double val = sc.nextDouble();
在Scanner類中,有一些:hasNextXxxx()方法,這些方法可以先期判斷是否能夠獲取一個Xxxx的值,如果可以,此方法返回true,否則返回false
流程控制語句
流程控制語句分類
順序結構
選擇結構
循環結構
選擇結構的分類
if語句
switch語句
if語句有幾種格式
格式1
執行流程
先計算比較表達式的值,看其返回值是true還是false。
如果是true,就執行語句體;
如果是false,就不執行語句體;
選擇結構if語句注意事項
a:比較表達式無論簡單還是復雜,結果必須是boolean類型
b:if語句控制的語句體如果是一條語句,大括號可以省略;如果是多條語句,就不能省略。建議永遠不要省略。
c:一般來說:有左大括號就沒有分號,有分號就沒有左大括號
格式2
執行流程:
首先計算比較表達式的值,看其返回值是true還是false。
如果是true,就執行語句體1;
如果是false,就執行語句體2;
注意事項:else后面是沒有比較表達式的,只有if后面有。
if語句的格式2和三元的相互轉換問題:
當if語句控制的語句體是一條輸出語句的時候,就不成立。因為三元運算符是一個運算符,必須要求有一個結果返回。而輸出語句卻不能作為一個返回結果,在其他的時候三元運算符的操作都可以使用if語句改進
格式3
執行流程:
首先計算比較表達式1看其返回值是true還是false,
如果是true,就執行語句體1,if語句結束。
如果是false,接着計算比較表達式2看其返回值是true還是false,
如果是true,就執行語句體2,if語句結束。
如果是false,接着計算比較表達式3看其返回值是true還是false,
如果都是false,就執行語句體n+1。
注意事項:最后一個else可以省略,但是建議不要省略,可以對范圍外的錯誤值提示
選擇結構
switch語句格式
格式解釋
1.switch表示這是switch語句
表達式的取值:byte,short,int,char
JDK5以后可以是枚舉
JDK7以后可以是String
2.case后面跟的是要和表達式進行比較的值3.語句體部分可以是一條或多條語句
4.break表示中斷,結束的意思,可以結束switch語句
5.default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。
執行流程
首先計算出表達式的值
其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。
注意事項
1."表達式"可以產生的值:byte,short,int,char,枚舉(JDK5以后),String(JDK7以后)
2.case語句后跟"常量表達式",不能是"變量";而且不能出現相同的常量值;
3.break;語句"不是必須的"。如果不寫,如果一旦case相應的值成功,但內部沒有break語句,那么將會無條件(不再進行case匹配)的繼續向下執行其它case中的語句,直到遇到break;語句或者到達switch語句結束。
4.多個case之間,沒有順序關系;
5.default語句"不是必須的"。可以不寫,它就相當於多重if語句中最后的else。
6.default語句和case語句"沒有順序關系"
選擇結構if語句和switch語句的區別
switch建議判斷固定值的時候用
if建議判斷區間或范圍的時候用
現有黑馬教程2000G,歡迎互換項目資源共同進步! QQ 1481135711
邏輯運算符
邏輯運算符一般用於連接boolean類型的表達式或者值。
表達式:就是用運算符把常量或者變量連接起來的符合java語法的式子。
算術表達式:a + b
比較表達式:a == b(條件表達式)
特點:偶數個不改變本身。
舉個栗子:
用來連接boolean模式的表達式
&(與): 3<x<5應寫成 x>3 & x>5
兩邊都是true,結果是true,否則都是false
true & true = true ;
true & false = false;
false & true = false;
false & false = false ;
|(或): x<3 | x>5
兩邊都是false,結果是false,否則都是true
true | true = true ;
true | false = true;
false | true = true;
false | false = false ;
^(異或):
兩邊相同為false,兩邊不同為true。
true ^ true = false ;
true ^ false = true;
false ^ true = true;
false ^ false = false ;
!(非):
true = false;
“&”和“&&”的區別:
單&時,左邊無論真假,右邊都進行運算;
雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那么右邊不參與運算。
“|”和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。
異或( ^ )與或( |)的不同之處是:當左右都為true時,結果為false。
位運算符
<ignore_js_op style="word-wrap: break-word; font-family: 微軟雅黑; line-height: 30.8px;">
|:有1位為1,結果為1
^:相同則0,不同則1 ,a^b^b a異或b兩次還是a。
~:按位取反 6取反 ~6+1=-6
三元運算符
格式:(關系表達式)?表達式1:表達式2 如:z=(x>y)?x:y
如果條件為true,運算后的結果是表達式1
如果條件為false,運算后的結果是表達式2
和if else 的簡寫差不多
一定要返回一個變量或者值不能是其他語句。
鍵盤錄入的基本格式
1.導入包: import java.util.Scanner;
2.在main函數中實例化對象: Scanner sc = new Scanner(System.in);
接受用戶輸入:
2.1) 接收整數:
int num = sc.nexInt();
2.2) 接收字符串:
String str = sc.next();
2.3)接收浮點值:
double val = sc.nextDouble();
在Scanner類中,有一些:hasNextXxxx()方法,這些方法可以先期判斷是否能夠獲取一個Xxxx的值,如果可以,此方法返回true,否則返回false
流程控制語句
流程控制語句分類
順序結構
選擇結構
循環結構
選擇結構的分類
if語句
switch語句
if語句有幾種格式
格式1
執行流程
先計算比較表達式的值,看其返回值是true還是false。
如果是true,就執行語句體;
如果是false,就不執行語句體;
選擇結構if語句注意事項
a:比較表達式無論簡單還是復雜,結果必須是boolean類型
b:if語句控制的語句體如果是一條語句,大括號可以省略;如果是多條語句,就不能省略。建議永遠不要省略。
c:一般來說:有左大括號就沒有分號,有分號就沒有左大括號
格式2
執行流程:
首先計算比較表達式的值,看其返回值是true還是false。
如果是true,就執行語句體1;
如果是false,就執行語句體2;
注意事項:else后面是沒有比較表達式的,只有if后面有。
if語句的格式2和三元的相互轉換問題:
當if語句控制的語句體是一條輸出語句的時候,就不成立。因為三元運算符是一個運算符,必須要求有一個結果返回。而輸出語句卻不能作為一個返回結果,在其他的時候三元運算符的操作都可以使用if語句改進
格式3
執行流程:
首先計算比較表達式1看其返回值是true還是false,
如果是true,就執行語句體1,if語句結束。
如果是false,接着計算比較表達式2看其返回值是true還是false,
如果是true,就執行語句體2,if語句結束。
如果是false,接着計算比較表達式3看其返回值是true還是false,
如果都是false,就執行語句體n+1。
注意事項:最后一個else可以省略,但是建議不要省略,可以對范圍外的錯誤值提示
選擇結構
switch語句格式
格式解釋
1.switch表示這是switch語句
表達式的取值:byte,short,int,char
JDK5以后可以是枚舉
JDK7以后可以是String
2.case后面跟的是要和表達式進行比較的值3.語句體部分可以是一條或多條語句
4.break表示中斷,結束的意思,可以結束switch語句
5.default語句表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。
執行流程
首先計算出表達式的值
其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。
注意事項
1."表達式"可以產生的值:byte,short,int,char,枚舉(JDK5以后),String(JDK7以后)
2.case語句后跟"常量表達式",不能是"變量";而且不能出現相同的常量值;
3.break;語句"不是必須的"。如果不寫,如果一旦case相應的值成功,但內部沒有break語句,那么將會無條件(不再進行case匹配)的繼續向下執行其它case中的語句,直到遇到break;語句或者到達switch語句結束。
4.多個case之間,沒有順序關系;
5.default語句"不是必須的"。可以不寫,它就相當於多重if語句中最后的else。
6.default語句和case語句"沒有順序關系"
選擇結構if語句和switch語句的區別
switch建議判斷固定值的時候用
if建議判斷區間或范圍的時候用
配套資料可以找我要 1481135711
