questions
-
創(chuàng)建闷沥、刪除育韩、復制、移動、重命名文件和文件夾的命令分別是什么?
- 創(chuàng)建:
touch filename
,mkdir dirname
. - 刪除:
rm filename
,rm -rf dirname
. - 復制:
cp filename
,cp dirname
- 移動和重命名:
mv filename direction_dirname
,mv resoure_dirname direction_dirname
- 創(chuàng)建:
-
什么是gradle肋拔,gradle的作用是什么,查看gradle任務、運行測試邦投、啟動應用的命令分別是什么?
- Gradle是一種構(gòu)建工具,它可以幫你管理項目中的差異,依賴,編譯,打包,部署......,你可以定義滿足自己需要的構(gòu)建邏輯,寫入到build.gradle中供日后復用.
- 查看gradle任務:
gradle tasks
- 運行測試:
gradle test
- 啟動應用:
gradle bootRun
-
gradle配置文件中擅笔,buildscript的設置和普通的設置有什么區(qū)別志衣?
- buildscript{} 這個是基礎配置,所有的子模塊都會讀取到這個配置里面的內(nèi)容猛们,當構(gòu)建開始的時候念脯,就開始讀取這個 buildscript{} 里面的內(nèi)容。
主要是給插件用的配置依賴源弯淘。
repositories{} 這個模塊的內(nèi)容告訴gradle 去什么地址下載第三方的庫.
- buildscript{} 這個是基礎配置,所有的子模塊都會讀取到這個配置里面的內(nèi)容猛们,當構(gòu)建開始的時候念脯,就開始讀取這個 buildscript{} 里面的內(nèi)容。
-
gradlew的作用是什么绿店?為什么要用它?
- 在項目里使用gradle時耳胎,可以通過gradlew命令使用當前項目環(huán)境的gradle版本惯吕,不受環(huán)境變量的影響。
-
舉例說明Java中接口怕午、抽象類废登、類的區(qū)別?
- 類能被子類繼承所有屬性和公用方法郁惜。
- 抽象類是用來捕捉子類的通用特性的 堡距。它不能被實例化甲锡,只能被用作子類的超類。
- 接口是抽象方法的集合羽戒。如果一個類實現(xiàn)了某個接口缤沦,那么它就繼承了這個接口的抽象方法。這就像契約模式易稠,如果實現(xiàn)了這個接口缸废,那么就必須確保使用這些方法。接口只是一種形式驶社,接口自身不能做任何事情企量。
-
舉例說明Java中Collections、Arrays亡电、Map届巩、HashMap、TreeMap份乒、Collection恕汇、List、ArrayList或辖、Set瘾英、HashSet、TreeSet的區(qū)別和聯(lián)系颂暇?
- Collection 是一個集合接口方咆。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現(xiàn)蟀架。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。子類有以上的
List
和Set
-
List
下的子類有ArrayList
,Set
下的子類有HashSet
,TreeSet
- Collections 是一個包裝類榆骚。它包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法片拍。此類不能實例化,就像一個工具類妓肢,服務于Java的Collection框架捌省。
- Arrays類,專門用來操作array
- Collection和Map區(qū)別在于容器內(nèi)每個為之所存儲的元素個數(shù)不同,Collection類型者碉钠,每個位置只有一個元素,Map類型者纲缓,持有 key-value pair,像個小型數(shù)據(jù)庫.
- Map 子類有
HashMap
,TreeMap
- Collection 是一個集合接口方咆。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現(xiàn)蟀架。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。子類有以上的
-
類方法和實例方法有什么區(qū)別喊废,什么時候用類方法祝高、什么時候用實例方法?
- 類方法只能訪問類的成員變量污筷,不能訪問實例變量工闺;實例方法不僅可以訪問類的成員變量,也可以訪問實例變量。
- 類方法只能調(diào)用類方法陆蟆,而實例方法可以調(diào)用類方法跟實例方法
- 類方法里面的self是class雷厂,而實例方法的self是對象的首地址
- 對于類的成員變量跟實例變量來說,主要看是否創(chuàng)建一個新對象來進行訪問
- 如果需要訪問或者修改某個實例的成員變量時叠殷,將該方法定義成實例方法改鲫。類方法正好相反,它不需要訪問或者修改某個實例的成員變量林束。
- 類方法一般用于實現(xiàn)一些工具方法像棘,比如對某個對象進行擴展,或者實現(xiàn)單例诊县。
-
HTTP無狀態(tài)是指什么讲弄?
- 無狀態(tài)是指協(xié)議對于事務處理沒有記憶能力,服務器不知道客戶端是什么狀態(tài)依痊。即我們給服務器發(fā)送 HTTP 請求之后避除,服務器根據(jù)請求,會給我們發(fā)送數(shù)據(jù)過來胸嘁,但是瓶摆,發(fā)送完,不會記錄任何信息性宏。
-
HTTP的返回的狀態(tài)碼有哪幾類群井?常見的有哪些?分別表示什么含義毫胜?
- 1xx 信息书斜,服務器收到請求,需要請求者繼續(xù)執(zhí)行操作
- 2xx 成功酵使,操作被成功接收并處理
- 3xx 重定向荐吉,需要進一步的操作以完成請求
- 4xx 客戶端錯誤,請求包含語法錯誤或無法完成請求
- 5xx 服務器錯誤口渔,服務器在處理請求的過程中發(fā)生了錯誤
-
HTTP方法主要有哪幾種样屠,區(qū)別是什么?
- GET 獲取資源
- POST 創(chuàng)建資源
- PUT 修改資源
- DELETE 刪除資源
-
為什么RESTful API的URI中不能出現(xiàn)動詞? 寫出對一個用戶增刪改查的操作的API缺脉,包括查詢參數(shù)痪欲、RequestBody、ResponseBody和ResponseStatus攻礼?
- 因為API是訪問資源业踢,而資源通常用名詞表示。
- POST /api/users RequestBody:
{username: String, password: String}
ResponseBody:{username: String}
ResponseStatus: 201 - GET /api/users/{username} ResponseBody:
{username: String}
ResponseStatus: 200 - PUT /api/users/{username} RequestBody:
{username: String, password: String}
ResponseStatus: 200 - DELETE /api/users/{username} ResponseStatus: 200
-
畫圖說明Spring MVC的概念是什么秘蛔,各部分之間是怎么相互工作的陨亡。
-
View 是展示的部分傍衡,會向 Controller 發(fā)請求, Controller 處理后會向 Model 部分請求業(yè)務處理和數(shù)據(jù)负蠕, Model 將處理后的數(shù)據(jù)發(fā)送給 Controller, Controller 再發(fā)送給 View 部分讓它展示蛙埂。
-
-
舉例說明Spring Controller 中URL Mapping是怎么匹配的?
- 如果請求的uri是
localhost:8080/api/users?age=23
遮糖,方法是GET绣的,會根據(jù)controller里@RequestMapping設置的路徑/api/users
找到UserController,然后匹配該Controller下的@GetMapping路徑params = age
欲账。
- 如果請求的uri是
-
Spring MVC中多個同名的param會在服務端怎么解析屡江?比如
http://host/api/users?name=sj&name=sj2
- 可以這樣解析
@RequestParam(value="name") List<String> names
- 可以這樣解析
-
舉例說明IoC控制反轉(zhuǎn)中對什么的控制反轉(zhuǎn)了?解釋標記@Autowired之后赛不,為什么沒有初始化也可以直接使用惩嘉?
- 兩個耦合度很高的對象,通過第三方也就是IoC踢故,將所有控制權(quán)交給了IoC文黎,達到解耦的目的,一個對象對另一個對象的控制由主動狀態(tài)轉(zhuǎn)向被動狀態(tài)殿较,也就是反轉(zhuǎn)了控制耸峭。
- 在我們加了
@Service, @Repository, @Component
的地方,Spring會將它們?nèi)舆MBean工廠淋纲,并創(chuàng)建一個實例劳闹,加了@Autowired
的地方會去Bean工廠查找對應的service, repo, component。
-
Spring中常用的依賴注入方式有哪幾種洽瞬?
- 接口注入
- 構(gòu)造器注入
- getter,setter方式注入
-
Springboot中@Component本涕、@Service、@Repository伙窃、@Bean偏友、@Configuration區(qū)別和聯(lián)系。
- @Service用于標注業(yè)務層組件
- @Repository用于標注數(shù)據(jù)訪問組件对供,即DAO組件
- @Component泛指組件,當組件不好歸類的時候氛濒,我們可以使用這個注解進行標注产场。
- @Bean 是一個方法級別的注解
- @Configuration 標注一個類是配置類,spring boot在掃到這個注解時自動加載這個類相關(guān)的功
- 資料
-
怎么實現(xiàn)Spring Data JPA里的一對多舞竿,多對多京景,一對一?
-
user 和 address是一對多的關(guān)系
-
user 和 shoppingCart是一對一關(guān)系
-
item 和 shoppingCart是多對多的關(guān)系
-
-
如何控制Spring Data JPA里的一對多骗奖,一對一确徙,多對多的lazy loading
- 設置
@OneToOne, @OneToMany, @ManyToMant
的屬性fetch = FetchType.LAZY
- 設置