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) 中。
-A- AJAX: (建議不譯,原因:專(zhuān)有名詞) [Asynchronous JavaScript and XML,異步JavaScript及XML] annotation: 注解 Ant: (建議不譯,原因:專(zhuān)有名詞) AOP: (建議不譯,原因:專(zhuān)有名詞) [aspect-oriented programming, 面向層面編程] application: 應用 argument: 參數 -B- B2B: (建議不譯,原因:專(zhuān)有名詞) [Business-to-Business, 業(yè)務(wù)對業(yè)務(wù)] BAM: (建議不譯,原因:專(zhuān)有名詞) [Business Activity Monitoring, 業(yè)務(wù)活動(dòng)監測] BMP: (建議不譯,原因:專(zhuān)有名詞) [bean-managed persistence, Bean管理的持久化] BPEL: (建議不譯,原因:專(zhuān)有名詞) [Business Process Excution Language, 業(yè)務(wù)流程執行語(yǔ)言] BPM: (建議不譯,原因:專(zhuān)有名詞) [Business Process Modeling, 業(yè)務(wù)流程建模] build: 建立;編譯 -C- C2B: (建議不譯,原因:專(zhuān)有名詞) [Consumer-to-Business, 客戶(hù)對業(yè)務(wù)] CAD: (建議不譯,原因:專(zhuān)有名詞) [Computer Aided Design, 計算機輔助設計] CAM: (建議不譯,原因:專(zhuān)有名詞) [Computer Aided Modeling, 計算機輔助建模] case-insensitive: 大小寫(xiě)不敏感 case-sensitive: 大小寫(xiě)敏感 container: 容器 cluster: 集群 CMP: (建議不譯,原因:專(zhuān)有名詞) [container-managed persistence, 容器管理的持久化] component: 組件,部件 configuration: 配置 context: 上下文,環(huán)境 control: 控件 convention: 約定 CORBA: (建議不譯,原因:專(zhuān)有名詞) [Common Object Request Broker Architecture,公共對象請求代理體系] COS: (建議不譯,原因:專(zhuān)有名詞) [Common Object Services,公共對象服務(wù)] couple: 耦合 CRUD: 專(zhuān)指數據庫操作create, read, update, delete,可以不譯 -D- Daemon: (建議不譯,原因:專(zhuān)有名詞) [Internet中用于郵件收發(fā)的后臺程序] DAO: (建議不譯,原因:專(zhuān)有名詞) [Data Access Object, 數據訪(fǎng)問(wèn)對象] data: 數據 DBMS: (建議不譯,原因:專(zhuān)有名詞) [Database Management System, 數據庫管理系統] DDL: (建議不譯,原因:專(zhuān)有名詞) [Data Definition Language, 數據定義語(yǔ)言] Declarative Programming: 聲明式編程 delegate: 委托 Dependency Injection: 依賴(lài)注入 deploy: 部署 deserialize: 反序列化(也可譯為反串行化),即取出 dialect: (行業(yè))術(shù)語(yǔ) directive: 指令 DIT: (建議不譯,原因:專(zhuān)有名詞) [Directory Information Tree, 目錄信息樹(shù)] DML: (建議不譯,原因:專(zhuān)有名詞) [Data Manipulation Language, 數據操作語(yǔ)言] DNS: (建議不譯,原因:專(zhuān)有名詞) [Internet Domain Name System, 因特網(wǎng)域名系統] domain: 域 DSL: (建議不譯,原因:專(zhuān)有名詞) [Domain-Specific Languages, 特定領(lǐng)域語(yǔ)言] DTOs: (建議不譯,原因:專(zhuān)有名詞) [data transfer objects, 數據傳輸對象] -E- EAI: (建議不譯,原因:專(zhuān)有名詞) [Enterprise Application Integration: 企業(yè)應用集成] ECC: (建議不譯,原因:專(zhuān)有名詞) [error correcting codes: 錯誤糾正代碼] EIS: (建議不譯,原因:專(zhuān)有名詞) [Enterprise Information System: 企業(yè)信息系統] EJB: (建議不譯,原因:專(zhuān)有名詞) [Enterprise JavaBean, 企業(yè)JavaBean] encapsulate: 封裝 ESB: (建議不譯,原因:專(zhuān)有名詞) [Enterprise Service Bus, 企業(yè)服務(wù)總線(xiàn)] event: 事件 -F- FAQs: (建議不譯,原因:專(zhuān)有名詞) [Frequently Asked Questions, 經(jīng)常提問(wèn)的問(wèn)題] FIFO: 先進(jìn)先出 [First in, First out] fire: 觸發(fā) firewall: 防火墻 framework: 框架 function: 函數 -G- GoF: "四人幫",對名著(zhù)Design Patterns-Elements of Reusable Object-Oriented Software的四名作者的"戲"稱(chēng)。
[Gang of Four] granularity: 顆粒性,顆粒度 GUI: (建議不譯,原因:專(zhuān)有名詞) [Graphic User Interface: 圖形用戶(hù)接口] GUID: (建議不譯,原因:專(zhuān)有名詞) [Globally Unique Identifier: 全球唯一標識符] -H- hard-coding: 硬碥碼 Hibernate: (建議不譯,原因:專(zhuān)有名詞) [一種為應用程序提供持久化服務(wù)的框架] -I- IDE: 集成開(kāi)發(fā)環(huán)境 [Integrated Development Environment] implement: 實(shí)現 internet: 因特網(wǎng) (也可以不譯,原因:在中文環(huán)境下已經(jīng)得到充分理解及認同) intranet: 企業(yè)內部網(wǎng) IoC: (建議不譯,原因:專(zhuān)有名詞) [Inversion of Control, 控制反轉] -J- JavaBean: (建議不譯,原因:專(zhuān)有名詞) JCP: (建議不譯,原因:專(zhuān)有名詞) [Java Community Process, Java社區研究] JDBC: (建議不譯,原因:專(zhuān)有名詞) [Java DataBase Connectivity, Java數據庫連接] JDO: (建議不譯,原因:專(zhuān)有名詞) [Java Data Objects, Java數據對象] JES: Java企業(yè)系統 [Java Enterprise System] JOnAS: (建議不譯,原因:專(zhuān)有名詞) [ Java Open Application Server, Java開(kāi)放應用服務(wù)器] JNDI: (建議不譯,原因:專(zhuān)有名詞) [Java Naming and Directory Interface, Java命名與目錄接口] JTA: (建議不譯,原因:專(zhuān)有名詞) [Java Transaction API: Java事務(wù)API] JVM: (建議不譯,原。
第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ò)序。
試試這個(gè)怎么樣 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class Test extends JFrame implements ActionListener {private JMenuBar menuBar; private JMenu menuFile; private JMenu menuHelp; private JLabel label; private JButton button; private JMenuItem menuClose; private JMenuItem menuAbout; private static final long serialVersionUID = 1L; public Test() { init(); setLayout(null); add(menuBar); add(label); add(button); setVisible(true); setLocation(900,100); setSize(250,500); setResizable(false); } private void init() { menuBar=new JMenuBar(); menuBar.setBounds(0,0,250,30); menuFile=new JMenu("文件"); menuHelp=new JMenu("幫助"); menuBar.add(menuFile); menuBar.add(menuHelp); label=new JLabel("單擊幫助菜單或按鈕,查看信息。
"); label.setBounds(10,350,250,30); button=new JButton("關(guān)于"); button.setBounds(50,250,70,30); menuClose=new JMenuItem("關(guān)閉"); menuFile.add(menuClose); menuAbout=new JMenuItem("關(guān)于"); menuHelp.add(menuAbout); button.addActionListener(this); menuAbout.addActionListener(this); menuClose.addActionListener(this); } public static void main(String[] args) { new Test(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==button||e.getSource()==menuAbout) {new Test2();} if(e.getSource()==menuClose) {this.dispose(); } } } class Test2 extends JDialog { private JLabel label; private static final long serialVersionUID = 1L; public Test2() {init(); add(label); setSize(300,200); setLocation(500,200); setVisible(true); } private void init() { label=new JLabel(); label.setText("我愛(ài)java!"); } }。
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開(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)驗。
1. PATH環(huán)境變量。
作用是指定命令搜索路徑,在命令行下面執行命令如javac編譯java程序時(shí),它會(huì )到PATH變量所指定的路徑中查找看是否能找到相應的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現有的PATH變量中,bin目錄中包含經(jīng)常要用到的可執行文件如javac/java/javadoc等待,設置好PATH變量后,就可以在任何目錄下執行javac/java等工具了。
CLASSPATH環(huán)境變量。作用是指定類(lèi)搜索路徑,要使用已經(jīng)編寫(xiě)好的類(lèi),前提當然是能夠找到它們了,JVM就是通過(guò)CLASSPATH來(lái)尋找類(lèi)的。
我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設置到CLASSPATH中,當然,當前目錄“.”也必須加入到該變量中。2、public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int sum=0;//設定一個(gè)變量,求和的值 for(int i=1;i<=100;i++){ sum=sum+i; } System.out.println("1+2+3+。
.+100的和:"+sum); }}3、import java.util.Arrays;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int str[]={1,3,9,5,4,8,2}; Arrays.sort(str); System.out.println("數組中最大數:"+str[str.length-1]); }}4、public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str="abc.java.txt";//定義一個(gè)變量設置文件名稱(chēng) System.out.println(str.substring(str.lastIndexOf(".")+1)); }}5、public class Student {private String name;//姓名private int age;//年齡private double score;//成績(jì)public Student(String name,int age,double score){ this.name=name; this.age=age; this.score=score;}public String getName() { return name;}public void setName(String name) { this.name = name;}public int getAge() { return age;}public void setAge(int age) { this.age = age;}public double getScore() { return score;}public void setScore(double score) { this.score = score;}}6、我就不貼代碼了。你自己創(chuàng )建借個(gè)對象。
然后把五個(gè)對象的成績(jì)放在一個(gè)數組中,直接調用Arrays.sort(數組名) 這個(gè)方法排序輸出就ok了。7、方法:可以使用文件流來(lái)讀寫(xiě)。
樓主可根據文件的類(lèi)型選擇是字節流還是字符流來(lái)實(shí)現。如果樓主還需要,可以把代碼寫(xiě)出來(lái)8、TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說(shuō),在正式收發(fā)數據前,必須和對方建立可靠的連接。
一個(gè)TCP連接必須要經(jīng)過(guò)三次“對話(huà)”才能建立起來(lái),其中的過(guò)程非常復雜,我們這里只做簡(jiǎn)單、形象的介紹,你只要做到能夠理解這個(gè)過(guò)程即可。我們來(lái)看看這三次對話(huà)的簡(jiǎn)單過(guò)程:主機A向主機B發(fā)出連接請求數據包:“我想給你發(fā)數據,可以嗎?”,這是第一次對話(huà);主機B向主機A發(fā)送同意連接和要求同步(同步就是兩臺主機一個(gè)在發(fā)送,一個(gè)在接收,協(xié)調工作)的數據包:“可以,你什么時(shí)候發(fā)?”,這是第二次對話(huà);主機A再發(fā)出一個(gè)數據包確認主機B的要求同步:“我現在就發(fā),你接著(zhù)吧!”,這是第三次對話(huà)。
三次“對話(huà)”的目的是使數據包的發(fā)送和接收同步,經(jīng)過(guò)三次“對話(huà)”之后,主機A才向主機B正式發(fā)送數據。TCP協(xié)議能為應用程序提供可靠的通信連接,使一臺計算機發(fā)出的字節流無(wú)差錯地發(fā)往網(wǎng)絡(luò )上的其他計算機,對可靠性要求高的數據通信系統往往使用TCP協(xié)議傳輸數據。
面向非連接的UDP協(xié)議“面向非連接”就是在正式通信前不必與對方先建立連接,不管對方狀態(tài)就直接發(fā)送。這與現在風(fēng)行的手機短信非常相似:你在發(fā)短信的時(shí)候,只需要輸入對方手機號就OK了。
UDP(User Data Protocol,用戶(hù)數據報協(xié)議)是與TCP相對應的協(xié)議。它是面向非連接的協(xié)議,它不與對方建立連接,而是直接就把數據包發(fā)送過(guò)去!UDP適用于一次只傳送少量數據、對可靠性要求不高的應用環(huán)境。
比如,我們經(jīng)常使用“ping”命令來(lái)測試兩臺主機之間TCP/IP通信是否正常,其實(shí)“ping”命令的原理就是向對方主機發(fā)送UDP數據包,然后對方主機確認收到數據包,如果數據包是否到達的消息及時(shí)反饋回來(lái),那么網(wǎng)絡(luò )就是通的。例如,在默認狀態(tài)下,一次“ping”操作發(fā)送4個(gè)數據包(如圖2所示)。
大家可以看到,發(fā)送的數據包數量是4包,收到的也是4包(因為對方主機收到后會(huì )發(fā)回一個(gè)確認收到的數據包)。這充分說(shuō)明了UDP協(xié)議是面向非連接的協(xié)議,沒(méi)有建立連接的過(guò)程。
正因為UDP協(xié)議沒(méi)有連接的過(guò)程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協(xié)議高。QQ就使用UDP發(fā)消息,因此有時(shí)會(huì )出現收不到消息的情況。
TCP協(xié)議和UDP協(xié)議各有所長(cháng)、各有所短,適用于不同要求的通信環(huán)境。9、
用戶(hù)名: | |
密碼: |