欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

阿里、華為、騰訊Java技術(shù)面試題精選

 更新時間:2017年11月02日 10:41:48   投稿:lijiao  
這篇文章主要為大家分享了阿里、華為、騰訊Java技術(shù)面試題精選,具有一定的參考價值,感興趣的小伙伴們可以參考一下

阿里、華為、騰訊Java技術(shù)面試題精選,具體內(nèi)容如下

JVM的類加載機制是什么?有哪些實現(xiàn)方式?

類加載機制:

類的加載指的是將類的.class文件中的二進制數(shù)據(jù)讀入到內(nèi)存中,將其放在運行時數(shù)據(jù)區(qū)的方法去內(nèi),然后在堆區(qū)創(chuàng)建一個java.lang.Class對象,用來封裝在方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu)。類的加載最終是在堆區(qū)內(nèi)的Class對象,Class對象封裝了類在方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu),并且向Java程序員提供了訪問方法區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu)的接口。

類加載有三種方式:

1)命令行啟動應(yīng)用時候由JVM初始化加載

2)通過Class.forName()方法動態(tài)加載

3)通過ClassLoader.loadClass()方法動態(tài)加載

JVM的常見垃圾回收算法?

1)標(biāo)記-清楚算法:前后線標(biāo)記處所有需要回收的對象,在標(biāo)記完成后統(tǒng)一回收有被標(biāo)記的對象。

2)復(fù)制算法:將可用內(nèi)存按容量劃分為大小相等的兩塊,每次只使用其中的一塊。當(dāng)一塊內(nèi)存用完了,將其存在另外一塊上面,然后再把已使用過的內(nèi)存空間一次清理掉。

3)標(biāo)記-整理算法:標(biāo)記過程與“標(biāo)記-清除”算法一樣,但后續(xù)步驟不是直接對可回收對象進行清理,而是讓所一端移動,然后直接清理掉端邊界以外的內(nèi)存。

4)分代收集算法:一般是把Java堆分為新生代和老年代,根據(jù)各個年代的特點采用最適當(dāng)?shù)氖占惴āP律及l(fā)現(xiàn)有大批對象死去,選用復(fù)制算法。老年代中因為對象存活率高,必須使用“標(biāo)記-清理”或“標(biāo)記-整理”算法來進行回收。

JVM調(diào)優(yōu)的常見命令行工具有哪些?JVM常見的調(diào)優(yōu)參數(shù)有哪些?

(1)JVM調(diào)優(yōu)的常見命令工具包括:

1)jps命令用于查詢正在運行的JVM進程,

2)jstat可以實時顯示本地或遠程JVM進程中類裝載、內(nèi)存、垃圾收集、JIT編譯等數(shù)據(jù)

3)jinfo用于查詢當(dāng)前運行這的JVM屬性和參數(shù)的值。

4)jmap用于顯示當(dāng)前Java堆和永久代的詳細信息

5)jhat用于分析使用jmap生成的dump文件,是JDK自帶的工具

6)jstack用于生成當(dāng)前JVM的所有線程快照,線程快照是虛擬機每一條線程正在執(zhí)行的方法,目的是定位線程出現(xiàn)長時間停頓的原因。

(2)JVM常見的調(diào)優(yōu)參數(shù)包括:

-Xmx

  指定java程序的最大堆內(nèi)存, 使用java -Xmx5000M -version判斷當(dāng)前系統(tǒng)能分配的最大堆內(nèi)存

-Xms

  指定最小堆內(nèi)存, 通常設(shè)置成跟最大堆內(nèi)存一樣,減少GC

-Xmn

  設(shè)置年輕代大小。整個堆大小=年輕代大小 + 年老代大小。所以增大年輕代后,將會減小年老代大小。此值對系統(tǒng)性能影響較大,Sun官方推薦配置為整個堆的3/8。

-Xss

  指定線程的最大棧空間, 此參數(shù)決定了java函數(shù)調(diào)用的深度, 值越大調(diào)用深度越深, 若值太小則容易出棧溢出錯誤(StackOverflowError)

-XX:PermSize

  指定方法區(qū)(永久區(qū))的初始值,默認(rèn)是物理內(nèi)存的1/64, 在Java8永久區(qū)移除, 代之的是元數(shù)據(jù)區(qū), 由-XX:MetaspaceSize指定

-XX:MaxPermSize

  指定方法區(qū)的最大值, 默認(rèn)是物理內(nèi)存的1/4, 在java8中由-XX:MaxMetaspaceSize指定元數(shù)據(jù)區(qū)的大小

-XX:NewRatio=n

  年老代與年輕代的比值,-XX:NewRatio=2, 表示年老代與年輕代的比值為2:1

-XX:SurvivorRatio=n

  Eden區(qū)與Survivor區(qū)的大小比值,-XX:SurvivorRatio=8表示Eden區(qū)與Survivor區(qū)的大小比值是8:1:1,因為Survivor區(qū)有兩個(from, to)

 ConcurrentHashMap加鎖機制是什么,詳細說一下?

HashTable容器在競爭激烈的并發(fā)環(huán)境下表現(xiàn)出效率低下的原因,是因為所有訪問HashTable的線程都必須競爭同一把鎖,那假如容器里有多把鎖,每一把鎖用于鎖容器其中一部分?jǐn)?shù)據(jù),那么當(dāng)多線程訪問容器里不同數(shù)據(jù)段的數(shù)據(jù)時,線程間就不會存在鎖競爭,從而可以有效的提高并發(fā)訪問效率,這就是ConcurrentHashMap所使用的鎖分段技術(shù),首先將數(shù)據(jù)分成一段一段的存儲,然后給每一段數(shù)據(jù)配一把鎖,當(dāng)一個線程占用鎖訪問其中一個段數(shù)據(jù)的時候,其他段的數(shù)據(jù)也能被其他線程訪問。

 G1收集器簡介?以及它的內(nèi)存劃分怎么樣的?

(1)簡介:

Garbage-First(G1,垃圾優(yōu)先)收集器是服務(wù)類型的收集器,目標(biāo)是多處理器機器、大內(nèi)存機器。它高度符合垃圾收集暫停時間的目標(biāo),同時實現(xiàn)高吞吐量。Oracle JDK 7 update 4 以及更新發(fā)布版完全支持G1垃圾收集器

(2)G1的內(nèi)存劃分方式:

它是將堆內(nèi)存被劃分為多個大小相等的 heap 區(qū),每個heap區(qū)都是邏輯上連續(xù)的一段內(nèi)存(virtual memory). 其中一部分區(qū)域被當(dāng)成老一代收集器相同的角色(eden, survivor, old), 但每個角色的區(qū)域個數(shù)都不是固定的。這在內(nèi)存使用上提供了更多的靈活性

在重寫equals方法時,需要遵循哪些約定,具體介紹一下?

重寫equals方法時需要遵循通用約定:自反性、對稱性、傳遞性、一致性.、非空性

1)自反性

對于任何非null的引用值x,x.equals(x)必須返回true。---這一點基本上不會有啥問題

2)對稱性

對于任何非null的引用值x和y,當(dāng)且僅當(dāng)x.equals(y)為true時,y.equals(x)也為true。

3)傳遞性

對于任何非null的引用值x、y、z。如果x.equals(y)==true,y.equals(z)==true,那么x.equals(z)==true。

4) 一致性

對于任何非null的引用值x和y,只要equals的比較操作在對象所用的信息沒有被修改,那么多次調(diào)用x.eqals(y)就會一致性地返回true,或者一致性的返回false。

5)非空性

所有比較的對象都不能為空。

Synchronized優(yōu)化后的鎖機制簡單介紹一下,包括自旋鎖、偏向鎖、輕量級鎖、重量級鎖?

自旋鎖:

線程自旋說白了就是讓cup在做無用功,比如:可以執(zhí)行幾次for循環(huán),可以執(zhí)行幾條空的匯編指令,目的是占著CPU不放,等待獲取鎖的機會。如果旋的時間過長會影響整體性能,時間過短又達不到延遲阻塞的目的。

偏向鎖

偏向鎖就是一旦線程第一次獲得了監(jiān)視對象,之后讓監(jiān)視對象“偏向”這個線程,之后的多次調(diào)用則可以避免CAS操作,

說白了就是置個變量,如果發(fā)現(xiàn)為true則無需再走各種加鎖/解鎖流程。

輕量級鎖:

輕量級鎖是由偏向所升級來的,偏向鎖運行在一個線程進入同步塊的情況下,當(dāng)?shù)诙€線程加入鎖爭用的時候,偏向鎖就會升級為輕量級鎖;

重量級鎖

重量鎖在JVM中又叫對象監(jiān)視器(Monitor),它很像C中的Mutex,除了具備Mutex(0|1)互斥的功能,它還負責(zé)實現(xiàn)了Semaphore(信號量)的功能,也就是說它至少包含一個競爭鎖的隊列,和一個信號阻塞隊列(wait隊列),前者負責(zé)做互斥,后一個用于做線程同步。

偏向鎖、輕量級鎖、重量級鎖的對比:

Redis和Memcache區(qū)別對比?如何選擇這兩個技術(shù)?

區(qū)別:

1) Redis和Memcache都是將數(shù)據(jù)存放在內(nèi)存中,都是內(nèi)存數(shù)據(jù)庫。不過memcache還可用于緩存其他東西,例如圖片、視頻等等。

2)Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。

3)虛擬內(nèi)存--Redis當(dāng)物理內(nèi)存用完時,可以將一些很久沒用到的value 交換到磁盤

4)過期策略--memcache在set時就指定,例如set key1 0 0 8,即永不過期。Redis可以通過例如expire 設(shè)定,例如expire name 10

5)分布式--設(shè)定memcache集群,利用magent做一主多從;redis可以做一主多從。都可以一主一從

6)存儲數(shù)據(jù)安全--memcache掛掉后,數(shù)據(jù)沒了;redis可以定期保存到磁盤(持久化)

7)災(zāi)難恢復(fù)--memcache掛掉后,數(shù)據(jù)不可恢復(fù); redis數(shù)據(jù)丟失后可以通過aof恢復(fù)

8)Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

選型:

若是簡單的存取key-value這樣的數(shù)據(jù)用memcache好一些

若是要支持?jǐn)?shù)據(jù)持久化,多數(shù)據(jù)類型(如集合、散列之類的),用列表類型做隊列之類的高級應(yīng)用,就用redis

Redis的持久化機制是什么?各自的優(yōu)缺點?

redis提供兩種持久化機制RDB和AOF機制。

1)RDB持久化方式:

是指用數(shù)據(jù)集快照的方式記錄redis數(shù)據(jù)庫的所有鍵值對。

優(yōu)點:

  1.只有一個文件dump.rdb,方便持久化。

  2.容災(zāi)性好,一個文件可以保存到安全的磁盤。

  3.性能最大化,fork子進程來完成寫操作,讓主進程繼續(xù)處理命令,所以是IO最大化。

  4.相對于數(shù)據(jù)集大時,比AOF的啟動效率更高。

缺點:

  1.數(shù)據(jù)安全性低。

2)AOF持久化方式:

是指所有的命令行記錄以redis命令請求協(xié)議的格式保存為aof文件。

優(yōu)點:

  1.數(shù)據(jù)安全,aof持久化可以配置appendfsync屬性,有always,每進行一次命令操作就記錄到aof文件中一次。

  2.通過append模式寫文件,即使中途服務(wù)器宕機,可以通過redis-check-aof工具解決數(shù)據(jù)一致性問題。

  3.AOF機制的rewrite模式。

缺點:

  1.文件會比RDB形式的文件大。

  2.數(shù)據(jù)集大的時候,比rdb啟動效率低。

Mysql的數(shù)據(jù)庫表鎖、行鎖、頁級鎖?

表級,直接鎖定整張表,在你鎖定期間,其它進程無法對該表進行寫操作。如果你是寫鎖,則其它進程則讀也不允許

行級,,僅對指定的記錄進行加鎖,這樣其它進程還是可以對同一個表中的其它記錄進行操作。

頁級,表級鎖速度快,但沖突多,行級沖突少,但速度慢。所以取了折衷的頁級,一次鎖定相鄰的一組記錄。

數(shù)據(jù)庫的四大特征,數(shù)據(jù)庫的隔離級別?

數(shù)據(jù)庫的四大特征:

(1)原子性(Atomicity)

原子性是指事務(wù)包含的所有操作要么全部成功,要么全部失敗回滾。

(2)一致性(Consistency)

一個事務(wù)執(zhí)行之前和執(zhí)行之后都必須處于一致性狀態(tài)。

(3)隔離性(Isolation)

隔離性是當(dāng)多個用戶并發(fā)訪問數(shù)據(jù)庫時,比如操作同一張表時,數(shù)據(jù)庫為每一個用戶開啟的事務(wù),不能被其他事務(wù)的操作所干擾,多個并發(fā)事務(wù)之間要相互隔離。

4)持久性(Durability)

持久性是指一個事務(wù)一旦被提交了,那么對數(shù)據(jù)庫中的數(shù)據(jù)的改變就是永久性的。

 數(shù)據(jù)庫的隔離級別:

1)Serializable (串行化):可避免臟讀、不可重復(fù)讀、幻讀的發(fā)生。2)Repeatable read (可重復(fù)讀):可避免臟讀、不可重復(fù)讀的發(fā)生。3)Read committed (讀已提交):可避免臟讀的發(fā)生。4)Read uncommitted (讀未提交):最低級別,任何情況都無法保證。

set集合從原理上如何保證不重復(fù)

1)在往set中添加元素時,如果指定元素不存在,則添加成功。也就是說,如果set中不存在(e==null ? e1==null : e.queals(e1))的元素e1,則e1能添加到set中。

2)具體來講:當(dāng)向HashSet中添加元素的時候,首先計算元素的hashcode值,然后用這個(元素的hashcode)%(HashMap集合的大?。?1計算出這個元素的存儲位置,如果這個位置位空,就將元素添加進去;如果不為空,則用equals方法比較元素是否相等,相等就不添加,否則找一個空位添加。

HashMap和HashTable的主要區(qū)別是什么?,兩者底層實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)是什么?

HashMap和HashTable的區(qū)別:

二者都實現(xiàn)了Map 接口,是將惟一鍵映射到特定的值上;主要區(qū)別在于:

1)HashMap 沒有排序,允許一個null 鍵和多個null 值,而Hashtable 不允許;

2)HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和

containsKey,因為contains 方法容易讓人引起誤解;

3)Hashtable 繼承自Dictionary 類,HashMap 是Java1.2 引進的Map 接口的實現(xiàn);

4)Hashtable 的方法是Synchronize 的,而HashMap 不是,在多個線程訪問Hashtable 時,不需要自己為它的方法實現(xiàn)同步,而HashMap 就必須為之提供外同步。Hashtable 和HashMap 采用的hash/rehash 算法大致一樣,所以性能不會有很大的差異。

HashMap和HashTable的底層實現(xiàn)數(shù)據(jù)結(jié)構(gòu):

HashMap和Hashtable的底層實現(xiàn)都是數(shù)組+鏈表結(jié)構(gòu)實現(xiàn)的

HashMap何時擴容,擴容的算法是什么?

HashMap何時擴容:

當(dāng)向容器添加元素的時候,會判斷當(dāng)前容器的元素個數(shù),如果大于等于閾值---即當(dāng)前數(shù)組的長度乘以加載因子的值的時候,就要自動擴容

擴容的算法是什么:

擴容(resize)就是重新計算容量,向HashMap對象里不停的添加元素,而HashMap對象內(nèi)部的數(shù)組無法裝載更多的元素時,對象就需要擴大數(shù)組的長度,以便能裝入更多的元素。當(dāng)然Java里的數(shù)組是無法自動擴容的,方法是使用一個新的數(shù)組代替已有的容量小的數(shù)組

Java的虛擬機JVM的兩個內(nèi)存:棧內(nèi)存和堆內(nèi)存的區(qū)別是什么?

Java把內(nèi)存劃分成兩種:一種是棧內(nèi)存,一種是堆內(nèi)存。兩者的區(qū)別是:

1)棧內(nèi)存:在函數(shù)中定義的一些基本類型的變量和對象的引用變量都在函數(shù)的棧內(nèi)存中分配。 當(dāng)在一段代碼塊定義一個變量時,Java就在棧中為這個變量分配內(nèi)存空間,當(dāng)超過變量的作用域后,Java會自動釋放掉為該變量所分配的內(nèi)存空間,該內(nèi)存空間可以立即被另作他用。

2)堆內(nèi)存:堆內(nèi)存用來存放由new創(chuàng)建的對象和數(shù)組。在堆中分配的內(nèi)存,由Java虛擬機的自動垃圾回收器來管理。

Java中對異常是如何進行分類的?

異常整體分類:

1)Java異常結(jié)構(gòu)中定義有Throwable類。 Exception和Error為其子類。

2)其中Exception表示由于網(wǎng)絡(luò)故障、文件損壞、設(shè)備錯誤、用戶輸入非法情況導(dǎo)致的異常;

3)而Error標(biāo)識Java運行時環(huán)境出現(xiàn)的錯誤,例如:JVM內(nèi)存耗盡。

數(shù)據(jù)庫設(shè)計中常講的三范式是指什么?

1)第一范式1NF(域的原子性)

如果數(shù)據(jù)庫表中的所有字段值都是不可分解的原子值,就說明該數(shù)據(jù)庫表滿足了第一范式

2)第二范式2NF(表中除主鍵外的字段都完全依賴主鍵)

第二范式是在第一范式基礎(chǔ)上建立的。第二范式有兩個重點:(1)表中必須有主鍵;(2)其他非主屬性必須完全依賴主鍵,不能只依賴主鍵的一部分(主要針對聯(lián)合主鍵而言)。

3)第三范式3NF(表中除主鍵外的字段都完全直接依賴,不能是傳遞依賴)

不能是傳遞依賴,即不能存在:非主鍵列 A 依賴于非主鍵列 B,非主鍵列 B 依賴于主鍵的情況。第二范式和第三范式區(qū)分的關(guān)鍵點:2NF:非主鍵列是否完全依賴于主鍵,還是依賴于主鍵的一部分;3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主鍵列。

Java中的線程池共有幾種?

Java四種線程池

第一種:newCachedThreadPool

  創(chuàng)建一個可根據(jù)需要創(chuàng)建新線程的線程池,但是在以前構(gòu)造的線程可用時將重用它們。

第二種:newFixedThreadPool

  創(chuàng)建一個指定工作線程數(shù)量的線程池

第三種:newScheduledThreadPool

創(chuàng)建一個線程池,它可安排在給定延遲后運行命令或者定期地執(zhí)行。

第四種:newSingleThreadExecutor

  創(chuàng)建一個使用單個 worker 線程的 Executor,以無界隊列方式來運行該線程。

volatile和synchronized區(qū)別

volatile和synchronized簡介:

在Java中,為了保證多線程讀寫數(shù)據(jù)時保證數(shù)據(jù)的一致性,可以采用兩種方式:

  1)使用synchronized關(guān)鍵字

  2)使用volatile關(guān)鍵字:用一句話概括volatile,它能夠使變量在值發(fā)生改變時能盡快地讓其他線程知道。

兩者的區(qū)別:

1)volatile本質(zhì)是在告訴jvm當(dāng)前變量在寄存器中的值是不確定的,需要從主存中讀取,synchronized則是鎖定當(dāng)前變量,只有當(dāng)前線程可以訪問該變量,其他線程被阻塞住.

2)volatile僅能使用在變量級別,synchronized則可以使用在變量,方法.

3)volatile僅能實現(xiàn)變量的修改可見性,而synchronized則可以保證變量的修改可見性和原子性.

4)volatile不會造成線程的阻塞,而synchronized可能會造成線程的阻塞.

Spring的特性

1.方便解耦,簡化開發(fā)

通過Spring提供的IoC容器,我們可以將對象之間的依賴關(guān)系交由Spring進行控制,避免硬編碼所造成的過度程序耦合。

2.AOP編程的支持

通過Spring提供的AOP功能,方便進行面向切面的編程。

3.聲明事物的支持

在Spring中,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來,通過聲明式方式靈活地進行事務(wù)的管理,提高開發(fā)效率和質(zhì)量。

4.方便程序的測試

可以用非容器依賴的編程方式進行幾乎所有的測試工作。例如:Spring對Junit4支持,可以通過注解方便的測試Spring程序。

5.方便集成各種優(yōu)秀框架

Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優(yōu)秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。

6.降低Java EE API的使用難度

Spring對很多難用的Java EE API(如JDBC,JavaMail,遠程調(diào)用等)提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大為降低。

spring aop的應(yīng)用場景:

AOP用來封裝橫切關(guān)注點,具體可以在下面的場景中使用

Authentication 權(quán)限

Caching 緩存

Context passing 內(nèi)容傳遞

Error handling 錯誤處理

Lazy loading 懶加載

Debugging 調(diào)試

logging, tracing, profiling and monitoring 記錄跟蹤 優(yōu)化 校準(zhǔn)

Performance optimization 性能優(yōu)化

Persistence 持久化

Resource pooling 資源池

Synchronization 同步

Transactions 事務(wù)

Mybaits中#和$區(qū)別

1)${}是Properties文件中的變量占位符,它可以用于標(biāo)簽屬性值和sql內(nèi)部,屬于靜態(tài)文本替換,比如${driver}會被靜態(tài)替換為com.mysql.jdbc.Driver。

2)#{}是sql的參數(shù)占位符,Mybatis會將sql中的#{}替換為?號,在sql執(zhí)行前會使用PreparedStatement的參數(shù)設(shè)置方法,按序給sql的?號占位符設(shè)置參數(shù)值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式為使用反射從參數(shù)對象中獲取item對象的name屬性值,相當(dāng)于param.getItem().getName()。

排序都有哪幾種方法?請列舉。用JAVA 實現(xiàn)一個快速排序。

排序的方法有:

插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序);

快速排序的偽代碼:

//使用快速排序方法對a[ 0 :n- 1 ]排序

從a[ 0 :n- 1 ]中選擇一個元素作為middle,該元素為支點;

把余下的元素分割為兩段left 和right,使得left 中的元素都小于等于支點,

而right 中的元素都大于等于支點;

遞歸地使用快速排序方法對left 進行排序;

遞歸地使用快速排序方法對right 進行排序;

所得結(jié)果為left + middle + right。

快速排序的Java代碼實現(xiàn)如下:


相關(guān)閱讀:java簡單快速排序?qū)嵗馕?/a>

來自:互聯(lián)網(wǎng)IT技術(shù)分享

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java實現(xiàn)在不同線程中運行的代碼實例

    Java實現(xiàn)在不同線程中運行的代碼實例

    這篇文章主要介紹了Java實現(xiàn)在不同線程中運行的代碼,結(jié)合具體實例形式分析了java多線程操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-04-04
  • Java SSM配置文件案例詳解

    Java SSM配置文件案例詳解

    這篇文章主要介紹了Java SSM配置文件案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 解決springboot遇到autowire注入為null的問題

    解決springboot遇到autowire注入為null的問題

    這篇文章主要介紹了解決springboot遇到autowire注入為null的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Java Ehcache緩存框架入門級使用實例

    Java Ehcache緩存框架入門級使用實例

    這篇文章主要介紹了Java Ehcache緩存框架入門級使用實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-08-08
  • Java調(diào)用外接設(shè)備詳解(制卡機)

    Java調(diào)用外接設(shè)備詳解(制卡機)

    這篇文章主要為大家詳細介紹了Java調(diào)用外接設(shè)備的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Spring?Boot獲取resources目錄下的文件三種方式詳解

    Spring?Boot獲取resources目錄下的文件三種方式詳解

    在Spring?Boot項目中,經(jīng)常需要獲取resources目錄下的文件,這些文件可以包括配置文件、模板文件、靜態(tài)資源等,這篇文章主要介紹了Spring?Boot獲取resources目錄下的文件的三種方式,需要的朋友可以參考下
    2023-06-06
  • Java日常練習(xí)題,每天進步一點點(28)

    Java日常練習(xí)題,每天進步一點點(28)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Java源碼難點突破Lambda表達式執(zhí)行原理

    Java源碼難點突破Lambda表達式執(zhí)行原理

    這篇文章主要為大家介紹了Java難點突破Lambda表達式執(zhí)行原理分析及示例的實現(xiàn)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • SpringBoot中jar啟動下如何讀取文件路徑

    SpringBoot中jar啟動下如何讀取文件路徑

    這篇文章主要介紹了SpringBoot?jar啟動下如何讀取文件路徑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 如何用struts調(diào)用支付寶接口

    如何用struts調(diào)用支付寶接口

    以下為大家介紹如何用struts調(diào)用支付寶接口的例子。
    2013-04-04

最新評論