第2章 一切都是對象2.1 用句柄操縱對象2.2 必須創(chuàng)建所有對象2.2.1 保存在什么地方2.2.2 特殊情況:主類型2.2.3 Java中的數(shù)組2.3 絕對不要清除對象2.3.1 作用域2.3.2 對象的作用域2.4 新建數(shù)據(jù)類型:類2.4.1 字段和方法2.5 方法、自變量和返回值2.5.1 自變量列表2.6 構建Java程序2.6.1 名字的可見性2.6.2 使用其他組件2.6.3 static關鍵字2.7 我們的第一個Java程序2.8 注釋和嵌入文檔2.8.1 注釋文檔2.8.2 具體語法2.8.3 嵌入HTML2.8.4 @see:引用其他類2.8.5 類文檔標記2.8.6 變量文檔標記2.8.7 方法文檔標記2.8.8 文檔示例2.9 編碼樣式2.10 總結2.11 練習 第3章 控制程序流程3.1 使用Java運算符3.1.1 優(yōu)先級3.1.2 賦值3.1.3 算術運算符3.1.4 自動遞增和遞減3.1.5 關系運算符3.1.6 邏輯運算符3.1.7 按位運算符3.1.8 移位運算符3.1.9 三元if-else運算符3.1.10 逗號運算符3.1.11 字串運算符+3.1.12 運算符常規(guī)操作規(guī)則3.1.13 造型運算符3.1.14 Java沒有“sizeof”3.1.15 復習計算順序3.1.16 運算符總結3.2 執(zhí)行控制3.2.1 真和假3.2.2 if-else3.2.3 反復3.2.4 do-while3.2.5 for3.2.6 中斷和繼續(xù)3.2.7 切換3.3 總結3.4 練習 第4章 初始化和清除4.1 由構建器保證初始化4.2 方法過載4.2.1 區(qū)分過載方法4.2.2 主類型的過載4.2.3 返回值過載4.2.4 默認構建器4.2.5 this關鍵字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必須執(zhí)行清除4.4 成員初始化4.4.1 規(guī)定初始化4.4.2 構建器初始化4.5 數(shù)組初始化4.5.1 多維數(shù)組4.6 總結4.7 練習 第5章 隱藏實施過程5.1 包:庫單元5.1.1 創(chuàng)建獨一無二的包名5.1.2 自定義工具庫5.1.3 利用導入改變行為5.1.4 包的停用5.2 Java訪問指示符5.2.1 “友好的”5.2.2 public:接口訪問5.2.3 private:不能接觸5.2.4 protected:“友好的一種”5.3 接口與實現(xiàn)5.4 類訪問5.5 總結5.6 練習 第6章 類再生6.1 合成的語法6.2 繼承的語法6.2.1 初始化基礎類6.3 合成與繼承的結合6.3.1 確保正確的清除6.3.2 名字的隱藏6.4 到底選擇合成還是繼承6.5 protected6.6 遞增開發(fā)6.7 上溯造型6.7.1 何謂“上溯造型”?6.8 final關鍵字6.8.1 final數(shù)據(jù)6.8.2 final方法6.8.3 final類6.8.4 final的注意事項6.9 初始化和類裝載6.9.1 繼承初始化6.10 總結6.11 練習 第7章 多形性7.1 上溯造型7.1.1 為什么要上溯造型7.2 深入理解7.2.1 方法調(diào)用的綁定7.2.2 產(chǎn)生正確的行為7.2.3 擴展性7.3 覆蓋與過載7.4 抽象類和方法7.5 接口7.5.1 Java的“多重繼承”7.5.2 通過繼承擴展接口7.5.3 常數(shù)分組7.5.4 初始化接口中的字段7.6 內(nèi)部類7.6.1 內(nèi)部類和上溯造型7.6.2 方法和作用域中的內(nèi)部類7.6.3 鏈接到外部類7.6.4 static內(nèi)部類7.6.5 引用外部類對象7.6.6 從內(nèi)部類繼承7.6.7 內(nèi)部類可以覆蓋嗎?7.6.8 內(nèi)部類標識符7.6.9 為什么要用內(nèi)部類:控制框架7.7 構建器和多形性7.7.1 構建器的調(diào)用順序7.7.2 繼承和finalize()7.7.3 構建器內(nèi)部的多形性方法的行為7.8 通過繼承進行設計7.8.1 純繼承與擴展7.8.2 下溯造型與運行期類型標識7.9 總結7.10 練習 第8章 對象的容納8.1 數(shù)組8.1.1 數(shù)組和第一類對象8.1.2 數(shù)組的返回8.2 集合8.2.1 缺點:類型未知8.3 枚舉器(反復器)8.4 集合的類型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再論枚舉器8.5 排序8.6 通用集合庫8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 決定實施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 實用工具8.8 總結8.9 練習 第9章 違例差錯控制9.1 基本違例9.1.1 違例自變量9.2 違例的捕獲9.2.1 try塊9.2.2 違例控制器9.2.3 違例規(guī)范9.2.4 捕獲所有違例9.2.5 重新“擲”出違例9.3 標準Java違例9.3.1 RuntimeException的特殊情況9.4 創(chuàng)建自己的違例9.5 違例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺點:丟失的違例9.7 構建器9.8 違例匹配9.8.1 違例準則9.9 總結9.10 練習 第10章 Java IO系統(tǒng)10.1 輸入和輸出10.1.1 InputStream的類型10.1.2 OutputStream的類型10.2 增添屬性和有用的接口10.2.1 通過FilterInputStream從InputStream里讀入數(shù)據(jù)10.2.2 通過FilterOutputStream向OutputStream里寫入數(shù)據(jù)10.3 本身的缺陷:RandomAccessFile10.4 File類10.4.1 目錄列表器10.4.2 檢查與創(chuàng)建目錄10.5 IO流的典型應用10.5.1 輸入流10.5.2 輸出流10.5.3 快捷文件處理10.5.4 從標準輸入中讀取數(shù)據(jù)10.5.5 管道數(shù)據(jù)流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 數(shù)據(jù)的發(fā)起與接收10.7.2 修改數(shù)據(jù)流的行為10.7.3 未改變的類10.7.4 一個例子10.7.5 重定向標準IO10.8 壓縮10.8.1 用GZIP進行簡單壓縮10.8.2 用Zip進行多文件保存10.8.3 Java歸檔(jar)實用程序10.9 對象串聯(lián)10.9.1 尋找類10.9.2 序列化的控制10.9.3 利用“持久性”10.10 總結10.11 練習 第11章 運行期類型鑒定11.1 對RTTI的需要11.1.1 Class對象11.1.2 造型前的檢查11.2 RTTI語法11.3 反射:運行期類信息11.3.1 一個類方法提取器11.4 總結11.5 練習 第12章 傳遞和返回對象12.1 傳遞句柄12.1.1 別名問題12.2 制作本地副本12.2.1 按值傳遞12.2.2 克隆對象12.2.3 使類具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成對象12.2.7 用Vector進行深層復制12.2.8 通過序。
HttpServletRequest request.getRemoteAddr()//獲取遠程IP地址 HttpServletResponse response.setContentType("text/html;charset=gbk")//設置發(fā)送方式和字符集 response.getWriter();//獲取輸出對象,構造PrintWriter對象 返回響應 利用: 1) PrintWriter out = response.getWriter // 用于返回文本數(shù)據(jù)給客戶端 2) ServletOutputStream out = response.getOutputStream // 用于返回二進制數(shù)據(jù)給客戶端 Servlet中從request獲得參數(shù)的方法: String getParameter(String); 有此參數(shù)但無值返回""; 無此參數(shù)則返回:null String[] getParameterValues(String); Map getParameterMap(); Enumeration getParameterNames();獲得的是參數(shù)的名字,需要用名字再去獲得參數(shù)的值 1)請闡述什么是ServletContext? 一種servlet服務的上下文,每一個servlet實例都對應在一個web application中,都屬于這個上下文, 即為這個servletContext. 在一個servlet服務中,通過getServletContext()方法,獲得上下文;2) 如何在一個Servlet中調(diào)用另外一個Servlet;如何在兩個Servlet之間傳遞數(shù)據(jù) getServletContext().getRequestDispatcher("/xxxx/xxxx").forward(request,response); request.setAttribute("xxxx",xxxx);------>requeset.getAttribute("xxxx"); Servlet中的方法: init(ServletConfig);//初始化Servlet用 init中有異常則servlet直接被回收,無異常則繼續(xù)調(diào)用service()方法 覆蓋父類init(ServletConfig)可能會出錯(因為父類函數(shù)會對config做保存處理,以便以后使用),可以調(diào)用super(config)解決 service(request,response); //具體會調(diào)用HttpServlet的doGet,doPost(程序員在具體的servlet程序中覆蓋了)方法實現(xiàn)功能, destory();//銷毀servlet實例的時候調(diào)用 Servlet生命周期: 裝載,init(),service(),destory()Servlet中進行頁面轉(zhuǎn)發(fā): getServletContext().getRequestDispatcher("/user/user_list.jsp").forward(request, response); 或者: response.sendRedirect(request.getContextPath() + "/find.do"); Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的區(qū)別//轉(zhuǎn)載假定你的web application 名稱為news,你在瀏覽器中輸入請求路徑: ; charset=GBK"%>
Java 基本知識點概要1. 了解Java語言的特征,掌握JDK(Java開發(fā)工具包)的安裝、目錄層次、環(huán)境變量配置,Java程序的實現(xiàn)過程 a).J2SE 1.6( JDK1.5)的安裝:(推薦路徑) Jdk路徑: C:\Soft\JDK1.6 Jre路徑: C:\program files\Java\jre1.6.0\。
b).環(huán)境變量配置: 我的電腦--〉右擊屬性--〉高級--〉環(huán)境變量--〉新建 變量名 變量值Java_Home C:\Soft\JDK1.6Path %Java_Home%\binClassPath %Java_Home%\jre\lib\rt.jar;.c).編寫Java源文件(Xxx.java)==>編譯成字節(jié)碼 (javac Xxx.java) ==>執(zhí)行字節(jié)碼文件 java Xxx 2.Java語言基礎 a). 數(shù)據(jù)類型: 8種基本類型:byte,char,short,int,long,float,double,boolean 引用類型: 數(shù)組, 類,接口 b).結構化語句: if,if--else ,if--else if ,switch--case,while,do--while,for c).數(shù)組 int num[]={1,2,3,4,5}; <> int []num={1,2,3,4,5}; int num[]=new int[size]; int num[]=new int[]{1,2,3,4,5}; 3.面向?qū)ο蟮幕A a).類:具有相同屬性和行為的一組對象的集合 b).對象:客觀存在的或可被描述的抽象對象,具有特定屬性和行為的實體。 c).類是對象的模板(原型),對象是類的具體實例 d).抽象、封裝、繼承,多態(tài)(重載,重寫,接口多實現(xiàn)) e).構造方法(默認構造器/參數(shù)化構造器) f).限制訪問修飾符: private,缺?。J),protected,public g).附加修飾符:final,static,abstract h).接口 4.Java 基礎包 a). java.lang : 包裝類(Byte,Character,Short,Integer,Long,Float,Double,Boolean) 其它類:String,StringBuffer,Math,Class,Object b). java.util 隨機類:Random 日期類:Date,Calender 集合框架體系:Collection,List,Set,ArrayList,LinkedList,Vector,HashMap c). java.io 文件類:File 字節(jié)流:FileInputStream,FileOutputStream 字符流:FileReader,FileWriter,BufferedReader,BufferedWriter 二進制流:(了解) DataInputStream,DataOutputStream 構造鍵盤流:BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); d). java.swt /javax.swing 容器類組件:JFrame,JPanel,JScrollPane 組件: JLabel,JTextField,JPasswordField,JTextArea,JComboBox, JRadioButton,JCheckBox,JMenuBar,JMenu,JMenuItem 5.JDBC 數(shù)據(jù)庫連接 數(shù)據(jù)庫的連接步驟: 1). 加載數(shù)據(jù)庫驅(qū)動類: Class.forName(driver) 2). 通過驅(qū)動程序管理器獲取連接: DriverManager.getConnection(url,user,password) 3). 基于連接對象建立處理器對象/預處理器對象 Statement stmt=conn.createStatement(); PreparedStatement stmt=conn.prepareStatement("insert into student values(?,?,?,?,?)"); 4). 處理器執(zhí)行SQL命令(Select/Insert/Update/Delete)executeQuery(Select) ==>返回查詢的結果集(ResultSet, ResultSet.getXXX(列編號,從1開始)) executeUpdate(Insert/Update/Delete) ==>返回執(zhí)行命令影響的記錄行(int) 5). 關閉各個對象 導入java.sql包 一、加載要連接數(shù)據(jù)庫的驅(qū)動程序 Class.forName(driver) 注:Class.forName()方法將給定的類加載到JVM,如果系統(tǒng)中不存在給定的類, 則會引發(fā)異常 二、通過驅(qū)動程序管理器得到連接實例 Connection conn=DriverManager.getConnection(url,user,pwd); 注1:DriverManager類跟蹤已注冊的驅(qū)動程序,通過getConnection(URL)方法, 找到一個能夠連接至URL中指定的數(shù)據(jù)庫驅(qū)動程序,它接收三個參數(shù), 分別表示: 數(shù)據(jù)源的名稱(類型) 、用戶名(可選)、密碼(可選) 注2: 1). localhost 表示本機,也可以用127.0.0.1 如果你連的不是本機,可能通過 機器名 或 IP(192.111.113.100) 來連接 2). 1433是端口號,SQL server默認是1433 , 自己可以手工的改動它 3). databasename后面跟你的數(shù)據(jù)庫的名稱,表示你要連接的數(shù)據(jù)庫是哪個 4). 最后是用戶名及密碼, 當前可以訪問該數(shù)據(jù)庫的用戶及密碼 注3:基于不同連接方式和不同類型的數(shù)據(jù)源連接字符串如下: 1. Jdbc-Odbc橋 (SQLServer/Microsoft Access )數(shù)據(jù)庫 1.1 加載驅(qū)動程序: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 1.2 建立數(shù)據(jù)源(控制面板中配置數(shù)據(jù)源,MyDataSource是數(shù)據(jù)源名稱) conn=DriverManager.getConnection("jdbc:odbc:MyDataSource"); 2. 直連SQLServer 驅(qū)動程序: -- SQLServer 2000: 2.1 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 2.2 conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;dataBaseName=DBName","sa",""); -- SQLServer 2005: 3.1 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 3.2 conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; dataBaseName=DBName","sa",""); -- 直連Access 驅(qū)動程序: 4.1 加載驅(qū)動程序: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 4.2、不建立數(shù)據(jù)源 ,直接寫連接字符串 conn=DriverManager.getConnection("jdbc:odbc:;Driver=Microsoft Access Driver (*.mdb);DBQ=Test.mdb"); 注: 1). DBQ后面指定的是要連接的Access 數(shù)據(jù)庫 2). Microsoft Access driver (*.mdb) 中。
通過Java認證 SCJP 考試之精辟總結 1.switch里面只能是short,int,char,byte的. 2.if (a="a") 編譯錯, if(a=false)編譯ok,原因是a=false的a代表了個boolean值 3.這種寫法Outer.Inner i = new Outer().new Inner(); OK! 4.文件里, 8 默認是int, 8.0默認是double 5.八進制是 0開頭,不是O(英文o) 6.byte -128~127 ,-128是二進制的多少? 7. -1>>32還是-1, -1>>>32為什么還是-1? 8. char c='c'; String s ="s"; s+=c;結果是 sc!!! 9. boolean b1=true; boolean b2=true; System.out.println(b1 b2); 結果是true.編譯沒錯! 10.java的默認import包有哪些? 類和對象(Class and Object) 0.最外層的類可以聲明成final:final class a{} ok!,但是不能是private和static的. 1.overload是同類里同樣的方法名,override是父子的繼承 2.override的返回結果必須一樣,否則編譯錯哦 The return type of an overriding method is identical to the return type of the method it overrides. 3.super.super(),靠,錯的,沒這么寫的 4.static和非static之間永遠無法override! 5. 看程序 以下是引用片段: public class A{ void test1() throws baseEx{hi();} void hi(){System.out.println("say hi,a");} } class AA extends A{ void hi(){System.out.println("say hi,aa");} } class test{ static void main(String b[]) throws Exception{ A a = new AA(); a.test1(); } } 結果是,"say hi,aa",這說明什么?說明,方法永遠跟著類的原來面目走;而,變量恰恰相反! 6.一個非抽象方法死活也別想override成一個抽象方法 7.override的子類的方法拋出的的異常只能是父類方法拋出異常的子異常類,或者無! 8.構造器不能是native,final,static,synchronized的,可以是public,private,什么都沒有的,呵呵 9.構造器函數(shù)里還可以寫return呢,但后面什么都不許有,甚至null(這不是廢話嗎,哈哈) 10.構造器不能返回值.這大家都知道,但如果有個"構造器"反值了,別緊張,它就不是構造器嘍,只是個普通函數(shù) 11.super();this();這兩個函數(shù)只能在構造函數(shù)里調(diào)用. 12,成員變量聲明時候賦值,比構造函數(shù)還早.int i=1; ealier than Test(){} 13.方法的參數(shù)變量可以是final. 14. hashCode返回一個int 15. void wait() throws InterruptException wait扔InterruptException異常 16. java.lang.Void 是void的包裝類 17. Byte,Interger,Double。
所有的跟數(shù)有關的包裝類都是繼承于Number 接口Interface) 1.接口的所有方法默認都是public,abstract和non-static的 2.接口的所有變量默認都是public,static,final的.所以,接口的變量不能改值,在它的實現(xiàn)類里. 3.接口的實現(xiàn)類實現(xiàn)的方法必須和接口的方法拋出同樣的異常,不許是子類,這和override不一樣!同樣,如果接口方法沒有拋,實現(xiàn)方法也不能拋 4.實現(xiàn)類實現(xiàn)的方法必須顯式的聲明成public,什么都不寫都不行,啊?。。? 5.接口不能聲明成final,要不它怎么被實現(xiàn)呢(這好像又是廢話啊 6.一個類實現(xiàn)兩個接口,如果兩個接口有相同的方法,實現(xiàn)類就實現(xiàn)這個方法,沒問題的. 更多JAVA技術信息請咨詢美 國硅谷SVSE徐東校區(qū) 。
java開發(fā)技術學習基本上有下邊幾個階段的主要內(nèi)容,大家可以參考一下:第一階段:java基礎本階段除了JavaSE中要求大家必會的java基礎知識外,重點加強了數(shù)據(jù)結構思想、集合源碼分析、jdk9-11新特性的學習。
第二階段:數(shù)據(jù)庫本階段主要學習MySQL數(shù)據(jù)庫知識,通過層層遞進,讓大家掌握開發(fā)使用的數(shù)據(jù)是如何存儲和處理的。并且逐步深入學習到索引和優(yōu)化、鎖機制、存儲過程等。
第三階段:web網(wǎng)頁技術本階段以項目案例為驅(qū)動,采用所學即所用的方式指導大家學習,在邊學邊練過程中,可深入掌握Web開發(fā)技術,具備與之匹配的實戰(zhàn)能力。第四階段:框架學習本階段主要是學習市面上流行的框架技術來提升自己的開發(fā)能力,再輔以Linux命令以及Linux服務器的使用等內(nèi)容讓新手學到技術,讓老手學到思想,讓高手學到境界。
第五階段:互聯(lián)網(wǎng)高級技術主要講解分布式管理系統(tǒng)、Keepalived+Nginx主備、微服務架構技術、消息中間件技術、MySQL調(diào)優(yōu)、高并發(fā)技術、性能優(yōu)化、內(nèi)存和GC等。第六階段:企業(yè)項目本階段主要是通過讓學員學習企業(yè)流行的項目,在動手實操的過程中加深前面知識的認識,并且增加學員企業(yè)項目開發(fā)經(jīng)驗。
根據(jù)大家在Java開發(fā)過程中容易混淆的知識點,下面進行一個總結。
1.Java語言的三種技術架構J2EE:企業(yè)版是為開發(fā)企業(yè)環(huán)境下的應用程序提供的一套解決方案。該技術體系中包含的技術如 Servlet、Jsp等,主要針對于Web應用程序開發(fā)。
J2SE:標準版是為開發(fā)普通桌面和商務應用程序提供的解決方案。該技術體系是其他兩者的基礎,可以完成一些桌面應用程序的開發(fā)。
J2ME:小型版是為開發(fā)電子消費產(chǎn)品和嵌入式設備提供的解決方案。該技術體系主要應用于小型電子消費類產(chǎn)品,如手機中的應用程序等。
2.Java的跨平臺性指通過Java語言編寫的應用程序在不同的系統(tǒng)平臺上都可以運行。 實現(xiàn)步驟只需要在運行Java應用程序的操作系統(tǒng)上,先安裝一個Java虛擬機(JVM Java Virtual Machine)即可。
3.函數(shù)就是定義在類中的具有特定功能的一段獨立小程序。通過定義函數(shù)可以將功能代碼進行封裝,提高了代碼的復用性。
4.重載指在同一個類中,允許存在一個以上的同名函數(shù),只要它們的參數(shù)個數(shù)或者參數(shù)類型不同即可。 5.數(shù)組:概念:同一種數(shù)據(jù)類型的集合。
好處:可以自動給數(shù)組中的元素從0開始編號,方便操作這些元素。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據(jù)《信息網(wǎng)絡傳播權保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.388秒