天天看點

雷林鵬分享:Java快速入門-Java是什麼

  java 是什麼?

  java 的特點:

  面向對象

  平台無關(跨平台):

  簡單

  安全

  體系結構 - 中性

  可移植

  健壯

  多線程

  解釋型

  高性能

  分布式

  動态

  java安裝及環境設定:

  java的安裝及環境配置可以看java開發環境配置章節。

  java 基礎文法

  對象 - 對象有狀态和行為。例如:狗有狀态色,名字,品種以及行為 - 搖頭晃腦,吠叫,吃。對象是類的一個執行個體。

  類 - 類可以被定義為一個模闆/藍本描述該行為/狀态及其支援對象類型。

  方法 - 方法基本上是一個行為。一個類可以包含(擁有)多個方法。 将邏輯寫入方法,資料操縱和所有的動作都會被執行。

  執行個體變量 - 每個對象都有其獨特(唯一)的執行個體變量。對象的狀态是由配置設定給這些瞬間變量的值來建立。

  第一個java程式:

  讓我們來看看,以下代碼将列印一個簡單詞語 hello world

  public class myfirstjavaprogram{

  /* this is my first java program.

  * this will print 'hello world' as the output

  */

  public static void main(string []args){

  system.out.println("hello world"); // prints hello world by manongjc.com

  }

  關于java程式,記住以下幾點非常重要。

  區分大小寫 - java是大小寫敏感的,這意味着辨別hello和hello在java中有不同的含義。

  類名稱 - 對于所有的類名首字母應該大寫。如果幾個單詞來形成一個類的名字,那麼每個單詞的第一個字母應該大寫。例如:class myfirstjavaclass

  方法名稱 - 所有方法的名稱的開始字母應該用小寫字母。如果幾個單詞來形成方法的名稱,那麼每個單詞的第一個字母要大寫。例如:public void mymethodname()

  程式檔案名 - 程式檔案名應當和類名完全比對。儲存檔案時,應該使用類名儲存它(記住java是區分大小寫),再追加 '.java' 到檔案名稱的末尾.(如果檔案名和類名不比對程式将無法編譯)。例如:假設“myfirstjavaprogram”是類名。那麼這個檔案應當被儲存為 'myfirstjavaprogram.java'

  public static void main(string args[]) - java程式處理是從main()方法開始,這是每一個java程式開始的必須部分.

  java 辨別符:

  所有的java元件都需要一個名字。用于類,變量和方法名稱叫做辨別符。

  在java中的辨別符有幾點要記住。它們如下:

  所有的辨別符應該由字母(a至z或a到z),貨币字元($)或下劃線(_)組成。

  辨別符的第一個字元之後可以具有字元的任意組合。

  關鍵字不能被用作辨別符。

  辨別符最重要特點是區分大小寫的。

  合法辨別符的示例:age, $salary, _value, __1_value

  非法辨別符的示例:123abc, -salary

  java修飾符:

  就像其它語言,它可以改變類,方法等,通過使用修辭符。有兩大類的修辭符。

  通路修飾符 : default, public , protected, private

  非通路修飾符 : final, abstract, strictfp

  我們将會在下一節中研究/學習有關修飾符的更多細節。

  java 變量:

  我們會看到下面java的變量類型:

  局部變量

  類變量(靜态變量)

  執行個體變量(非靜态變量)

  java 數組:

  數組是存儲相同類型的多個變量的對象。然而數組本身就是在堆上的對象。我們将探讨如何聲明,建構并初始化在即将到來的章節。

  java 枚舉:

  枚舉是在java 5.0中才開始進行介紹。枚舉一個變量隻限于幾個預定義值之一。在此枚舉清單中的值稱為枚舉。

  通過使用枚舉能夠減少代碼的錯誤的數量。

  因為,如果我們考慮了鮮榨果汁店的一個應用執行個體将有可能限制玻璃尺寸為小,中,大。這将確定不會允許任何人訂制尺寸在小型,中型或大型之外的類型。

  例子:

  class freshjuice{

  enum freshjuicesize{ small, medium, large }

  freshjuicesize size;

  public class freshjuicetest{

  public static void main(string args[]){

  freshjuice juice = new freshjuice();

  juice.size = freshjuice. freshjuicesize.medium ;

  system.out.println("size :" + juice.size);

  注:枚舉可以聲明為它們自己或在類中。方法,變量,構造函數可以也可以在枚舉内定義。

  java 關鍵字:

  下面列出了java中的保留字(關鍵字)。這些保留字不可以用作常量或變量或任何其它辨別符名稱。

<col>

abstract

assert

boolean

break

byte

case

catch

char

class

const

continue

default

do

double

else

enum

extends

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

strictfp

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

  java 注釋

  java支援單行和多行注釋非常類似于c和c++的注釋方式。 所有字元在注釋裡面,都是會被java編譯器忽略。

  * this is an example of multi-line comments.

  // this is an example of single line comment

  /* this is also an example of single line comment. */

  system.out.println("hello world");

  java資料類型

  在java中可用兩種資料類型:

  原始資料類型

  引用/對象資料類型

  java語言支援八種原始資料類型。原始資料類型是由語言預定義且由關鍵字命名。 現在讓我們來詳細看看八種原始資料類型。

  byte

  short

  int

  long

  float

  double

  boolean

  char

  引用資料類型

  使用類定義的構造建立引用變量。它們是用來通路對象。這些變量被聲明為一個不能改變的特定類型。例如, employee, puppy 等。

  類對象,以及各種類型的數組變量,都在參考資料類型。

  任何引用變量的預設值是null。

  引用變量可以用于引用聲明類型或任何相容類型的任何對象。例如: animal animal = new animal("giraffe")

  java 字面值

  字面值是一個源代碼表示的固定值。它們是直接用代碼來表示,無需任何計算。

  字面值可以被配置設定給任何基本類型的變量。例如:

  byte a = 68;

  char a = 'a'

  在java中的字元串字面值規定,就像它們在大多數其他語言的字元序列一樣,使用一對雙引号包圍在它們之間。字元串的例子如下:

  "hello world"

  "two\nlines"

  "\"this is in quotes\""

  java語言支援字元串以及一些特殊的轉義序列字元文字。它們是:

符号

字元表示

\n

新一行 (0x0a)

\r

回車 (0x0d)

\f

換頁 (0x0c)

\b

倒退 (0x08)

\s

空格 (0x20)

\t

tab

\"

雙引号

\'

單引号

\\

反斜線

\ddd

八進制字元 (ddd)

\uxxxx

十六進制unicode字元 (xxxx)

  java通路修飾符:

  java提供了一些通路修飾符來設定類,變量,方法和構造函數的通路級别。這四個通路級别分别是:

  可見到包。不需要修飾這是預設的。

  隻可見到類(private)。

  可見到所有 (public).

  可見到包和所有子類(protected).

  java運算符

  java提供了一套豐富的運算符來操作變量。我們可以把所有的java運算符分成以下幾組:

  1. 算術運算符

  假設a=10, b=20,那麼

運算符

描述

示例

+

加法 - 對運算符的兩側的值增加

a + b = 30

-

減法- 從左操作數減去右操作數

a - b = -10

*

乘法- 相乘操作符兩側值

a * b = 200

/

除法 - 由右側操作數除以左側操作數

b / a = 2

%

模數- 由右側操作數除以左側操作數的餘數

b % a = 0

++

增量- 操作數的值增加1

b++ = 21

--

遞減 - 操作數的值減小1

b-- = 19

  2.關系運算符

==

檢查兩個操作數的值是否相等,如果是,則條件為true。

(a == b) 不為 true.

!=

檢查兩個操作數的值是否相等,如果值不相等,則條件為true。

(a != b) 為 true.

&gt;

檢查左邊的操作數的值是否大于右操作數的值,如果是,則條件為true。

(a &gt; b) 不為 true.

&lt;

檢查左邊的操作數的值是否小于右操作數的值,如果是,則條件為true。

(a &lt; b) 為 true.

&gt;=

檢查左邊的操作數的值是否大于或等于右操作數的值,如果是,則條件為true。

(a &gt;= b) 不為 true.

&lt;=

檢查左操作數的值是否小于或等于右操作數的值,如果是,則條件變為true。

(a &lt;= b) 為 true.

  3.位運算符:

&amp;

二進制與(and)操作符拷貝位的結果,如果它存在于兩個操作數。

(a &amp; b) = 12 也就是 0000 1100

|

二進制或(or)操作符拷貝位,如果它存在一個操作數中。

(a | b) = 61 也就是 0011 1101

^

二進制異或操作符拷貝,如果它被設定在一個操作數而不是兩個比特。

(a ^ b) = 49 也就是 0011 0001

~

二進制的補運算符是一進制的,具有“翻轉”位的效應。

(~a ) = -61 也就是 1100 0011 以2的補碼形式,由于它是一個帶符号二進制數。

&lt;&lt;

二進制向左移位運算符。左邊的操作數的值由右操作數指定的位數向左移動。

a &lt;&lt; 2 = 240 也就是 1111 0000

&gt;&gt;

二進制向右移位運算符。左邊的操作數的值是通過右操作數指定的位數向右移動。

a &gt;&gt; 2 = 15 也就是 1111

&gt;&gt;&gt;

右移補零運算符。左邊的操作數的值是通過右操作數指定的位數向右移動,并轉移值以零填充。

a &gt;&gt;&gt;2 = 15 也就是 0000 1111

  4.邏輯運算符:

&amp;&amp;

所謂邏輯與運算符。如果兩個操作數是非零那麼條件為true。

(a &amp;&amp; b) 為 false.

||

所謂邏輯or運算符。如果任何兩個操作數都非零那麼條件變為true。

(a || b) 為 true.

!

所謂邏輯非運算符。使用反轉其操作數的邏輯狀态。如果條件為true,那麼邏輯非運算結果為false。

!(a &amp;&amp; b) 為 true.

  5.指派運算符:

=

簡單的指派操作符,指派是從右側的操作數到左側的操作數

c = a + b 将配置設定 a + b 的值到 c

+=

加法與指派運算符,它将右操作數加上左操作數并配置設定結果左操作數

c += a 相當于 c = c + a

-=

減法并指派運算符,從左邊的操作數減去右操作數并配置設定結果給左操作數

c -= a 相當于 c = c - a

*=

乘法與指派運算符,左操作數乘以右操作數并配置設定結果給左操作數

c *= a 相當于 c = c * a

/=

除法與指派運算符, 左操作數除以右操作數并配置設定結果給左操作數

c /= a 相當于 c = c / a

%=

模數與指派運算符, 這需要使用模量兩個操作數并配置設定結果左操作數

c %= a 相當于 c = c % a

&lt;&lt;=

左移位并指派運算符

c &lt;&lt;= 2 類似于c = c &lt;&lt; 2

&gt;&gt;=

右移位并指派運算符

c &gt;&gt;= 2 類似于 c = c &gt;&gt; 2

&amp;=

按位與指派運算符

c &amp;= 2 類似于 c = c &amp; 2

^=

按位異或并指派運算符

c ^= 2 類似于 c = c ^ 2

|=

按位或并指派運算符

c |= 2 類似于 c = c | 2

  6.其它運算符

  java語言支援其他一些運算符。

  6.1 條件運算符 ( ? : ):

  條件運算也被稱為三元運算符。這個操作符包括三個操作數,用于計算布爾表達式。 此運算符的目标是決定哪個值應配置設定給變量。運算符可寫為:

  variable x = (expression) ? value if true : value if false

  6.2 instanceof 運算符:

  此運算符僅用于對象引用變量。此運算符檢查對象是否是特定類型(類類型或接口類型)。instanceof運算被寫為:

  ( object reference variable ) instanceof (class/interface type)

  java運算符的優先級:

分類

操作符

關聯性

字尾

() [] . (點操作符)

左到右

一進制

++ - - ! ~

從右到左

乘法

* / %

加法

+ -

移動

&gt;&gt; &gt;&gt;&gt; &lt;&lt;

關系

&gt; &gt;= &lt; &lt;=

相等

== !=

位and

位xor

位 or

邏輯 and

邏輯or

條件

?:

指派

= += -= *= /= %= &gt;&gt;= &lt;&lt;= &amp;= ^= |=

逗号

,

  while 循環:

  while循環是一種控制結構,可以讓你重複執行任務的若幹次。

  while循環的文法是:

  while(boolean_expression)

  {

  //statements

  do ... while循環:

  do... while 循環類似于 while 循環,不同的是do ... while循環是保證至少執行一次。

  do ... while循環的文法是:

  do

  }while(boolean_expression);

  for 循環:

  for循環是一個循環控制結構,可以有效地編寫需要執行的特定次數的循環。

  當知道任務要多少次重複,一個for循環是非常有用的。

  for循環的文法是:

  for(initialization; boolean_expression; update) { //statements }

  改進java的for循環:

  從java5中開始增強了for循環。這主要是用于數組。

  增強的for循環的文法是:

  for(declaration : expression) { //statements }

  break關鍵字:

  關鍵字break用于停止整個循環。break關鍵字必須使用在任何循環或switch語句中。

  break關鍵字将停止最内層循環的執行,并開始執行的下一行代碼塊之後的語句。

  continue關鍵字:

  continue關鍵字可以在任一環的控制結構可以使用。它會導緻循環立即跳轉到循環的下一次疊代。

  在for循環中,continue關鍵字使流程控制立即跳轉到update語句。

  在while循環或do/while循環,流控制立即跳轉到布爾表達式。

  if 語句:

  if 語句包含一個布爾表達式後跟一個或多個語句。

  一個if語句的文法:

  if(boolean_expression)

  //statements will execute if the boolean expression is true

  if...else 語句:

  if語句可以跟着一個可選的else語句,當else執行時,if 中布爾表達式是假的。

  if...else 的文法是:

  if(boolean_expression){

  //executes when the boolean expression is true

  }else{

  //executes when the boolean expression is false

  if...else if...else 語句:

  if 語句可以跟着一個可選的 else if ... else 語句,這是非常有用的,使用單一的 if...else if 語句以測試各種條件。

  if...else 的文法是:

  if(boolean_expression 1){

  //executes when the boolean expression 1 is true

  }else if(boolean_expression 2){

  //executes when the boolean expression 2 is true

  }else if(boolean_expression 3){

  //executes when the boolean expression 3 is true

  }else {

  //executes when the one of the above condition is true.

  嵌套 if...else 語句:

  嵌套if-else語句始終是合法的。當要 if , else if , else else語句時有幾點要牢記。

  一個 if 可以有零或一個else,它必須跟從 else if 之後。

  一個 if 可以零個或多個 else if ,它們必須在 else 之前。

  一旦一個 else if 條件成功,其他剩餘的 else if 或 else 将不會被測試。

  嵌套 if...else 的文法如下:

  if(boolean_expression 2){

  switch 語句:

  switch語句允許一個變量來反對值清單平等的進行測試。每個值被稱為一個的情況(case),該變量被接通檢查每種情況。

  switch 的文法是:

  switch(expression){

  case value :

  break; //optional

  //you can have any number of case statements.

  default : //optional

  java 方法:

  java方法是組合在一起來執行操作語句的集合。當調用system.out.println方法,例如,系統實際上是在控制台上顯示執行的語句的消息。

  在一般情況下,方法的文法如下:

  modifier returnvaluetype methodname(list of parameters) { // method body; }

  方法定義包含一個方法頭和方法體。下面是一個方法的所有部分:

  修飾符: 修飾符,這是可選的,告訴編譯器如何調用該方法。這定義了該方法的通路類型。

  傳回類型: 方法可能會傳回一個值。returnvaluetype是方法傳回的值的資料類型。有些方法執行所需的操作不傳回任何值。在這種情況下,returnvaluetype是關鍵字 void.

  方法名稱: 這是該方法的實際名稱。方法的名稱和參數表共同構成方法簽名。

  參數: 參數就像一個占位符。當調用一個方法,傳遞一個參數值。這個值被稱為實際參數或參數。參數清單表示類型,順序和方法的參數的數量。參數是可選的;也就是說,一個方法可包含任何參數。

  方法體: 方法體包含了定義方法執行語句的集合。

  java類和對象:

  對象 - 對象有狀态和行為。例如: 狗有狀态顔色,名字,品種以及行為-擺尾,叫聲,吃。對象是類的一個執行個體。

  類- 類可以被定義為一個模闆/藍本來描述行為/狀态,其類型支援對象。

  一個類的示例如下:

  public class dog{

  string breed;

  int age;

  string color;

  void barking(){

  void hungry(){

  void sleeping(){

  一個類可以包含任何下列變量類型。

  局部變量 . 在方法,構造函數或塊裡面定義的變量稱為局部變量。變量将被聲明在方法中并初始化,當方法調用完成變量也将被銷毀。

  執行個體變量 . 執行個體變量是在一個類裡,在方法以外的變量。這些變量在類加載時執行個體化。執行個體變量可以在類内部的任何方法,構造函數或特定類的塊中通路。

  類變量 . 類變量是在一個類中聲明的變量,任何方法外,用static關鍵字。

  異常處理:

  一種捕獲異常方法就是使用try和catch關鍵字組合。 try/ catch塊将被置于可能産生異常的代碼。一個try/ catch塊中的代碼被稱為保護代碼,使用try/ catch語句的文法如下所示:

  try

  //protected code

  }catch(exceptionname e1)

  //catch block

  多個catch塊:

  一個try塊可以跟随多個catch塊。多個catch塊的文法如下所示:

  }catch(exceptiontype1 e1)

  }catch(exceptiontype2 e2)

  }catch(exceptiontype3 e3)

  throws/throw 關鍵字:

  如果一個方法不處理檢查異常,該方法必須使用關鍵字throws聲明它。 throws關鍵字出現在方法簽名的結束位置。

  可以抛出一個異常,用throw關鍵字在一個新執行個體化或一個剛剛捕獲的異常。 試着去了解 throws 和 throw 關鍵字的不同。

  finally 關鍵字

  finally關鍵字用于建立一個代碼塊在try塊後面。 finally塊中的代碼始終執行,無論是否發生異常。

  使用finally塊,可以運作要執行,無論是在受保護的代碼會不會發生發生異常都會被執行,可以放一些清理工作之類的語句(代碼)。

  finally塊必須出現在catch塊的結束位置,它的文法如下:

  }finally

  //the finally block always executes.

(編輯:雷林鵬