java 一天_一天入門Java快速入門

前言

我寫此文主要

參考:

目的是:

快速入門啦.由於工作的需求-Android安全.

計划:

Java一天入門

我從未學過Java.我會找出Java與C++等語言的區別.以達到快速學習的目的.

據了解Java基於C++,但是更簡單易學喲.

開始

類名

那一群帶.的東西是搞毛的?形如:package com.happyframework.javastudy.hello;

package對應目錄的相對路徑,class對應文件.

上面對應:

E:\Workspaces\MyEclipse 10\JavaStudy\src\com\happyframework\javastudy\hello\Hello.java

關於class有如下幾點規則:

文件的名字必須和class的名字一致(public級別的class名字)。

文件必須只包含一個public訪問基本的class(可以包含多個非public級別的class)。

package名字必須和目錄一致。

入口方法

Java里面只有方法,沒有函數喲.

入口方法如下:public class App {

public static void main(String[] args) {

com.happyframework.javastudy.hello.Hello.hello();

}

}

數據類型

特別之處是小數類型的常量默認是double類型,聲明float類型的常量需要使用F作為后綴。float fage =21.0F

運算符

特別之處是:

位運算符多了一種:

>

“>> 右移,高位補符號位” 這里右移一位.

“>>> 無符號右移,高位補0”; 與>>類似

字符串

Java原生支持字符串類型,而不是像C++一樣使用擴展,或者像C一樣使用數組.

String是擁有“值語義”的引用類型,字符串常量實現了“享元模式”,equals會按照內容進行比較,==按照地址比較。public class Program {

/**

*@param args

*/

public static void main(String[] args) {

String x = "段光偉";

String y = new String("段光偉");

System.out.println(x.equals(y)); // true

System.out.println(x == y); // false

}

}

為了高效的修改字符串Java引入了StringBuffer:{

StringBuffer sb =

new StringBuffer()

.append("段")

.append("光")

.append("偉");

System.out.println(sb.toString());

}

數組

相較於C++增加了一種聲明語法,改成了另外的三種初始化語法:

聲明語法

DataType[] name 或 DataType name[]。

初始化語法

DataType[] name = new DataType[length]。

DataType[] name = new DataType[] { element1, element2, …elementn }。

DataType[] name = { element1, element2, …elementn }。

只有不等長多維數組DataType[][],沒有DataType[xxx, xxx]啦。

控制結構

條件:沒變.

循環:for-each

Labeled block (多了個lable?)public class Program {

/**

*@param args

*/

public static void main(String[] args) {

task: {

int age = 25;

System.out.println("start");

if (age < 30) {

break task;

}

System.out.println("end");

}

}

}

方法

終於來到方法了.

Java中所有的賦值和方法調用都是“按值“處理的,引用類型的值是對象的地址,原始類型的值是其自身。

Java支持變長方法參數。public class Program {

/**

*@param args

*/

public static void main(String[] args) {

print("段光偉", "段光宇");

print(new String[] { "段光偉", "段光宇" });

}

private static void print(String... args) {

for (String item : args) {

System.out.println(item);

}

}

}

類糊塗開始

調用自身的構造方法是用this(xxx,xxx,…)來完成,且必須位於第一行。

靜態成員

Java中類似靜態構造方法的結構,稱之為:靜態初始化代碼塊,與之對應的是實例初始化代碼塊.

繼承

繼承使用extends,抽象類和抽象方法使用abstract聲明,向下轉型使用(ChildType)instance.

重寫

Java中的重寫規則比較靈活,具體如下:

1. 除了private修飾之外的所有實例方法都可以重寫,不需要顯式的聲明.

2. 重寫的方法為了顯式的表達重寫這一概念,使用@Override進行注解.

3. 重寫的方法可以修改訪問修飾符和返回類型,只要和父類的方法兼容(訪問級別更高,返回類型更具體).

4. 可以使用final將某個方法標記為不可重寫.

5. 在構造方法中使用super(xxx,xxx)調用父類構造方法,在常規實例方法中使用super.method(xxx,xxx)調用父類方法.

6. Java不支持覆蓋(new).

包的名字和項目路徑下的目錄路徑相對應.

Java支持三種導入語法:

1. 導入類型:import xxx.xxx.xxxClass

2. 導入包:import xxx.xxx.xxx.*

3. 導入靜態成員: import static xxx.xxx.*import static util.Helper.*;

public class Program {

/**

*@param args

*/

public static void main(String[] args) {

puts("段光偉");

}

}

訪問級別

Java支持四種訪問級別:public,private,protected和default(默認),類型和接口只支持public和default.

- protected 修飾過的成員只能被自己、子類和同一個包里的(不包括子包)其他類型訪問。

- default 修改過的類型或成員只能被自己和同一個包里的(不包括子包)其他類型訪問。

嵌套類

暈啊

常量

有一點需要注意的是:只有一種情況Java的常量是編譯時常量(編譯器會幫你替換),其它情況都是運行時常量,這種情況是:靜態類型常量且常量的值可以編譯時確定。

接口

Java的接口可以包含方法簽名,常量和嵌套類.

不同什么意思?百度一下.

枚舉

Java枚舉是class.

異常

Java中的異常分為checked和unchecked.

所有繼承Exception的異常(除了RuntimeException和它的后代之外)都是checked異常。

而checked異常必須聲明在方法中或被捕獲.

裝箱和拆箱

自動裝箱和自動拆箱是Java提供的語法糖。

語法糖是什么,我怎么會告訴你.

泛型方法

類似於C++的模板哈

類型參數約束

類型擦除過程

end.

入門到此結束.

aHR0cDovL2ltZy50b25namkubGluZXppbmcuY29tLzM2MDExMjgvdG9uZ2ppLmdpZg==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值