主頁 > 後端開發 > Java開發工程師最新面試題庫系列——Spring部分(附答案)

Java開發工程師最新面試題庫系列——Spring部分(附答案)

2021-02-24 06:12:29 後端開發

Spring
  1. Spring框架是什么?

    答:Spring是輕量級的面向切面和控制反轉的框架,初代版本為2002年發布的interface21,Spring框架是為了解決企業級應用開發的復雜性的出現的,它可以幫助開發人員管理物件之間的關系,能實作模塊與模塊之間、類與類之間的解耦合,Spring是一個大雜燴,它集成其他許多框架,使其他框架能與spring結合搭配使用

  2. Spring常用的注解有哪些?

    答:

    1、@Controller

    在SpringMVC 中,控制器Controller 負責處理由DispatcherServlet 分發的請求,它把用戶請求的資料經過業務bai處理層處理之后封裝成一個Model ,然后再把該Model 回傳給對應的View 進行展示,在SpringMVC 中提供了一個非常簡便的定義Controller 的方法,你無需繼承特定的類或實作特定的介面,只需使用@Controller 標記一個類是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定義URL 請求和Controller 方法之間的映射,這樣的Controller 就能被外界訪問到,此外Controller 不會直接依賴于HttpServletRequest 和HttpServletResponse 等HttpServlet 物件,它們可以通過Controller 的方法引數靈活的獲取到,
    @Controller 用于標記在一個類上,使用它標記的類就是一個SpringMVC Controller 物件,分發處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了@RequestMapping 注解,@Controller 只是定義了一個控制器類,而使用@RequestMapping 注解的方法才是真正處理請求的處理器,單單使用@Controller 標記在一個類上還不能真正意義上的說它就是SpringMVC 的一個控制器類,因為這個時候Spring 還不認識它,那么要如何做Spring 才能認識它呢?這個時候就需要我們把這個控制器類交給Spring 來管理,有兩種方式:
    (1)在SpringMVC 的組態檔中定義MyController 的bean 物件,
    (2)在SpringMVC 的組態檔中告訴Spring 該到哪里去找標記為@Controller 的Controller 控制器,

    2、@RequestMapping

    RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上,用于類上,表示類中的所有回應請求的方法都是以該地址作為父路徑,
    3、@Resource和@Autowired
    @Resource和@Autowired都是做bean的注入時使用,其實@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要匯入,但是Spring支持該注解的注入,

    4、@ModelAttribute和 @SessionAttributes

    代表的是:該Controller的所有方法在呼叫前,先執行此@ModelAttribute方法,可用于注解和方法引數中,可以把這個@ModelAttribute特性,應用在BaseController當中,所有的Controller繼承BaseController,即可實作在呼叫Controller時,先執行@ModelAttribute方法,
    @SessionAttributes即將值放到session作用域中,寫在class上面,
    具體示例參見下面:使用 @ModelAttribute 和 @SessionAttributes 傳遞和保存資料

    5、@PathVariable

    用于將請求URL中的模板變數映射到功能處理方法的引數上,即取出uri模板中的變數作為引數,

    6、@requestParam

    @requestParam主要用于在SpringMVC后臺控制層獲取引數,類似一種是request.getParameter("name"),它有三個常用引數:defaultValue = "https://www.cnblogs.com/smart-rick/p/0", required = false, value = "https://www.cnblogs.com/smart-rick/p/isApp";defaultValue 表示設定默認值,required 銅過boolean設定是否是必須要傳入的引數,value 值表示接受的傳入的引數型別,

    7、@ResponseBody

    作用: 該注解用于將Controller的方法回傳的物件,通過適當的HttpMessageConverter轉換為指定格式后,寫入到Response物件的body資料區,
    使用時機:回傳的資料不是html標簽的頁面,而是其他某種格式的資料時(如json、xml等)使用;

    8、@Component

    相當于通用的注解,當不知道一些類歸到哪個層時使用,如果有WEB開發架構中固定的層則使用更加語意化的注解@Repository注解于DAO層、@Service注解于Service層、@Controller 注解于Controller層

  3. Spring框架有哪些好處?

    答:Spring能有效地組織你的中間層物件,為模塊之間降低耦合,還包括輕量級,面向切面,控制反轉,都是Spring的好處

  4. Spring由哪些主要模塊組成?

    答:

    img

  5. Spring IOC容器是什么?

    答:IOC容器意味著將物件交給IOC容器接管,由這樣一個容器幫助我們管理物件,而不是傳統的由開發人員管理物件,IOC可以幫助我們注入屬性給物件,需要的時候給我們,

  6. Spring IOC有哪些好處?

    答:降低模塊與模塊之間的耦合,降低類與類之間的耦合,讓開發人員不再做重復的物件創建賦值等繁瑣的操作,而是需要用到時由IOC容器創建好自己傳遞過來

  7. BeanFactory和ApplicationContext有什么區別?

    答:

    BeanFactory:

    是Spring里面最低層的介面,提供了最簡單的容器的功能,只提供了實體化物件和拿物件的功能;

    ApplicationContext:

    應用背景關系,繼承BeanFactory介面,它是Spring的一各更高級的容器,提供了更多的有用的功能;

    1. 國際化(MessageSource)

    2. 訪問資源,如URL和檔案(ResourceLoader)

    3. 載入多個(有繼承關系)背景關系 ,使得每一個背景關系都專注于一個特定的層次,比如應用的web層

    4. 訊息發送、回應機制(ApplicationEventPublisher)

    5. AOP(攔截器)

    兩者裝載bean的區別

    BeanFactory:

    BeanFactory在啟動的時候不會去實體化Bean,中有從容器中拿Bean的時候才會去實體化;

    ApplicationContext:

    ApplicationContext在啟動的時候就把所有的Bean全部實體化了,它還可以為Bean配置lazy-init=true來讓Bean延遲實體化;

    我們該用BeanFactory還是ApplicationContext

    延遲實體化的優點:(BeanFactory

    應用啟動的時候占用資源很少;對資源要求較高的應用,比較有優勢;

    不延遲實體化的優點: (ApplicationContext

    1. 所有的Bean在啟動的時候都加載,系統運行的速度快;

    2. 在啟動的時候所有的Bean都加載了,我們就能在系統啟動的時候,盡早的發現系統中的配置問題

    3. 建議web應用,在啟動的時候就把所有的Bean都加載了,(把費時的操作放到系統啟動中完成)

  8. Spring的依賴注入是什么?

    答:主動尋找依賴屬性,通過set方法或者建構式等方式注入到物件內部,

  9. Spring的依賴注入有幾種方式?

    答:構造器注入,setter注入,介面注入

    依賴類必須要實作指定的介面,然后實作該介面中的一個函式,該函式就是用于依賴注入,該函式的參
    數就是要注入的物件,
    優點:
    介面注入中,介面的名字、函式的名字都不重要,只要保證函式的引數是要注入的物件型別即可,
    缺點:
    侵入行太強,不建議使用,

  10. Spring Bean支持哪幾種作用域?

    答:singlet單例,prototype多例,request HTTP請求,session會話,session-global全域會話

  11. Spring Bean生命周期是怎樣的?

    答:

    imgimg

    Spring Bean生命周期

  12. Spring Bean為什么默認是單例的?

    答:

    1、如果是多例會引數較大的性能消耗,體現在創建物件,回收物件的程序,

    2、單例的話自始至終都只有一個物件,Spring創建好后就放入了快取,需要使用時可以快速獲取,

  13. Spring Bean是執行緒安全的嗎?

    答:當Bean的作用域范圍是singlet時執行緒是不安全的,因為所有的執行緒都會共享這一個實體,必然存在資源競爭,為prototype時執行緒安全,

  14. Spring怎么注入Java集合型別?

    答:使用標簽或者標簽進行進入

    <bean name="list" >
    		<!-- List 注入 -->
            <property name="list">
                <list>
                    <value>tom</value>
                    <value>tom</value>
                    <ref bean="user3"/>
                </list>
            </property>
    </bean>
    
  15. Spring自動裝配是指什么?

    答:自動裝配就是讓應用程式背景關系為你找出依賴項的程序,說的通俗一點,就是Spring會在背景關系中自動查找,并自動給bean裝配與其關聯的屬性!

  16. Spring自動裝配有哪些方式?

    答:大體上有兩種方式,xml方式和注解方式,xml方式在bean標簽中加入屬性autowire="",值可以選擇byName、byType、constructor,需要在類中為需要注入的屬性提供setter方法,注解方式@Autowire,先根據byType尋找bean,如果找到數量大于1再根據byName尋找、@Resource根據byType注入、@Qualifier("beanName")指定beanName注入

  17. Spring自動裝配有什么局限性?

    答:

    • 重寫: 你仍需用 配置來定義依賴,意味著總要重寫自動裝配,

    • 基本資料型別:你不能自動裝配簡單的屬性,如基本資料型別,String字串,和類,

    • 模糊特性:自動裝配不如顯式裝配精確,如果有可能,建議使用顯式裝配,

  18. Spring AOP是什么?

    答:將對業務操作重復的操作封裝為模塊,通過動態代理的方式注入到方法中,

  19. Spring AOP有什么作用?

    答:

    Authentication 權限

    Caching 快取

    Context passing 內容傳遞

    Error handling 錯誤處理

    Lazy loading 懶加載

    Debugging  除錯

    logging, tracing, profiling and monitoring 記錄跟蹤 優化 校準

    Performance optimization 性能優化

    Persistence  持久化

    Resource pooling 資源池

    Synchronization 同步

    Transactions 事務

  20. Spring AOP有哪些實作方式?

    答:JDK動態代理和cglib,spring根據被代理類的型別采用適合的方式進行實作啊,如果是介面就采用JDK動態代理,如果是類就采用cglib方式,

  21. Spring AOP和AspectJ AOP有什么區別?

    Spring AOP AspectJ
    在純 Java 中實作 使用 Java 編程語言的擴展實作
    不需要單獨的編譯程序 除非設定 LTW,否則需要 AspectJ 編譯器 (ajc)
    只能使用運行時織入 運行時織入不可用,支持編譯時、編譯后和加載時織入
    功能不強-僅支持方法級編織 更強大 - 可以編織欄位、方法、建構式、靜態初始值設定項、最終類/方法等…,
    只能在由 Spring 容器管理的 bean 上實作 可以在所有域物件上實作
    僅支持方法執行切入點 支持所有切入點
    代理是由目標物件創建的, 并且切面應用在這些代理上 在執行應用程式之前 (在運行時) 前, 各方面直接在代碼中進行織入
    比 AspectJ 慢多了 更好的性能
    易于學習和應用 相對于 Spring AOP 來說更復雜
  22. Spring支持哪些事務管理型別?

    答:

    • 編程式事務管理,在代碼中顯式呼叫開啟事務、提交事務、回滾事務的相關方法
    • 宣告式事務管理,底層是建立在 AOP 的基礎之上,其本質是對方法前后進行攔截,然后在目標方法開始之前創建或者加入一個事務,在執行完目標方法之后根據執行情況提交或者回滾事務,
  23. Spring框架用了哪些設計模式?

    答:

    1、代理模式:在AOP和remoting中被用的比較多

    2、單例模式:在spring組態檔中定義的bean默認為單例模式

    3、模板方法模式:解決代碼重復問題

    父類定義骨架(共同方法的實作,呼叫哪些方法及順序),某些特定方法由子類實作(父類是空方法,子類繼承后再重寫)

    4、前端控制器模式:spring提供了DispatcherServlet來對請求進行分發

    5、依賴注入模式:貫穿于BeanFactory和ApplicationContext介面的核心理念

    6、工廠模式:

    (1)簡單工廠:

    實作方式:BeanFactory根據傳入一個唯一的標識來獲得bean物件,由工廠類根據傳入的引數動態決定應該創建哪一個產品類

    實作原理:

    bean容器的啟動階段:讀取bean的xml組態檔,將bean元素分別轉換成一個BeanDefinition物件,然后通過BeanDefinitionRegistry將這些bean注冊到beanFactory中,

    容器中bean的實體化階段:主要通過反射或者CGLIB對bean進行實體化

    (2)工廠方法:

    實作方式:FactoryBean介面

    實作原理:實作了FactoryBean介面的bean是一類叫做factory的bean,特點是spring會在使用getBean()呼叫獲得該bean時,自動呼叫該bean的getObject()方法,回傳的是這個bean.getObject()方法的回傳值,

    典型例子:spring與mybatis的結合:

    //最侄訓傳的是SqlSessionFactoryBean.getObject()的回傳值

    7、配接器模式

    實作方式:springmvc中的配接器HandlerAdapter

    實作程序:dispatcherServlet根據HandlerMapping回傳的handler,向HandlerAdapter發起請求,處理handler,HandlerAdapter根據規則找到對應的Handler并讓其執行,執行完畢后Handler會向HandlerAdapter回傳一個ModelAndView,最后由HandlerAdapter向dispatcherServlet回傳一個ModelAndView

    8、裝飾器模式:

    實作方式:類名中包含Wrapper,或者是Decorator,就是裝飾器模式

    實質:動態地給一個物件添加一些額外的職責,比生成子類更靈活

    9、觀察者模式

    實作方式:spring的事件驅動模型使用的是觀察者模式,常用的地方就是listener的實作

    具體實作:事件機制的實作包括事件源、事件、事件監聽器:

    ApplicationEvent抽象類【事件】

    ApplicationListener介面【事件監聽器】

    ApplicationContext介面【事件源】

    10、策略模式

    實作方式:spring框架的資源訪問Resource介面,是具體資源訪問策略的抽象,也是所有資源訪問類所實作的介面

  24. Spring MVC框架有什么用?

    答:SpringMvc是輕量級、松耦合的MVC框架,提供模型-視圖-控制器層的不同支持,

  25. Spring MVC DispatcherServlet的作業流程?

    答:

    1. Tomcat 啟動,對 DispatcherServlet 進行實體化,然后呼叫它的 init() 方法進行初始化,在這個初始化程序中完成了:

    2. 對 web.xml 中初始化引數的加載;建立 WebApplicationContext (SpringMVC的IOC容器);進行組件的初始化;

    3. 客戶端發出請求,由 Tomcat 接收到這個請求,如果匹配 DispatcherServlet 在 web.xml 中配置的映射路徑,Tomcat 就將請求轉交給 DispatcherServlet 處理;

    4. DispatcherServlet 從容器中取出所有 HandlerMapping 實體(每個實體對應一個 HandlerMapping 介面的實作類)并遍歷,每個 HandlerMapping 會根據請求資訊,通過自己實作類中的方式去找到處理該請求的 Handler (執行程式,如Controller中的方法),并且將這個 Handler 與一堆 HandlerInterceptor (攔截器) 封裝成一個 HandlerExecutionChain 物件,一旦有一個 HandlerMapping 可以找到 Handler 則退出回圈;(詳情可以看[ Java]SpringMVC作業原理之二:HandlerMapping和HandlerAdpater 這篇文章)

    5. DispatcherServlet 取出 HandlerAdapter 組件,根據已經找到的 Handler,再從所有 HandlerAdapter 中找到可以處理該 Handler 的 HandlerAdapter 物件;

    6. 執行 HandlerExecutionChain 中所有攔截器的 preHandler() 方法,然后再利用 HandlerAdapter 執行 Handler ,執行完成得到 ModelAndView,再依次呼叫攔截器的 postHandler() 方法;

    7. 利用 ViewResolver 將 ModelAndView 或是 Exception(可決議成 ModelAndView)決議成 View,然后 View 會呼叫 render() 方法再根據 ModelAndView 中的資料渲染出頁面;

    8. 最后再依次呼叫攔截器的 afterCompletion() 方法,這一次請求就結束了,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/262785.html

標籤:Java

上一篇:hashMap原始碼學習

下一篇:手把手教你Spring Boot整合Mybatis Plus和Swagger2

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more