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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客网刷题(纯java题型 31~60题)

發(fā)布時間:2025/3/17 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客网刷题(纯java题型 31~60题) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

重寫Override應該滿足"三同一大一小"
三同:方法名相同,參數(shù)列表相同,返回值相同或者子類的返回值是父類的子類(這一點是經(jīng)過驗證的)
一大: 子類的訪問修飾符比父類開放
一小: 子類拋出的異常比父類的小(具體,或者說子類拋出的異常是父類拋出的異常的子類
通過intellij測試的結果:
在子類中,如果一個方法滿足與父類的方法的方法簽名(方法名稱+參數(shù)列表)相同,則一定屬于override,那么子類中次方法的返回值就必須滿足是父類的子類,且子類方法的修飾符必須比父類更開放
子類中,如果一個方法與父類的方法簽名不同(方法名稱+參數(shù)列表),那么這個方法就是一個子類的新方法,不屬于override,也不屬于overload,與父類的同名方法沒有任何關系

容器的左上角是坐標的起點

圖中的算法是二分查找,二分查找的時間復雜度計算:
第一次折半, n/2
第二次折半,n/(2^2)
第k次折半,n/(2^k)
因為k次折半之后,一定會出現(xiàn)只剩下一個數(shù)字的情況,也就是找到了要找的元素
那么也就有 n/(2^k) ==1
所以,k == log2(n),即二分查找的時間復雜度為log2(n)

抽象類實現(xiàn)接口,可以不實現(xiàn)接口中的任意方法或者所有方法
普通類實現(xiàn)接口,必須實現(xiàn)接口中的所有方法,接口中的字段field,普通類可以直接使用
普通類繼承了抽象類,子必須實現(xiàn)抽象類中的所有抽象方法,對于抽象類中的非抽象方法,可以Override,也可以不Override

整數(shù)類型,默認為int,小數(shù)類型,默認為double,而不是float
例如, float result = (float)1.0; //否則報錯
多種不同類型的數(shù)字進行運算,結果會是以最高精度的為準(自動向上轉(zhuǎn)型),題中1/2.0 為int/double,所以結果應該為double類型的0.5; 即
double result = 1/2.0;
或者 float result =(float)(1/2.0);

依賴注入是通過反射實現(xiàn)的,是一種設計思想,與具體的框架無關,別的框架,也可以實現(xiàn)依賴注入
常見的依賴注入方式包括Setter方法和構造方法

Mock,也叫做偽對象,在測試中利用mock來代替真實的對象,方便測試的進行
封裝:將對象的狀態(tài)信息隱藏在對象內(nèi)部,不允許外部直接訪問
反射機制:在運行狀態(tài)下,可以調(diào)用類的所有屬性和方法,包括private屬性和方法,所以破壞了封裝性

String類的equals方法,只有instanceof之后,發(fā)現(xiàn)equal(object)中的object為String類型的對象,才會轉(zhuǎn)換成String,然后比較char[]

執(zhí)行過程:
boolean b = true?false:true==true?false:true;
-->
true?false:(true==true)?false:true;
true?false:true?false:true;
true?false:(true?false:true);
true?false:false;
false;
賦值語句= 的優(yōu)先級最低
==的優(yōu)先級高于三目運算符
為了將左邊的三目運算符算完,必須要現(xiàn)將后面的三目運算符算完,所以需要從右向左計算

Spring是一系列輕量級java EE框架的集合,正確
Spring提供了AOP方式的日志系統(tǒng),不正確
Spring提供了AOP,但是沒有提供日志系統(tǒng),需要使用log4j等開源框架來利用AOP屬性,實現(xiàn)日志系統(tǒng)

Arrays.copyOf 調(diào)用了System.arraycopy方法,所以System.arraycopy > Arrays.copyOf
System.arraycopy是native方法
clone 方法也是native方法
從評論區(qū)的反饋來看: 效率: System.arraycopy > clone > Arrays.copyOf

創(chuàng)建泛型的時候,盡可能早的指出泛型的類型,爭取讓編譯器檢查出錯誤,而不是在jvm運行的時候拋出類不匹配的異常
jvm理解泛型的方法:
1,虛擬機中沒有泛型,只有普通類和普通方法,所有的泛型類,泛型方法的,在編譯階段就已經(jīng)被處理成了普通類和普通方法(通過類型擦除進行處理),也就是講泛型擦除成了Object或者邊界類型(extend等)
2,即使是泛型,也可以在運行時,動態(tài)的(利用反射機制)動態(tài)的獲取到泛型的實際類型

public Type getGenericSuperclass()

java集合框架圖:

Collection是一個接口

List和Set 接口繼承了Collection接口,但是Map接口沒有繼承Collection接口
List包括ArrayList和Vector,Stack繼承了Vector
Set包括Treeset,HashSet,LinkedHashSet,linkedHashSet繼承了HashSet
Map包括TreeMap,HashMap,LinkedHashMap(繼承了HashMap),WeakHashMap,IdentityHashMap, 其中,WeakHashMap和IdentityHashMap沒有繼承Hashmap,只是繼承了AbstractMap,實現(xiàn)了Map接口,與HashMap一樣(這一點與)

類的加載順序:
1,父類的靜態(tài)代碼塊,靜態(tài)屬性,但不包括靜態(tài)方法
即:static{} + static T typeName;
2,子類的靜態(tài)代碼塊,靜態(tài)屬性,但是不包括靜態(tài)方法
3,父類的非靜態(tài)代碼塊
4,父類的構造方法(構造方法晚于非靜態(tài)代碼塊)
5,子類的非靜態(tài)代碼塊
6,子類的構造方法(構造方法晚于非靜態(tài)代碼塊)

代入到本題中,就是:
先執(zhí)行Sub方法,然后執(zhí)行Sub的基類Base的靜態(tài)方法(沒有),然后執(zhí)行Sub的靜態(tài)方法(沒有),然后執(zhí)行父類的非靜態(tài)代碼塊(沒有),然后執(zhí)行父類的構造函數(shù)(里面有一個callName方法,因為sub中override了callName方法,所以父類的構造函數(shù)里面的callName方法,執(zhí)行的是Sub類中的override的callName方法),然偶引用sub中callName中的baseName屬性,但是此時還沒有執(zhí)行到Sub類中的private String basename="basename" ,所以此時baseName還保持在null的狀態(tài),會打印出null的值

synchronized與volatile的區(qū)別:
synchronize既可以保證原子性,又可以保證修改可見性,而volatile只能保證修改可見性
volatile的本質(zhì)是告訴jvm,寄存器中的值是不可信的,直接去內(nèi)存中取值 ,synchronized是鎖定當前變量,同一時間只能有一個線程訪問變量
volatile不會阻塞線程,而synchronized會阻塞線程
volatile標記的變量不會被編譯器優(yōu)化,而synchronized標記的變量會被線程優(yōu)化

反射的主要作用:
運行時判斷一個類所屬的對象:isInstance();
運行時得到一個對象所屬的類: getClass();
運行時構造一個類的對象: Class.forName("ClassName").newInstance();
運行時獲取一個類的任意成員變量和方法,getFields,getMethods等
運行時調(diào)用任意類的任意方法
生成動態(tài)代理(需要特殊記)

集合中各種類的同步性:
List中,常見的LinkedList,ArrayList,都不是同步的
List中,不常見的Vector,以及繼承與Vector的Stack,都是同步的

Set中,常見的HashSet,以及集成與HashSet的linkedHashset,都不是同步的
Set中,不常見的TreeSet,也是不同步的

Map中,常見的HashMap,linkedhashmap,都是不同步的
Map中,不常見的TreeMap,WeakHashMap,IdentityHashMap是不同步的

總結,常見的linkedlist,arraylist,hashset,linkedhashset,hashmap,linkedhashmap都是不同步的
常見的set,map都沒有同步的,只有l(wèi)ist中vector是同步的
只有vector和繼承與vector的stack是同步的

StringBuffer是同步的,而StringBuilder是不同步的
HashMap不同步,但是Hashtable同步 (hashtable繼承了Dictionary,實現(xiàn)了Map接口,屬于map)
Properties繼承與Hashtable,Properties也是同步的

true,false,null,都是保留字,而不是關鍵字

轉(zhuǎn)載于:https://juejin.im/post/5b42b524f265da0faf71ab97

總結

以上是生活随笔為你收集整理的牛客网刷题(纯java题型 31~60题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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