主頁 > 後端開發 > 2020Java后端開發面試題總結(春招+秋招+社招)

2020Java后端開發面試題總結(春招+秋招+社招)

2020-12-22 11:53:27 後端開發

前言

今天給大家分享一些Java面試中頻繁被問到的一些面試題吧,在寫之前先給大家說一聲:冬至快樂,大家一定記得吃餃子喔~

文章目錄

Java基礎——基礎知識
Java基礎——集合框架/泛型/容器
Java基礎——多執行緒
Java基礎——框架基礎:注解/反射/流行框架
Java基礎——面向物件:繼承/多型/封裝
Java基礎——設計模式
Java基礎——JVM/類加載
Java基礎——I/O
網路編程和計網
資料庫
作業系統
資料結構

Java基礎—基礎知識

一、 九種基本資料型別的大小,以及他們的封裝類,

byte(Byte) 1 ,short(Short) 2 ,int(Integer) 4 ,long(Long) 8 ,float(Float) 4 ,double(Double)8,boolean(Boolean),char(Character)2

二、Switch能否用string做引數?

switch陳述句中的變數型別可以使byte,short,int,char,從jdk1.7后可以使用String型別,是通過switch中的String.hashcode將String轉換成int進行判斷的,

三、equals與==的區別,

==運算子是用來比較兩個變數的值是否相等,即就是比較變數在記憶體中的存盤地址是否相同,equals()方法時String類從Object類中繼承的,被用來檢測兩個物件的內容是否相同,

四、String s=new String(‘xyz’);創建了幾個object物件?

會創建一個String型別的變數s,在類加載到此處之前沒有出現“xyz”字面量的話,加載此處會創建一個對應“xyz”的String常量物件,在符合規范的JVM上,執行到此處new關鍵字會創建一個String物件,

五、 Object有哪些公用方法?

1、clone()創建斌回傳此物件的副本

2、equals()判斷

3、getclass()回傳object的運行類

4、hashcode()回傳物件的哈希碼值

5、notify()喚醒正在等待物件監聽器的單個行程

6、notifyAll()喚醒正在等待物件監聽器的所有行程

7、wait()導致當前執行緒等待,直到另一個執行緒呼叫該物件的 notify()方法或 notifyAll()方法,

8、toString()回傳此物件的字串表示形式

9、finalize()當垃圾收集確定不需要該物件時,垃圾回收器呼叫該方法

六、Java的四種參考,強弱軟虛,用到的場景,

強參考:垃圾回收器不會回收

軟參考:如果記憶體空間足夠,垃圾回收器就不會進行回收,如果記憶體空間不足,垃圾回收器就會進行回收

弱參考:一旦發現了只有弱參考的物件,垃圾回收器就會進行回收,

虛參考:如果發現該物件還具有虛參考,就會在回收該物件之前,吧這個虛參考加入到與之關聯的參考佇列中,

七、靜態變數和實體變數的區別,

靜態變數前要加上關鍵字static,實體變數則不會,

實體變數是屬于某個物件的屬性,必須創建了實體物件,其中的實體變數才會分配空間,才能使用這個實體變數,靜態變數不屬于任何的實體物件,而是屬于類,也稱為類變數,只要程式加載了類的位元組碼,不用創建任何實體物件,就會被分配空間,總之就是,靜態變數不需要創建任何的物件就可以直接使用,而實體變數需要先創建實體物件才能被使用,

八、 Overload和Override的區別:

多載Overload表示的是同一個類中可以有多個相同名稱的方法,但這些方法的引數串列不同,即就是引數引數或引數型別不同,多載時回傳值當然可以不一樣,但是如果引數串列完全一致時,不能通過回傳型別不一致而實作多載,這是不可以的,

重寫Override表示子類中的方法可以與父類中的方法名稱和引數完全相同,通過子類創建的物件來呼叫這個方法時,將呼叫子類中定義的方法,即就是子類中的該方法將父類的該方法覆寫了,子類覆寫父類方法時只能拋比父類更少或者更小的例外,重寫的方法其回傳必須和被覆寫的方法回傳一致,

九、抽象類和介面的區別,

抽象類可以有默認的方法進行實作,可以有構造器,可以有main方法進行運行,可以直接在該類中添加實作的方法介面沒有默認的方法進行實作,沒有構造器,不可以使用main方法進行運行,在介面中添加方法時需要在具體實作的類中添加方法,

十、String、StringBuffer與StringBuilder的區別,

String表示內容不可修改的字串,StringBuffer表示內容可以修改的字串,String覆寫了equals()方法和hashcode()方法,而StringBuffer沒有覆寫兩個方法,,所以StringBuffer物件存盤到java集合類中時會出現問題,

StringBulider也表示內容可以修改的字串,但是其執行緒是不安全的,運行效率高,

十一、 Java面向物件的特征與含義,

封裝、繼承、抽象、多型

1、封裝:封裝的目的在于實作程式的“高內聚,低耦合”,防止程式相互依賴而帶來的變動影響,封裝是保證是把對同一事物進行操作的方法和相關的方法放在同一個類中,把方法和他操作的資料放在同一個類中,

2、抽象:抽象就是找出事物的相似和共性,然后將這些事物歸為同一類,這個類只考慮這些事物的相似和共性,忽略和當前主題不相關的因素,

3、繼承:子類繼承父類的內容作為自己的內容,可以加入新的內容或者是修改父類的內容而更加適合特殊的需要,提高了額程式的可重用性和可擴張性,

4、多型:多型是指程式中定義的參考變數所指向的具體型別和通過該參考變數發出的方法呼叫在編程時并不確定,而是在程式運行期間才確定,即一個參考變數倒底會指向哪個類的實體物件,該參考變數發出的方法呼叫到底是哪個類中實作的方法,必須在由程式運行期間才能決定,

上圖是我整理的關于Jvm資料的檔案,需要的可以點擊領取資料!!!

十二、java多型的實作

介面實作,繼承父類進行方法重寫,

同一個類中進行方法多載,

十三、error和exception區別

error表示有可能恢復但比較困難的的一種嚴重問題,程式是不能進行處理的exception表示一種設計或者實作問題,

十四、運行時例外和一般例外的區別

例外表示程式運行程序中可能出現的非正常狀態,運行時例外表示虛擬機的通常操作中可能遇到的例外,是一種常見的運行錯誤,java編譯器要求方法必須宣告拋出可能出現的非運行時例外,但是并不要求必須宣告拋出未被捕獲的例外

十五、Java中的例外處理機制和簡單原理和應用

JAVA程式違反了JAVA的語意規則時,JAVA虛擬機就會將發生的錯誤表示為一個例外,違反語意規則包括2種情況,一種是JAVA類別庫內置的語意檢查,例如陣列下標越界,會引發IndexOutOfBoundsException;訪問null的物件時會引發 NullPointerException,另一種情況就是JAVA允許程式員擴展這種語意檢查,程式員可以創建自己的例外,并自由選擇在何時用 throw關鍵字引發例外,所有的例外都是java.lang.Thowable的子類,

十六、Java語言如何進行例外處理,throws,throw,try catch finally代表什么意義,try塊中可以拋出例外嗎?

Java通過面向物件的方法進行例外處理,把各種不同的例外進行分類,并提供了良好的介面,在Java中,每個例外都是一個物件,它是Throwable類或其它子類的實體,當一個

方法出現例外后便拋出一個例外物件,該物件中包含有例外資訊,呼叫這個物件的方法可以捕獲到這個例外并進行處理,Java的例外處理是通過5個關鍵詞來實作的:try、catch、throw、throws和finally,一般情況下是用try來執行一段程式,如果出現例外,系統會拋出(throws)一個例外,這時候你可以通過它的型別來捕捉(catch)它,或最后(finally)由預設處理器來處理,

用try來指定一塊預防所有”例外”的程式,緊跟在try程式后面,應包含一個catch子句來指定你想要捕捉的”例外”的型別,

throw陳述句用來明確地拋出一個”例外”,

throws用來標明一個成員函式可能拋出的各種”例外”,

Finally為確保一段代碼不管發生什么”例外”都被執行一段代碼,

可以在一個成員函式呼叫的外面寫一個try陳述句,在這個成員函式內部寫另一個try陳述句保護其他代碼,每當遇到一個try陳述句,”例外”的框架就放到堆疊上面,直到所有的try陳述句都完成,
如果下一級的try陳述句沒有對某種”例外”進行處理,堆疊就會展開,直到遇到有處理這種”例外”的try陳述句,

十七、 try catch finally,try里有return,finally還執行么?

1、finally陳述句總會執行

2、如果try、catch中有return陳述句,finally中沒有return,那么在finally中修改除包裝型別和靜態變數、全域變數以外的資料都不會對try、catch中回傳的變數有任何的影響(包裝型別、靜態變數會改變、全域變數)

3、盡量不要在finally中使用return陳述句,如果使用的話,會忽略try、catch中的回傳陳述句,也會忽略try、catch中的例外,屏蔽了錯誤的發生,

4、finally中避免再次拋出例外,一旦finally中發生例外,代碼執行將會拋出finally中的例外資訊,try、catch中的例外將被忽略

十八、 Java中final、finally和finalize的區別

final 用于宣告屬性,方法和類,分別表示屬性不可變,方法不可覆寫,類不可繼承,

內部類要訪問區域變數,區域變數必須定義成final型別,例如,一段代碼……

finally是例外處理陳述句結構的一部分,表示總是執行,

finalize是Object類的一個方法,在垃圾收集器執行的時候會呼叫被回收物件的此方法,可以覆寫此方法提供垃圾收集時的其他資源回收,例如關閉檔案等,JVM不保證此方法總被呼叫,

十九、 常見的運行時例外

系統例外是RuntimeException的子類,常見的系統例外有:

ArrayIndexOutOfBoundsException - 陣列越界訪問

ClassCastException - 型別轉換例外

NullPointerException - 試圖訪問一空物件的變數、方法或空陣列的元素

IllegalArgumentException - 方法的引數無效

NoClassDefFoundException - JAVA運行時系統找不到所參考的類

集合:

二十、Collection框架的結構

集合框架(Collection Framework)泛指java.util包的若干個類和介面.如Collection,List,ArrayList,LinkedList,Vector(自動增長陣列),HashSet,HashMap等,

集合框架中的類主要封裝的是典型的資料結構,如動態陣列,鏈表,堆疊,集合,哈希表等.

集合框架類似編程中經常用到的工具類,使得編碼這專注于業務層的實作,不需要從底層實作相關細節—“資料結構的封裝”和”典型演算法的實作”,

二十一、Collection包結構

Collection是集合類的上級介面,是單列集合,繼承他的介面主要有Set 和List.

Set介面的子介面有:HashSet,TreeSet

List介面的子介面有:Arraylist,LinkedList,Vector

二十二、Collection與Collections的區別,

Collection是集合類的上級介面,繼承他的介面有Set和List

Collections是針對集合類的一個幫助類,它提供一系列的靜態方法實作集合的搜索,排序,執行緒安全等操作,

二十三、 Colection框架中實作比較要實作什么介面?

comparable:只包含compareTo()方法

comparator:compare()和equals()

二十四、Map、Set、List、Queue、Stack的特點與用法,

1、Map是以鍵值對的形式進行存盤的,其中key是唯一不可重復的,value的可以重復,當插入的值是key相同,后加入的會將已有的覆寫,他有幾個具體的實作類,包括Treemap和HashMap,TreeMap是有序的,HashMap是無序的,

2、List 有序,可重復

|–ArrayList

底層資料結構是陣列,查詢快,增刪慢,執行緒不安全,效率高

|–Vector

底層資料結構是陣列,查詢快,增刪慢,執行緒不安全,效率高

|–LinkedList

底層資料結構是鏈表,查詢慢,增刪塊,執行緒安全,效率低

3、Set 無序,唯一

|–HashSet

底層資料結構是哈希表

如何保證元素的唯一性:

依賴兩個方法,hashCode()和equals()

|–LinkedHashSet

底層資料結構是鏈表和哈希表,由鏈表保證元素有序,由哈希表保證元素唯一

|–TreeSet底層資料結構是紅黑樹,

如何保證元素的排序:

自然排序:讓元素所屬的類實作Comparable介面

比較器排序:讓集合接收一個Comparator的實作類物件

如何保證元素的唯一性:

根據比較的回傳值是否是0來決定的

4、Query佇列遵循先進先出的原則,不允許插入null值,其中提供了相應的進隊和出隊的方法,建議使用offer()方法來添加元素,使用poll()方法洗掉元素

5、Stack遵從后進先出的原則,繼承自Vector,他通過5個操作對Vector類進行擴展,它提供了push和pop操作,以及去堆疊頂點的peek()方法,測驗堆疊是否為空的empty方法

6、使用方法:

如果涉及到堆疊,佇列等操作,建議使用List

對于快速插入和洗掉元素建議使用LinkedList

需要快速隨機訪問元素建議使用ArrayList

需要圖中資料的可以點擊這里獲取哦!!!

二十五、 Set里面的元素不能重復,用什么方法區分重復與否?

Set里的元素是唯一不能重復的,元素是否重復使用equals()方法進行判斷,

equals()方法和==方法決定參考值是否指向同一物件equals()在類中被覆寫,為的是兩個分離的物件的內容和型別相匹配的話,回傳真值,

二十六、HashMap和Hashtable的區別,

1、Hashtable是基于Dictionary類的,HashMap是Map介面的一個實作類

2、Hashtable是執行緒安全的,即是同步的;HashMap執行緒不是安全的,不是同步的,

3、HashMap可以將空值作為key或value

二十七、 HashMap、LinkedHashMap、TreeMap的區別,

1、HashMap是根據鍵的hashcode值存盤資料,根據鍵可以直接獲取它的值,具有很快的訪問速度,取得的資料完全是隨機的

2、LinkedHashMap保存了記錄的插入順序,在使用Iterator進行遍歷的時候,先得到的肯定是先插入的資料,可以在構造時帶引數,按照應用次數來進行排序

3、TreeMap實作SortMap介面,能夠把它保存的記錄根據鍵排序,默認的是升序排序,也可以指定排序的比較器,進行遍歷的時候得到的是排序過的記錄,

二十八、HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底層實作,

1、HashMap是java資料結構中兩大結構陣列和鏈表的組合,HashMap底層陣列,陣列中的每一項又是一個鏈表,程式會先根據key的hashcode()方法回傳值決定該Entry在陣列中的

存盤位置,如果該位置上沒有元素,就會將元素放置在此位置上,如果兩個Entry的key相同,會呼叫equals,回傳值是true則覆寫原來的value值,回傳false則會形成Entry鏈,位于頭部,

2、ArrrayList的底層實作是陣列,在執行add操作時,會先檢查陣列 大小是否可以容納新的元素,如果不夠就會進行擴容,然后會將原來的資料拷貝到新的陣列中,

3、LinkedList底層是一個鏈表,其實作增刪改查和資料結構中的操作完全相同,而且插入是有序的,

4、LinkedHashMap的底層結構式是雙鏈表,其他的邏輯處理與HashMap一致,同樣沒有鎖保護,多執行緒使用時存在風險,

5、ConcurrentHashMap是segment陣列結構和HashEntry陣列結構組成的,segment在ConcurrentHashMap中充當鎖的角色,HashEntry用于存盤鍵值對資料,segment的結構是陣列和鏈表,一個segment中有一個HashEntry,每個HashEntry是一個鏈表結構的元素,對HashEntry中的資料進行修改時,需要先獲得它所對應的segment鎖,每個ConcurrentHashMap默認有16個segment,

二十九、迭代器Iterator

Iterator提供了統一遍歷操作集合元素的統一介面,Collection介面實作Iterator介面,每個集合都通過實作Iterator介面中的iterator()方法回傳實體,然后對元素進行迭代操作,但是在迭代元素的時候不能使用集合的方法洗掉元素,否則會拋出例外,可以使用Iterator介面中的remove()方法進行洗掉,

三十、 快速失敗(fail-fast)和安全失敗(fail-safe)的區別,

Iterator的安全失敗是基于對底層集合做拷貝,因此它不受源集合修改的影響,util包下的所有集合類都是快速失敗的,util.concurren包下面的所有類都是安全失敗的,

Java基礎—集合框架/泛型/容器

概念

一、容器(Container)
Spring 提供容器功能,容器可以管理物件的生命周期、物件與物件之間的依賴關系,您可以使用一個組態檔(通常是 XML),在上面定義好物件的名稱、如何產生(Prototype 方式或 Singleton 方式)、哪個物件產生之后必須設定成為某個物件的屬性等,在啟動容器之后,所有的物件都可以直接取用,不用撰寫任何一行程式代碼來產生物件,或是建立物件與物件之間的依賴關系,
換個更直白點的說明方式:容器是一個 Java 所撰寫的程式,原先必須自行撰寫程式以管理物件關系,現在容器都會自動幫您作好,
常用容器:WebSphere,WebLogic,Resin,Tomcat,

容器類

容器類 其實就是一種用來存盤資料的資料結構,在 JAVA 中容器可分為即 “集合”(Set)、“串列”(List)、“映射”(Map),至于,為什么需要容器,總的來說,主要是在以陣列作為資料的存盤結構中,其長度難以擴充,同時陣列中元素型別必須相同,而容器可以彌補陣列的這兩個缺陷,

Java 容器類包含 List、ArrayList、Vector 及 map、HashTable、HashMap,

ArrayList 和 HashMap 是異步的,Vector 和 HashTable 是同步的,所以 Vector 和 HashTable 是執行緒安全的,而 ArrayList 和 HashMap 并不是執行緒安全的,因為同步需要花費機器時間,所以 Vector 和 HashTable 的執行效率要低于 ArrayList 和 HashMap,

二、集合框架的說明

所有集合類都位于 java.util 包下,Java 的集合類主要由兩個介面派生而出:Collection 和 Map,Collection 和 Map 是 Java 集合框架的根介面,這兩個介面又包含了一些子介面或實作類,

1.Set、List 和 Map 可以看做集合的三大類:

2.List 集合是有序集合,集合中的元素可以重復,訪問集合中的元素可以根據元素的索引來訪問,

Set 集合是無序集合,集合中的元素不可以重復,訪問集合中的元素只能根據元素本身來訪問(也是集合里元素不允許重復的原因),

3.Map 集合中保存 Key-value 對形式的元素,訪問時只能根據每項元素的 key 來訪問其 value,

三、集合框架詳細說明

1、Collection 是一個介面,是高度抽象出來的集合,它包含了集合的基本操作和屬性,Collection 包含了 List 和 Set 兩大分支,
(1)List 是一個 有序的佇列,每一個元素都有它的索引,第一個元素的索引值是 0,List 的實作類有 LinkedList, ArrayList, Vector, Stack,

(2)Set 是一個不允許有重復元素的集合,Set 的實作類有 HastSet 和 TreeSet, HashSet 依賴于 HashMap,它實際上是通過 HashMap 實作的;TreeSet 依賴于 TreeMap,它實際上是通過 TreeMap 實作的,

2、Map 是一個映射介面,即 key-value 鍵值對,Map 中的每一個元素包含 “一個 key” 和 “key 對應的 value”,AbstractMap 是個抽象類,它實作了 Map 介面中的大部分 API,而 HashMap,TreeMap,WeakHashMap 都是繼承于 AbstractMap,Hashtable 雖然繼承于 Dictionary,但它實作了 Map 介面,

3、接下來,再看 Iterator,它是遍歷集合的工具,即我們通常通過 Iterator 迭代器來遍歷集合,我們說 Collection 依賴于Iterator,是因為 Collection 的實作類都要實作 iterator () 函式,回傳一個 Iterator 物件,ListIterator 是專門為遍歷 List 而存在的,

4、再看 Enumeration,它是 JDK 1.0 引入的抽象類,作用和 Iterator 一樣,也是遍歷集合;但是 Enumeration 的功能要比 Iterator 少,在上面的框圖中, Enumeration 只能在 Hashtable, Vector, Stack 中使用,

5、最后,看 Arrays 和 Collections,它們是操作陣列、集合的兩個工具類,

四、集合與陣列

五、層次關系

六、幾種重要的介面和類簡介

七、遍歷

八、ArrayList 和 LinkedList

九、Map 集合

十、主要實作類區別小結

Java基礎—多執行緒

一、多執行緒基本概念

二、執行緒相關的常用方法

三、繼承Thread類

四、實作Runnable 介面

五、Java 分為兩種執行緒:用戶執行緒和守護執行緒

六、用戶執行緒就是前臺執行緒,守護執行緒就是后臺執行緒

七、什么是可重入鎖?

八、Lock 與 synchronized 的不同

九、synchronized的使用

十、atomic 包底層實作原理

十一、Lock底層原理

十二、多執行緒不安全的底層原因以及兩種加鎖方式的區別

十三、Java多執行緒中 的各種鎖

十四、Java多執行緒中 的各種鎖(補充)

十五、阻塞佇列BlockingQueue

十六、Java執行緒池、Java執行緒池進階、Java中的ThreadLocal

Java基礎—框架基礎:注解/反射/流行框架

一、優化 Hibernate 所鼓勵的7大措施

二、序列化和反序列化

三、Java中池的概念

四、Java反射

五、Spring的IOC和AOP概念和實作原理

六、 仿照 Spring 實作簡單的 IOC

七、仿照 Spring 實作簡單的 AOP

八、Spring bean 的生命流程

九、仿寫Spring 進階之 AOP和IOC協作

Java基礎—面向物件:繼承/多型/封裝

一、重寫與多載

二、單繼承和多繼承

三、多型

四、super和this關鍵字

Java基礎—設計模式

一、單例模式之懶漢式和餓漢式

二、設計模式之觀察者模式

三、設計模式之工廠模式

四、設計模式之代理模式

Java基礎—JVM/類加載

一、初始化執行代碼順序(包含static塊和構造塊)以及類方法和實體方法

二、JVM記憶體結構

三、JVM組成部分

四、類加載機制

五、類加載器

六、Java類加載器之間的關系

七、虛擬機中的物件

八、虛擬機 分配記憶體

九、Java中的參考型別

十、JVM如何判斷是否回收物件

十一、垃圾回收演算法

十二、JVM運行時資料區域

十三、JVM垃圾收集器

十四、JVM垃圾回收

十五、Java中的記憶體泄露和記憶體溢位

Java基礎——I/O

一、I/O 基本概念

二、I/O 模型 ——阻塞、非阻塞、多路復用、異步

三、JAVA中 BIO 與 NIO、AIO

網路編程和計網

一、Java中的原碼、反碼和補碼

二、forward 和 redirect

三、URL的組成

四、通信的基礎——IP、DNS、MAC地址

五、關于ip地址的理解

六、GFW(中國防火長城)作業原理

七、OSI七層模型和 五層體系結構

八、TCP 三次握手和四次揮手協議

九、TCP協議 (可靠保證、TCP、UDP、擁塞、ARQ)

十、HTTP 和 HTTPS

十一、Http/1.0、Http/1.1、Http2

十二、Https 加密程序詳解

十三、HTTP協議的補充(POST、GET請求方法、冪等性)

十四、網路攻擊(XSS、CSRF)詳解

十五、DDoS 攻擊詳解

十六、SQL注入攻擊詳解

資料庫

一、結果集 (ResultSet)全面決議

二、基本概念

三、索引

四、事務

五、存盤引擎

六、資料庫優化

七、資料庫鎖

八、主從復制和讀寫分離

作業系統

一、執行緒行程部分

二、記憶體和中斷

三、互斥和同步

四、Linux相關命令

五、Linux IO 模式及 select、poll、epoll 詳解

資料結構

一、鏈表、陣列、字符、樹篇

二、堆、堆疊、佇列篇

三、B樹、B+樹、B*樹

四、Java實作排序演算法,比較時間復雜度

五、紅黑樹

六、資料結構之堆疊

七、搜索與回溯演算法-Java實作

八、高效判斷一個數,是不是素數

最后

筆者整理了最新各路知識點合集包含有:資料結構、演算法、資料庫、spring全家桶系列、JVM、MySQL、MyBatis、Dubbo、Liunx、TomCat等多種知識點,
如果各位有需要的話 點擊這里可以領取資料!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/238533.html

標籤:java

上一篇:SpringBoot2 整合OAuth2組件,模擬第三方授權訪問

下一篇:Google、Facebook等均開始支持的HTTP3到底是個什么鬼?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more