1 平時工作中,同樣工作8小時,高手效率和認識深度要比一般人高很多,
原因: a) 學習習慣好 b) 基礎好 c) 學習方法
a) 學習習慣好:
官網,API文檔是學習新東西的入門神器,同時百度(google在國內打不開了)是深入學習的最佳獲取源
b) 基礎好:
數據結構,編譯原理,某一門語言的深入理解(可以觸類旁通的快速學習別的語言和框架),
常用算法(http://www.kaikeba.com/) 還有E文
這些都是慢功夫,需要持續追加精力來學習,沒有一蹴而就的事
c)學習方法:
1 RSS收集器來訂閱博客 2 InfoQ國內外同步最新技術 iteye c博客等技術論壇
3 付費/免費視頻 4 動手 寫文章 在動手 在寫文章總結
關于架構設計:
這個框架是什么東西
有哪些特點
適用于哪些業務場景
框架之間的搭配
腦子中有一套設計架構,不合適時知道去改哪里
2 學習語言,精通一門,eg: 精通Java內存模型,在看別的語言內存,基本是一樣的,好比學會了捷達,切換到
愛麗舍,是不需要很大磨合的。
3 計算機語言發展史:
4 SUN和Java發展:
SUN: Stanford University Netword,
斯坦福大學和硅谷,Google,Facebook等有著千絲萬縷的聯系,
SUN公司也開發了Java這套語言(SUN后來被Oracle收購),最開始這套語言是作為SUN公司的一個Green項目
Green項目的應用環境:像電視盒子這樣的消費電子產品,需要一套語言中立,跨平臺使用,
JAVA 之父是 James Gosling
后來基于Java的后續發展,同時遇到了1998互聯網爆發式發展(互聯網的發展是指數級別, 傳統行業發展是百分比一點點增長),互聯下需要一個中立跨平臺都能解釋運行的一門語言,因此Java大賣。
由此可見, 成功是需要提前準備和機遇的。
5 Java各種爹:
6 java 版本體系:
7 JVM簡介:
8 Java注釋和編譯運行:
Java代碼中的注釋信息在編譯時會被清理掉,編譯后的字節碼文件沒有任何注釋。
9 為何國際通用unicode字符集:
一個Unicode字符集占2個字節,
即 2的16次方= 256*256 = 65536,
英文24個字母,漢字2W多個漢字,這6W多的范圍足夠表示世界上所有的字符,因此使用占2個字節長度的
Unicode編碼作為國際通用標準。
9 為何Java是強數據類型:
Java應用范圍很廣,從服務器到個人PC到手持設備,有的對內存要求寬泛有的則苛刻,
定義成強類型是為了便于開發人員在不同環境下做選擇。
10 浮點數并不能精確的表示小數,是有舍入誤差的,盡量避免比較中使用浮點數, 如果需要進行
不產生誤差的精確數字計算,需要使用 BigDecimal, 而如果針對大數據整型做比較要用BigInteger
11 向上轉型時, 指的是表述的范圍的向上,而不是字節長度向上
13 生成Javadoc做法:
1 代碼中需要用 /** 方式注釋 2 使用參數@param @return等參數
2
工程右鍵/ 如下圖,一路next即可生成 當前工程對應javadoc的html格式說明文檔:
14 為何靜態方法 不能使用非靜態變量:
1 靜態方法放在內存方法區
2 非靜態變量(類變量)只有在new出來后 放在堆內存中
這兩者不在同一區域中,夠不到,因此訪問不了
15 面向對象編程的本質:
以類的方式組織代碼,以對象方式封裝數據。
面向對象和面向過程:
老蔣和老毛思維, 一個面向過程,后者面向對象,面向對象下,后期整合非常方便,
面向過程下,老蔣總是坐著飛機飛來飛去指導每一步驟
16 java 單繼承:
單繼承利于構建繼承樹, 分析類之間關系, 維護類之間關系。
國企和公務員就是多繼承關系,領導有好幾個
外企就是單繼承關系。 比爾蓋茨是沒權利指揮不是自己直屬手下人干活,比如掃地工,也沒有權利開除
部隊也是單繼承關系。
17 this, super參數:
this, super參數:
1 只會出現在非靜態方法中
2 在非靜態方法的形參中會默認含有次參數,隱形參數
public void study(this,super) { // 這個this指向 new出對象的內存地址, super也是隱形參數 被默認傳遞
this.name = name;
}
this使用案例2: 如何辨別調用方法是子類自己還是父類:
public class HttpServlet {
public void service(){
System.out.println("HttpServlet service()");
doGet();
}
public void doGet(){
System.out.println("HttpServlet doGet()");
}
}
public class MyServlet extends HttpServlet {
public void doGet(){
System.out.println("MyServlet doGet()");
}
public static void main(String[] args) {
HttpServlet servlet = new MyServlet();
/**
* 在調用時, 都會帶隱含形參(this, super), 執行下面方法時,進入到父類方法
* public void service(this,super){
System.out.println("HttpServlet service()");
doGet(); ----> this.doGet();
因為這里的this是new MyServlet() 因此最后調用方法為 MyServlet的doGet()
}
*/
servlet.service();
}
}
18 三大特性:
繼承: is a has a 方式來區別于 組合
封裝: public protected default private 實現訪問權限的限制
多態: 相當于現實生活中的 說一套 做另一套,比如美國對于釣魚島問題,含糊,真正出事時該幫日本還是幫日本; 多態僅僅是方法多態