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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JAVA初中级面试题总纲(含答案)

發布時間:2024/1/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA初中级面试题总纲(含答案) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(標黑粗體為重點)

1.get和post的請求方式的區別?

NO.1、url可見性
get,參數url可見;
post,url參數不可見

NO.2、數據傳輸上:
get,通過拼接url進行傳遞參數;
post,通過body體傳輸參數

NO.3、緩存性:
get請求是可以緩存的
post請求不可以緩存

NO.4、后退頁面的反應:
get請求頁面后退時,不產生影響

post請求頁面后退時,會重新提交請求

NO.5、傳輸數據的大小:
get一般傳輸數據大小不超過2k-4k(根據瀏覽器不同,限制不一樣,但相差不大)

而post請求傳輸數據的大小根據php.ini 配置文件設定,也可以無限大。

NO.6、安全性:
這個也是最不好分析的,原則上post肯定要比get安全,畢竟傳輸參數時url不可見,但也擋不住部分人閑的沒事在那抓包玩。安全性個人覺得是沒多大區別的,防君子不防小人就是這個道理。對傳遞的參數進行加密,其實都一樣。

2.多線程:

NO.1 創建線程有幾種方式?(重點)
1. 繼承Thread類,可以直接調用Thread類的方法,使用方便,但是不能再繼承別的類,可擴展性較差。
2. 實現Runable接口,不能直接調用Thread類的方法,但是還可以繼承其他類,可擴展性較強;而且Runable接口是多線程的最高父類接口,主要是用來封裝任務的,Thread類也是通過實現Runable接口來實現的。
3. 實現Callable接口,同上。
4. 還可以通過線程池創建。

NO.2 繼承Thread類和實現Runable接口方式區別?(常問)

? 1、java是單繼承,繼承Thread后不能繼承別的類,有局限性,但是java可以多實現,通過實現Runabel接口后還可以實現別的接口,可以**間接實現多繼承

2.Runable接口是多線程中的上帝,主要就是用來封裝任務,Thread類也是通過實現它而來

? 3、使用Runable接口可以很方便對共享資源進行傳入;

NO.3 線程狀態有幾種?(常問,一般答出幾種狀態即可)

1.新建(new):新建了一個線程,但是還沒有調用開啟線程的start()方法

?2.可運行(runable):調用了開啟線程的start()方法,但是還沒有獲得CPU的執行權,處于等待獲取執行權狀態;

3.?運行(running):已經獲得到了CPU執行權,并處于正常執行狀態

?4.死亡(dead):線程run()、main() 方法執行結束,或者因異常退出了run()方法,則該線程結束生命周期。死亡的線程不可再次復生。

5.? 阻塞(blocked):這種狀態是指處于運行狀態時因為某種原因放棄了使用CPU執行權暫時停止了運行,需要后續某些操作后方可再次進入可運行狀態,?進而才有機會再次轉到運行狀態,一般阻塞情況分三種(了解即可)

(一).等待阻塞 :運行(running)的線程執行o.wait()方法,JVM會把該線程放入等待隊列(waitting queue)中,當別的線程執行了notify或者?notifyAll后可對其進行喚醒進入鎖池,讓該線程處于搶鎖狀態,進而有機會重新轉入可運行(runnable)狀態

?(二). 同步阻塞:運行(running)的線程在獲取對象的同步鎖時,若該同步鎖被別的線程占用,則JVM會把該線程放入鎖池(lock pool)中。

?(三). 其他阻塞:運行(running)的線程執行Thread.sleep(long ms)或t.join()方法,或者發出了I/O請求時,JVM會把該線程置為阻塞狀態

?當sleep()狀態超時、join()等待線程終止或者超時、或者I/O處理完畢時,線程重新轉入可運行(runnable)狀態。

NO.4 多線程中的 run()和 start()區別 ?

run()方法它其實只是一個封裝任務的普通方法,調用run()并不會開啟線程start()方法會開啟線程,底層會調用run()方法。

NO.5?wait()與 sleep()的區別?(了解)

1、調用對象不同:wait()、notify()、notifyAll()等都是 Object 上的方法,任何對象都可以作為鎖對象進行調用;?sleep()、join()、yield()、interrupted()等都是屬于Thread類的靜態方法

? 2、是否釋放鎖sleep()方法不會釋放鎖,只讓出了CPU執行權,但是wait()會釋放鎖,而且會加入到等待隊列中

? 3、使用位置sleep()方法可以在任何地方使用wait()方法則只能在synchronized同步方法或同步塊中使用;

? 4、重運行機制sleep()過了指定睡眠時間從阻塞狀態自動回到可運行狀態wait()方法需要手動調用notify()或者notifyAll()方法手動進行喚醒,然后進入鎖池等待

NO.6 什么情況下需要進行線程同步?

多個線程操作共享資源,會造成共享資源安全問題場景下。

3、多線程鎖相關:(常問)

NO.1 Sychronized是公平鎖還是非公平鎖?(常問)

非公平!

NO.2 Synchronized 1.6之后做了哪些優化?

? 自適應的CAS自旋、鎖消除、鎖粗化、偏向鎖、輕量級鎖

NO.3 鎖有哪些用法?鎖對象分別是什么?(常問)

? 1、同步代碼塊:鎖對象為括號中的對象

? 2、同步方法:鎖對象為當前對象 this

? 3、靜態同步方法:鎖對象為class字節碼文件對象

NO.4 什么是AQS? ??什么是CAS?

AQS:

java.util.concurrent.locks.AbstractQueuedSynchronizer?抽象類,簡稱 AQS ,是一個用于構建鎖和同步容器的隊列同步器,它是整個JUC包下Lock體系的核心,如ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore都是基于它來實現的,它 解決了在實現同步容器時設計的大量細節問題,它的核心構成部分為:使用一個 先進先出的FIFO 的隊列存儲排隊等待鎖的線程,使用一個用volatile修飾的int類型的state同步狀態來記錄?當前是否有線程持有鎖**,0表示沒有線程獲得鎖,1表示有,上鎖state就加1,釋放鎖就對應減1,有重入鎖現象,這個值就大于1,然后需要逐級去釋放。

CAS:(常問)

CAS其實就是樂觀鎖的一種實現方式,而悲觀鎖比較典型的就是Java中的synchronized

CAS全稱compare and swap—就是? "比較并替換",保證對數據更改的原子性,它是并發條件下修改數據的一種機制,然后它還有三個操作數

> 需要修改的數據的內存地址(V);

? > 對這個數據的舊預期值(A);

? > 需要將它修改為的值(B);

CAS的操作步驟如下:

1、修改前記錄數據的內存地址V;

2、讀取數據的當前的值,記錄為A;

3、需要修改值時查看地址V下的值是否仍然為A,若為A,則用B替換它;若地址V下的值不為A,表示在自己修改的過程中,其他的線程對數據進行了修改,則不更新變量的值,而是重新從步驟2開始執行,這被稱為自旋

總結:CAS 就是貫穿于整個AQS體系,是AQS實現的基礎

4. 框架系列:

<Springboot>

N0.1 springboot提供了哪些核心功能?

1. 獨立運行 Spring 項目Spring Boot 可以以 jar 包形式獨立運行,運行一個 Spring Boot 項目只需要通過 java -jar xx.jar 來運行。

2. 內嵌 Servlet 容器

? Spring Boot 可以選擇內嵌 Tomcat、Jetty 或者 Undertow,這樣我們無須以 war 包形式部署項目。

? 第 2 點是對第 1 點的補充,因為在 Spring Boot 未出來的時候,大多數 Web 項目,是打包成 war 包,部署到 Tomcat、Jetty 等容器。

3. 提供 Starter 簡化 Maven 配置Spring 提供了一系列的 starter pom 來簡化 Maven 的依賴加載。

4. 自動配置 Spring Bean:Spring Boot 檢測到特定類的存在,就會針對這個應用做一定的配置,進行自動配置 Bean ,這樣會極大地減少我們要使用的配置。

5. 無代碼生成和 XML 配置**:Spring Boot 沒有引入任何形式的代碼生成,它是使用的 Spring 4.0 的條件 @Condition 注解以實現根據條件進行配置。

NO.2? Spring Boot 和 Spring MVC 和 Spring 有什么區別?

?Spring 的完整名字,是 Spring Framework 。它提供了多個模塊,Spring IoC、Spring AOP、Spring MVC 等等。所以,Spring MVC 是 Spring Framework

? 眾多模塊中的一個。而 Spring Boot 是構造在 Spring Framework(Spring) 之上的 Boot 啟動器,旨在更容易的配置一個 Spring 項目。

<SpringCloud>

NO.3?什么是SpringCloud?

首先SpringCloud是一款微服務框架 可以說是目前微服務架構的最好的選擇,涵蓋了基本我們需要的所有組件,所以也被稱為全家桶,? Spring Cloud 是構建在 Spring Boot 基礎之上,用于快速構建分布式系統的通用模式的工具集。或者說,換成大家更為熟知的,用于構建微服務的技術棧。

NO.4?Spring Cloud 主要提供了哪些功能?(如果英文太長,記住中文名字即可)

  • Distributed/versioned configuration 分布式/版本化的配置管理

  • Service registration and discovery 服務注冊與服務發現

  • Routing 路由

  • Service-to-service calls 端到端的調用

  • Load balancing 負載均衡

  • Circuit Breakers 斷路器

  • Global locks 全局鎖

  • Leadership election and cluster state 選舉與集群狀態管理

  • Distributed messaging 分布式消息

NO.5?Spring Cloud 有哪些組件?

Spring Cloud的 組件相當繁雜,擁有諸多子項目。如下腦圖所示:

?我們最為熟知的,就是 Spring Cloud Netflix ,它是 Netflix 公司基于它們自己的 EurekaHystrixZuulRibbon 等組件,構建的一個 Spring Cloud 實現技術棧。

雖然Spring Cloud的組件很多,但是開發中常用的五大組件還是要記住:

SpringCloud常用的五大組件(重點):

組件組件名作用
注冊中心Nacos

作用:實現服務治理(服務注冊與發現)

簡介:Spring Cloud Eureka是Spring Cloud Netflix項目下的服務治理模塊。

由兩個組件組成:Eureka服務端和Eureka客戶端。

Eureka服務端用作服務注冊中心。支持集群部署。

Eureka客戶端是一個java客戶端,用來處理服務注冊與發現。

在應用啟動時,Eureka客戶端向服務端注冊自己的服務信息,同時將服務端的服務信息緩存到本地。客戶端會和服務端周期性的進行心跳交互,以更新服務租約和服務信息。

熔斷器Hystrix

作用:斷路器,保護系統,控制故障范圍。

簡介:為了保證其高可用,單個服務通常會集群部署。由于網絡原因或者自身的原因,服務并不能保證100%可用,如果單個服務出現問題,調用這個服務就會出現線程阻塞,此時若有大量的請求涌入,Servlet容器的線程資源會被消耗完畢,導致服務癱瘓。服務與服務之間的依賴性,故障會傳播,會對整個微服務系統造成災難性的嚴重后果,這就是服務故障的“雪崩”效應。

網關Zuul

作用:api網關,路由,負載均衡等多種作用

類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他組件的特性。

在微服務架構中,后端服務往往不直接開放給調用端,而是通過一個API網關根據請求的url,路由到相應的服務。當添加API網關后,在第三方調用端和服務提供方之間就創建了一面墻,這面墻直接與調用方通信進行權限控制,后將請求均衡分發給后臺服務端。

負載均衡Ribbon

spring-cloud-loadbalancerSpring Cloud Ribbon是一個基于HTTP和TCP的客戶端負載均衡工具,它基于Netflix Ribbon實現。通過Spring Cloud的封裝,可以讓我們輕松地將面向服務的REST模版請求自動轉換成客戶端負載均衡的服務調用。spring-cloud-loadbalancer

服務調用Feign

作用:服務調用

簡介:Feign是一個聲明式WebService客戶端。使用Feign能讓編寫Web Service客戶端更加簡單,它的使用方法就是定義一個接口,然后在上面添加注解,同時也支持JAX-RS標準的注解。Feign也支持可插拔式的編碼器和解碼器。SpringCloud對Feign進行了封裝,使其支持了Spring MVC標準注解和HttpMessageConverters。Feign可以與Eureka和Ribbon組合使用以支持負載均衡。

NO.6 Spring Cloud 和 Spring Boot 的區別和關系?(以下三點:)

  • Spring Boot 專注于快速方便的開發單個個體微服務。

  • Spring Cloud 是關注全局的微服務協調整理治理框架以及一整套的落地解決方案,它將 Spring Boot 開發的一個個單體微服務整合并管理起來,為各個微服務之間提供:配置管理,服務發現,斷路器,路由,微代理,事件總線等的集成服務。

  • Spring Boot 可以離開 Spring Cloud 獨立使用,但是 Spring Cloud 離不開 Spring Boot ,屬于依賴的關系。

    總結:

    • Spring Boot 專注于快速,方便的開發單個微服務個體。

    • Spring Cloud 關注全局的服務治理框架。

    5.數據庫(MySQL) :

    NO.1什么是索引(Index)?

    ? 本質上是幫助MySQL高效獲取數據數據結構MySql中主要應用的索引數據結構為B+Tree

    NO.2??索引結構類型有哪些?

    Mysql存儲引擎主要有MySIAMInnoDB。?而各種存儲引擎對索引的支持也各不相同,因此MySQL數據庫支持多種索引類型,如BTree索引哈希索引全文索引等等

    NO.3 存儲數據結構?

    ? MySIAM、InnoDB兩種存儲引擎都是基于B+樹數據結構存儲表數據的。不同之處是:

    ? MySIAMB+樹只存儲了索引key值地址,真正的數據存儲在別的地方

    InnoDB 存儲引擎中的B+樹存儲了索引也存儲了數據

    NO.4 什么是聚集索引、非聚集索引?

    1.聚集索引

    又叫主鍵索引,是指數據庫表行中數據的物理存儲順序與數據的邏輯順序相同,一張表中只允許存在一個聚集索引,對于mysql來說一般就是主鍵,若無主鍵則為表中第一個非空的唯一索引,還是沒有,就采用InnoDB存儲引擎為每行數據內置的ROWID 作為聚集索引 ;

    (擴展部分:)聚集索引就是按照每張表的主鍵構造一顆B+樹同時葉子節點中存放的即為整張表的記錄數據。

    聚集索引的葉子節點稱為數據頁,聚集索引的這個特性決定了索引組織表中的數據也是索引的一部分。

    2.非聚集索引:

    又叫輔助索引、二級索引。是指除了聚集索引外的其他索引,該索引中索引的邏輯順序與磁盤上行的物理存儲順序不同,一個表中可以擁有多個非聚集索引。數據的邏輯順序可能相鄰,但是數據的實際存儲物理地址可能相差十萬八千里 ;?非聚集索引的葉子節點存儲主鍵

    3.覆蓋索引(了解):

    這個概念就是指select的數據列只用從索引中就能夠取得,不必從聚集索引中的葉子結點數據項中讀取,換句話說查詢列要被所使用的索引覆蓋。 索引是高效找到行的一 個方法,當能通過檢索 索引就可以讀取想要的數據,那就不需要再到數據表中讀取行了。如果一個索引包含了(或覆蓋了)滿足查詢語句中字段與條件的數據就叫做覆蓋索引。在mysql中只能使用BTree索引做覆蓋索引、Hash索引不行 如果實現了覆蓋索引,在explainExtra列可以看到“Using index”的信息

    NO.5 mysql優化:

    1.優化SQL語句層面(理解透徹:

    1、?盡量避免使用select *;

    2、規范sql語句大小寫,sql是有緩存的,避免每次都需要解析;

    ?3、使用exsits代替in,要更高效;

    ?4、mysql sql解析執行過程從右至左,基于這個規則,from后面能過濾掉更多數據的基礎表放后面,where后面能過濾掉更多數據的查詢條件放后面;

    ?5、查詢條件中用相同類型去查詢,比如避免數值列用字符串查詢條件;

    ?6、合理使用索引

    ????????????????1、為合適的列添加索引(主鍵、唯一索引、組合索引);
    ? ? ? ? ?? ??? ?2、盡量建立聯合索引,也省空間成本;
    ? ? ? ? ?? ??? ?3、盡量使用覆蓋索引;
    ? ? ? ? ?? ??? ?3、避免以下會使索引失效的操作(了解大概即可):
    ? ? ? ? ? ? ? ? ? ? (1)、索引列有null值不走索引
    ? ? ? ? ? ? ? ? ? ? (2)、使用is null或is not null不走索引
    ? ? ? ? ? ? ? ? ? ? (3)、各種負向查詢not ,not in, not like ,<> ,!= ,!> ,!< ?不會使用索引
    ? ? ? ? ? ? ? ? ? ? (4)、like將%放左邊不走索引
    ? ? ? ? ? ? ? ? ? ? (5)、查詢條件的數據類型做了隱式轉換
    ? ? ? ? ? ? ? ? ? ? (6)、使用in或union代替or,or兩側有非索引列就不會走索引
    ? ? ? ? ? ? ? ? ? ? (7)、盡量保持索引列干凈,不在索引列上使用函數轉換、運算
    ? ? ? ? ? ? ? ? ? ? (8)、聯合索引要遵循最左匹配原則,如建立聯合索引(A,B,C),查詢順序如下:
    ? ? ?ABC會走索引,AB會走索引,A也會走索引,但是不能斷開 如AC|CA|BC|CB|B|C都不會走索引
    ? ? ? ? ? ? ? ? ? ? (9)、使用比較運算或between會使聯合索引從使用比較運算的下一個索引處斷開

    2.?優化架構方面(了解)

    在數據達到一定量級以后,需要對數據庫從主從、分庫分表數據分片方面進行優化:

    1.讀寫分離:主節點寫,從節點讀

    ? 2.分庫:根據業務或者其他維度把數據存放到不同數據庫

    ?3.分表:1、水平分表:字段都一樣,分多張表存放不同時間范圍或不同維度的數據,如實時數據表、歷史數據表。?2.垂直分表:將不同字段放在多張表,使用外鍵關聯。

    NO.6 mysql事務(理解透徹)

    1.事務有哪些特性?

    原子性:事務中所有操作要么全部提交成功,要么全部失敗回滾,不能出現一部分失敗,一部分成功的現象;

    一致性:指在事務的執行前后保持數據庫的一致性;

    隔離性:一個事務所做的修改在最終提交之前,對其他事務是不可見的;

    永久性:一旦事務提交,它所做的修改將會永久保存到數據庫中,及時系統發生崩潰,事務執行結果也不會丟失;

    2. 哪幾種事務隔離級別,會出現的問題?

    事務隔離級別臟讀不可重復讀幻讀
    讀未提交(read-uncommitted)
    不可重復讀(read-committed)
    可重復讀(repeatable-read)
    串行化(serializable)

    3. 什么是臟讀、不可重復讀、幻讀 ?

    • 臟讀一個事物讀到了另一個事務尚未提交的數據,不符合事務的隔離性。

    • 不可重復讀:同一個事務中對同一行記錄兩次讀出來的結果不一樣,原因就是第二次讀到了其他事務修改提交的數據。

      ?幻讀:同一個事務中針對同一范圍內的數據兩次讀出來的結果不一樣,原因就是第二次讀到了其他事務新增提交 的數據。

    4.char和vachar區別 ?

    char列長度固定,為創建表時聲明的長度,長度值范圍是1到255,當char值未填滿指定長度時,其他空間會用空格進行填充,檢索CHAR值時需刪除尾隨空格?

    vachar長度為可變的,實際使用多少空間就占多少空間

    6. Redis相關

    NO. 1 支持哪幾種數據類型 ?

    ?1. 支持五種數據類型string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

    ?NO.2 為什么讀寫速度很快 ?(也可以作為優點方面來答)

    ?1. redis完全基于內存

    2. 數據結構簡單

    3. 采用單線程,避免了加鎖、釋放鎖、死鎖、線程間切換等消耗

    4. 使用多路I/O復用模型,非阻塞IO

    NO.3 在你們項目有哪些應用場景 ?

    計數器**:對 string 進行自增自減運算,從而實現計數器功能。redis 內存型數據庫的讀寫性能非常高,很適合存儲頻繁讀寫的計數量。如每日登錄次數計數。

    熱點數據緩存:將熱點數據放到內存中。如首頁排行榜數據,具有很大訪問頻次,使用zset可以實現基于score分數排序;。

    會話緩存:用redis統一存儲多臺應用服務器的會話信息。當應用服務器不再存儲用戶的會話信息,也就不再具有狀態,一個用戶可以請求任意一個應用服務器,從而更容易實現高可用性以及可伸縮性。

    取數據交集、并集:基于redis set 的特性可以對共同好友進行很方便的查詢。

    分布式事務鎖的使用:基于set lock requestId nx ex time 模式可以很方便編寫分布式事務鎖

    NO.4 Redis是基于什么協議的?

    1. Redis 的通信協議是 Redis Serialization Protocol,翻譯為 Redis 序列化協議,簡稱 RESP?

    • 在 TCP 層

    • 是二進制安全的

    • 基于請求 - 響應模式

    • 簡單、易懂

    NO.5 Redis持久化機制是怎樣的?(有兩種的,這里的話我就簡單說第一種吧)

    第一種:RDB,即 Redis 的內存快照,默認持久化機制,它是在某一個時間點將 Redis 的內存數據全量寫入一個臨時文件,當寫入完成后,用該臨時文件替換上一次持久化生成的文件,這樣就完成了一次持久化過程,默認的文件名為dump.rdb

    NO.6? Redis的緩存穿透,緩存擊穿,緩存雪崩,以及對應的解決方案 ?(這里初中級應該問不到,大家了解即可):

    1.緩存穿透:是指緩存和數據庫中都沒有的數據,而用戶不斷發起請求,如發起為id為“-1”的數據或id為特別大不存在的數據。這時的用戶很可能是攻擊者,攻擊會導致數據庫壓力過大。

    緩存穿透解決方案:(1.接口層增加校驗,如用戶鑒權校驗,id做基礎校驗,id<=0的直接攔截;

    2.?從緩存取不到的數據,在數據庫中也沒有取到,這時也可以將key-value對寫為key-null,緩存有效時間可以設置短點,如30秒(設置太長會導致正常情況也沒法使用)。這樣可以防止攻擊用戶反復用同一個id暴力攻擊啦;

    3.?引入布隆過濾器,過濾一些異常的請求!)

    2. 緩存擊穿:這個是指緩存中沒有但數據庫中有的數據(一般是緩存時間到期),這時由于并發用戶特別多,同時讀緩存沒讀到數據,又同時去數據庫去取數據,引起數據庫壓力瞬間增大,造成過大壓力。

    緩存擊穿解決方案:(

    1、設置熱點數據不過期;

    ?2、第一時間去數據庫獲取數據填充到redis中,但是這個過程需要加鎖,防止所有線程都去讀取數據庫,一旦有一個線程去數據庫獲取數據了,其他線程取鎖失敗后可設置一個合理睡眠時間之后再去嘗試去redis中獲取數據;

    3. 緩存雪崩:緩存雪崩是指緩存中數據大批量到過期時間,而查詢數據量巨大,引起數據庫壓力過大甚至down機。和緩存擊穿不同的是,緩存擊穿指并發查同一條數據,緩存雪崩是大批量數據都過期了,大量數據都從redis中查不到,從而查數據庫。

    解決方案:(

    1、緩存數據的過期時間設置隨機,防止同一時間大量數據過期現象發生。

    ?2、如果緩存數據庫是分布式部署,將熱點數據均勻分布在不同搞得緩存數據庫中。

    ?3、允許的話,設置熱點數據永遠不過期。

    ?4、要保證redis的高可用,可以使用主從+哨兵或redis cluster,避免服務器不可用;

    ?5、使用redis的持久化RDB+AOF組合策略,防止緩存丟失并且可以快速恢復數據;

    本文章就寫到這里了,祝大家早日找到高新任職,在工作的同志就祝你們步步高升!完結撒花!看在一萬字的面子上,姥爺們給個贊行不行~

    總結

    以上是生活随笔為你收集整理的JAVA初中级面试题总纲(含答案)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。