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