摘要:如果不存在最后一個單詞,請返回。樣例輸入輸出解法倒序遍歷去除字符串最后的所有空格定義計數器緩存長度循環直到遇到空格,計數器自增
????本文首發于cartoon的博客
????轉載請注明出處:https://cartoonyu.github.io/c...
Iterator與ListIterator的區別
Iterator與ListIterator都是Collection的迭代器實現,ListIterator繼承于Iterator
遍歷集合分類
Iterator可以遍歷Set,List,Queue的實現類
ListIterator只能遍歷List接口下的實現類
修改被迭代集合
Iterator不能對元素進行修改或者添加元素
ListIterator可以在迭代中修改添加元素
刪除元素
兩個都可以在迭代過程中刪除元素
遍歷方式
Iterator只能向下遍歷
ListIterator可以向前向后遍歷,同時可以獲取當前迭代元素的索引
synchronized和ReentrantLock的區別
共同點
都是協調線程間訪問互斥資源
可重入,同一線程可以多次獲得同一鎖
都保證了可見性和互斥性
不同點
獲取鎖的方式
ReentrantLock需要顯式獲取鎖
synchronized隱式獲取鎖
靈活性
ReentrantLock可以響應中斷,可以切換鎖的公平性
synchronized不可以響應中斷,鎖的獲取只能依靠系統調度
存在位置
ReentrantLock是API級別
synchronized是JVM級別
底層實現
synchronized是同步阻塞式的,采用悲觀并發策略
ReentrantLock時同步非阻塞式的,采用樂觀并發策略
hasCode,equals的了解
hasCode方法是JVM計算對象的哈希碼的方法,計算結果會放在對象頭的哈希碼字段中
equals是常用的對象對比方法
重寫equals,需要重寫hashCode
equals返回true,hashCode也返回相等的整數
equasl返回false,hasCode返回不一定相等
hashCode相等,equals對比不一定相等
hashCode不相等,equals返回false
JVM
java對象在jvm的組成
對象頭
自身運行數據
哈希碼
GC分代年齡
鎖狀態標志
線程鎖
偏向線程ID
偏向時間戳
類型指針
對象指向元數據的指針
實例數據
對齊字節
雙親委派模型的概念
雙親委派模型發生在類加載的過程中
當前類不直接負責加載,將類依次遞歸交給父加載器進行加載
若父加載器都不能加載,則當前類負責加載
如果我不想用這個雙親加載模型,怎么操作
自定義類加載器,重載loadClass方法
數據庫
延遲加載是什么?Mybatis 是否支持延遲加載?
延遲加載
符合查詢條件的結果只加載滿足要求的部分
若信息需要更詳細則再查詢從關聯表
延遲加載配置
查詢語句中開啟fetchType
全局配置文件中
開啟lazyLoadingEnabled(開啟全局延遲加載)
關閉aggressiveLazyLoading
開啟lazyLoadTriggerMethods
select語句是怎么執行的
連接器
客戶端通過賬戶密碼進入到mysql服務器層中
查詢緩存
查詢時候執行過此條select語句
若執行過,直接返回緩存結果
若未執行過,進入第三步
分析器
詞法分析
語法分析
優化器
通過選擇索引實現查詢速度的優化
執行器
操作引擎,進行查詢操作并返回結果
Spring
spring的作用域
singleton(多用于無狀態)
prototype(多用于有狀態)
session
request
global session
spring的bean線程安全嗎
prototype以及request再每次被調用會產生新對象,所以是線程安全的
無狀態的singleton線程安全,有狀態的singleton線程不安全
session以及global session會造成線程競爭
設計模式
裝飾者模式的原理實現以及java中使用場景
原理以及實現
裝飾者與被裝飾者有一致的行為流程
定義一個接口,接口方法為一致的行為流程
裝飾者與被裝飾者實現同一個接口,并重寫方法實現自身邏輯
當需要裝飾時,傳入被裝飾者到裝飾者的實現邏輯中,并返回裝飾者的對象
使用場景
java的IO相關類
算法
字符串統計最后一個單詞的長度(leetcode58)
題目
給定一個僅包含大小寫字母和空格 " " 的字符串,返回其最后一個單詞的長度。
如果不存在最后一個單詞,請返回 0 。
樣例
輸入:"Hello World"
輸出:5
解法
倒序遍歷去除字符串最后的所有空格
定義計數器緩存長度
循環直到遇到空格,計數器自增
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75598.html
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:基礎知識復習后端掘金的作用表示靜態修飾符,使用修飾的變量,在中分配內存后一直存在,直到程序退出才釋放空間。將對象編碼為字節流稱之為序列化,反之將字節流重建成對象稱之為反序列化。 Java 學習過程|完整思維導圖 - 后端 - 掘金JVM 1. 內存模型( 內存分為幾部分? 堆溢出、棧溢出原因及實例?線上如何排查?) 2. 類加載機制 3. 垃圾回收 Java基礎 什么是接口?什么是抽象...
閱讀 2224·2021-11-22 09:34
閱讀 1334·2021-10-11 10:59
閱讀 4427·2021-09-22 15:56
閱讀 3270·2021-09-22 15:08
閱讀 3401·2019-08-30 14:01
閱讀 773·2019-08-30 11:16
閱讀 1129·2019-08-26 13:51
閱讀 2906·2019-08-26 13:43