成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

阿粉被面試官吊起來瘋狂捶打,結果很尷尬

開發 前端
阿粉最近接到了一個面試,但是面試結果不是很盡如人意,因為雖然有些問題回答的還湊活,但是因為面試官問了一些后序的內容,阿粉不會,于是就被吊起來瘋狂捶打了半天,敗興而歸。

本文轉載自微信公眾號「Java極客技術」,作者鴨血粉絲。轉載本文請聯系Java極客技術公眾號。   

阿粉最近接到了一個面試,但是面試結果不是很盡如人意,因為雖然有些問題回答的還湊活,但是因為面試官問了一些后序的內容,阿粉不會,于是就被吊起來瘋狂捶打了半天,敗興而歸。

[[360712]]

面試題1:HashMap和ConcurrentHashMap的區別

我們都知道HashMap是線程不安全的,當我們在有并發的情況下去使用HashMap的put,還有get等一些方法的時候,CPU直接飆升,而且也沒有辦法保證線程的安全性,但是更加安全的HashTable呢?

因為在HashTable里面put和get的方法的,沒一個都是加上了synchronize,雖然保證了線程的安全性,但是效率就比較低下了,在我們進行并發訪問的時候,每次只能是一個線程進行操作,其他的線程就只能是阻塞執行,所以,他的效率相對來說,是非常低的,這時候我們就出現了ConcurrentHashMap。

而ConcurrentHashMap則使用了鎖分段(減小鎖范圍)、CAS(樂觀鎖,減小上下文切換開銷,無阻塞)等等技術,這時候你回答了,就出現了一環套一環的操作,那么你就分別來說說把。

在JDK1.7中,ConcurrentHashMap使用的鎖分段技術,將數據分成一段一段的存儲,然后給每一段數據配一把鎖,當一個線程占用鎖訪問其中一個段數據的時候,其他段的數據也能被其他線程訪問。

在JDK1.8中,ConcurrentHashMap采用CAS和synchronized方式處理并發。以put操作為例,CAS方式確定key的數組下標,synchronized保證鏈表節點的同步效果

阿粉也沒怎么墨跡,直接說能給我一張紙么?于是阿粉畫了一個之前在網上看的圖。

阿粉給面試官介紹的時候直接就從圖上介紹了,而阿粉直接分析源碼的時候,剛開始Segment繼承了ReentrantLock的時候,面試官就打斷了我接下來要敘述的內容,讓我直接就說1.8的了。

1.8中的:

  • 首先new一個新的hash表(nextTable)出來,大小是原來的2倍。后面的rehash都是針對這個新的hash表操作,不涉及原hash表(table)。
  • 然后會對原hash表(table)中的每個鏈表進行rehash,此時會嘗試獲取頭節點的鎖。這一步就保證了在rehash的過程中不能對這個鏈表執行put操作。
  • 通過sizeCtl控制,使擴容過程中不會new出多個新hash表來。
  • 最后,將所有鍵值對重新rehash到新表(nextTable)中后,用nextTable將table替換。這就避免了HashMap中get和擴容并發時,可能get到null的問題。
  • 在整個過程中,共享變量的存儲和讀取全部通過volatile或CAS的方式,保證了線程安全。

而至于分析源碼,阿粉不再進行分析了,以后在遇到面試的時候分析源碼的時候在繼續給大家說。畢竟下面還有很多內容。

面試題2:你對著兩種方式的看法是什么,為什么1.8要改變呢?優點是哪里呢?

阿粉就猜測到可能這么問,畢竟你開了頭了,你都區分出1.7和1.8了,必然會有面試官會這么問你,阿粉是這么回答的。

(1) 減少內存開銷

假設使用可重入鎖,那么每個節點都需要繼承AQS,但并不是每個節點都需要同步支持,只有鏈表的頭節點(紅黑樹的根節點)需要同步,這無疑消耗巨大內存。

(2) 獲得JVM的支持

可重入鎖畢竟是API級別的,后續的性能優化空間很小。synchronized則是JVM直接支持的,JVM能夠在運行時作出相應的優化措施:鎖粗化、鎖消除、鎖自旋等等。使得synchronized能夠隨著JDK版本的升級而不改動代碼的前提下獲得性能上的提升。

也是虧了阿粉在面試之前的時候看過很多這樣的文章,很多東西都專門去比對了一下,于是第二個問題結束了。

面試題3:你們是怎么避免 SQL 注入的?

阿粉看到這個問題的時候,第一反應就是肯定是按照我簡歷上寫的問的,因為阿粉之前的公司就是對安全性要求比較高的,像什么SQL注入啦,像跨站攻擊啦,于是阿粉就開始說了。

阿粉在之前的時候時候最多使用的是 where條件后面加上個1=1然后再繼續寫自己的參數。

  • 確認每種數據的類型,比如是數字,數據庫則必須使用int類型來存儲
  • 嚴格限制數據庫權限
  • 過濾參數中含有的一些數據庫關鍵詞

比如說過濾一些 and,char,這些在數據庫語句中是關鍵字的一些詞。

也可能面試官對這些數據安全的方面不是太注重,所以,阿粉回答出這幾種方式之后,就已經算是完事了,也沒有繼續再往下深究。

面試題4:說一下 MySQL常用的引擎都有哪些?

數據庫存儲引擎是數據庫底層軟件組織,數據庫管理系統(DBMS)使用數據引擎進行創建、查詢、更新和刪除數據。不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎,還可以 獲得特定的功能。現在許多不同的數據庫管理系統都支持多種不同的數據引擎。存儲引擎主要有:1. MyIsam , 2. InnoDB, 3. Memory, 4. Archive, 5. Federated 。

 關于這個阿粉就不再給大家說了,給大家安排上幾張圖:

面試題5:看你簡歷上說用過redis,那么你說一下redis的持久化的方式吧。

  • RDB持久化方式能夠在指定的時間間隔能對你的數據進行快照存儲.
  • AOF持久化方式記錄每次對服務器寫的操作,當服務器重啟的時候會重新執行這些命令來恢復原始的數據,AOF命令以redis協議追加保存每次寫的操作到文件末尾.Redis還能對AOF文件進行后臺重寫,使得AOF文件的體積不至于過大.

RDB其實就是把數據以快照的形式保存在磁盤上。什么是快照呢,你可以理解成把當前時刻的數據拍成一張照片保存下來。

RDB持久化是指在指定的時間間隔內將內存中的數據集快照寫入磁盤。也是默認的持久化方式,這種方式是就是將內存中數據以快照的方式寫入到二進制文件中,默認的文件名為dump.rdb。

而關于怎么觸發,這個就直接去修改redis.conf配置文件即可。

AOF持久化,實際上就是追加保存每次寫的操作到文件末尾,也可能阿粉在實際的使用Redis的時候,并沒有去做過持久化的操作,回答到這里已經算是沒有其他的了,而接下來面試官問的幾個關于Redis的問題就回答不是特別的好了,所以在Redis上面,還是得下功夫呀。

 

面試題6:JVM的內存結構,還有就是不同代的算法。

 

阿粉在之前的文章已經算是分析的非常的透徹了,所以在這里阿粉就把之前的鏈接送上,大家可以看一下。

 

面試的時候按照這個套路回答 Java GC 的相關問題一定能過!

 

責任編輯:趙寧寧 來源: Java極客技術
相關推薦

2020-06-22 07:47:46

提交面試官訂單

2020-08-03 07:04:54

測試面試官應用程序

2020-05-22 08:11:48

線程池JVM面試

2020-05-12 11:05:54

MySQL索引數據庫

2021-02-05 07:33:44

攻略面試項目

2021-03-17 08:39:24

作用域作用域鏈JavaScript

2021-03-16 22:25:06

作用域鏈作用域JavaScript

2020-06-30 07:48:27

SpringMVC

2023-01-18 10:35:49

MySQL數據庫

2019-10-21 09:56:37

MySQLCOUNTInnoDB

2021-12-17 07:30:42

排序算法效率

2023-12-25 09:03:33

MySQL索引數據庫

2019-07-16 10:10:46

JavaScript數據類型

2020-12-09 08:27:48

并發編程編程開發

2020-12-09 15:00:08

編程IT線程

2022-05-23 08:43:02

BigIntJavaScript內置對象

2009-06-14 08:34:53

OpenSolaris開源

2021-07-05 22:09:53

面試官CollectionsJDK7

2022-01-06 16:20:04

Java排序算法排序

2022-11-15 17:45:46

數據庫MySQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩亚洲二区 | 国产日屁 | 爱草在线| 99久久久国产精品免费消防器 | 在线免费av观看 | 日本精品视频在线观看 | 亚洲免费在线视频 | 欧美在线视频一区二区 | 日本aaa视频| 99精品电影 | 毛片一区二区三区 | a黄在线观看 | 电影午夜精品一区二区三区 | 中文字幕亚洲一区 | 国产精品欧美一区二区 | 夜夜操天天艹 | 国产一区二区三区www | 国产欧美一区二区三区在线看 | 欧美一区二区三区在线观看 | 久久69精品久久久久久久电影好 | 久久久久久久av麻豆果冻 | 中文字幕av一区二区三区 | 蜜桃精品视频在线 | 日本公妇乱淫xxxⅹ 国产在线不卡 | 亚洲九九色 | 国产精品成人一区二区 | 国产女人与拘做受免费视频 | 中文字幕av一区 | 国产成人高清视频 | 国产精品久久久久不卡 | 中文字幕亚洲视频 | 蜜月va乱码一区二区三区 | 中文字幕欧美日韩 | 91av大全 | 国产精品久久久久久久久久尿 | 国产精品av久久久久久毛片 | 久久99视频| 日本久久精品视频 | 久久精品一| av免费网址 | 久草精品在线 |