隨記錄

2021-04-14

注解名字 作用
@RequestMapping 處理瀏覽器通用請(qǐng)求?
@ResponseBody 將返回值交給瀏覽器處理?
@SpringBootApplication 自動(dòng)配置主類(lèi)?

  1. SpringBoot使用組合注解替代Spring中的復(fù)雜配置工作,

    -> 優(yōu)點(diǎn)缺點(diǎn)?

    那我個(gè)人理解這其中的好處是方便,壞處是項(xiàng)目龐大冗雜

  2. <pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" cid="n149" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 0px; width: inherit;">SpringBootApplication->自動(dòng)配置主類(lèi)?
    ->@SpringBootConfiguration -> 申明為SpringBoot 的配置類(lèi)
    -> @Configuration
    ->@EnableAutoConfiguration -> 開(kāi)啟自動(dòng)配置?
    ->@Inherited
    ->@AutoConfigurationPackage
    ->@Import({Registrar.class})
    ->@Import({AutoConfigurationImportSelector.class})
    ->@ComponentScan -> 定義掃描的Component定義域
    -></pre>

  3. 如果一個(gè)類(lèi)中的所有方法都需要@ResponseBody注解,那么這個(gè)注解直接使用在類(lèi)名只上。如果一個(gè)類(lèi)或者方法有多個(gè)注解的話(huà),可以查詢(xún)是否有組合注解可用

    1. Spring 常用靜態(tài)模板thymeleaf、JSP(Java Server Pages)、JSTL(JSP Standard TagLibrary)、FreeMarker、Velocity

  1. Thread start方法和run方法的區(qū)別 run

    run()方法只是調(diào)用了Thread實(shí)例的run()方法而已,它仍然運(yùn)行在主線(xiàn)程(原來(lái)調(diào)用者線(xiàn)程)上

    start()方法會(huì)開(kāi)辟一個(gè)新的線(xiàn)程,在新的線(xiàn)程上調(diào)用run()方法,此時(shí)它運(yùn)行在新的線(xiàn)程上

  2. synchronized和Lock對(duì)比

    類(lèi)型 synchronized Lock
    存在層次 Java的關(guān)鍵字,在jvm層面上 是一個(gè)類(lèi)
    鎖的釋放 1、以獲取鎖的線(xiàn)程執(zhí)行完同步代碼,釋放鎖 2、線(xiàn)程執(zhí)行發(fā)生異常,jvm會(huì)讓線(xiàn)程釋放鎖 在finally中必須釋放鎖,不然容易造成線(xiàn)程死鎖
    鎖狀態(tài) 無(wú)法判斷 可以判斷
    性能 少量同步 大量同步

5.Lock和synchronized的選擇

總結(jié)來(lái)說(shuō),Lock和synchronized有以下幾點(diǎn)不同:

1)Lock是一個(gè)接口,而synchronized是Java中的關(guān)鍵字,synchronized是內(nèi)置的語(yǔ)言實(shí)現(xiàn);

2)synchronized在發(fā)生異常時(shí),會(huì)自動(dòng)釋放線(xiàn)程占有的鎖,因此不會(huì)導(dǎo)致死鎖現(xiàn)象發(fā)生;而Lock在發(fā)生異常時(shí),如果沒(méi)有主動(dòng)通過(guò)unLock()去釋放鎖,則很可能造成死鎖現(xiàn)象,因此使用Lock時(shí)需要在finally塊中釋放鎖;

3)Lock可以讓等待鎖的線(xiàn)程響應(yīng)中斷,而synchronized卻不行,使用synchronized時(shí),等待的線(xiàn)程會(huì)一直等待下去,不能夠響應(yīng)中斷;

4)通過(guò)Lock可以知道有沒(méi)有成功獲取鎖,而synchronized卻無(wú)法辦到。

5)Lock可以提高多個(gè)線(xiàn)程進(jìn)行讀操作的效率。

在性能上來(lái)說(shuō),如果競(jìng)爭(zhēng)資源不激烈,兩者的性能是差不多的,而當(dāng)競(jìng)爭(zhēng)資源非常激烈時(shí)(即有大量線(xiàn)程同時(shí)競(jìng)爭(zhēng)),此時(shí)Lock的性能要遠(yuǎn)遠(yuǎn)優(yōu)于synchronized。所以說(shuō),在具體使用時(shí)要根據(jù)適當(dāng)情況選擇。

Java并發(fā)編程-入門(mén)篇 -> 非常全面


常用的設(shè)計(jì)模式

  1. 單例模式

  2. 觀(guān)察者模式

  3. 工廠(chǎng)模式


設(shè)計(jì)模式相關(guān)總結(jié)

  • 設(shè)計(jì)模式,是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。

  • 看看前輩的代碼:你去個(gè)公司難道都是新項(xiàng)目讓你接手?很有可能是接盤(pán)的,前輩的開(kāi)發(fā)難道不用設(shè)計(jì)模式?

  • 什么是單例
    • 保證一個(gè)類(lèi)只有一個(gè)實(shí)例,并且提供一個(gè)訪(fǎng)問(wèn)該全局訪(fǎng)問(wèn)點(diǎn)
2.那些地方用到了單例模式
  1. Windows的(任務(wù)管理器)就是很典型的單例模式,他不能打開(kāi)倆個(gè)

  2. 網(wǎng)站的計(jì)數(shù)器,一般也是采用單例模式實(shí)現(xiàn),否則難以同步。

  3. 應(yīng)用程序的日志應(yīng)用,一般都是單例模式實(shí)現(xiàn),只有一個(gè)實(shí)例去操作才好,否則內(nèi)容不好追加顯示。

  4. 多線(xiàn)程的線(xiàn)程池的設(shè)計(jì)一般也是采用單例模式,因?yàn)榫€(xiàn)程池要方便對(duì)池中的線(xiàn)程進(jìn)行控制

  5. windows的(回收站)也是典型的單例應(yīng)用。在整個(gè)系統(tǒng)運(yùn)行過(guò)程中,回收站只維護(hù)一個(gè)實(shí)例。

5.單例防止反射漏洞攻擊

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="java" cid="n230" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">private static boolean flag = false;

private Singleton() {

if (flag == false) { // if (instance != null) 實(shí)例不為空的話(huà),直接拋異常
flag = !flag;
} else {
throw new RuntimeException("單例模式被侵犯!");
}
}

public static void main(String[] args) {

}</pre>


設(shè)計(jì)分層

Service生命周期管理、其他Service交互的初始化、Mgr初始化和管理、消息隊(duì)列(生產(chǎn)者消費(fèi)者模式?)、TTS模塊封裝提供、免喚醒場(chǎng)景切換、

語(yǔ)義解析、狀態(tài)機(jī)管理進(jìn)行機(jī)能支持與否的控制、狀態(tài)監(jiān)聽(tīng)和通知啊、UT、IT、FT測(cè)試case設(shè)計(jì)實(shí)施、DRBFM

DRBFM、基本設(shè)計(jì)、詳細(xì)設(shè)計(jì)、Coding,ttt

BlinkReset

項(xiàng)目源碼二進(jìn)制化:android makefile 轉(zhuǎn)寫(xiě)的套路,

防抖?消息緩存去重?

https://blog.csdn.net/clhcowboy/article/details/112571235

https://zhuanlan.zhihu.com/p/104878641


http://www.woshipm.com/ai/2620327.html


GC

GC 是一種內(nèi)存管理方式,不止Java在使用,Python也有同樣的內(nèi)存管理方式,不需要開(kāi)發(fā)者顯式的進(jìn)行內(nèi)存回收管理,

在Java語(yǔ)言中,是由JVM自動(dòng)進(jìn)行的,垃圾回收線(xiàn)程是低優(yōu)先級(jí),平時(shí)不出發(fā),一般在虛擬機(jī)空閑或者堆內(nèi)存不足時(shí)出發(fā)GC

GC的方式?
1. 引用計(jì)數(shù)法?
2. 可達(dá)性分析法?->主流,從GCRoot開(kāi)始進(jìn)行引用鏈路的分析,在引用鏈上的對(duì)象都是可達(dá)的,不可達(dá)的就可以進(jìn)行回收</pre>

GC Blog

GC 知乎ms

GC 知乎ms


Android原生TTS的基本使用以及配合中文語(yǔ)音包實(shí)現(xiàn)中文TTS

IPC進(jìn)程間通信的優(yōu)劣分析

詳細(xì)Aidl使用教程,Kotlin

死亡代理和onServiceDisconnected的區(qū)別

AIDL 客戶(hù)

我丟小規(guī)模Android教程


Kotlin
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽(tīng)閱讀 10,843評(píng)論 0 11
  • 彩排完,天已黑
    劉凱書(shū)法閱讀 4,473評(píng)論 1 3
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,642評(píng)論 2 7

友情鏈接更多精彩內(nèi)容