原创 【魯班學院】一個三年工作經驗和月薪16k的java程序員應該要具備什麼樣的技能?

大家好,我是魯班學院的阿琰!我是有着三年工作經驗的Java程序員。目前一線城市的薪資水平在13到16K之間,但是找工作的時候並不僅僅有工作經驗就行了,還需要一定的專業知識。如果你野心更大,想要進阿里美團頭條等等這些大廠的話,那就需要更多的專

原创 【魯班學院】設計模式—訪問者(Visitor)模式

一、定義 訪問者模式是一種從操作的對象結構中分離算法的方式。 它可以在不改變數據結構的前提下定義作用與這些元素的新操作。它遵循開閉原則。 Represent an operation to be performed on elements

原创 【魯班學院】面試總結:Java高級篇(下),抽象類和接口的關係以及對內存和棧內存的區別等

22.關於抽象類和接口的關係 簡言之抽象類是一種功能不全的類,接口只是一個抽象方法聲明和靜態不能被修改的數據的集合,兩者都不能被實例化。 從某種意義上說,接口是一種特殊形式的抽象類,在java語言中抽象類表示的是一種繼承關係,一個類只能繼承

原创 【魯班學院】面試總結:Java高級篇(上):集合的類型以及重新認識HashMap

1.你用過哪些集合類?     大公司最喜歡問的Java集合類面試題    40個Java集合面試問題和答案    java.util.Collections 是一個包裝類。它包含有各種有關集合操作的靜態多態方法。    java.util

原创 面試高頻問題:HashMap實現原理

今天給同學們講講一個面試經常遇到的高頻問題,HashMap實現原理,希望在金三銀四的季節對同學們有幫助。 HashMap結構圖目錄  一、嘮叨  二、解析思路  三、get方法  四、put方法  五、resize方法  一、嘮叨 認真閱

原创 分佈式環境下實現分佈式鎖的關鍵技術

摘要:在日常開發中,應用大多數是分佈式部署的,經常會面臨分佈式環境下應用對數據操作的一致性問題。這時就需要找出一個在分佈式環境下同一個應用多個實例之間能夠訪問的臨界資源,並對該臨界資源做互斥訪問,從而保證數據一致性。本文結合筆者實際工作中的

原创 今日頭條算法原理詳解全集,值得收藏!

今天,算法分發已經是信息平臺、搜索引擎、瀏覽器、社交軟件等幾乎所有軟件的標配,但同時,算法也開始面臨質疑、挑戰和誤解。今日頭條的推薦算法,從 2012 年 9 月第一版開發運行至今,已經經過四次大的調整和修改。 今日頭條委託資深算法架構師曹

原创 MySQL索引原理及慢查詢優化,瞭解一下?

MySQL憑藉着出色的性能、低廉的成本、豐富的資源,已經成爲絕大多數互聯網公司的首選關係型數據庫。 雖然性能出色,但所謂“好馬配好鞍”,如何能夠更好的使用它,已經成爲開發工程師的必修課,我們經常會從職位描述上看到諸如“精通MySQL”、“S

原创 你瞭解Spring事物控制特性嗎

一、事務特性 原子性:強調事務的不可分割一致性:強調的是事務的執行的前後,數據的完整性要保持一致隔離性:一個事務的執行不應該受到其他事務的干擾持久性:事務一旦結束(提交/回滾)數據就持久保持到了數據庫 二、如果不考慮隔離性,會引發一些安全性

原创 Java集合源碼剖析:TreeMap源碼剖析

▷▷▷前言 本文不打算延續前幾篇的風格(對所有的源碼加入註釋),因爲要理解透TreeMap的所有源碼,對博主來說,確實需要耗費大量的時間和經歷,目前看來不大可能有這麼多時間的投入,故這裏意在通過於閱讀源碼對TreeMap有個宏觀上的把握,並

原创 ApplicationContext的四個實現類

1、ClassPathXmlApplicationContext 2、FileSystemXmlApplicationContext 3、XmlWebApplicationContext 4、WebApplicationContext 1、

原创 如何用JavaScript寫一個區塊鏈?

Part1實現一個基本的區塊鏈 1.區塊鏈 區塊鏈是由一個個任何人都可以訪問的區塊構成的公共數據庫。這好像沒什麼特別的,不過它們有一個有趣的屬性:它們是不可變的。一旦一個區塊被添加到區塊鏈中,除非讓剩餘的其餘區塊失效,否則它是不會再被改變的

原创 分析工廠模式中的問題並改造

工廠模式基本與簡單工廠模式差不多,上面也說了,每次添加一個產品子類都必須在工廠類中添加一個判斷分支,這樣違背了開放-封閉原則,因此,工廠模式就是爲了解決這個問題而產生的。 既然每次都要判斷,那就把這些判斷都生成一個工廠子類,這樣,每次添加產

原创 編寫工廠類和配置文件

爲了滿足“開閉原則”,大部分設計模式都引入了抽象層,如工廠方法模式、抽象工廠模式、適配器模式、橋接模式、命令模式、策略模式等等。客戶端代碼針對抽象層編程,而在程序運行的時候再指定其子類,根據“里氏代換原則”和麪向對象的多態性,子類對象在運行

原创 zookeeper: 分佈式鎖的實現

爲什麼要用分佈式鎖 Martin Kleppmann是英國劍橋大學的分佈式系統的研究員,之前和Redis之父Antirez進行過關於RedLock(紅鎖,後續有講到)是否安全的激烈討論。Martin認爲一般我們使用分佈式鎖有兩個場景: •效