八股文面試day6

什么是代理?為什么要用動態代理?

代理模式大概意思是:為其他對象提供一個代理項或者是占位符,以控制對這個對象的訪問

代理模式核心思想:創建一個代理對象,在客戶端和目標對象之間的一個中介,主要作用就是保護目標對象以及增強目標對象

靜態代理:相當于是這個代理對象我們需要手動去創建,而且一個代理對象只能服務于一種業務類型對象,那么當我們有n個業務目標對象的時候,就需要n個靜態代理對象,這樣的話就不利于我們業務的擴展

舉例:有一個程序員張三,他平時加班比較多,并且加上公司的異性同事又比較少,然后又不善于與其溝通,那自己又缺少人脈和資源,所以一直沒有找對象,這時張三的父親張老三就比較著急了,他就利用自己的人脈然后經常給張三安排相親,那張老三就是張三的代理的相親對象,那么問題來了,一般情況下,張老三是不會給李四去安排相親的,因為張老三是不會關心李四有沒有對象這個事情,李四有沒有對象只有李老四才會關心,那么這個時候呢,就出現了一個新的職業叫媒婆,媒婆就會關心張三李四王五趙六等這些有沒有對象,媒婆就成了所有相親需求的代理對象,那么這樣的代理對象就可以服務于所有相關業務對象,這就相當于動態代理對象

減少代理對象的個數,從而去降低程序的復雜度,易于復雜業務的動態擴展

jdk proxy的基本實現原理

  1. 拿到目標對象的引用,并且通過反射去獲取目標對象所有的接口
  2. 要重新去生成一個新的代理類,實現目標類所有的接口方法
  3. 把增強的邏輯代碼加入到新生成的代理類的源代碼中
  4. 動態去編譯代理類的源代碼并且生成字節碼即class文件,這個部分是內存中完成的
  5. 去加載并執行新生成的代理對象

CGLib和JDK動態代理的對比

  • JDK動態代理是實現目標對象的接口,而CGLib是繼承目標對象
  • JDK和CGLib都是在運行期生成字節碼
  • JDK通過反射來調用目標方法,而CGLib是通過FastClass機制調用目標方法

目標對象即被代理對象?

為什么不用UUID來做主鍵?

  1. 無序不是趨勢遞增,而是會導致樹的分裂與合并,樹的問題雖然查詢快,但是修改比鏈表慢,增加數據的時候會很慢 聯想hashmap1.8以后他加了一個紅黑樹,他在鏈表和紅黑樹之間轉來轉去,如果數據小于6了,就把它轉為鏈表了
  2. 內存?頁放的數據越少,同樣的數據我需要的頁數越多 層級可能越高 磁盤io次數越多(int -> String)?

SpringBoot和傳統的Spring有什么區別

首先,springboot采用了約定大于配置這樣一個理念,大大簡化了spring應用的初期搭建以及后期的維護工作,它提供大量的自動配置,開發者不需要進行繁瑣的XML配置就可以專注于核心業務的開發

其次,springboot內置了Tomcat等應用服務器,讓項目的部署也變得更加方便,同時springboot還提供了許多starters組件,方便集成各種常用的框架和中間件,比如Redis,JPA,MQ等,相比之下,傳統的Spring配置更加靈活,可以適應各種復雜項目的需求,但是相應的配置更加復雜,對于我個人而言,我更加傾向于使用SpringBoot,因為它能讓我更加專注與業務代碼的編寫,而不需要花費大量的時間在配置和環境搭建上,以上就是我對這個問題的理解

項目舉例描述

比如說我先拿到這個文件,然后去遍歷這個文件里面的詞組,然后我給他建立一個正排的索引和一個倒排的索引,通過一個ID,也就是集合的下標,他們建立關系,然后查詢的話就是用倒排獲得這種ID,再通過正牌去拿到文章的內容,然后再展示出來,然后這邊就會涉及到權重的問題和排序的問題?

反射

反射是指在運行時檢查和操作類、接口、字段、方法等程序結構的能力。通過反射,可以在運行時獲取類的信息,創建類的實例,調用類的方法,訪問和修改類的字段等。通過反射可以提高程序的靈活性和可擴展性,可以實現更多的功能。但在使用反射時需要考慮性能問題以及安全等問題。

克隆

線程安全

如何查看端口80有沒有被占用

netstat -anp | grep 80

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162480.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162480.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

35的程序員被辭了可以自己接外包啊?為什么都那么悲觀呢?

35的年紀,上有老下有小,即將步入中年危機,在這個節骨眼上被辭,能不悲觀嗎? 在這個年紀人們往往追求的是穩定的工作和生活,而進入一個自己不熟悉的行業并不是一個好的選擇。 況且,你認為的外包…

診斷0x27服務解密文件DLL制作與使用

DLL文件在CANoe的使用方法 DLL文件在診斷里面可以用在0x27秘鑰服務里面,對解密有幫助,在下圖位置加載。 DLL文件制作 vector公司本來就給了我們一個demo,先拷貝一份下來,別把原來的文件給改壞了。我這個是CANoe12,de…

Visio給立方體的每條邊填充不同的顏色,超好用的visio小技巧~

Visio給立方體的每條邊填充不同的顏色,超好用的visio小技巧~ 如何實現立方體的填充顏色從左邊的純色到右邊的多色呢?一起學起來吧~ 在visio中繪制一個普通的立方體; 用一個大的矩形蓋住剛才繪制的立方體; 全選之后找到 開發工具-&…

matplotlib

設置中文字體,圖片大小,分辨率,中文負號 符號 x軸和y軸 設置x軸和y軸的刻度 字體大小 線條樣式 繪制多個線條 圖例 顯示每個坐標值 gca 分辨率 畫布尺寸 創建圖形對象 不能直接使用區域對象作畫 繪制多子圖 均等的劃分畫布 柱狀圖 同一位置多…

Python 讀取2進制bin文件

pip下載hexdump pip install hexdump讀取bin文件 python -m hexdump xxx.bin

HTTP/HTTPS

HTTP/HTTPS 簡介 HTTP 協議是 Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用于從萬維網( WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。 HTTP 是一個基于 TCP/IP 通信協議來傳遞數據&a…

最新版車牌號正則效驗

支持最新版新能源、各類特種車等車牌號規則效驗 private static final Pattern pattern Pattern.compile("^([京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[a-zA-Z](([京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊AB…

類加載過程

Java類加載過程包括加載(Loading)、驗證(Verification)、準備(Preparation)、解析(Resolution)、初始化(Initialization)五個階段。這些階段是按照順序逐步執…

Javascript中的宏任務與微任務

事件循環 JavaScript 語言的一大特點就是單線程,也就是說,同一個時間只能做一件事。為了協調事件、用戶交互、腳本、UI 渲染和網絡處理等行為,防止主線程的不阻塞,Event Loop 的方案應用而生。Event Loop 包含兩類:一…

購買Zoho CRM系統要花多少錢?

相信對CRM系統有過了解的人都知道,CRM系統的價格取決于功能需求,用戶數量,部署方式,定制開發等因素。Zoho CRM是全球領先的云CRM系統,自2005年推出以來,累計服務25萬企業,那么Zoho CRM系統的價格…

python批量修改文件夾下的后綴名

python批量修改文件夾下的后綴名 (所有的.txt結尾的文件,替換成.py結尾) 1、需要將某個文件夾下所有的.txt結尾的文件,替換成.py結尾 2、Python代碼: import os# 指定需要更改文件的目錄 dir_path D:/study/py/4#…

Vatee萬騰數字引領未來:vatee科技力量的獨特路徑

在當今數字化浪潮的推動下,Vatee萬騰以其卓越的科技力量,正引領著未來的數字化時代,描繪著一條獨特的發展路徑。通過持續創新、前瞻思維和對技術的深度理解,Vatee萬騰正在為未來的科技發展創造新的可能性,塑造著數字引…

微信開放平臺Android平臺應用簽名怎么填寫

winR 輸入cmd 進到本地簽名文件的目錄下 輸入 keytool -list -v -keystore <keystore文件路徑> -alias <別名>請將 <keystore文件路徑> 替換為您的密鑰庫文件&#xff08;通常是 .jks 或 .keystore 文件&#xff09;的路徑&#xff0c;而 <別名> 則是…

Speaker Verification,聲紋驗證詳解——語音信號處理學習(九)

參考文獻&#xff1a; Speaker Verification嗶哩嗶哩bilibili 2020 年 3月 新番 李宏毅 人類語言處理 獨家筆記 聲紋識別 - 16 - 知乎 (zhihu.com) (2) Meta Learning – Metric-based (1/3) - YouTube 如何理解等錯誤率(EER, Equal Error Rate)&#xff1f;請不要只給定義 - 知…

oracle數據庫巡檢常見腳本-系列二

簡介 作為數據庫管理員&#xff08;DBA&#xff09;&#xff0c;定期進行數據庫的日常巡檢是非常重要的。以下是一些原因&#xff1a; 保證系統的穩定性&#xff1a;通過定期巡檢&#xff0c;DBA可以發現并及時解決可能導致系統不穩定的問題&#xff0c;如性能瓶頸、資源利用率…

libcurl curlcode 35問題解決

libcurl code 35 定義&#xff1a; SSL CONNECT ERROR 我這里問題情況會出現以下兩種 SSL證書認證&#xff0c;可以添加相應的頭取消或是添加驗證 curl_easy_setopt(curl, CURLOPT_URL, combinePath.c_str());curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);curl_easy_setop…

人工智能:讓生活更便捷、更智能——探討人工智能在生活中的作用與挑戰

文章目錄 前言人工智能的定義與分類人工智能的領域一、智能語音助手改變日常生活二、智能駕駛帶來出行革命三、人工智能在醫療健康領域的應用四、教育領域的人工智能創新 人工智能的應用生活方面的影響工作方面的影響 應對AI帶來的挑戰后記 前言 人工智能相關的領域&#xff0…

Python基于機器學習模型LightGBM進行水電站流量入庫預測項目源碼+數據集+模型,含項目報告

1.前言 該文檔主要是介紹通過機器學習模型LightGBM進行水電站流量入庫預測。 對于水電站來說&#xff0c;發電是主要經濟效益來源&#xff0c;而水就是生產的原料。對進入水電站水庫的入庫流量進行精準預測&#xff0c;能夠幫助水電站對防洪、發電計劃調度工作進行合理安排&…

java常見數值類型取值范圍/ int short long BigInteger取值范圍

文章目錄 一、各類型取值范圍 一、各類型取值范圍 以下整理java中常用的數值類型取值范圍。 類型字節大小最小值最大值取值范圍byte8bit-128127-128到127short16bit-2 15 ^{15} 152 15 ^{15} 15-1-32768-32767int32bit-2 31 ^{31} 312 31 ^{31} 31 -1-2,147,483,648 到 2,147…

女娃娃就要打扮,就要時刻保持美麗

超足充絨量&#xff0c;細膩柔軟 上身效果很棒保暖性也很強 無論是日常出行還是戶外活動 穿這件羽絨服都妥妥的 簡約時尚的色彩搭配 使它在寒冷的冬季 既能保暖又能展現個人品味哦&#xff01;