Java簡介、基礎(chǔ)語法弄跌、常量變量甲喝、數(shù)據(jù)類型、數(shù)據(jù)轉(zhuǎn)換铛只、對象和類

1. java簡介

Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計語言和Java平臺的總稱埠胖。由James Gosling和同事們共同研發(fā),并在1995年正式推出淳玩。
Java分為三個體系:

JavaSE(J2SE)(Java2 Platform Standard Edition直撤,java平臺標(biāo)準(zhǔn)版)
JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平臺企業(yè)版)
JavaME(J2ME)(Java 2 Platform Micro Edition蜕着,java平臺微型版)谋竖。
java.png
主要特性
Java語言是簡單的
Java語言是面向?qū)ο蟮?Java語言是分布式的
Java語言是健壯的
Java語言是安全的
Java語言是體系結(jié)構(gòu)中立的
Java語言是可移植的
Java語言是解釋型的
Java是高性能的
Java語言是多線程的
Java語言是動態(tài)的

Java開發(fā)工具

Linux 系統(tǒng)红柱、Mac OS 系統(tǒng)、Windows 95/98/2000/XP蓖乘,WIN 7/8系統(tǒng)锤悄。
Java JDK 7、8……
Notepad編輯器或者其他編輯器嘉抒。
IDE:Eclipse

Eclipse下載地址: http://www.eclipse.org/
附贈: Eclipse基本使用操作

Eclipse.png

2.基礎(chǔ)語法

編寫Java程序時零聚,應(yīng)注意以下幾點:

大小寫敏感:Java是大小寫敏感的,這就意味著標(biāo)識符Hello與hello是不同的些侍。

類名:對于所有的類來說隶症,類名的首字母應(yīng)該大寫。如果類名由若干單詞組成岗宣,那么每個單詞的首字母應(yīng)該大寫蚂会,例如 MyFirstJavaClass 。

方法名:所有的方法名都應(yīng)該以小寫字母開頭耗式。如果方法名含有若干單詞颂龙,則后面的每個單詞首字母大寫。

源文件名:源文件名必須和類名相同纽什。當(dāng)保存文件的時候措嵌,你應(yīng)該使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的后綴為.java芦缰。(如果文件名和類名不相同則會導(dǎo)致編譯錯誤)企巢。

主方法入口:所有的Java 程序由public static void main(String []args)方法開始執(zhí)行。
Java標(biāo)識符

Java所有的組成部分都需要名字让蕾。類名浪规、變量名以及方法名都被稱為標(biāo)識符。
關(guān)于Java標(biāo)識符探孝,有以下幾點需要注意:

所有的標(biāo)識符都應(yīng)該以字母(A-Z或者a-z),美元符($)笋婿、或者下劃線(_)開始
首字符之后可以是字母(A-Z或者a-z),美元符($)、下劃線(_)或數(shù)字的任何字符組合
關(guān)鍵字不能用作標(biāo)識符
標(biāo)識符是大小寫敏感的
合法標(biāo)識符舉例:age顿颅、$salary缸濒、_value、__1_value
非法標(biāo)識符舉例:123abc粱腻、-salary
Java修飾符

像其他語言一樣庇配,Java可以使用修飾符來修飾類中方法和屬性。主要有兩類修飾符:

訪問控制修飾符 : default, public , protected, private
非訪問控制修飾符 : final, abstract, strictfp
Java關(guān)鍵字

下面列出了Java保留字绍些。這些保留字不能用于常量捞慌、變量、和任何標(biāo)識符的名稱柬批。下面只列舉與其他語言不同的關(guān)鍵字 :

關(guān)鍵字              描述
abstract           抽象方法啸澡,抽象類的修飾符
assert             斷言條件是否滿足
boolean            布爾數(shù)據(jù)類型
break              跳出循環(huán)或者label代碼段
byte               8-bit 有符號數(shù)據(jù)類型
catch              和try搭配捕捉異常信息
char               16-bit Unicode字符數(shù)據(jù)類型
extends            表示一個類是另一個類的子類
final              表示一個值在初始化之后就不能再改變了,表示方法不能被重寫袖订,或者一個類不能有子類
finally            為了完成執(zhí)行的代碼而設(shè)計的,主要是為了程序的健壯性和完整性嗅虏,無論有沒有異常發(fā)生都執(zhí)行代碼著角。
implements         表示一個類實現(xiàn)了接口
instanceof         測試一個對象是否是某個類的實例
native             表示方法用非java代碼實現(xiàn)
package            一系列相關(guān)類組成一個包
short              16位數(shù)字
strictfp           浮點數(shù)比較使用嚴(yán)格的規(guī)則
throw              拋出異常
throws             定義方法可能拋出的異常
transient          修飾不要序列化的字段
try                表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執(zhí)行finally中的代碼
volatile           標(biāo)記字段可能會被多個線程同時訪問,而不做同步
synchronized       表示同一時間只能由一個線程訪問的代碼塊
Java修飾符

Java語言提供了很多修飾符旋恼,主要分為以下兩類:

1.訪問修飾符
2.非訪問修飾符

1.訪問控制修飾符

Java中,可以使用訪問控制符來保護(hù)對類奄容、變量冰更、方法和構(gòu)造方法的訪問。Java支持4種不同的訪問權(quán)限昂勒。
默認(rèn)的蜀细,也稱為 default,在同一包內(nèi)可見戈盈,不使用任何修飾符奠衔。
私有的,以 private 修飾符指定塘娶,在同一類內(nèi)可見归斤。
共有的,以 public 修飾符指定刁岸,對所有類可見脏里。
受保護(hù)的,以 protected 修飾符指定虹曙,對同一包內(nèi)的類和所有子類可見迫横。

默認(rèn)訪問修飾符-不使用任何關(guān)鍵字
使用默認(rèn)訪問修飾符聲明的變量和方法,對同一個包內(nèi)的類是可見的酝碳。
接口里的變量都隱式聲明為 public static final
而接口里的方法默認(rèn)情況下訪問權(quán)限為 public矾踱。
如下例所示,變量和方法的聲明可以不使用任何修飾符疏哗。

String version = "1.5.1";
boolean processOrder() {
   return true;
}
訪問權(quán)限.png

訪問控制和繼承,請注意以下方法繼承的規(guī)則:

父類中聲明為 public 的方法在子類中也必須為 public呛讲。
父類中聲明為 protected 的方法在子類中要么聲明為 protected,要么聲明為 public返奉,不能聲明為 private圣蝎。
父類中聲明為 private 的方法,不能夠被繼承衡瓶。

2.非訪問修飾符
為了實現(xiàn)一些其他的功能徘公,Java 也提供了許多非訪問修飾符。

static 修飾符哮针,用來創(chuàng)建類方法和類變量关面。
final 修飾符坦袍,用來修飾類、方法和變量等太,final 修飾的類不能夠被繼承捂齐,修飾的方法不能被繼承類重新定義,修飾的變量為常量缩抡,是不可修改的奠宜。
abstract 修飾符,用來創(chuàng)建抽象類和抽象方法。
synchronized 和 volatile 修飾符,主要用于線程的編程苦掘。

static 修飾符

靜態(tài)變量:
static 關(guān)鍵字用來聲明獨立于對象的靜態(tài)變量醋闭,無論一個類實例化多少對象,它的靜態(tài)變量只有一份拷貝。
靜態(tài)變量也被稱為類變量。局部變量不能被聲明為 static 變量。

靜態(tài)方法:
static 關(guān)鍵字用來聲明獨立于對象的靜態(tài)方法泼差。靜態(tài)方法不能使用類的非靜態(tài)變量。
靜態(tài)方法從參數(shù)列表得到數(shù)據(jù)呵俏,然后計算這些數(shù)據(jù)堆缘。

對類變量和方法的訪問可以直接使用 classname.variablename 和 classname.methodname 的方式訪問。

final 修飾符

final 變量:
final 變量能被顯式地初始化并且只能初始化一次普碎。被聲明為 final 的對象的引用不能指向不同的對象套啤。但是 final 對象里的數(shù)據(jù)可以被改變。也就是說 final 對象的引用不能改變随常,但是里面的值可以改變潜沦。
final 修飾符通常和 static 修飾符一起使用來創(chuàng)建類常量。
public static final int BOXWIDTH = 6;
static final String TITLE = "Manager";

final 方法
類中的 final 方法可以被子類繼承绪氛,但是不能被子類修改唆鸡。
聲明 final 方法的主要目的是防止該方法的內(nèi)容被修改。
如下所示枣察,使用 final 修飾符聲明方法争占。
public class Test{
    public final void changeName(){
       // 方法體
    }
}

final 類
final 類不能被繼承,沒有類能夠繼承 final 類的任何特性序目。
public final class Test {
   // 類體
}

abstract 修飾符

抽象類:
抽象類不能用來實例化對象臂痕,聲明抽象類的唯一目的是為了將來對該類進(jìn)行擴(kuò)充。
一個類不能同時被 abstract 和 final 修飾猿涨。如果一個類包含抽象方法握童,那么該類一定要聲明為抽象類,否則將出現(xiàn)編譯錯誤叛赚。
抽象類可以包含抽象方法和非抽象方法澡绩。
abstract class Caravan{
   public abstract void goFast(); //抽象方法
}

抽象方法
抽象方法是一種沒有任何實現(xiàn)的方法稽揭,該方法的的具體實現(xiàn)由子類提供。
抽象方法不能被聲明成 final 和 static肥卡。
任何繼承抽象類的子類必須實現(xiàn)父類的所有抽象方法溪掀,除非該子類也是抽象類。
如果一個類包含若干個抽象方法步鉴,那么該類必須聲明為抽象類揪胃。抽象類可以不包含抽象方法。
抽象方法的聲明以分號結(jié)尾氛琢,例如:public abstract sample();喊递。
public abstract class SuperClass{
    abstract void m(); //抽象方法
}
class SubClass extends SuperClass{
     //實現(xiàn)抽象方法
      void m(){
          .........
      }
}

synchronized 修飾符

synchronized 關(guān)鍵字聲明的方法同一時間只能被一個線程訪問。
synchronized 修飾符可以應(yīng)用于四個訪問修飾符艺沼。
public synchronized void showDetails(){
.......
}

transient 修飾符

序列化的對象包含被 transient 修飾的實例變量時,java 虛擬機(jī)(JVM)跳過該特定的變量蕴掏。
該修飾符包含在定義變量的語句中障般,用來預(yù)處理類和變量的數(shù)據(jù)類型。
public transient int limit = 55;   // 不會持久化
public int b; // 持久化

volatile 修飾符

volatile 修飾的成員變量在每次被線程訪問時盛杰,都強(qiáng)制從共享內(nèi)存中重新讀取該成員變量的值挽荡。
而且,當(dāng)成員變量發(fā)生變化時即供,會強(qiáng)制線程將變化值回寫到共享內(nèi)存定拟。
這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值逗嫡。
一個 volatile 對象引用可能是 null青自。
public class MyRunnable implements Runnable
{
    private volatile boolean active;
    public void run()
    {
        active = true;
        while (active) // 第一行
        {
            // 代碼
        }
    }
    public void stop()
    {
        active = false; // 第二行
    }
}
通常情況下,在一個線程調(diào)用 run() 方法(在 Runnable 開啟的線程)驱证,在另一個線程調(diào)用 stop() 方法延窜。
如果 第一行 中緩沖區(qū)的 active 值被使用,那么在 第二行 的 active 值為 false 時循環(huán)不會停止抹锄。
但是以上代碼中我們使用了 volatile 修飾 active逆瑞,所以該循環(huán)會停止。
Java運算符

同其他語言運算符類似伙单。

循環(huán)語句

同其他語言運算符類似,只有一種介紹一下增強(qiáng)for循環(huán)获高。

 //普通for循環(huán)
for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
 }
Java 增強(qiáng) for 循環(huán)語法格式如下:
for(聲明語句 : 表達(dá)式)
{
   //代碼句子
}
聲明語句:聲明新的局部變量,該變量的類型必須和數(shù)組元素的類型匹配吻育。其作用域限定在循環(huán)語句塊念秧,其值與此時數(shù)組元素的值相等。
表達(dá)式:表達(dá)式是要訪問的數(shù)組名布疼,或者是返回值為數(shù)組的方法出爹。
public class Test {
   public static void main(String args[]){
      int [] numbers = {10, 20, 30, 40, 50};
 
      for(int x : numbers ){
         System.out.print( x );
         System.out.print(",");
      }
      System.out.print("\n");
      String [] names ={"James", "Larry", "Tom", "Lacy"};
      for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
      }
   }
}
以上實例編譯運行結(jié)果如下:
10,20,30,40,50,
James,Larry,Tom,Lacy,
Java注釋
public class HelloWorld {
   /* 這是第一個Java程序
    *它將打印Hello World
    * 這是一個多行注釋的示例
    */
    public static void main(String []args){
       // 這是單行注釋的示例
       /* 這個也是單行注釋的示例 */
       System.out.println("Hello World"); 
    }
}

3.Java的常量變量

常量

常量在程序運行時庄吼,不會被修改的量。在 Java 中使用 final 關(guān)鍵字來修飾常量严就,聲明方式和變量類似:

final double PI = 3.1415927;

雖然常量名也可以用小寫总寻,但為了便于識別,通常使用大寫字母表示常量梢为。字面量可以賦給任何內(nèi)置類型的變量渐行。例如:

byte a = 68;
char a = 'A'

byte、int铸董、long祟印、和short都可以用十進(jìn)制、16進(jìn)制以及8進(jìn)制的方式來表示粟害。當(dāng)使用常量的時候蕴忆,前綴0?表示8進(jìn)制,而前綴0x代表16進(jìn)制悲幅。例如:

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

字符串常量和字符常量都可以包含任何Unicode字符套鹅。例如:

char a = '\u0001';
String a = "\u0001";
變量

在Java語言中,所有的變量在使用前必須聲明汰具。聲明變量的基本格式如下:

type identifier [ = value][, identifier [= value] ...] ;
格式說明:type為Java數(shù)據(jù)類型卓鹿。identifier是變量名×衾螅可以使用逗號隔開來聲明多個同類型變量吟孙。

以下列出了一些變量的聲明實例。注意有些包含了初始化過程聚蝶。
int a, b, c;         // 聲明三個int型整數(shù):a杰妓、 b、c
int d = 3, e = 4, f = 5; // 聲明三個整數(shù)并賦予初值
byte z = 22;         // 聲明并初始化 z
String s = "runoob";  // 聲明并初始化字符串 s
double pi = 3.14159; // 聲明了雙精度浮點型變量 pi
char x = 'x';        // 聲明變量 x 的值是字符 'x'碘勉。

Java語言支持的變量類型有:

類變量:獨立于方法之外的變量稚失,用 static 修飾。
實例變量:獨立于方法之外的變量恰聘,不過沒有 static 修飾句各。
局部變量:類的方法中的變量。

public class Variable{
    static int allClicks=0;    // 類變量
 
    String str="hello world";  // 實例變量
 
    public void method(){
 
        int i =0;  // 局部變量
 
    }
}

Java 局部變量

1.局部變量聲明在方法晴叨、構(gòu)造方法或者語句塊中凿宾;
2.局部變量在方法、構(gòu)造方法兼蕊、或者語句塊被執(zhí)行的時候創(chuàng)建初厚,當(dāng)它們執(zhí)行完成后,變量將會被銷毀;
3.訪問修飾符不能用于局部變量产禾;
4.局部變量只在聲明它的方法排作、構(gòu)造方法或者語句塊中可見;
5.局部變量是在棧上分配的亚情。
6.局部變量沒有默認(rèn)值妄痪,所以局部變量被聲明后,必須經(jīng)過初始化楞件,才可以使用衫生。

Java 實例變量

1.實例變量聲明在一個類中,但在方法土浸、構(gòu)造方法和語句塊之外罪针;
2.當(dāng)一個對象被實例化之后,每個實例變量的值就跟著確定黄伊;
3.實例變量在對象創(chuàng)建的時候創(chuàng)建泪酱,在對象被銷毀的時候銷毀;
4.實例變量的值應(yīng)該至少被一個方法还最、構(gòu)造方法或者語句塊引用墓阀,使得外部能夠通過這些方式獲取實例變量信息;
5.實例變量可以聲明在使用前或者使用后憋活;
6.訪問修飾符可以修飾實例變量岂津;
7.實例變量對于類中的方法虱黄、構(gòu)造方法或者語句塊是可見的悦即。一般情況下應(yīng)該把實例變量設(shè)為私有。通過使用訪問修飾符可以使實例變量對子類可見橱乱;
8.實例變量具有默認(rèn)值辜梳。數(shù)值型變量的默認(rèn)值是0,布爾型變量的默認(rèn)值是false泳叠,引用類型變量的默認(rèn)值是null作瞄。變量的值可以在聲明時指定,也可以在構(gòu)造方法中指定危纫;
9.實例變量可以直接通過變量名訪問宗挥。但在靜態(tài)方法以及其他類中,就應(yīng)該使用完全限定名:ObejectReference.VariableName种蝶。

java 實例變量在整個類內(nèi)部是可訪問的契耿,而不管實例變量聲明在類的哪個位置。

Java 類變量(靜態(tài)變量)

1.類變量也稱為靜態(tài)變量螃征,在類中以static關(guān)鍵字聲明搪桂,但必須在方法構(gòu)造方法和語句塊之外。
2.無論一個類創(chuàng)建了多少個對象盯滚,類只擁有類變量的一份拷貝踢械。
3.靜態(tài)變量除了被聲明為常量外很少使用酗电。常量是指聲明為public/private,final和static類型的變量内列。常量初始化后不可改變撵术。
4.靜態(tài)變量儲存在靜態(tài)存儲區(qū)。經(jīng)常被聲明為常量德绿,很少單獨使用static聲明變量荷荤。
5.靜態(tài)變量在程序開始時創(chuàng)建,在程序結(jié)束時銷毀移稳。
6.與實例變量具有相似的可見性蕴纳。但為了對類的使用者可見,大多數(shù)靜態(tài)變量聲明為public類型个粱。
7.默認(rèn)值和實例變量相似古毛。數(shù)值型變量默認(rèn)值是0,布爾型默認(rèn)值是false都许,引用類型默認(rèn)值是null稻薇。變量的值可以在聲明的時候指定,也可以在構(gòu)造方法中指定胶征。此外塞椎,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。
8.靜態(tài)變量可以通過:ClassName.VariableName的方式訪問睛低。
9.類變量被聲明為public static final類型時案狠,類變量名稱一般建議使用大寫字母。如果靜態(tài)變量不是public和final類型钱雷,其命名方式與實例變量以及局部變量的命名方式一致骂铁。

Java 中靜態(tài)變量和實例變量區(qū)別

1.靜態(tài)變量屬于類,該類不生產(chǎn)對象罩抗,通過類名就可以調(diào)用靜態(tài)變量拉庵。
2.實例變量屬于該類的對象,必須產(chǎn)生該類對象套蒂,才能調(diào)用實例變量钞支。java 實例變量在整個類內(nèi)部是可訪問的,而不管實例變量聲明在類的哪個位置操刀。

在程序運行時的區(qū)別:
① 實例變量屬于某個對象的屬性烁挟,必須創(chuàng)建了實例對象,其中的實例變量才會被分配空間馍刮,才能使用這個實例變量信夫。

② 靜態(tài)變量不屬于某個實例對象,而是屬于類,所以也稱為類變量静稻,只要程序加載了類的字節(jié)碼警没,不用創(chuàng)建任何實例對象,靜態(tài)變量就會被分配空間振湾,靜態(tài)變量就可以被使用了杀迹。
總之,實例變量必須創(chuàng)建對象后才可以通過這個對象來使用押搪,靜態(tài)變量則可以直接使用類名來引用树酪。

轉(zhuǎn)義字符序列.png

4.數(shù)據(jù)類型

Java 的兩大數(shù)據(jù)類型:

內(nèi)置數(shù)據(jù)類型
引用數(shù)據(jù)類型
內(nèi)置數(shù)據(jù)類型

Java語言提供了八種基本類型。六種數(shù)字類型(四個整數(shù)型大州,兩個浮點型)续语,一種字符類型,還有一種布爾型厦画。

byte:
byte 數(shù)據(jù)類型是8位疮茄、有符號的,以二進(jìn)制補(bǔ)碼表示的整數(shù)根暑;
最小值是 -128(-2^7)力试;
最大值是 127(2^7-1);
默認(rèn)值是 0排嫌;
byte 類型用在大型數(shù)組中節(jié)約空間畸裳,主要代替整數(shù),因為 byte 變量占用的空間只有 int 類型的四分之一淳地;
例子:byte a = 100怖糊,byte b = -50。

short:
short 數(shù)據(jù)類型是 16 位薇芝、有符號的以二進(jìn)制補(bǔ)碼表示的整數(shù)
最小值是 -32768(-2^15)蓬抄;
最大值是 32767(2^15 - 1)丰嘉;
Short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間夯到。一個short變量是int型變量所占空間的二分之一;
默認(rèn)值是 0饮亏;
例子:short s = 1000耍贾,short r = -20000。

int:
int 數(shù)據(jù)類型是32位路幸、有符號的以二進(jìn)制補(bǔ)碼表示的整數(shù)荐开;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1)简肴;
一般地整型變量默認(rèn)為 int 類型晃听;
默認(rèn)值是 0 ;
例子:int a = 100000, int b = -200000。

long:
long 數(shù)據(jù)類型是 64 位能扒、有符號的以二進(jìn)制補(bǔ)碼表示的整數(shù)佣渴;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1)初斑;
這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上辛润;
默認(rèn)值是 0L;
例子: long a = 100000L见秤,Long b = -200000L砂竖。
"L"理論上不分大小寫,但是若寫成"l"容易與數(shù)字"1"混淆鹃答,不容易分辯乎澄。所以最好大寫。

float:
float 數(shù)據(jù)類型是單精度测摔、32位三圆、符合IEEE 754標(biāo)準(zhǔn)的浮點數(shù);
float 在儲存大型浮點數(shù)組的時候可節(jié)省內(nèi)存空間避咆;
默認(rèn)值是 0.0f舟肉;
浮點數(shù)不能用來表示精確的值,如貨幣查库;
例子:float f1 = 234.5f路媚。

double:
double 數(shù)據(jù)類型是雙精度、64 位樊销、符合IEEE 754標(biāo)準(zhǔn)的浮點數(shù)整慎;
浮點數(shù)的默認(rèn)類型為double類型;
double類型同樣不能表示精確的值围苫,如貨幣裤园;
默認(rèn)值是 0.0d;
例子:double d1 = 123.4剂府。

boolean:
boolean數(shù)據(jù)類型表示一位的信息拧揽;
只有兩個取值:true 和 false;
這種類型只作為一種標(biāo)志來記錄 true/false 情況腺占;
默認(rèn)值是 false淤袜;
例子:boolean one = true。

char:
char類型是一個單一的 16 位 Unicode 字符衰伯;
最小值是 \u0000(即為0)铡羡;
最大值是 \uffff(即為65,535);
char 數(shù)據(jù)類型可以儲存任何字符意鲸;
例子:char letter = 'A';烦周。
引用數(shù)據(jù)類型

在Java中尽爆,引用類型的變量非常類似于C/C++的指針。引用類型指向一個對象读慎,指向?qū)ο蟮淖兞渴且米兞拷挑妗_@些變量在聲明時被指定為一個特定的類型,比如 Employee贪壳、Puppy 等饱亿。變量一旦聲明后,類型就不能被改變了闰靴。

對象彪笼、數(shù)組都是引用數(shù)據(jù)類型。所有引用類型的默認(rèn)值都是null蚂且。

Site site = new Site("Runoob")配猫。

在實際開發(fā)過程中,我們經(jīng)常會遇到需要使用對象杏死,而不是內(nèi)置數(shù)據(jù)類型的情況泵肄。為了解決這個問題,Java語言為內(nèi)置數(shù)據(jù)類型(拆箱)提供了包裝類(裝箱)淑翼。

基本類型:byte 二進(jìn)制位數(shù):8    包裝類:Byte(Number)
基本類型:short 二進(jìn)制位數(shù):16  包裝類:Short(Number)
基本類型:int 二進(jìn)制位數(shù):32    包裝類:Integer(Number)
基本類型:long 二進(jìn)制位數(shù):64   包裝類:Long(Number)
基本類型:float 二進(jìn)制位數(shù):32  包裝類:Float(Number)
基本類型:double 二進(jìn)制位數(shù):64 包裝類:Double(Number)
基本類型:char 二進(jìn)制位數(shù):16   包裝類:Character
Java Math 類

Java 的 Math 包含了用于執(zhí)行基本數(shù)學(xué)運算的屬性和方法腐巢,如初等指數(shù)、對數(shù)玄括、平方根和三角函數(shù)冯丙。
Math 的方法都被定義為 static 形式,通過 Math 類可以在主函數(shù)中直接調(diào)用遭京。

public class Test {  
    public static void main (String []args)  
    {  
        System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  
        System.out.println("0度的余弦值:" + Math.cos(0));  
        System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  
        System.out.println("1的反正切值: " + Math.atan(1));  
        System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));  
        System.out.println(Math.PI);  
    }  
}
以上實例編譯運行結(jié)果如下:
90 度的正弦值:1.0
0度的余弦值:1.0
60度的正切值:1.7320508075688767
1的反正切值: 0.7853981633974483
π/2的角度值:90.0
3.141592653589793

Number & Math 類常用的一些方法:

xxxValue() 將 Number 對象轉(zhuǎn)換為xxx數(shù)據(jù)類型的值并返回胃惜。
compareTo() 將Number對象與參數(shù)比較。
equals() 判斷number對象是否與參數(shù)相等哪雕。
valueOf() 返回一個 Number 對象指定的內(nèi)置數(shù)據(jù)類型
toString() 以字符串形式返回值船殉。
parseInt() 將字符串解析為int類型。
abs() 返回參數(shù)的絕對值斯嚎。
random() 返回一個隨機(jī)數(shù)利虫。
......等等

Java 數(shù)組
dataType[] arrayRefVar = new dataType[arraySize];
dataType[] arrayRefVar = {value0, value1, ..., valuek};

public class TestArray {
   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};
 
      // 打印所有數(shù)組元素
      for (double element: myList) {
         System.out.println(element);
      }
   }
}
以上實例編譯運行結(jié)果如下:
1.9
2.9
3.4
3.5

5.數(shù)據(jù)轉(zhuǎn)換

自動類型轉(zhuǎn)換

整型、實型(常量)孝扛、字符型數(shù)據(jù)可以混合運算列吼。運算中幽崩,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型苦始,然后進(jìn)行運算。
轉(zhuǎn)換從低級到高級慌申。

低  ------------------------------------>  高

byte,short,char—> int —> long—> float —> double 

數(shù)據(jù)類型轉(zhuǎn)換必須滿足如下規(guī)則:

1. 不能對boolean類型進(jìn)行類型轉(zhuǎn)換陌选。
2. 不能把對象類型轉(zhuǎn)換成不相關(guān)類的對象理郑。
3. 在把容量大的類型轉(zhuǎn)換為容量小的類型時必須使用強(qiáng)制類型轉(zhuǎn)換。
4. 轉(zhuǎn)換過程中可能導(dǎo)致溢出或損失精度咨油,例如:
int i =128;   
byte b = (byte)i;
因為byte類型時8位您炉,最大值為127,所以當(dāng)強(qiáng)制轉(zhuǎn)換為int類型值128時候就會導(dǎo)致溢出役电。

5. 浮點數(shù)到整數(shù)的轉(zhuǎn)換是通過舍棄小數(shù)得到赚爵,而不是四舍五入,例如:
(int)23.7 == 23;        
(int)-45.89f == -45
自動類型轉(zhuǎn)換
必須滿足轉(zhuǎn)換前的數(shù)據(jù)類型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類型法瑟,例如: short數(shù)據(jù)類型的位數(shù)為16位冀膝,就可以自動轉(zhuǎn)換位數(shù)為32的int類型,同樣float數(shù)據(jù)類型的位數(shù)為32霎挟,可以自動轉(zhuǎn)換為64位的double類型窝剖。
public class ZiDongLeiZhuan{
        public static void main(String[] args){
            char c1='a';//定義一個char類型
            int i1 = c1;//char自動類型轉(zhuǎn)換為int
            System.out.println("char自動類型轉(zhuǎn)換為int后的值等于"+i1);
            char c2 = 'A';//定義一個char類型
            int i2 = c2+1;//char 類型和 int 類型計算
            System.out.println("char類型和int計算后的值等于"+i2);
        }
}
運行結(jié)果為:
char自動類型轉(zhuǎn)換為int后的值等于97
char類型和int計算后的值等于66

解析:c1的值為字符'a',查ascii碼表可知對應(yīng)的int類型值為97,'A'對應(yīng)值為65酥夭,所以i2=65+1=66赐纱。
強(qiáng)制類型轉(zhuǎn)換
1. 條件是轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的。
2. 格式:(type)value type是要強(qiáng)制類型轉(zhuǎn)換后的數(shù)據(jù)類型 實例:

public class QiangZhiZhuanHuan{
    public static void main(String[] args){
        int i1 = 123;
        byte b = (byte)i1;//強(qiáng)制類型轉(zhuǎn)換為byte
        System.out.println("int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于"+b);
    }
}

運行結(jié)果:
int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于123
隱含強(qiáng)制類型轉(zhuǎn)換
1. 整數(shù)的默認(rèn)類型是 int熬北。
2. 浮點型不存在這種情況疙描,因為在定義 float 類型時必須在數(shù)字后面跟上 F 或者 f。

6.對象和類

Java中創(chuàng)建對象

對象是根據(jù)類創(chuàng)建的讶隐。在Java中淫痰,使用關(guān)鍵字new來創(chuàng)建一個新的對象。創(chuàng)建對象需要以下三步:

聲明:聲明一個對象整份,包括對象名稱和對象類型待错。
實例化:使用關(guān)鍵字new來創(chuàng)建一個對象。
初始化:使用new創(chuàng)建對象時烈评,會調(diào)用構(gòu)造方法初始化對象火俄。

public class Puppy{
   public Puppy(String name){
      //這個構(gòu)造器僅有一個參數(shù):name
      System.out.println("小狗的名字是 : " + name ); 
   }
   public static void main(String []args){
      // 下面的語句將創(chuàng)建一個Puppy對象
      Puppy myPuppy = new Puppy( "tommy" );
   }
}

打印出來結(jié)果:
小狗的名字是 : tommy
Java中的類

類可以看成是創(chuàng)建Java對象的模板。通過下面一個簡單的類來理解下Java中類的定義:

public class Dog{
  String breed;
  int age;
  String color;
  void barking(){
  }
 
  void hungry(){
  }
 
  void sleeping(){
  }
}

一個類可以擁有多個方法讲冠,在上面的例子中:barking()瓜客、hungry()和sleeping()都是Dog類的方法。

訪問實例變量和方法

通過已創(chuàng)建的對象來訪問成員變量和成員方法竿开,如下所示:

/* 實例化對象 */
ObjectReference = new Constructor();
/* 訪問其中的變量 */
ObjectReference.variableName;
/* 訪問類中的方法 */
ObjectReference.MethodName();
實例

下面的例子展示如何訪問實例變量和調(diào)用成員方法:

public class Puppy{
   int puppyAge;
   public Puppy(String name){
      // 這個構(gòu)造器僅有一個參數(shù):name
      System.out.println("小狗的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
       puppyAge = age;
   }
 
   public int getAge( ){
       System.out.println("小狗的年齡為 : " + puppyAge ); 
       return puppyAge;
   }
 
   public static void main(String []args){
      /* 創(chuàng)建對象 */
      Puppy myPuppy = new Puppy( "tommy" );
      /* 通過方法來設(shè)定age */
      myPuppy.setAge( 2 );
      /* 調(diào)用另一個方法獲取age */
      myPuppy.getAge( );
      /*你也可以像下面這樣訪問成員變量 */
      System.out.println("變量值 : " + myPuppy.puppyAge ); 
   }
}

編譯并運行上面的程序谱仪,產(chǎn)生如下結(jié)果:

小狗的名字是 : tommy
小狗的年齡為 : 2
變量值 : 2

我是楚簡約,感謝您的閱讀否彩,

喜歡就點個贊唄疯攒,“?喜歡”,

鼓勵又不花錢列荔,你在看敬尺,我就繼續(xù)寫~

非簡書用戶枚尼,可以點右上角的三個“...”,然后"在Safari中打開”砂吞,就可以點贊咯~


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末署恍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蜻直,更是在濱河造成了極大的恐慌盯质,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件概而,死亡現(xiàn)場離奇詭異唤殴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)到腥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門朵逝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乡范,你說我怎么就攤上這事配名。” “怎么了晋辆?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵渠脉,是天一觀的道長。 經(jīng)常有香客問我瓶佳,道長芋膘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任霸饲,我火速辦了婚禮为朋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘厚脉。我一直安慰自己习寸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布傻工。 她就那樣靜靜地躺著霞溪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪中捆。 梳的紋絲不亂的頭發(fā)上鸯匹,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機(jī)與錄音泄伪,去河邊找鬼殴蓬。 笑死,一個胖子當(dāng)著我的面吹牛臂容,可吹牛的內(nèi)容都是我干的科雳。 我是一名探鬼主播根蟹,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脓杉,長吁一口氣:“原來是場噩夢啊……” “哼糟秘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起球散,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤尿赚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蕉堰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凌净,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年屋讶,在試婚紗的時候發(fā)現(xiàn)自己被綠了冰寻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡皿渗,死狀恐怖斩芭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情乐疆,我是刑警寧澤划乖,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站挤土,受9級特大地震影響琴庵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜仰美,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一迷殿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咖杂,春花似錦贪庙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奏窑,卻和暖如春导披,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背埃唯。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工撩匕, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人墨叛。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓止毕,卻偏偏與公主長得像模蜡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子扁凛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法忍疾,類相關(guān)的語法,內(nèi)部類的語法谨朝,繼承相關(guān)的語法卤妒,異常的語法,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • 一:java概述:1字币,JDK:Java Development Kit则披,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,650評論 0 11
  • 文 | 飄揚的鵝毛 第二十章:租個女友回家 更多章節(jié):目錄 上 一 章: 我被炒魷魚了 (上一章回顧:人這一生洗出,多...
    飄揚的鵝毛閱讀 310評論 9 8
  • 終于找到一個安靜的地方能夠讓自己記錄生活的點滴與感悟士复。曾經(jīng)很長一段時間執(zhí)著于用筆紙的方式記錄心情,但好像隨著校園生...
    Jing7766閱讀 280評論 0 1
  • 這是我很喜歡的一篇文章: 有雨的夜澄峰,喜歡與音樂為伴。將白天的一切喧囂紛擾擱置門外辟犀,做最安靜的自己俏竞。 此刻,房間里緩...
    3350a63f8487閱讀 282評論 0 2