1. 程式人生 > >傳智播客 劉意_2015年Java基礎視訊-深入淺出精華版 筆記(2015年10月25日23:28:50)

傳智播客 劉意_2015年Java基礎視訊-深入淺出精華版 筆記(2015年10月25日23:28:50)

day01

win 7系統開啟DOS有趣方法:按住shift+右鍵,單擊“在此處開啟命令視窗”(注意:在此處可以是任何的資料夾,不一定是桌面)

用DOS刪除的檔案不可以在回收站恢復?!!

常用DOS命令
d: 回車 碟符切換
dir(directory):列出當前目錄下的檔案以及資料夾
md (make directory) : 建立目錄(建立資料夾)
rd (remove directory): 刪除目錄(刪除資料夾,注意:前提是資料夾必須是空的!!)
如果想刪除不是空的資料夾(比如刪除aaaaa資料夾),可以用命令 rd /s aaaaa(會有刪除提示)或者rd /s /q aaaaa(靜默刪除)


cd (change directory)改變指定目錄(進入指定目錄)
cd.. : 退回到上一級目錄
cd\: 退回到根目錄
del (delete): 刪除檔案,刪除一堆字尾名一樣的檔案*.txt
exit : 退出dos命令列
cls : (clear screen)清屏

 第一個程式:HelloWorld案例(掌握)
 1  class HelloWorld {
 2  
 3 
 4   public static void main(String[] args) {
 5  
 6 
 7    System.out.println("HelloWorld");
8 9 10 } 11 12 13 }
 (1)程式解釋:   A:Java程式的最基本單位是類,所以我們要定義一個類。    格式:class 類名    舉例:class HelloWorld   B:在類中寫內容的時候,用大括號括起來。   C:Java程式要想執行,必須有main方法。    格式:public static void main(String[] args)   D:要指向那些東西呢,也用大括號括起來。   E:你要做什麼呢?今天我們僅僅做了一個簡單的輸出    格式:System.out.println("HelloWorld");
   注意:""裡面的內容是可以改動的。  (2)Java程式的開發執行流程:   A:編寫java源程式(.java)   B:通過javac命令編譯生成.class檔案   C:通過java命令執行.class檔案 常見的問題(掌握)  (1)副檔名被隱藏   如何找到:工具--資料夾選項--檢視--去除隱藏副檔名的那個勾勾 (2)要求檔名稱和類名一致。   實際上不這樣做也是可以的。   但是,注意:    javac後面跟的是檔名+副檔名    java後面跟的類名不帶副檔名  (3)Java語言嚴格區分大小寫,請注意。    還有就是單詞不要寫錯了。  (4)見到非法字元: \65307肯定是中文問題。     寫程式要求標點符號必須全部是英文狀態。  (5)括號的配對問題。   一般來說,括號都是成對出現的。  (6)遇到   在類 HelloWorld 中找不到主方法, 請將主方法定義為   肯定是主方法的格式問題。 path環境變數  path環境變數的作用   保證javac命令可以在任意目錄下執行。   同理可以配置qq等 day2 1.java關鍵字--組成關鍵字的字母全部小寫 注意:goto和const作為保留字存在,目前並不使用(在JDK的新版本中可能提升為關鍵字) 2.demo:案例,演示 3.Java識別符號 可以是  英文大小寫字母  數字字元  $和_  注意:  A.不能以數字開頭  B.不能是Java中的關鍵字  C.Java語言嚴格區分大小寫 4.常見的命名規則(重點):見名知意   舉例:我要定義一個學生類    class Student {}    class S{}   :其實就是資料夾,用於把相同的類名進行區分    全部小寫    單級:liuyi    多級:cn.itcast(解析:cn是一個資料夾,itcast也是一個資料夾,cn資料夾裡包含有itcast資料夾)     cn      itcast   類或者介面:    一個單詞:單詞的首字母必須大寫     舉例:Student,Dog    多個單詞:每個單詞的首字母必須大寫     舉例:HelloWorld,StudentName   方法或者變數    一個單詞:單詞的首字母小寫     舉例:main,age    多個單詞:從第二個單詞開始,每個單詞的首字母大寫     舉例:studentAge,showAllNames()   常量:    一個單詞:全部大寫     舉例:PI    多個單詞:每個字母都大寫,用_隔開     舉例:STUDENT_MAX_AGE 5.Java中註釋的分類及格式   單行註釋://   多行註釋:/星 星/    注意:多行不可以巢狀使用,而單行是可以的   文件註釋:被javadoc工具解析生成一個說明書 用註釋寫的一個Java案例 ===========================華麗的分割線========================================= /*  需求:我準備寫一個java程式,把“HelloWorld”這句話輸出在控制檯  分析:A:要寫一個java程式,必須定義類    B:把資料能夠輸出,說明我們的程式是可以獨立執行的,而程式要獨立執行,必須定義main方法    C:把資料輸出在控制檯,必須使用輸出語句  實現:    A:java語言提供了一個關鍵字:class用來定義類,後面跟的是類名    B:main方法的格式是固定的:    public static void main(String[] args) {    }    C:輸出語句的格式是固定的:    System.out.println("HelloWorld");    "HelloWorld"這個內容是可以改變的 */ //這是我的HelloWorld案例 class HelloWorld {  /*   為了程式能夠獨立執行,定義main方法   main方法是程式的入口   被jvm自動呼叫  */  public static void main(String[] args) {   //為了把資料顯示在控制檯,我們就使用了輸出語句   System.out.println("HelloWorld");  } } ===========================華麗的分割線============================================= 6.常量:   在程式執行過程中,其值不發生改變的量。  分類:   A:字面值常量   B:自定義常量(後面講)  字面值常量   A:字串常量 用雙引號括起來的內容。   B:整數常量 所有的整數    舉例:100, 200   C:小數常量 所有的小數    舉例:10.23,110.11   D:字元常量 用單引號括起來的內容    舉例:‘a’,‘A’,‘0’    錯誤的:‘ab’   E:布林常量 比較特殊    舉例:true,false   F:空常量 後面講    舉例:null 7.Java進位制  Java針對整數常量提供了4種表現形式  二進位制(jdk7以後有)  八進位制  十進位制  十六進位制 8.快速的進位制轉換法  8421碼,是bcd碼一種。  它表達的意思是每一個二進位制位上的資料對應一個固定的值,  只需要把對應的1位置的資料值給相加,即可得到該二進位制對應的十進位制的值  二進位制 1 1 1 1 1 1 1 1  十進位制 128 64 32 16 8 4 2 1  例    二進位制到十進位制的轉換  1010100 = 64 + 16 + 4 = 84;  十進位制到二進位制的轉換  100 = 0b1100100(對照著看,首先100<128,所以第八位為0;然後100>64,第七位為1;接著,100-64=36,36>32,所以第六位為1;然後,36-32=4,4<16,所以第五位為0;然後,4<8,第四位為0;然後,4=4,所以第三位為1;  然後,0<2,第二位為0;然後0<1,第一位為0,總的來說是01100100,去掉首位的0就是1100100,再規範化表示為0b1100100)

9.原碼反碼補碼
原碼:
正數的原碼最高位是0;
負數的原碼最高位是1;
其他的是數值位。
符號位 數值位
+7 0 0000111
-7 1 0000111

反碼:
正數的反碼與原碼相同。
負數的反碼與原碼是符號不變,數值位取反(0變1,1變0)

+7 0 0000111
-7 1 1111000

補碼:
正數的補碼與原碼相同
負數的補碼是在反碼的基礎上加1.

+7 0 0000111
-7 1 1111001

有符號資料表示法的練習
A:已知某數X的原碼為10110100B,試求X的補碼和反碼。

符號位 數值位

原碼: 1 0110100

反碼: 1 1001011

補碼: 1 1001100

B:已知某數X的補碼11101110B,試求其原碼。

符號位 數值位

補碼: 1 1101110

反碼: 1 1101101

原碼: 1 0010010


10.資料型別:Java是一種強型別的語言,針對每一種資料都定義了明確的資料型別。

資料型別分類:
A:基本資料型別
B:引用資料型別(類,介面,數值)

基本資料型別:4類8種
A:整數 佔用位元組數
byte 1
short 2
int 4
long 8

B:浮點數
float 4
double 8

C:字元
char 2
D:布林
boolean 1

注意:
整數預設是int型別
浮點數預設是double型別。

長整型字尾用L或者l標記。建議使用L。
例如
在Java中,

1 long j = 10000000000;
2 System.out.println(j);


編譯時會報錯 錯誤: 過大的整數: 10000000000,因為整數(這裡是10000000000)預設是int型別
解決辦法 long j = 10000000000L;


單精度浮點數用F或者f標記。建議使用F。
例如
在Java中,
float f = 12.345;
System.out.println(f);
編譯時會報錯 錯誤: 不相容的型別: 從double轉換到float可能會有損失
解決辦法 float f = 12.345F;

11.資料型別轉換
預設轉換(從小到大的轉換)
A:byte,short,char—int—long—float—double
B:byte,short,char相互之間不轉換,他們參與運算首先轉換為int型別
舉例
=================================================================

1 byte a = 3;
2 
3 int b = 4;
4 
5 byte c = a + b;//有問題
6 
7 int d = a + b;//沒有問題

=================================================================
上述 byte c = a + b;//有問題
如何解決?用強制型別轉換


12.強制轉換:
從大的資料型別到小的資料型別。

格式:
目標資料型別 變數 = (目標資料型別) (被轉換的資料);

注意:
不要隨意的去使用強制轉換,因為它隱含了精度損失問題。
那麼,
//用強制型別轉換改進
byte c = (byte) (a + b);
System.out.println(c);

13.思考題:看看下面兩個定義有沒有區別呢?
float f1 = (float)12.345;
float f2 = 12.345f;

f1其實是通過一個double型別轉換過來的。
而f2本身就是一個float型別。(建議用f2的寫法)

14.面試題
A面試題:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是編譯失敗的呢?為什麼呢?


答:b = b1 + b2;是有問題的。
因為變數相加,會首先看型別問題,最終把結果賦值的也會考慮型別問題。
常量相加,首先做加法,然後看結果是否在賦值的資料類型範圍內,如果不是,才報錯。

也就是說。b = b1 + b2; -----這個是型別提升,所有有問題。b1 + b2首先整體提升為int型別(byte,short,char相互之間不轉換,他們參與運算首先轉換為int型別),int型別的(b1+b2)賦值給byte型別的b,所以有損失精度的錯誤。

b = 3 + 4; //常量,先把結果計算出來,然後看是否在byte的範圍內,如果在就不報錯。也就是說,編譯器把3+4看做一個常量而不是變數的加法運算。所以不報錯

15.強制轉換資料溢位後的結果怎麼算(一個例項)

byte b = 130;有沒有問題?如果我想讓賦值正確,可以怎麼做?結果是多少呢?

//我們可以使用強制型別轉換
byte b = (byte) 130;

//結果是多少呢?
System.out.println(b);

分析過程:
我們要想知道結果是什麼,就應該知道是如何進行計算的。
而我們又知道計算機中資料的運算都是補碼進行的。
而要得到補碼,首先要計算出資料的二進位制。

A:獲取130這個資料的二進位制。
00000000 00000000 00000000 10000010
這是130的原碼,也是反碼,還是補碼。
B:做擷取操作,截成byte型別的了。
10000010 
這個結果是補碼。
C:已知補碼求原碼。(注意不要漏掉這一步,因為記憶體中操作的是補碼,而我們看到的是補碼,所以還要轉換成原碼)
符號位 數值位
補碼: 1 0000010

反碼: 1 0000001

原碼: 1 1111110
16.
//直接輸出一個字元
System.out.println(‘a‘); //輸出a
//輸出一個字元和一個整數做加法
System.out.println(‘a‘+1); //輸出98

ASCII碼錶。
記住三個值:
‘a‘ 97
‘A‘ 65
‘0‘ 48注意

17.字串參與運算

1 System.out.println("hello"+‘a‘+1); //輸出helloa1,hello優先與‘a’結合
2 System.out.println(‘a‘+1+"hello"); //輸出98hello,‘a’優先與1結合,形成98再與hello結合
3 
4 System.out.println("5+5="+5+5); //輸出5+5=55,字串與數字5先結合
5 System.out.println(5+5+"=5+5"); //輸出10=5+5,5+5優先形成10,再與字串結合
補:‘a’+1有型別提升???! day3 1.在定義Long或者Float型別變數的時候,要加L或者f。   整數預設是int型別,浮點數預設是double。   byte,short在定義的時候,他們接收的其實是一個int型別的值。   這個是自己做了一個數據檢測的,如果不再它們的範圍內,就報錯。   float表示的資料範圍比long的範圍要大   long:2^63-1   float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1 2.面試題:Java語言中的字元char可以儲存一箇中文漢字嗎?為什麼呢?  可以。因為java語言中的字元佔用兩個位元組。(Java中char佔兩個位元組,C語言中char佔一個位元組)  Java語言採用的是Unicode編碼。 3.  A:整數相除只能得到整數。如果想得到小數,必須把資料變化為浮點數型別  B:/獲取的是除法操作的商,%獲取的是除法操作的餘數 =========================================================================  System.out.println(x/y); //整數相除只能得到整數   //我就想得到小數,該腫麼辦呢?   //只需要把操作的資料中任意的一個數據變為浮點數   System.out.println(x*1.0/y);   //%的應用   System.out.println(x%y); //得到的是餘數 ========================================================================== 4.++,--運算子的使用 //參與運算使用
 1  int a = 3;
 2    int b = 4;
 3 
 4    int c = a++;
 5 
 6    int d = b--;
 7 
 8    System.out.println("a:"+a); //輸出為4
 9 
10    System.out.println("b:"+b); //輸出為3
11 
12    System.out.println("c:"+c); //輸出為3
13 
14    System.out.println("d:"+d); //輸出為4

5.一個面試題
面試題:
short s=1;s = s+1; 

short s=1;s+=1;
上面兩個程式碼有沒有問題,如果有,那裡有問題。

 1 class OperatorTest {
 2 public static void main(String[] args) {
 3 //short s = 1;
 4 //s = s + 1;
 5 //System.out.println(s);
 6 
 7 short s = 1;
 8 s += 1; //好像是 s = s + 1;
 9 System.out.println(s);
10 }
11 }

為什麼第二個木有問題呢?
擴充套件的賦值運算子其實隱含了一個強制型別轉換。

s += 1;
不是等價於 s = s + 1;
而是等價於 s = (s的資料型別)(s + 1);
(個人理解)也就是說,s = s + 1中的s + 1包含了加法運算,short型別出現了提升(提升為int型別)
而s+=1本身隱含了強制的型別轉換


6.邏輯運算子:
&,|,^,!
&&,||

特點:
邏輯運算子一般用於連線boolean型別的表示式或者值。

表示式:就是用運算子把常量或者變數連線起來的符合java語法的式子。
算術表示式:a + b
比較表示式:a == b

結論:
&邏輯與:有false則false。
|邏輯或:有true則true。
^邏輯異或:相同為false,不同為true。
舉例:情侶關係。男男,男女,女男,女女
!邏輯非:非false則true,非true則false。
特點:偶數個不改變本身。

例如
int a = 3;
int b = 4;
int c = 5;

//&邏輯與

1 System.out.println((a > b) & (a > c)); //false & false = false
2 System.out.println((a > b) & (a < c)); //false & true = false
3 System.out.println((a < b) & (a > c)); //true & false = false
4 System.out.println((a < b) & (a < c)); //true & true = true

7.Java中&&與&

&&和&的區別? 同理||和|的區別?
A:最終結果一樣。
B:&&具有短路效果。左邊是false,右邊不執行。

開發中常用的邏輯運算子:
&&,||,!
示例

1 //boolean b1 = ((x++ == 3) & (y++ == 4));
2 //boolean b1 = ((x++ == 3) && (y++ == 4));
3 //boolean b1 = ((++x == 3) & (y++ == 4));
4 boolean b1 = ((++x == 3) && (y++ == 4));
5 System.out.println("x:"+x);
6 System.out.println("y:"+y);
7 System.out.println(b1);

8.位運算子:
&,|,^,~
<<,>>,>>>

注意:
要做位運算,首先要把資料轉換為二進位制。
例子

相關推薦

_2015Java基礎視訊-深入淺出精華 筆記2015102523:28:50

day01 win 7系統開啟DOS有趣方法:按住shift+右鍵,單擊“在此處開啟命令視窗”(注意:在此處可以是任何的資料夾,不一定是桌面) 用DOS刪除的檔案不可以在回收站恢復?!! 常用DOS命令 d: 回車 碟符切換 dir(direct

_2015Java基礎視訊-深入淺出精華 筆記(day01~day10)

本筆記是個人筆記+摘錄筆記相結合,非完全原創 day01 win 7系統開啟DOS有趣方法:按住shift+右鍵,單擊“在此處開啟命令視窗”(注意:在此處可以是任何的資料夾,不一定是桌面)用DOS刪除的檔案不可以在回收站恢復?!!常用DOS命令d: 回車 碟符切換dir(directory)

_2015Java基礎視訊-深入淺出精華 筆記(day11~day17)(201622817:44:38)

package cn.itcast.test; import java.util.Scanner; import cn.itcast.dao.UserDao; import cn.itcast.dao.impl.UserDaoImpl; import cn.itcast.game.Gues

--java深入淺出精華學習筆記Day01

計算機基礎知識:開啟控制行的方法:win+R,cmd回車Tips:1.切換碟符的時候大小寫無所謂。2.安裝軟體的時候在非系統盤裡建立一個新的目錄,把所有的程式檔案放到這個目錄起來,這樣既不佔系統盤空間,也不會把非系統盤搞得亂七八糟。3.刪除帶內容的資料夾:rd後加/s關鍵字,

--java深入淺出精華學習筆記Day07

成員變數和區域性變數的區別:成員變數:類中方法外               堆記憶體中                隨著物件的建立存在                隨著物件的消失而消失                有預設初始化值區域性變數:方法定義中或者方法宣告上  

--Java基礎視訊-深入淺出精華

package cn.itcast.test; import java.util.Scanner; import cn.itcast.dao.UserDao; import cn.itcast.dao.impl.UserDaoImpl; import cn.itcast.game.Gues

--java深入淺出精華學習筆記Day08

工具中使用靜態:在同一個類中,main方法只能訪問靜態方法。【錯誤:無法從靜態上下文中引用非靜態,這樣的錯誤一定是因為在main方法中呼叫了非靜態方法。】對非靜態方法來說,只能通過物件(也就是其他類的物件)來呼叫非靜態方法。靜態方法當然也可以,而且靜態方法可以直接呼叫類名來訪

--java深入淺出精華學習筆記Day02

Java基本語法關鍵字:被java賦予特殊含義的單詞要點:關鍵字必須全部小寫;goto和const作為保留字存在,目前並不實用注意:main雖然被JVM識別,但是它並不是關鍵字。String、System也被JVM識別,但是它有大寫字母,所以也不是關鍵字。關鍵字列表:識別符號

--java深入淺出精華學習筆記Day09

這幾天的課真是越來越難了。。。。final:我們知道,在繼承中,有方法的重寫這一項。如果我不想讓子類重寫父類的方法,應該怎麼做?針對這種情況,Java提供了關鍵字final。final可以修飾類、方法、變數。在父類中,如果final修飾了一個方法,在子類中試圖對該方法進行重寫

2016最新整理第15期C,C++基礎班就業班全套

c++ c語言培訓教材 傳智播客c++推薦優秀課程,畢業就業首選C++培訓課程視頻地址:http://blog.sina.com.cn/s/blog_1706603600102wxlb.html傳智播客C++第15期2016最新整理傳智播客第15期C,C++基礎班就業班全套

C/C 各種開發環境搭建視訊工具文件免費教程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C++就業班完整版培訓視訊教程第五期完整版看完就工作!

掌握了C語言,學習其他程式語言將所向無敵? 當掌握了C語言後,再去學習其他面向過程的語言,最多一個星期就能學會。因為萬變不離其宗,只是語法上有些許更改,而思想卻沒有更改。有些語言,甚至1個小時就明白如何使用。學習C語言後,學習C++,Java ,Objective C ,PHP將事半功倍。微軟不招學.NET的

C/C++各種開發環境搭建視訊工具文件免費教程

(有圖有真相)C/C++各種開發環境搭建視訊工具文件免費教程目錄截圖如下:狠狠點選!C/C++各種開發環境搭建教程資料下載地址:http://pan.baidu.com/s/1kT2YvEB為滿足不同層次學員的需求,我們把環境搭建教程資料分為《基礎班必備環境》與《就業班必備環境》兩種。同學們可以根據自己實際情

【備忘】35期JavaEE工程師從基礎到實戰視訊

【No26】傳智播客35期JavaEE工程師從基礎到實戰視訊 就業班課程目錄:      day01_html程式設計     day02_css程式設計     day03_javascript基礎     day04_javascript加強     day05xml

黑馬23期Linux+Nginx 筆記201782519:12:50

過程 style aid src linux環境 下載 http baidu span 主要是介紹在Linux環境下搭建nginx的過程。 筆記下載: 鏈接:https://pan.baidu.com/s/1o7KvxB8 密碼:7xki黑馬23期Linux+Ngin

2018黑馬訓練營JAVAEE49期培訓視頻教程

str 企業實戰 教程 -h batis crm mvc 互聯網 oracle數據 百度雲盤下載 課程介紹黑馬訓練營49期javaEE 培訓視頻,高清視頻,配套資料齊全。 課程目錄01-JavaSE知識(學習27天)02-Web前端知識(學習5天)03-MySql數據庫與J

20183python人工基礎就業班全套視頻教程

聯網 fff href 私人 二維碼 教程 ems water blog   今天筆者為大家準備了最近超級火的python人工智能全套視頻教程,希望能為有誌從事人工智能的小夥伴,提供一些幫助,讓省下更多的時間來專註學習,能為大家提供優質的學習環境和資料是

2018黑馬python15期視訊教程

01 網路程式設計 02 多工 03 web伺服器v3.1 04 Python高階語法v3.1 05 MySQL資料庫v3.1 06 mini-web框架v3.1 07 HTML和CSS 08 首頁佈局案例和移動佈局 09 JavaScriptv 10 jQuery和js庫 11 Django框架

2018最新()黑馬訓練營JAVAEE49期培訓視訊教程

課程介紹 黑馬訓練營49期javaEE 培訓視訊,高清視訊,配套資料齊全。 課程目錄 01-JavaSE知識(學習27天) 02-Web前端知識(學習5天) 03-MySql資料庫與JDBC(學習3天) 04-JavaWeb知識(學習12天) 05-JavaWeb企業實戰專案(學習6天) 06-Hi

最新2018黑馬訓練營JAVAEE49期培訓視訊教程

課程介紹 黑馬訓練營49期javaEE 培訓視訊,高清視訊,配套資料齊全。 課程目錄 01-JavaSE知識(學習27天) 02-Web前端知識(學習5天) 03-MySql資料庫與JDBC(學習3天) 04-JavaWeb知識(學習12天) 05-JavaWeb企業實戰專案