<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [Java工程師成神之路](http://www.importnew.com/17389.html) [TOC] 原文出處:?[hollischuang(@Hollis_Chuang)](http://www.hollischuang.com/archives/489) **一、基礎篇** **1.1 JVM** **1.1.1\. Java****內存模型,****Java****內存管理,****Java****堆和棧,垃圾回收** [http://www.jcp.org/en/jsr/detail?id=133](http://www.jcp.org/en/jsr/detail?id=133) [http://ifeve.com/jmm-faq/](http://ifeve.com/jmm-faq/) **1.1.2.?****了解****JVM****各種參數及調優** **1.1.3.?****學習使用****Java****工具** [jps](http://www.hollischuang.com/archives/105),?[jstack](http://www.hollischuang.com/archives/110),?[jmap](http://www.hollischuang.com/archives/303), jconsole, jinfo, jhat, javap, … [http://kenai.com/projects/btrace](http://kenai.com/projects/btrace) [http://www.crashub.org/](http://www.crashub.org/) [https://github.com/taobao/TProfiler](https://github.com/taobao/TProfiler) [https://github.com/CSUG/HouseMD](https://github.com/CSUG/HouseMD) [http://wiki.cyclopsgroup.org/jmxterm](https://github.com/CSUG/HouseMD) [https://github.com/jlusdy/TBJMap](https://github.com/jlusdy/TBJMap) **1.1.4.?****學習****Java****診斷工具** [http://www.eclipse.org/mat/](http://www.eclipse.org/mat/) [http://visualvm.java.net/oqlhelp.html](http://visualvm.java.net/oqlhelp.html) **1.1.5.?****自己編寫各種****outofmemory****,****stackoverflow****程序** * HeapOutOfMemory * Young OutOfMemory * MethodArea OutOfMemory * ConstantPool OutOfMemory * DirectMemory OutOfMemory * Stack OutOfMemory Stack OverFlow **1.1.6.?****使用工具嘗試解決以下問題,并寫下總結** 當一個Java程序響應很慢時如何查找問題 當一個Java程序頻繁FullGC時如何解決問題,如何查看垃圾回收日志 當一個Java應用發生OutOfMemory時該如何解決,年輕代、年老代、永久代解決辦法不同,導致原因也不同 **1.1.7.?****參考資料** [http://docs.oracle.com/javase/specs/jvms/se7/html/](http://docs.oracle.com/javase/specs/jvms/se7/html/) [http://www.cs.umd.edu/~pugh/java/memoryModel/](http://www.cs.umd.edu/~pugh/java/memoryModel/) [http://gee.cs.oswego.edu/dl/jmm/cookbook.html](http://gee.cs.oswego.edu/dl/jmm/cookbook.html) **1.2\. Java****基礎知識** **1.2.1.?****閱讀源代碼** java.lang.String java.lang.Integer Java.lang.Long java.lang.Enum java.math.BigDecimal java.lang.ThreadLocal java.lang.ClassLoader & java.net.URLClassLoader java.util.ArrayList & java.util.LinkedList“ java.util.HashMap & java.util.LinkedHashMap & java.util.TreeMap java.util.HashSet & java.util.LinkedHashSet & java.util.TreeSet **1.2.2.?****熟悉****Java****中各種變量類型** **1.2.3.?****熟悉****Java String****的使用,熟悉****String****的各種函數** **1.2.4.?****熟悉****Java****中各種關鍵字** **1.2.5.?****學會使用****List****,****Map****,****Stack****,****Queue****,****Set** 上述數據結構的遍歷 上述數據結構的使用場景 Java實現對Array/List排序java.uti.Arrays.sort()?java.util.Collections.sort()?Java實現對List去重 Java實現對List去重,并且需要保留數據原始的出現順序 Java實現最近最少使用cache,用LinkedHashMap **1.2.6\. Java IO&Java NIO****,并學會使用** java.io.*?java.nio.*?nio和reactor[設計模式](http://www.amazon.cn/gp/product/B001130JN8/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=importnew-23&linkCode=as2&camp=536&creative=3200&creativeASIN=B001130JN8 "設計模式:可復用面向對象軟件的基礎")?文件編碼,字符集 **1.2.7\. Java****反射與****javassist** 反射與工廠模式?java.lang.reflect.* **1.2.8\. Java****序列化** java.io. Serializable?什么是序列化,為什么序列化 序列化與單例模式 google序列化protobuf **1.2.9.?****虛引用,弱引用,軟引用** java.lang.ref.*?實驗這些引用的回收 **1.2.10.?****熟悉****Java****系統屬性** java.util.Properties **1.2.11.?****熟悉****Annotation****用法** java.lang.annotation.* **1.2.12\. JMS** javax.jms.* **1.2.13\. JMX** java.lang.management.*?javax.management.* **1.2.14.?****泛型和繼承,泛型和擦除** **1.2.15.?****自動拆箱裝箱與字節碼** **1.2.16.?****實現****Callback** ?**1.2.17\. java.lang.Void****類使用** ?**1.2.18\. Java Agent****,****premain****函數** java.lang.instrument **1.2.19.?****單元測試** Junit,[http://junit.org/](http://junit.org/) Jmockit,[https://code.google.com/p/jmockit/](https://code.google.com/p/jmockit/) djUnit,[http://works.dgic.co.jp/djunit/](http://works.dgic.co.jp/djunit/) **1.2.20\. Java****實現通過正則表達式提取一段文本中的電子郵件,并將****@****替換為****#****輸出** java.lang.util.regex.* **1.2.21.?****學習使用常用的****Java****工具庫** commons.lang,?commons.*…?guava-libraries?netty **1.2.22.?****什么是****API&SPI** [http://en.wikipedia.org/wiki/Application_programming_interface](http://en.wikipedia.org/wiki/Application_programming_interface) [http://en.wikipedia.org/wiki/Service_provider_interface](http://en.wikipedia.org/wiki/Application_programming_interface) **1.2.23.?****參考資料** JDK src.zip 源代碼 [http://openjdk.java.net/](http://openjdk.java.net/) [http://commons.apache.org/](http://commons.apache.org/) [https://code.google.com/p/guava-libraries/](https://code.google.com/p/guava-libraries/) [http://netty.io/](http://netty.io/) [http://stackoverflow.com/questions/2954372/difference-between-spi-and-api](http://stackoverflow.com/questions/2954372/difference-between-spi-and-api) [http://stackoverflow.com/questions/11404230/how-to-implement-the-api-spi-pattern-in-java](http://stackoverflow.com/questions/11404230/how-to-implement-the-api-spi-pattern-in-java) **1.3\. Java****并發編程** **1.3.1.?****閱讀源代碼,并學會使用** java.lang.Thread java.lang.Runnable java.util.concurrent.Callable?java.util.concurrent.locks.ReentrantLockjava.util.concurrent.locks.ReentrantReadWriteLockjava.util.concurrent.atomic.Atomic*?java.util.concurrent.Semaphorejava.util.concurrent.CountDownLatch?java.util.concurrent.CyclicBarrierjava.util.concurrent.ConcurrentHashMap?java.util.concurrent.Executors **1.3.2.?****學習使用線程池,自己設計線程池需要注意什么** **1.3.3.?****鎖** 什么是鎖,鎖的種類有哪些,每種鎖有什么特點,適用場景是什么 在并發編程中鎖的意義是什么 **1.3.4\. synchronized****的作用是什么,****synchronized****和****lock** **1.3.5\. sleep****和****wait** **1.3.6\. wait****和****notify** **1.3.7.?****寫一個死鎖的程序** **1.3.8.?****什么是守護線程,守護線程和非守護線程的區別以及用法** **1.3.9\. volatile****關鍵字的理解** C++ volatile關鍵字和Java volatile關鍵字 happens-before語義 編譯器指令重排和CPU指令重排 [http://en.wikipedia.org/wiki/Memory_ordering](http://en.wikipedia.org/wiki/Memory_ordering) [http://en.wikipedia.org/wiki/Volatile_variable](http://en.wikipedia.org/wiki/Volatile_variable) [http://preshing.com/20130702/the-happens-before-relation/](http://preshing.com/20130702/the-happens-before-relation/) **1.3.10.?****以下代碼是不是線程安全?為什么?如果為****count****加上****volatile****修飾是否能夠做到線程安全?你覺得該怎么做是線程安全的?** | 1 2 3 4 5 6 7 8 9 10 11 | `public` `class` `Sample {` `private` `static` `int` `count =` `0``;` `public` `static` `void` `increment() {` `count++;` `}` `}` | **1.3.11.?****解釋一下下面兩段代碼的差別** | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | `// 代碼1` `public` `class` `Sample {` `private` `static` `int` `count =` `0``;` `synchronized` `public` `static` `void` `increment() {` `count++;` `}` `}` `// 代碼2` `public` `class` `Sample {` `private` `static` `AtomicInteger count =` `new` `AtomicInteger(``0``);` `public` `static` `void` `increment() {` `count.getAndIncrement();` `}` `}` | **1.3.12.?****參考資料** [http://book.douban.com/subject/10484692/](http://book.douban.com/subject/10484692/) [http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) **二、****進階篇** **2.1\. Java****底層知識** **2.1.1.?****學習了解字節碼、****class****文件格式** [http://en.wikipedia.org/wiki/Java_class_file](http://en.wikipedia.org/wiki/Java_class_file) [http://en.wikipedia.org/wiki/Java_bytecode](http://en.wikipedia.org/wiki/Java_bytecode) [http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings](http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings) [http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/](http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/) [http://asm.ow2.org/](http://asm.ow2.org/) **2.1.2.?****寫一個程序要求實現****javap****的功能(手工完成,不借助****ASM****等工具)** 如Java源代碼: | 1 2 3 4 5 6 7 8 9 10 11 | `public` `static` `void` `main(String[] args) {` `int` `i =` `0``;` `i +=` `1``;` `i *=` `1``;` `System.out.println(i);` `}` | 編譯后讀取class文件輸出以下代碼: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | `public` `static` `void` `main(java.lang.String[]);` `Code:` `Stack=``2``, Locals=``2``, Args_size=``1` `0``:?? iconst_0` `1``:?? istore_1` `2``:?? iinc` `1``,` `1` `5``:?? iload_1` `6``:?? iconst_1` `7``:?? imul` `8``:?? istore_1` `9``:?? getstatic?????? #``2``;` `//Field java/lang/System.out:Ljava/io/PrintStream;` `12``:? iload_1` `13``:? invokevirtual?? #``3``;` `//Method java/io/PrintStream.println:(I)V` `16``:` `return` `LineNumberTable:` `line` `4``:` `0` `line` `5``:` `2` `line` `6``:` `5` `line` `7``:` `9` `line` `8``:` `16` | **2.1.3\. CPU****緩存,****L1****,****L2****,****L3****和偽共享** [http://duartes.org/gustavo/blog/post/intel-cpu-caches/](http://duartes.org/gustavo/blog/post/intel-cpu-caches/) [http://mechanical-sympathy.blogspot.com/2011/07/false-sharing.html](http://mechanical-sympathy.blogspot.com/2011/07/false-sharing.html) **2.1.4.?****什么是尾遞歸** **2.1.5.?****熟悉位運算** 用位運算實現加、減、乘、除、取余 **2.1.6.?****參考資料** [http://book.douban.com/subject/1138768/](http://book.douban.com/subject/1138768/) [http://book.douban.com/subject/6522893/](http://book.douban.com/subject/6522893/) [http://en.wikipedia.org/wiki/Java_class_file](http://en.wikipedia.org/wiki/Java_class_file) [http://en.wikipedia.org/wiki/Java_bytecode](http://en.wikipedia.org/wiki/Java_bytecode) [http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings](http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings) **2.2.?****設計模式** **2.2.1.?****實現****AOP** CGLIB和InvocationHandler的區別?[http://cglib.sourceforge.net/](http://cglib.sourceforge.net/) 動態代理模式 Javassist實現AOP?[http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/](http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/) ASM實現AOP?[http://asm.ow2.org/](http://asm.ow2.org/) **2.2.2.?****使用模板方法設計模式和策略設計模式實現****IOC** **2.2.3.?****不用****synchronized****和****lock****,實現線程安全的單例模式** **2.2.4\. nio****和****reactor****設計模式** **2.2.5.?****參考資料** [http://asm.ow2.org/](http://asm.ow2.org/) [http://cglib.sourceforge.net/](http://cglib.sourceforge.net/) [http://www.javassist.org/](http://www.javassist.org/) **2.3.?****網絡編程知識** **2.3.1\. Java RMI****,****Socket****,****HttpClient** **2.3.2.?****用****Java****寫一個簡單的靜態文件的****HTTP****服務器** 實現客戶端緩存功能,支持返回304 實現可并發下載一個文件 使用線程池處理客戶端請求 使用nio處理客戶端請求 支持簡單的rewrite規則 上述功能在實現的時候需要滿足“開閉原則” **2.3.3.?****了解****nginx****和****apache****服務器的特性并搭建一個對應的服務器** [http://nginx.org/](http://nginx.org/) [http://httpd.apache.org/](http://httpd.apache.org/) **2.3.4.?****用****Java****實現****FTP****、****SMTP****協議** **2.3.5.?****什么是****CDN****?如果實現?****DNS****起到什么作用?** 搭建一個DNS服務器 搭建一個 Squid 或 Apache Traffic Server 服務器?[http://www.squid-cache.org/](http://www.squid-cache.org/) [http://trafficserver.apache.org/](http://trafficserver.apache.org/) [http://en.wikipedia.org/wiki/Domain_Name_System](http://en.wikipedia.org/wiki/Domain_Name_System) **2.3.6.?****參考資料** [http://www.ietf.org/rfc/rfc2616.txt](http://www.ietf.org/rfc/rfc2616.txt) [http://tools.ietf.org/rfc/rfc5321.txt](http://tools.ietf.org/rfc/rfc5321.txt) [http://en.wikipedia.org/wiki/Open/closed_principle](http://en.wikipedia.org/wiki/Open/closed_principle) **2.4.?****框架知識** spring,spring mvc,閱讀主要源碼 ibatis,閱讀主要源碼 用spring和ibatis搭建java server **2.5.?****應用服務器知識** 熟悉使用jboss,[https://www.jboss.org/overview/?](https://www.jboss.org/overview/) 熟悉使用tomcat,[http://tomcat.apache.org/?](http://tomcat.apache.org/) 熟悉使用jetty,[http://www.eclipse.org/jetty/](http://www.eclipse.org/jetty/) **三、****高級篇** **3.1.?****[編譯原理](http://www.amazon.cn/gp/product/B001NGO85I/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=importnew-23&linkCode=as2&camp=536&creative=3200&creativeASIN=B001NGO85I "編譯原理")知識** **3.1.1.?****用****Java****實現以下表達式解析并返回結果(語法和****Oracle****中的****select sysdate-1 from dual****類似)** | 1 2 3 4 5 6 7 | `sysdate` `sysdate -` `1` `sysdate -` `1``/``24` `sysdate -` `1``/(``12``*``2``)` | **3.1.2.?****實現對一個****List****通過****DSL****篩選** | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | `QList<Map<String, Object>> mapList =` `new` `QList<Map<String, Object>>;` `mapList.add({``"name"``:` `"hatter test"``});` `mapList.add({``"id"``: -``1``,``"name"``:` `"hatter test"``});` `mapList.add({``"id"``:` `0``,` `"name"``:` `"hatter test"``});` `mapList.add({``"id"``:` `1``,` `"name"``:` `"test test"``});` `mapList.add({``"id"``:` `2``,` `"name"``:` `"hatter test"``});` `mapList.add({``"id"``:` `3``,` `"name"``:` `"test hatter"``});` `mapList.query(``"id is not null and id > 0 and name like '%hatter%'"``);` | 要求返回列表中匹配的對象,即最后兩個對象; **3.1.3.?****用****Java****實現以下程序(語法和變量作用域處理都和****JavaScript****類似):** | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | `代碼:` `var a =` `1``;` `var b =` `2``;` `var c = function() {` `var a =` `3``;` `println(a);` `println(b);` `};` `c();` `println(a);` `println(b);` `輸出:` `3` `2` `1` `2` | **3.1.4.?****參考資料** http://en.wikipedia.org/wiki/Abstract_syntax_tree https://javacc.java.net/ http://www.antlr.org/ **3.2.?****操作系統知識** Ubuntu Centos 使用linux,熟悉shell腳本 **3.3.?****數據存儲知識** **3.3.1.?****關系型數據庫** MySQL 如何看執行計劃 如何搭建MySQL主備 binlog是什么 Derby,H2,PostgreSQL SQLite **3.3.2.?[NoSQL](http://blog.jobbole.com/1344/ "8種Nosql數據庫系統對比")** Cache Redis Memcached Leveldb Bigtable HBase Cassandra Mongodb 圖數據庫 neo4j **3.3.3.?****參考資料** [http://db-engines.com/en/ranking](http://db-engines.com/en/ranking) [http://redis.io/](http://redis.io/) [https://code.google.com/p/leveldb/](https://code.google.com/p/leveldb/) [http://hbase.apache.org/](http://hbase.apache.org/) [http://cassandra.apache.org/](http://cassandra.apache.org/) [http://www.mongodb.org/](http://www.mongodb.org/) [http://www.neo4j.org/](http://www.mongodb.org/) **3.4.?****大數據知識** **3.4.1\. Zookeeper****,在****linux****上部署****zk** **3.4.2\. Solr****,****Lucene****,****ElasticSearch** 在linux上部署solr,solrcloud,,新增、刪除、查詢索引 **3.4.3\. Storm****,流式計算,了解****Spark****,****S4** 在linux上部署storm,用zookeeper做協調,運行storm hello world,local和remote模式運行調試storm topology。 **3.4.4\. Hadoop****,離線計算** Hdfs:部署NameNode,SecondaryNameNode,DataNode,上傳文件、打開文件、更改文件、刪除文件 MapReduce:部署JobTracker,TaskTracker,編寫mr job Hive:部署hive,書寫hive sql,得到結果 Presto:類hive,不過比hive快,非常值得學習 **3.4.5.?****分布式日志收集****flume****,****kafka****,****logstash** **3.4.6.?****數據挖掘,****mahout** **3.4.7.?****參考資料** [http://zookeeper.apache.org/](http://zookeeper.apache.org/) [https://lucene.apache.org/solr/](https://lucene.apache.org/solr/) [https://github.com/nathanmarz/storm/wiki](https://github.com/nathanmarz/storm/wiki) [http://hadoop.apache.org/](http://hadoop.apache.org/) [http://prestodb.io/](http://prestodb.io/) [http://flume.apache.org/](http://flume.apache.org/) [http://logstash.net/](http://logstash.net/) [http://kafka.apache.org/](http://kafka.apache.org/) [http://mahout.apache.org/](http://mahout.apache.org/) **3.5.?****網絡安全知識** **3.5.1.?****什么是****DES****、****AES** **3.5.2.?****什么是****RSA****、****DSA** **3.5.3.?****什么是****MD5****,****SHA1** **3.5.4.?****什么是****SSL****、****TLS****,為什么****HTTPS****相對比較安全** **3.5.5.?****什么是中間人攻擊、如果避免中間人攻擊** **3.5.6.?****什么是****DOS****、****DDOS****、****CC****攻擊** **3.5.7.?****什么是****CSRF****攻擊** **3.5.8.?****什么是****CSS****攻擊** **3.5.9.?****什么是****SQL****注入攻擊** **3.5.10.?****什么是****Hash****碰撞拒絕服務攻擊** **3.5.11.?****了解并學習下面幾種增強安全的技術** http://www.openauthentication.org/ HOTP http://www.ietf.org/rfc/rfc4226.txt TOTP http://tools.ietf.org/rfc/rfc6238.txt OCRA http://tools.ietf.org/rfc/rfc6287.txt http://en.wikipedia.org/wiki/Salt_(cryptography) **3.5.12.?****用****openssl****簽一個證書部署到****apache****或****nginx** **3.5.13.?****參考資料** [http://en.wikipedia.org/wiki/Cryptographic_hash_function](http://en.wikipedia.org/wiki/Cryptographic_hash_function) [http://en.wikipedia.org/wiki/Block_cipher](http://en.wikipedia.org/wiki/Block_cipher) [http://en.wikipedia.org/wiki/Public-key_cryptography](http://en.wikipedia.org/wiki/Public-key_cryptography) [http://en.wikipedia.org/wiki/Transport_Layer_Security](http://en.wikipedia.org/wiki/Transport_Layer_Security) [http://www.openssl.org/](http://www.openssl.org/) [https://code.google.com/p/google-authenticator/](https://code.google.com/p/google-authenticator/) **四、****擴展篇** **4.1.?****相關知識** **4.1.1.?****云計算,分布式,高可用,可擴展** **4.1.2.?****虛擬化** [https://linuxcontainers.org/](https://linuxcontainers.org/) [http://www.linux-kvm.org/page/Main_Page](http://www.linux-kvm.org/page/Main_Page) [http://www.xenproject.org/](http://www.xenproject.org/) [https://www.docker.io/](https://www.docker.io/) **4.1.3.?****監控** [http://www.nagios.org/](http://www.nagios.org/) [http://ganglia.info/](http://ganglia.info/) **4.1.4.?****負載均衡** [http://www.linuxvirtualserver.org/](http://www.linuxvirtualserver.org/) **4.1.5.?****學習使用****git** [https://github.com/](https://github.com/) [https://git.oschina.net/](https://git.oschina.net/) **4.1.6.?****學習使用****maven** [http://maven.apache.org/](http://maven.apache.org/) **4.1.7.?****學習使用****gradle** [http://www.gradle.org/](http://www.gradle.org/) **4.1.8.?****學習一個小語種語言** Groovy Scala LISP, Common LISP, Schema, Clojure R Julia Lua Ruby **4.1.9.?****嘗試了解編碼的本質** 了解以下概念 ASCII, ISO-8859-1 GB2312, GBK, GB18030 Unicode, UTF-8 不使用 String.getBytes() 等其他工具類/函數完成下面功能 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | `public` `static` `void` `main(String[] args)` `throws` `IOException {` `String str =` `"Hello, 我們是中國人。"``;` `byte``[] utf8Bytes = toUTF8Bytes(str);` `FileOutputStream fos =` `new` `FileOutputStream(``"f.txt"``);` `fos.write(utf8Bytes);` `fos.close();` `}` `public` `static` `byte``[] toUTF8Bytes(String str) {` `return` `null``;` `// TODO` `}` | 想一下上面的程序能不能寫一個轉GBK的? 寫個程序自動判斷一個文件是哪種編碼 **4.1.10.?****嘗試了解時間的本質** * 時區 & 冬令時、夏令時?[http://en.wikipedia.org/wiki/Time_zone?](http://en.wikipedia.org/wiki/Time_zone) * [ftp://ftp.iana.org/tz/data/asia?](ftp://ftp.iana.org/tz/data/asia) * [http://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9C%8B%E6%99%82%E5%8D%80](http://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9C%8B%E6%99%82%E5%8D%80) * 閏年 * [http://en.wikipedia.org/wiki/Leap_year](http://en.wikipedia.org/wiki/Leap_year) * 閏秒?[ftp://ftp.iana.org/tz/data/leapseconds](ftp://ftp.iana.org/tz/data/leapseconds) * System.currentTimeMillis()?返回的時間是什么 **4.1.11.?****參考資料** * [http://git-scm.com/](http://git-scm.com/) * [http://en.wikipedia.org/wiki/UTF-8](http://en.wikipedia.org/wiki/UTF-8) * [http://www.iana.org/time-zones](http://en.wikipedia.org/wiki/UTF-8) **4.2.?****擴展學習** **4.2.1\. JavaScript****知識** **4.2.1.1.?****什么是****prototype** 修改代碼,使程序輸出“1 3 5”:?[http://jsfiddle.net/Ts7Fk/](http://jsfiddle.net/Ts7Fk/) **4.2.1.2.?****什么是閉包** 看一下這段代碼,并解釋一下為什么按Button1時沒有alert出“This is button: 1”,如何修改:?[http://jsfiddle.net/FDPj3/1/](http://jsfiddle.net/FDPj3/1/) **4.2.1.3.?****了解并學習一個****JS****框架** jQuery ExtJS ArgularJS **4.2.1.4.?****寫一個****Greasemonkey****插件** http://en.wikipedia.org/wiki/Greasemonkey **4.2.1.5.?****學習****node.js** [http://nodejs.org/](http://jsfiddle.net/FDPj3/1/) **4.2.2.?****學習****html5** ArgularJS,[https://docs.angularjs.org/api](https://docs.angularjs.org/api) **4.2.3.?****參考資料** * [http://www.ecmascript.org/](http://www.ecmascript.org/) * [http://jsfiddle.net/](http://jsfiddle.net/) * [http://jsbin.com/](http://jsbin.com/) * [http://runjs.cn/](http://runjs.cn/) * [http://userscripts.org/](http://runjs.cn/) **五、****推薦書籍** 《深入Java虛擬機》 《深入理解Java虛擬機》 《[Effective Java](http://www.amazon.com/gp/product/B000WJOUPA/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B000WJOUPA&linkCode=as2&tag=job0ae-20 "Effective Java")》 《七周七語言》 《七周七數據》 《Hadoop技術內幕》 《Hbase In Action》 《Mahout In Action》 《這就是搜索引擎》 《Solr In Action》 《深入分析Java Web技術內幕》 《大型網站技術架構》 《高性能MySQL》 《[算法導論](http://www.amazon.cn/gp/product/B0011BVTRK/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=importnew-23&linkCode=as2&camp=536&creative=3200&creativeASIN=B0011BVTRK "算法導論")》 《[計算機程序設計藝術](http://www.amazon.cn/gp/product/B00478TO44/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=importnew-23&linkCode=as2&camp=536&creative=3200&creativeASIN=B00478TO44 "計算機程序設計藝術")》 《[代碼大全](http://www.amazon.cn/gp/product/B0011BYWL0/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=importnew-23&linkCode=as2&camp=536&creative=3200&creativeASIN=B0011BYWL0 "代碼大全")》 《[JavaScript權威指南](http://www.amazon.cn/mn/detailApp/ref=as_li_qf_sp_asin_tl?_encoding=UTF8&tag=importnew-23&linkCode=as2&asin=B0012UMVYA&camp=536&creative=3200&creativeASIN=B0012UMVYA "JavaScript權威指南")》
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看