傳智播客 劉意_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");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.位運算子:
&,|,^,~
<<,>>,>>>
注意:
要做位運算,首先要把資料轉換為二進位制。
例子
相關推薦
傳智播客 劉意_2015年Java基礎視訊-深入淺出精華版 筆記(2015年10月25日23:28:50)
day01 win 7系統開啟DOS有趣方法:按住shift+右鍵,單擊“在此處開啟命令視窗”(注意:在此處可以是任何的資料夾,不一定是桌面) 用DOS刪除的檔案不可以在回收站恢復?!! 常用DOS命令 d: 回車 碟符切換 dir(direct
傳智播客 劉意_2015年Java基礎視訊-深入淺出精華版 筆記(day01~day10)
本筆記是個人筆記+摘錄筆記相結合,非完全原創 day01 win 7系統開啟DOS有趣方法:按住shift+右鍵,單擊“在此處開啟命令視窗”(注意:在此處可以是任何的資料夾,不一定是桌面)用DOS刪除的檔案不可以在回收站恢復?!!常用DOS命令d: 回車 碟符切換dir(directory)
傳智播客 劉意_2015年Java基礎視訊-深入淺出精華版 筆記(day11~day17)(2016年2月28日17: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 筆記(2017年8月25日19: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
2018年3月python傳智播客人工智能基礎就業班全套視頻教程
聯網 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企業實戰專案