国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【讀】Java核心技術卷1

_DangJin / 1560人閱讀

摘要:當使用構造器時,無法改變所構造的對象類型,而方法將返回一個類對象,這是的子類。關鍵字的兩種用法一是引用本類成員變量,二是調用本類其他構造函數。不過兩者調用構造函數時,調用語句必須放在構造函數第一行。

閱讀原文:【讀】Java核心技術卷1

看到這本書時,我的內心是崩潰的,卷1就700多頁,但是這本書是很多前輩所推薦的,想必其中必有精華所在,硬著頭皮上吧。

如何閱讀本書

拿到書的第一眼肯定去看目錄,大概了解一下,各個章節所講內容。

為表對作者的尊重,快讀掃讀了,譯者序、前言和致謝。

通過目錄了解到,第1,2章所講概述和環境搭建,對于我來說沒有價值,選擇忽略。

第10,11,12,13章所講Java圖形界面相關,當今這方面幾乎很少使用,選擇忽略。

由于并不是Java新手,所以我將選擇對我有益的知識點進行記錄。

第三章 Java的基本程序設計結構 長整型
long a = 3.14L  這里注意要用大寫的L作為后綴,因為小寫 l 有時很像數字 1
浮點型

單精度類型表示:float a = 3.14F 或 3.14f

雙精度類型的表示:double b = 3.14D 或 3.14d

注意:當浮點型數字沒有后綴時(如:3.14),默認為double類型。另外浮點數值不適用于無法接受舍入誤差的金融計算中,如 2.0 - 1.1 結果是 0.89999999999999,為更精確的計算,可以使用BigDecimal類。
有三個特殊的浮點型數值:

正無窮大

負無窮大

NaN (不是一個數字)

正整數除以0的結果正無窮大(如:3/0.0 結果為Infinity),Infinity表示無窮大的概念,0.0并不是真正意義上的0,它只是非常接近0而已。
,0/0或者負數的平方根結果為NaN.(如:0.0/0.0 ,Math.sqrt(-3)結果為 NaN ),對于所有沒有良好的數字定義的浮點計算,例如0.0/0.0,或者對負數求平方根其值都是它.

結合賦值和運算符

x = x + 4
簡寫: x += 4

注意: 如果運算符得到一個值,其類型與左側操作數類型不同,,就會發生強制類型轉換,如 int x = 2 ;  x  += 3.14 ;  這相當于 x = (int)(x + 3.14)
自增自減運算符

java中借鑒了C和C++的做法,提供了自增自減運算符:n + + 將當前值加1

這種運算符有兩種形式:運算符作為前綴和運算符作為后綴。例:

int m = 7 ;
int n = 7 ;
int a = 2 * ++m;    //a=16,m=8
int b = 2 * n++;    //b=14,n=8

前綴形式先完成加1,后綴形式會使用原來的值,再加1。

不建議在表達式中使用++,因為這樣的代碼很容易讓人困惑,而且會帶來煩人的bug。
&&和& 與 ||和|

&&表示邏輯“與”,||表示邏輯“或”。

這兩個運算符是按照“短路”方式來求值的:如果第一個操作數已經能夠確定表達式的值,第二個操作數就不會計算了。如:

exp1 && exp2 ,當exp1為flase時,那么exp2就不會執行了。
exp1 || exp2 ,當exp1為true時,那么exp2就不會執行了。

&和| 運算符不采用“短路”方式求值,所以不論第一個操作數是否確定整個表達式的值,兩個操作數都會被計算。

字符串

檢測是否相等

一定要用equals()函數,它是判斷兩個字符串內容是否相等,而 == 是判斷兩個字符串是否在同一個位置上。如果 == 相等,那么equals一定相等,反之不然。

空串和Null

""是一個Java對象,有自己的串長度(0)和內容(空),當為Null時,表示目前沒有任何對象與該變量關聯。

檢查一個字符串既不是null也不是空串:

if(str != null && str.length() != 0)

要先檢查不為null,因為為null時無法調用length()函數。

多重選擇:switch
switch(x){
    case x1 :
        ***
        break;
    case x2 :
        ***
        break;
}

其中x可以為char,byte,short,int類型,到Java SE 7開始,可以是String類型的。

一般不建議使用switch語句,因為break語句的忘記容易導致問題。
命令行參數

學習Java你一定知道下面代碼:

public class Massage{
    public static void main(String[] args){
        System.out.println(args[0]);
        System.out.println(args[1]);
    }
}

當你在命令行變異運行這個類時:java Massage -hello world

打印結果:

hello
world
第四章 對象與類 類之間的關系

依賴(uses-a) A類方法操縱B類對象,叫做一個類依賴另一個類。

聚合(has-a) A類的對象包含B類的對象。

繼承(is-a) A類繼承B類。

我們應該盡量減少相互依賴的類存在,如果A類不知道B類,就不會關系B類的變化,這樣B類無論怎么變化都不會導致A的bug,軟件工程上叫做:讓類之間的耦合度最小。
Java 8中新增LocalDate類

Date是一個用來表示時間點的Date類,LocalDate用來表示大家熟悉的日歷表示法。

Date類所提供的日期處理并沒有太大的用途。

1.Date和SimpleDateFormatter都不是線程安全的。
2.Date對日期的計算方式繁瑣,月份從0開始。

創建一個對象可以通過以下幾個方式:

LocalDate local1 = LocalDate.now();

LocalDate local2 = LocalDate.of(2017,10,30);

LocalDate并不包含時間,你可以通過下面獲取年月日:

int year = local2.getYear();
int month = local2.getMonthValue();
int day = local2.getDayOfMonth();

當然LocalDate也提供了日期的增減:

local2.pulsDays(100);
local2.minusDays(100);

更多方法查看API,這里不做詳細表述。

final實例域

將實例域定義為final,構建對象時必須初始化這個實例域,后面的操作中不能夠再對它進行修改。如:

public class Employee{
    private final String name;
    ……
}

這個name屬性沒有setName方法。final修飾符大都應用于基本數據類型或不可變的類或對象。如果類中每個方法都不會改變其對象,那么這個類就是不可變類,如String類。

對于可變的類使用final修飾,會對別人造成混亂。如:

private final StringBuilder sb;

在Employee構造方法中進行初始化

public Employee(){
    sb = new StringBuilder();
}

final關鍵詞只是表示存儲在sb變量中的對象應用不會再指向其他StringBuilder對象,不過這個對象可以更改:

public void giveGoldStar(){
    sb.append( LocalDate.now() + ": Gold star!");
}
靜態域 static
public class Employee{
    private static int sid = 1001;
    private int id ;
    ……
}

static 修飾的常量,是面向類的,即無論存在多少Employee對象,sid只存在一個,所有對象將共享一個sid,但id卻和對象同存在,多少個對象就有多少個id。(static 修飾后,它屬于類,而不屬于任何對象)

靜態工廠方法

類似LocalDate.now和LocalDate.of都是使用靜態工廠方法來構造對象。

NumberFormat currenyFormatter = NumberFormat.getCurrencyInstance();
NumberFormat percentFormatter = NumberFormat.getPercentInstance();
double x = 0.1;
System.out.println(currenyFormatter.format(x)); //輸出 $0.10
System.out.println(percentFormatter.format(x)); //輸出 10%

為什么不利用構造方法來完成這些操作呢?原因:

無法命名構造器,這里希望得到的貨幣實例和百分比實例采用不同的名字。

當使用構造器時,無法改變所構造的對象類型,而Factory方法將返回一個DecimalFormat類對象,這是NumberFormat的子類。

方法參數

方法參數共有兩種類型:

基本數據類型

對象類型

一個方法不可能修改一個基本數據類型的參數,如:

double x = 10;
harry.raiseSalary(x);

中不論加薪方法具體怎么實現,但x值始終不變。

對象作為參數其實是對象引用的拷貝,他們指向同一個對象。

public void swap(Employee x,Employee y){
    Employee temp = x;
    x = y;
    y = temp;
}

 Employee a = new Employee("zhang");
 Employee b = new Employee("wang");
 swap(a,b); //現在x指向wang,y指向zhang
 System.out.println(a.toString()+"--"+b.toString());
 

最后你會發現a依然是zhang,b依然是wang,因為形參x,y在執行完后被丟棄了,原來的a,b依然指向之前的的對象。

總結:

java對對象采用的不是引用調用,實際上,對象引用是按值傳遞的。

一個方法不能修改一個基本數據類型(數值型和布爾型)

一個方法可以改變一個對象的狀態(屬性……)

一個方法不能讓一個對象參數引用新的對象

無參構造函數

當一個類沒有提供構造函數時,系統會為這個類提供一個默認的無參構造函數,但當你提供了有參的構造函數時,系統是不會提供無參構造函數的,所以當你要調用無參構造函數時,主動提供無參構造函數或不提供任何構造函數。

類設計技巧

一定保證數據的私有性

一定對數據初始化

不要在類中使用過多的基本類型

將職責過多的類進行分解

類名和方法名要能體現他們的職責

優先使用不可變類

類不可變,就可以安全地在多個線程間共享其對象。
第五章 繼承 父類和子類

將通用方法放在父類中,而將具有特殊用途的方法放在子類中。

關鍵字this的兩種用法:一是引用本類成員變量,二是調用本類其他構造函數。

關鍵字super兩種用法:一是應用父類成員變量,二是調用父類構造函數。不過兩者調用構造函數時,調用語句必須放在構造函數第一行。

歡迎留言交流。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73656.html

相關文章

  • 【備戰春招/秋招系列】Java程序員必備書單

    摘要:相關推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。實戰高并發程序設計推薦豆瓣評分,書的質量沒的說,推薦大家好好看一下。 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識)。地址:https://github.com/Snailclimb... 【強烈推薦!非廣告!】...

    saucxs 評論0 收藏0
  • Java學習必備書籍推薦終極版!

    摘要:實戰高并發程序設計推薦豆瓣評分書的質量沒的說,推薦大家好好看一下。推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個時間對之前的書單進行了分類和補充完善。雖是終極版,但一定還有很多不錯的 Java 書籍我沒有添加進去,會繼續完善下去。希望這篇...

    Steve_Wang_ 評論0 收藏0
  • 一份最中肯的Java學習路線+資源分享(拒絕傻逼式分享)

    摘要:因為某些原因,不方便在這里直接發送百度鏈接,關注我的微信公眾號面試通關手冊回復資源分享第一波即可領取。然后大家還有什么問題的話,可以在我的微信公眾號后臺面試通關手冊給我說或者加我微信,我會根據自己的學習經驗給了說一下自己的看法。 這是一篇針對Java初學者,或者說在Java學習路線上出了一些問題(不知道該學什么、不知道整體的學習路線是什么樣的) 第一步:Java基礎(一個月左右) 推薦...

    hearaway 評論0 收藏0
  • 一份送給Java初學者的指南

    摘要:編程思想第版這本書要常讀,初學者可以快速概覽,中等程序員可以深入看看,老鳥還可以用之回顧的體系。以下視頻整理自慕課網工程師路徑相關免費課程。 我自己總結的Java學習的系統知識點以及面試問題,目前已經開源,會一直完善下去,歡迎建議和指導歡迎Star: https://github.com/Snailclimb/Java-Guide 筆者建議初學者學習Java的方式:看書+視頻+實踐(初...

    banana_pi 評論0 收藏0
  • 全棧是概念,興趣亦為追求(全棧開發者)

    摘要:耐得住寂寞,才能等得到花開慢慢積累自己的知識,不斷疊加,全面優化,無論在哪個領域都可以有你的一席之地,即為有志者事竟成,破釜沉舟,百二秦關終屬楚也祝我們能向未來發展的開發者們苦心人天不負,臥薪嘗膽,三千越甲可吞吳。 我們今天來了聊一聊一個話題——全棧開發 作為一個程序員,不管是Java還是C...

    lbool 評論0 收藏0

發表評論

0條評論

_DangJin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<