原创 spring boot簡介
什麼是spring boot Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。用我的話來理
原创 紅黑樹的基本知識
紅黑樹是一種“平衡的”二叉查找樹,它是一種經典高效的算法,能夠保證在最壞的情況下動態集合操作的時間爲O(lgn)。紅黑樹每個節點包含5個域,分別爲color,key,left,right和p。 color是在每個節點上增加的一個
原创 面試常問到:如何優化數據庫?
一、數據庫訪問優化的五個法則 在實際開發,我們主要是需要對SQL語句進行優化,我們需要快速定位能性的瓶頸點,也就是說快速找到我們SQL主要的開銷在哪裏?根據木桶原理可以知道,最慢的設備往往是性能瓶頸。例如:互聯網運用中的帶寬,本地
原创 深入理解Java的接口和抽象類
深入理解Java的接口和抽象類 對於面向對象編程來說,抽象是它的一大特徵之一。在Java中,可以通過兩種形式來體現OOP的抽象:接口和抽象類。這兩者有太多相似的地方,又有太多不同的地方。很多人在初學的時候會以爲它們可以隨意互換使用,但
原创 JAVA多線程
多線程的基本概念 線程指進程中的一個執行場景,也就是執行流程,那麼進程和線程有什麼區別呢? 每個進程是一個應用程序,都有獨立的內存空間 同一個進程中的線程共享其進程中的內存和資源(共享的內存是堆內存和方法區內存,棧內存不共享,每個線
原创 Java中接口和抽象類
深入理解Java的接口和抽象類 對於面向對象編程來說,抽象是它的一大特徵之一。在Java中,可以通過兩種形式來體現OOP的抽象:接口和抽象類。這兩者有太多相似的地方,又有太多不同的地方。很多人在初學的時候會以爲它們可以隨意互換使用,但
原创 java多線程之Synchronized
一 修飾方法 Synchronized修飾一個方法很簡單,就是在方法的前面加synchronized,synchronized修飾方法和修飾一個代碼塊類似,只是作用範圍不一樣,修飾代碼塊是大括號括起來的範圍,而修飾方法範圍是整個函數
原创 volatile 與 synchronized的對比
一,volatile關鍵字的可見性 要想理解volatile關鍵字,得先了解下JAVA的內存模型,Java內存模型的抽象示意圖如下: 從圖中可以看出: ①每個線程都有一個自己的本地內存空間--線程棧空間???線程執行時,先把變量從主內存
原创 java面試題
這是我見過最有用的java面試題,面試了無數公司總結的 什麼是線程局部變量?(答案) 線程局部變量是侷限於線程內部的變量,屬於線程自身所有,不在多個線程間共享。Java 提供 ThreadLocal 類來支持線程局部變量,是一種實
原创 繼承有final關鍵字修飾的父類的方法和屬性
子類繼承父類,子類擁有了父類的所有屬性和方法。 程序驗證,父類的私有屬性和方法子類是無法直接訪問的。當然私有屬性可以通過public修飾的getter和setter方法訪問到的,但是私有方法不行。 假設:子類不能夠繼承父類的私有屬
原创 如何快速上手一個項目
不知道你有沒有經歷過一個五年或者更長工作年限的開發人員半路加入團隊的情況,可能第一兩個星期他會問一些業務或者技術問題,不過一兩個月他就可能在指導那些初級開發人員了。 什麼原因呢?因爲他已經從過往經驗裏面總結出來一些套路了。 那麼套
原创 final關鍵字
final關鍵字 final可以修飾類、方法、屬性、和變量。 final修飾類表示該類不能被繼承 final修飾方法,則表示該方法不能被覆蓋(重寫)。 final修飾屬性,則表示該屬性不會隱式的初始化,(類的初始化屬性必須有值)。或
原创 MyBatis框架的學習(六)
本文將手把手教你如何使用MyBatis整合Spring,這兒,我本人使用的MyBatis是MyBatis3.2.7這個版本,Spring是Spring4.1.3這個版本。讀者只要學會這兩個版本的框架整合之後,其他版本之間的整合
原创 MyBatis框架的學習(七)
什麼是逆向工程 MyBatis的一個主要的特點就是需要程序員自己編寫sql,那麼如果表太多的話,難免會很麻煩,所以mybatis官方提供了一個逆向工程,可以針對單表自動生成mybatis執行所需要的代碼(包括mapper.xm
原创 MyBatis框架的學習(一)
MyBatis框架的學習(一) 介紹 MyBatis介紹 MyBatis本是apache的一個開源項目iBatis,2010年這個項目由apache software foundation遷移到了google code,並且改名