日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

on java 8学习笔记

發(fā)布時(shí)間:2024/4/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 on java 8学习笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2022.2.15

第三章

  • new 關(guān)鍵字創(chuàng)建出來的對(duì)象位于堆中,而基本數(shù)據(jù)類型則會(huì)被創(chuàng)建在棧中

  • { int x = 12;{int x = 96; // 語法錯(cuò)誤} }

    這種寫法在java中是錯(cuò)的,但在c++里是允許的

  • 字段(有時(shí)叫作“數(shù)據(jù)成員”)和方法(有時(shí)叫作“成員函數(shù)”)

  • 如果變量作為類成員而沒被初始化過就會(huì)被java默認(rèn)初始化,但是如果變量是類的方法中的,那么就不會(huì)被默認(rèn)初始化

  • public class test {public double f(){return 1.0;}public static void main(String[] args){int x= (int) new test().f();} }

    進(jìn)行強(qiáng)轉(zhuǎn)就不會(huì)報(bào)錯(cuò)了

  • 有關(guān)于improt,我想看書的應(yīng)該沒幾個(gè)是正常用記事本寫java的把,應(yīng)該都是用的ide吧,我試著用記事本的import寫法發(fā)現(xiàn)不太行,然后我找到了這篇文章https://blog.csdn.net/weixin_40268421/article/details/111593086

  • 為什么要有static

    第一種情況是,有時(shí)候我們需要一小塊共享空間來保存某個(gè)特定的字段,而并不關(guān)心創(chuàng)建多少個(gè)對(duì)象,甚至有沒有創(chuàng)建對(duì)象。第二種情況是,你需要使用一個(gè)類的某個(gè)方法,而該方法和具體的對(duì)象無關(guān);換句話說,你希望即便沒有生成任何該類的對(duì)象,依然可以調(diào)用其方法。

  • 由于所有的 Java 代碼文件都默認(rèn)導(dǎo)入了java.lang,所以列表中的類我們都可以直接調(diào)用。

  • main()的參數(shù)是一個(gè)String對(duì)象的數(shù)組,雖然目前我們并不會(huì)使用args參數(shù),但 Java 編譯器會(huì)強(qiáng)制你傳遞該參數(shù),因?yàn)樗糜讷@取控制臺(tái)的輸入。

  • 第四章 操作符

  • 牢記一點(diǎn)吧,都是引用,而在java中引用實(shí)際上就是值

  • 出于效率原因,Integer會(huì)通過享元模式來緩存范圍在-128~127內(nèi)的對(duì)象,因此多次調(diào)用Integer.valueOf(127)生成的其實(shí)是同一個(gè)對(duì)象。而在此范圍之外的值則不會(huì)這樣,比如每次調(diào)用Integer.valueOf(128)返回的都是不同的對(duì)象。因此需要特別注意,在進(jìn)行==和!=的比較時(shí),范圍不同的值生成對(duì)象的方式并不一樣,這會(huì)影響到比較的行為,從而產(chǎn)生不同的結(jié)果。另外,通過new Interger()生成的對(duì)象都是新創(chuàng)建的,無論其值處于什么范圍。所以通過不同方式創(chuàng)建的Integer對(duì)象,也會(huì)影響到比較的結(jié)果。——譯者注

  • 在Java 9及更新版本中已經(jīng)棄用new Integer(),因?yàn)樗男蔬h(yuǎn)遠(yuǎn)低于Integer.valueOf()。

  • .equal()的默認(rèn)方法是只比較對(duì)象的引用,所以.equal()方法最好自己重寫一下

  • 在Java中,把int類型當(dāng)作boolean類型并不合法

  • 基本浮點(diǎn)型轉(zhuǎn)化位整型,小數(shù)點(diǎn)后無論多大都不會(huì)被四舍五入,除非round方法

  • 基本數(shù)據(jù)類型在java算術(shù)中依舊存在溢出風(fēng)險(xiǎn)且不會(huì)報(bào)錯(cuò)

  • 注意Java不允許將數(shù)字當(dāng)作布爾值使用,雖然這在C和C++里是允許的

  • 第五章 控制流

  • for循環(huán)的步進(jìn)部分都是出了循環(huán)然后步進(jìn)再進(jìn)行布爾表達(dá)式判定

  • java 類名 字符串1

    字符串1就是main中的參數(shù)

  • 關(guān)于0.0-1.0開區(qū)間閉區(qū)間那個(gè),按作者的意思,因?yàn)榭赡苄蕴?所以不一定會(huì)出來0.0,即便它包括了0.0.

  • 第六章 初始化和清理

  • 之所以使用構(gòu)造器方法這種形式創(chuàng)建和初始化對(duì)象,是為了避免對(duì)象的創(chuàng)建和初始化分離開導(dǎo)致的錯(cuò)誤

  • 方法重載中基本數(shù)據(jù)類型的所占字節(jié)數(shù)如果小于了重載方法中占最小字節(jié)數(shù)的基本數(shù)據(jù)類型,則被傳入的基本數(shù)據(jù)類型會(huì)被轉(zhuǎn)化為這個(gè)重載方法中占最小字節(jié)數(shù)的類型,比如傳入的是int,最小最小字節(jié)數(shù)為long ,則會(huì)被轉(zhuǎn)化為long類型;如果傳入的數(shù)據(jù)類型比重載方法的參數(shù)類型更大,那么必須強(qiáng)制轉(zhuǎn)化成小的,不然報(bào)錯(cuò)

  • 你可能會(huì)想:“為什么只通過參數(shù)列表來區(qū)分重載方法?為什么不根據(jù)方法的返回值來區(qū)分?”比如下面定義的兩個(gè)方法雖然具有相同的名字和參數(shù),但很容易就能通過返回值區(qū)分開來:

    void f() {} int f() { return 1; }

    只有編譯器能從上下文中明確地判斷出語句的含義,這種方式才是可行的。比如在int x = f()中,x的類型能夠告訴編譯器,我們想要調(diào)用哪個(gè)版本的f(),但還可以調(diào)用f()并忽略它的返回值。這被稱為調(diào)用方法的副作用,此時(shí)我們不關(guān)心返回值,而只是想要方法調(diào)用的其他效果。因此,如果這樣調(diào)用方法:

    我想從另一個(gè)角度說一下吧,因?yàn)檫@本身就存在歧義,因?yàn)閖ava中方法其實(shí)就是c語言中的函數(shù),那么你見過哪個(gè)函數(shù)一個(gè)x值可以對(duì)應(yīng)兩種不同的y值還有行為的,這又不是賭命

    f();

    此時(shí)Java如何確定應(yīng)該調(diào)用哪個(gè)f()?閱讀代碼的人又該如何理解它呢?由于存在這些問題,我們不能使用返回值類型來區(qū)分重載方法。

  • this關(guān)鍵字只能在非靜態(tài)方法中使用。

    其實(shí)感覺吧構(gòu)造器除外

  • this的使用

  • this可以讓你得到當(dāng)前對(duì)象的引用

  • 盡量在本類調(diào)用方法時(shí)不用this.方法名()

  • return this 在方法中可以實(shí)現(xiàn)同一個(gè)對(duì)象不斷使用一個(gè)方法,例如

    person.方法名().方法名().方法名()
  • 將自身引用傳給外部類或者方法

  • 編譯器禁止在非構(gòu)造器的普通方法里調(diào)用構(gòu)造器。
  • 不能同時(shí)調(diào)用兩個(gè)構(gòu)造器
  • 構(gòu)造器調(diào)用必須出現(xiàn)在方法的最開始部分,否則編譯器會(huì)報(bào)錯(cuò)。
  • 這里第三點(diǎn)指的應(yīng)該時(shí)構(gòu)造器方法

  • 靜態(tài)方法也可以創(chuàng)建自己的對(duì)象

    public class test {public static void f(){class a {public a(){System.out.println("hello");}}new a();}public static void main(String[] args){test.f();} }
  • public class test {int i =1;public test(int i){i=i;System.out.println(i);}public static void main(String[] args){new test(5);} }

    這么做是合法的

  • 其他

  • 有關(guān)于內(nèi)存泄漏的概念https://zh.wikipedia.org/wiki/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F

    簡單來說就是已經(jīng)不用的內(nèi)存沒有還給系統(tǒng)

  • 有關(guān)于析構(gòu)函數(shù),雖然我還沒看https://docs.microsoft.com/zh-cn/cpp/cpp/destructors-cpp?view=msvc-170

  • 總結(jié)

    以上是生活随笔為你收集整理的on java 8学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。