您好,登錄后才能下訂單哦!
我們從零開始學習大數據技術,從java基礎,到Linux技術涉獵,再深入到大數據技術的Hadoop、Spark、Storm技術,最后到大數據企業平臺的搭建,層層遞進,由點到面!希望技術大牛能過來指導學習。
上一節了解Java的發展史和基本操作,本節我們開始學習Java語言的基礎語法,將會圍繞以下幾個知識點進行展開學習:
關鍵字
標識符
注釋
常量和變量
運算符
語句
函數
數組
PS:本節先學習前面4個知識點。
1、關鍵字
關鍵字的概述
· 被Java語言賦予特定含義的單詞
關鍵字的特點
· 組成關鍵字的字母全部小寫
關鍵字注意事項
goto和const作為保留字存在,目前并不使用
類似Notepad++這樣的高級記事本,針對關鍵字有特殊的顏色標記,非常直觀。
class,public,static,void都是關鍵字,【更多關鍵字】https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
https://baike.baidu.com/item/java%E5%85%B3%E9%94%AE%E5%AD%97/5808816?fr=aladdin
2、標識符
(1)標識符概述:
就是給類,接口,方法,變量等取名字時使用的字符序列。
(2)主要組成規則:
英文大小寫字母
數字字符
$和_
(3)注意事項:
不能以數字開頭
不能使用Java中的關鍵字
Java語言嚴格區分大小寫
(4)常見的命名規則(建議遵循見名知意原則):
如:要定義一個學生類
class student{}
命名規則主要如下:
a.包:
其實就是文件夾,用于把相同的類名進行區分,全部小寫
單級:apple
多級:abc.apple
b.類或接口:
一個單詞:單詞的首字母必須大寫
舉例:Student, Dog
多個單詞:每個單詞首字母必須大寫
舉例:HelloWorld,StudentName
c.方法或者變量:
一個單詞:單詞首字母小寫
舉例:main,age
多個單詞:從第二個單詞開始,每個單詞的首字母大寫
舉例:studentAge,showAllNames()
d.常量:
一個單詞:全部大寫
舉例:PI
多個單詞:每個字母都大寫,用_隔開
舉例:PERSON_NAME
3、注釋
在Java開發中,我們需要為代碼寫相關注釋.
(1)注釋概述:
用于解釋說明程序的文字
(2)Java中注釋分類格式:
a.單行注釋
格式: // 注釋文字
b.多行注釋:
格式:/* 注釋文字 */
c.文檔注釋:
格式:/** 注釋文字 */
(3)編寫帶注釋版本的HelloWorld案例
【注意】注釋是一個程序員必須要具有的良好編程習慣。建議初學者編寫程序養成以下習慣:
先寫注釋再寫代碼,將自己的思想通過注釋先整理出來,再用代碼去體現。
因為代碼僅僅是思想的一種體現形式而已
規范如下圖: ①需求 ②分析 ③實現 ④代碼體現
(4)注釋的作用
A:解釋說明程序,提高了代碼的閱讀性
B:可以幫助我們調試程序,后面我們會講解一個更高端的一個調試工具
4、常量
(1) 常量概述
· 常量是指程序在運行過程中其值不能改變的量
(2)Java中常量的分類
a.字面值常量
b.自定義常量(后面內容做進一步說明)
字符串常量:用雙引號括起來的內容
eg:"Hello","world","HelloWorld"
整數常量:所有的整數
eg:12,23
小數常量:所有小數
eg:1234.5678
字符常量: 用單引號括起來的內容
eg:'a','A','0'
布爾常量:比較特殊,只有true和false
空常量: null,(后面會細講)
(3)在Java中針對整數常量提供了四種表現形式:
a.二進制 由0,1組成。以0b開頭
b.八進制 由0,1,...7組成。以0開頭
c.十進制 由0,1,2, ....9組成。整數默認是十進制
d.十六進制 由0,1,2, ...9,a,b,c,d,e,f(大小寫均可)組成。以0x開頭
(4)下面我們來創建一個案例ConstantDemo:
程序執行結果如下:
5、進制轉換
進制概述:就是進位制,是人們規定的一種進位方法,對于任何一種進制---X進制,就表示某一位置上的運算時是逢X進一位。二進制就是逢二進一,八進制就是逢八進一,十進制就是逢十進一,十六進制就是逢十六進一。
(1)其他進制到十進制
系數:就是每一個位上的數值
基數:X進制的基數就是X
權:對每一個位上的數據,從右開始,并且從0開始編號,對應的編號就是該數據的權
結果:系數*基數^權次冪之和
(2)十進制到其他進制
除基數取余,直到商為0,余數反轉
(3)進制轉換的快速轉換法
a.十進制和二進制間的轉換
128 64 32 16 8 4 2 1碼
b.二進制到八進制,十六進制的轉換
(4)有符號數據表示法
在計算機內,有符號數有3種表示法:原碼,反碼和補碼。
為什么要講解該知識點?因為計算機在操作的時候,所有數據的運算都是采用補碼進行計算的。
原碼:
就是二進制定點表示法,即最高位為符號位,“0表示正,”1表示負,其余位表示數值的大小
反碼:
正數的反碼與其原碼相同:負數的反碼是對其原碼逐位取反,但符號位除外。
補碼:
正數的補碼與其原碼相同,負數的補碼是在其反碼的末位加1.
舉例:
用原碼,反碼,補碼來分別表示+7,和-7.
首先:我們先得到7的二進制:111
原碼:
正數的原碼最高位(符號位)是0
負數的原碼最高位(符號位)是1
其他的是數值位
符號位 數值位
+7 0 0000111
-7 1 0000111?
反碼:
正數的反碼與原碼相同
負數的反碼與原碼符號位相同,數值位取反,就是1變0,0變1
符號位 數值位
+7 0 0000111
-7 1 1111000?
補碼:
正數的補碼與原碼相同
負數的補碼時在反碼的基礎上加1
符號位 數值位
+7 0 0000111
-7 1 1111001?
6、變量
(1)概述:在程序的執行過程中,其值在某個范圍內可以發生改變的量,用于存儲可變數據的容器
(2)變量的特點:
a.必須要有大小
b.存儲一定格式的可變數據
c.必須要有名字
(3)變量的組成規則:
a.必須用數據類型對其進行限定
b.在運算的時候,不可能時拿著這個空間去運算,我們真正運算時使用的是該空間中的值,所以就要給該空間取一個名字(即變量名)
c.即使有數據類型了,有變量名了,但是如果沒有值,這個空間也就是一個垃圾空間,沒有任何意義,所以我們給變量取名了,還需要進一步做初始化值
(4)變量的定義格式:
a.數據類型 變量名 = 初始化值;
b.數據類型 變量名;
變量名 = 初始化值;
7、數據類型
(1)Java語言是一種強類型語言,針對每種數據都提供了對應的數據類型,在內存中分配了不同大小的內存空間。
(2)分類:
A:基本數據類型:4類8種
B:引用數據類型:類,接口,數組。
(3)基本數據類型
a、整數 占用字節數
byte 1
short 2
int 4
long 8
b、浮點型
float 4
double 8
c、字符型
char 2
d、布爾型
Boolean 1
注意事項:
整數默認是int類型
浮點數默認是double
長整數要加L或者l
單精度的浮點數要加F或者f
布爾型默認值是false
案例:
程序執行結果如下:
使用變量時注意事項:
作用域:
變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。
初始化值
變量沒有初始化值不能直接使用
在一行上建議只定義一個變量(可讀性會更好)
案例(1)
同名程序案例:
執行結果:
取消同名,正確執行結果如下:
案例(2)
變量沒有初始化值
執行結果
變量初始化值:
8、數據類型轉換
(1)boolean類型不參與類型轉換
(2)默認轉換
a、從小到大
b、byte,short,char----int ----long ---float ---double
c、byte,short,char之間不相互轉換,直接轉成int類型參與運算
(3)強制轉換
a、從大到小
b、可能會有精度的損失,一般不建議這樣使用
c、格式:
目標數據類型 變量名 = (目標數據類型) (被轉換的數據);
(4)接下來出兩個思考題,留給大家思考:
a、下面兩種方式有區別嗎?
float f1 = 12.345;
float f2 = (float)12.345;
b、下面的程序有問題嗎,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
c、下面的操作結果是什么呢?
byte b = (byte) 130;
d、字符參與運算
是查找ASCII里面的值(http://www.asciima.com/ ASCII碼查看工具)
'a' 97
'A' 65
'0' 48
System.out.println('a');
System.out.println('A');
System.out.println('0');
e:字符串參與運算
這里其實是字符串的連接。
線下敲一下代碼,看下面的打印出來的結果是怎么樣的。
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5"=5+5");
以下是對應的ASCII表
本人能力有限,如有不足,還望指正
感謝大家一如既往的支持
希望一起分享給更多的人
讓大家一起學習大數據技術
歡迎交流
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。