SeimiCrawler是一個敏捷的,獨立部署的,支持分布式的Java爬蟲框架,希望能在最大程度上降低新手開發一個可用性高且性能不差的爬蟲系統的門檻,以及提升開發爬蟲系統的開發效率。在SeimiCrawler的世界里,絕大多數人只需關心去寫抓取的業務邏輯就夠了,其余的Seimi幫你搞定。
線程的使用在java中占有極其重要的地位,在jdk1.4極其之前的jdk版本中,關于線程池的使用是極其簡陋的。在jdk1.5之后這一情況有了很大的改觀。Jdk1.5之后加入了java.util.concurrent包,這個包中主要介紹java中線程以及線程池的使用。為我們在開發中處理線程的問題提供了非常大的幫助。
Java是面向對象的,跨平臺的,它通過java虛擬機來進行跨平臺操作,它可以進行自動垃圾回收的(c語言是通過人工進行垃圾回收)。 java還會進行自動分配內存。(c語言是通過指定進行分配內存的),只需要new一個對象,這個對象占用了多少空間,不需要我們來管,java虛擬機負責管這些,用完之后也不需要我們來釋放,java虛擬機會自動釋放。
java.lang: 這個是系統的基礎類,比如String、Math、Integer、System和Thread,提供常用功能。 java.io: 這里面是所有輸入輸出有關的類,比如文件操作等 java.net: 這里面是與網絡有關的類,比如URL,URLConnection等。 java.util : 這個是系統輔助類,特別是集合類Collection,List,Map等。 java.sql: 這個是數據庫操作的類,Connection, Statememt,ResultSet等
jdbc就是用java代碼操作數據庫的一門技術。早期sun公司的程序員想編寫一套可以連接所有數據庫的API,但數據庫之間的差異太大,無法實現。后來sun公司與數據庫廠商商量決定,由sun公司提供一套訪問數據庫的接口,數據庫廠商按照接口規范提供一套訪問自己數據庫的APi,這套API就是數據庫驅動。程序員不用關心驅動的實現,只需要面向sun公司提供的jdbc接口編程.
在JDK API中,基礎的IO類都位于java.io包,而新實現的IO類則位于一系列以java.nio開頭的包名中,這里首先介紹java.io包中類的體系結構。
DBCP是一個常用的數據庫連接池,JDBC是數據庫連接的一套API。從應用層面學習一下兩個的使用。
JAVA與c,C++有很大的不同就是JAVA語言開發者不需要關注內存信息,不會顯式的直接操作內存,而是通過JVM虛擬機來實現。
面試的時候,有問過垃圾回收機制。 當時,知道java是自動回收內存的機制。但,把GC這個名字忘記了。 對JVM、GC垃圾回收是JAVA程序員必須了解的!了解內部對于提高程序效率很有幫助。 但是,知識比較難,學習比較吃力!放以后再學習。 目前只要了解兩個問題: (1)內存溢出了怎么辦?怎么加大內存? (2)根據GC特點,如何編寫高效率程序?
一個程序在運行時需要在內存中存儲許多數據,不同的數據存在的區域不同。JVM內存分為5個區域 1、程序計數器:它是一塊較小的內存空間,是當前線程所執行的字節碼的信號指示器,存儲著下一條需要執行的指令地址,各個線程間獨立的,是唯一一個在JVM規范中沒有規定任何內存溢出情況的區域。 2、虛擬機棧:它的生命周期和線程相同,隨線程創建而創建棧。棧描述的是java方法執行的內存模型,每個方法被執行的時候都會創建一個棧幀,用于存儲局部變量表、操作棧、方法出口等信息。從方法被調用到執行完成的過程對應一個棧幀從入棧到出棧的過程。 3、本地方法棧:本地方法棧和java虛擬機棧類似,區別在于前者是為虛擬機使用到native方法服務,后者是為java方法服務。 4、堆:Java堆是被所有線程共享的一塊內存區域,在虛擬機啟動時創建,存放對象實例。 5、方法區:跟堆一樣是線程共享的內存區域,它用于存儲已被虛擬機加載的類信息、常量、靜態變量等數據
本章主要是討論如何利用J2EE容器的安全框架來實現應用系統的安全管理功能,這些操作實現原理可以應用于任何需要安全機制的系統。 相比前面章節討論的“簡單的用戶注冊系統”,本章部分操作顯得過于復雜,但是這些技術的選用都是依據不同應用要求作出的。
課程目標: 掌握程序設計語言開發的一般步驟 編譯并運行Java應用程序 理解并使用Java的在線幫助文檔 理解Java語言的語法元素和結構特點 理解面向對象程序設計的一般特性,并且能使用這些特性 理解并使用Java異常處理機制
Java Print Service (JPS)是一個Java打印API,設計此API是為了支持在所有Java平臺上的打印工作——包括微空間平臺,并且支持現有的API。這個統一的打印 API包括了IETF規范RFC 2911中Internet Printing Protocol (IPP) 1.1 所指定的標準屬性以及在此基礎上的可擴展的打印屬性。通過這些屬性,客戶端和服務器端應用程序就能夠發現并選定具有完成屬性設置所指定的功能的打印機。除了API中包含的StreamPrintServece,它還允許應用程序將打印數據轉碼為不同的格式,第三方也可以通過Service Provider Interface (SPI)動態安裝他們自己的打印服務。
抽象窗口工具包AWT (Abstract Window Toolkit) 是 API為Java 程序提供的建立圖形用戶界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持圖形用戶界面編程的功能包括: 用戶界面組件;事件處理模型;圖形和圖像工具,包括形狀、顏色和字體類;布局管理器,可以進行靈活的窗口布局而與特定窗口的尺寸和屏幕分辨率無關;數據傳送類,可以通過本地平臺的剪貼板來進行剪切和粘貼。
解析流程控制結構在開發時具體使用及面試陷阱解讀常用存儲容器—數組的內存結構多種排序算法實現及其復雜度分析順序結構程序從上到下逐行地執行,中間沒有任何判斷和跳轉。分支結構根據條件,選擇性地執行某段代碼。
java.util.Arrays類能方便地操作數組,它提供的所有方法都是靜態的。具有以下功能: 2 給數組賦值:通過fill方法。 2 對數組排序:通過sort方法,按升序。 2 比較數組:通過equals方法比較數組中元素值是否相等。 2 查找數組元素:通過binarySearch方法能對排序好的數組進行二分查找法操作。
由于客戶端是通過URL地址訪問web服務器中的資源,所以Servlet程序若想被外界訪問,必須把servlet程序映射到一個URL地址上,這個工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。 <servlet>元素用于注冊Servlet,它包含有兩個主要的子元素:<servlet-name>和<servlet-class>,分別用于設置Servlet的注冊名稱和Servlet的完整類名。 一個<servlet-mapping>元素用于映射一個已注冊的Servlet的一個對外訪問路徑,它包含有兩個子元素:<servlet-name>和<url-pattern>,分別用于指定Servlet的注冊名稱和Servlet的對外訪問路徑。
JSP全稱是Java Server Pages,它和servle技術一樣,都是SUN公司定義的一種用于開發動態web資源的技術。 JSP這門技術的最大的特點在于,寫jsp就像在寫html,但: 它相比html而言,html只能為用戶提供靜態數據,而Jsp技術允許在頁面中嵌套java代碼,為用戶提供動態數據。 相比servlet而言,servlet很難對數據進行排版,而jsp除了可以用java代碼產生動態數據的同時,也很容易對數據進行排版。 Jsp快速入門:在jsp頁面中輸出當前時間。
Filter開發分為二個步驟: 編寫java類實現Filter接口,并實現其doFilter方法。 在 web.xml 文件中使用<filter>和<filter-mapping>元素對編寫的filter類進行注冊,并設置它所能攔截的資源。(動手實驗) Filter鏈 在一個web應用中,可以開發編寫多個Filter,這些Filter組合起來稱之為一個Filter鏈。 web服務器根據Filter在web.xml文件中的注冊順序,決定先調用哪個Filter,當第一個Filter的doFilter方法被調用時,web服務器會創建一個代表Filter鏈的FilterChain對象傳遞給該方法。在doFilter方法中,開發人員如果調用了FilterChain對象的doFilter方法,則web服務器會檢查FilterChain對象中是否還有filter,如果有,則調用第2個filter,如果沒有,則調用目標資源。 Filter鏈實驗(查看filterChain API文檔)