最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java學(xué)習(xí)隨便記1-創(chuàng)新互聯(lián)

java 的 Hello World 比多數(shù)語言看上去都要復(fù)雜,因為再小的程序也要來一個 class,并且你的文件名必須和類名保持一致,不然編譯器不好找待編譯文件中誰才是“主子”類

創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計,大同網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:大同等地區(qū)。大同做網(wǎng)站價格咨詢:18982081108
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

上面的 HelloWorld 類,需要被外部訪問,所以訪問控制標(biāo)記為 public。里面的main函數(shù)意思差不多和 C/C++?或者 golang 差不多,它要能被外部訪問到,所以,也是 public的,因為它是“獨生子女”,總是“單例”的,所以,是類的靜態(tài)成員(標(biāo)記static)。我不太清楚教java的老師是如何向“孩子們”解釋這里的public和static的。(也許不解釋:-))

上述代碼保存到 HelloWorld.java文件,用 javac 命令編譯為 .class文件,再用 java 命令執(zhí)行:

sjg@sjg-PC:~/garbage/java_code$ javac HelloWorld.java 
sjg@sjg-PC:~/garbage/java_code$ ll
總用量 8
-rw-r--r-- 1 sjg sjg 425 12月  5 12:38 HelloWorld.class
-rw-r--r-- 1 sjg sjg 125 12月  5 12:38 HelloWorld.java
sjg@sjg-PC:~/garbage/java_code$ java HelloWorld 
Hello World

java 的類和對象的概念,把 C++和 C# 類似的概念搬過來就可以了,需要了解的一些點:

  • 構(gòu)造函數(shù)和類同名,構(gòu)造函數(shù)可以多個重載,一個都不提供也可以(此時編譯器為你提供默認(rèn)構(gòu)造方法,相當(dāng)于無參構(gòu)造)。創(chuàng)建對象時用 new 關(guān)鍵字(可以同時與構(gòu)造函數(shù)對應(yīng)傳參)。
  • 訪問實例的變量和方法,都是 . 語法,不存在C/C++中->箭頭語法,java沒有指針,除了原始類型,應(yīng)該都是引用
  • 源文件聲明規(guī)則:每個源文件只有一個public類且文件名和類名一致,非public類可以多個。如果一個類屬于某個包,則package語句要放在源文件首行。如果源文件有import語句,它們應(yīng)在package語句和類定義之間(沒有package就在最前面了)。這些,無論是和golang的package還是其他語言的namespace,都是差不多的。

java的數(shù)據(jù)類型分為內(nèi)置數(shù)據(jù)類型(即原始數(shù)據(jù)類型)和引用數(shù)據(jù)類型。

內(nèi)置數(shù)據(jù)類型又可以分為 byte(相當(dāng)于int8)、short(相當(dāng)于int16)、int(相當(dāng)于int32)、long(相當(dāng)于int64)、float(立即數(shù)需要后面標(biāo)記f或F)、double(浮點默認(rèn)類型)、boolean、char(注意,對應(yīng)Unicode16)。這些原始數(shù)據(jù)類型中,最坑爹的莫過于char,它和其他語言基本上都不同,具體可以自己百度它的歷史。內(nèi)置類型和引用類型不同,它有自己的默認(rèn)“零值”,而引用類型的默認(rèn)“零值”都是null——引用類型都是內(nèi)置類型“裝箱”后在堆上生成的,和內(nèi)置類型“值”來“值”去不一樣。

內(nèi)置類型前面的整數(shù)和中間浮點數(shù)滿足以下自動類型轉(zhuǎn)換規(guī)則:

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

可以用C風(fēng)格小括號強(qiáng)制類型轉(zhuǎn)換(可能丟失精度或溢出):

byte b = (byte)i;  (int)23.7 == 23;  (int)-45.89f == -45

引用類型指向一個對象,我們說的引用類型變量的類型,指的是它所指的“東西”的類型。java 對象是引用類型,數(shù)組也是引用類型。

Java 使用修飾符 final 來定義常量:

final double PI = 3.1415927;

立即數(shù)的使用和 C++ 差不多,轉(zhuǎn)義字符也差不多,就是字符可以用 '\u0001' 方式表達(dá)。

java的局部變量、實例變量、類變量概念和其他語言基本一致。

java的訪問控制修飾符有 “零修飾符”(包內(nèi)的)、private(類內(nèi)的)、public(類外可見)、protected(包內(nèi)的和家族的)。其中比較復(fù)雜的是 protected:如果聲明為 protected的變量、方法夠構(gòu)造器和訪問者(類)在同一個包內(nèi),那沒有問題,可以訪問;如果訪問者不在同一個包內(nèi),此時的 protected 更接近 C++ 中家族的概念,即子類可以繼承protected方法,在繼承中使用,但子類實例不能不繼承就使用另一個包內(nèi)的protected方法——想想也對,你都不是我的“兒子”,又不是我所在“圈”(包)內(nèi)的,憑什么讓你調(diào)用protected方法。

訪問控制的繼承規(guī)則:(1)父親說方法是public的,繼承時兒子必須標(biāo)記為public;(2)父親說方法是 protected的,繼承時兒子要么延續(xù)protected,要么標(biāo)記為public,不能私有獨吞影響繼承鏈;(3)父親說方法是private的,那當(dāng)然,沒人能繼承或使用

其他修飾符:static表示方法或變量是類(共享、公共)一級的。final修飾符阻止了后代繼承和篡改。abstract修飾符用來創(chuàng)建抽象類和抽象方法(提供協(xié)議和規(guī)約,不提供實現(xiàn)的類和方法,帶abstract方法的類必須標(biāo)為abstract,反之則不成立)。synchronized和volatile修飾符用于線程相關(guān)的編程。transient修飾符用來在持久化中標(biāo)記不要持久化的變量。

Java運算符,基本上當(dāng)C++即可。instanceof 運算符用來判斷實例的類型(類或接口的兼容類型),基于反射的編程中有用。

Java 循環(huán)結(jié)構(gòu):和 C++ 一樣,而且,有C++11一樣的 for (T? var : a) { } 型遍歷數(shù)組的結(jié)構(gòu)。

java 條件語句:無論if...else和switch...case,當(dāng) C++即可。

和 C++ 不同,java 默認(rèn)內(nèi)置了很多現(xiàn)成的類,包括原始類型對應(yīng)裝箱的類(它們都是Number的子類,有一些相同的方法):Boolean(boxed boolean)、Byte(boxed byte)、Short(boxed short)、Integer(boxed int)、Long(boxed long)、Character(boxed char)、Float (boxed float)、Double(boxed double)、Math(也就是打包了一堆數(shù)學(xué)計算的靜態(tài)方法)、字符串相關(guān)的String/StringBuffer(線程安全)/StringBuilder、Arrays(打包了操作數(shù)組的一些靜態(tài)方法)、Date/Calendar/GregorianCalendar(從簡單的時間日期到復(fù)雜的時區(qū)日歷)、……

Java數(shù)組:聲明? T[]? ?a;? ? 創(chuàng)建? a = new T[size];? ?聲明的同時立刻創(chuàng)建 T[]? a = new? T[size];

也可以初始化方式創(chuàng)建? T[]? a = {v0, v1, ..., vk};? ?java 數(shù)組的索引基于0,所以 a[1] 是第2個元素。

多維數(shù)組只是多括號而已? T[][]? a = new T[size1][size2];

Java正則表達(dá)式:? java的正則表達(dá)式和perl相似,所以,略。操作正則表達(dá)式,主要是 Pattern(用compile方法創(chuàng)建對象)、Matcher(用Pattern對象的matcher方法創(chuàng)建對象,它的實例意思類似一個匹配后的結(jié)果集)、PatternSyntaxException(非強(qiáng)制異常類,幫助了解正則表達(dá)式語法錯誤) 3個類。

Java中的IO:Java.io包幾乎包含所有IO相關(guān)類。

靜態(tài)類成員變量System.in代表標(biāo)準(zhǔn)輸入流(它直接讀取,是“節(jié)點流”的概念),它應(yīng)該是編譯器幫你處理好自動打開的對象,把它作為參數(shù)傳遞給?InputStreamReader 的構(gòu)造函數(shù),可以實現(xiàn)從字節(jié)流到字符流的轉(zhuǎn)換(所以它是“處理流”的概念),而將?InputStreamReader流對象作為構(gòu)造函數(shù)參數(shù)傳遞給?BufferedReader的構(gòu)造函數(shù),就可以實現(xiàn)帶緩沖的字符讀?。ㄓ胷ead()方法讀一個字節(jié)(不是字符,是int8),用readLine()方法讀取一行,它當(dāng)然也是“處理流”的概念)。

JDK5提供了Scanner類來實現(xiàn)獲取用戶輸入,它直接用System.in作為參數(shù)來構(gòu)造實例,用 hasNext()判斷是否讀完,用 next()或nextLine()來讀取一個非空字符或下一行,還有 hasNextXxx()、nextXxx() 等方法來讀取 int 或 float 數(shù)據(jù)。

控制臺輸出的最常用方法是 System.out.print() 和 System.out.println()。System.out 是 PrintStream流類的實例,不過它和System.in一樣,是System類的靜態(tài)成員變量,代表標(biāo)準(zhǔn)輸出流(編譯器幫你處理好自動打開的對象,直接輸出,是“節(jié)點流”)。除了print()和println(),System.out還有write()方法(寫字節(jié),字節(jié)數(shù)組,字符串),不過不常用。

由于一個字符并不等于一個字節(jié),所以,流又分為字節(jié)流和字符流。字節(jié)流從抽象基類 InputStream 和 OutputStream派生,字符流則從抽象基類 Reader 和 Writer派生。當(dāng)然,它們派生的類又可以分成直接讀寫的“節(jié)點流” 和目的是處理的“處理流”。

可以參考他人整理的資料,例如??吃透Java IO:字節(jié)流、字符流、緩沖流 - 知乎

流面向的操作,除了標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出,另外一個常用的就是文件。這部分比較啰嗦,概念基本和其他語言相似,此處略過。

看來,想一篇就把java學(xué)完不行

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


分享文章:Java學(xué)習(xí)隨便記1-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://fisionsoft.com.cn/article/dhpogp.html