Java 基本知識點概要1. 了解Java語言的特征,掌握J(rèn)DK(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語言基礎(chǔ) a). 數(shù)據(jù)類型: 8種基本類型:byte,char,short,int,long,float,double,boolean 引用類型: 數(shù)組, 類,接口 b).結(jié)構(gòu)化語句: 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(chǔ) a).類:具有相同屬性和行為的一組對象的集合 b).對象:客觀存在的或可被描述的抽象對象,具有特定屬性和行為的實體。 c).類是對象的模板(原型),對象是類的具體實例 d).抽象、封裝、繼承,多態(tài)(重載,重寫,接口多實現(xiàn)) e).構(gòu)造方法(默認(rèn)構(gòu)造器/參數(shù)化構(gòu)造器) f).限制訪問修飾符: private,缺?。J(rèn)),protected,public g).附加修飾符:final,static,abstract h).接口 4.Java 基礎(chǔ)包 a). java.lang : 包裝類(Byte,Character,Short,Integer,Long,Float,Double,Boolean) 其它類:String,StringBuffer,Math,Class,Object b). java.util 隨機(jī)類:Random 日期類:Date,Calender 集合框架體系:Collection,List,Set,ArrayList,LinkedList,Vector,HashMap c). java.io 文件類:File 字節(jié)流:FileInputStream,FileOutputStream 字符流:FileReader,FileWriter,BufferedReader,BufferedWriter 二進(jìn)制流:(了解) DataInputStream,DataOutputStream 構(gòu)造鍵盤流: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). 基于連接對象建立處理器對象/預(yù)處理器對象 Statement stmt=conn.createStatement(); PreparedStatement stmt=conn.prepareStatement("insert into student values(?,?,?,?,?)"); 4). 處理器執(zhí)行SQL命令(Select/Insert/Update/Delete)executeQuery(Select) ==>返回查詢的結(jié)果集(ResultSet, ResultSet.getXXX(列編號,從1開始)) executeUpdate(Insert/Update/Delete) ==>返回執(zhí)行命令影響的記錄行(int) 5). 關(guān)閉各個對象 導(dǎo)入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 表示本機(jī),也可以用127.0.0.1 如果你連的不是本機(jī),可能通過 機(jī)器名 或 IP(192.111.113.100) 來連接 2). 1433是端口號,SQL server默認(rèn)是1433 , 自己可以手工的改動它 3). databasename后面跟你的數(shù)據(jù)庫的名稱,表示你要連接的數(shù)據(jù)庫是哪個 4). 最后是用戶名及密碼, 當(dāng)前可以訪問該數(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) 中。
-A- AJAX: (建議不譯,原因:專有名詞) [Asynchronous JavaScript and XML,異步JavaScript及XML] annotation: 注解 Ant: (建議不譯,原因:專有名詞) AOP: (建議不譯,原因:專有名詞) [aspect-oriented programming, 面向?qū)用婢幊蘛 application: 應(yīng)用 argument: 參數(shù) -B- B2B: (建議不譯,原因:專有名詞) [Business-to-Business, 業(yè)務(wù)對業(yè)務(wù)] BAM: (建議不譯,原因:專有名詞) [Business Activity Monitoring, 業(yè)務(wù)活動監(jiān)測] BMP: (建議不譯,原因:專有名詞) [bean-managed persistence, Bean管理的持久化] BPEL: (建議不譯,原因:專有名詞) [Business Process Excution Language, 業(yè)務(wù)流程執(zhí)行語言] BPM: (建議不譯,原因:專有名詞) [Business Process Modeling, 業(yè)務(wù)流程建模] build: 建立;編譯 -C- C2B: (建議不譯,原因:專有名詞) [Consumer-to-Business, 客戶對業(yè)務(wù)] CAD: (建議不譯,原因:專有名詞) [Computer Aided Design, 計算機(jī)輔助設(shè)計] CAM: (建議不譯,原因:專有名詞) [Computer Aided Modeling, 計算機(jī)輔助建模] case-insensitive: 大小寫不敏感 case-sensitive: 大小寫敏感 container: 容器 cluster: 集群 CMP: (建議不譯,原因:專有名詞) [container-managed persistence, 容器管理的持久化] component: 組件,部件 configuration: 配置 context: 上下文,環(huán)境 control: 控件 convention: 約定 CORBA: (建議不譯,原因:專有名詞) [Common Object Request Broker Architecture,公共對象請求代理體系] COS: (建議不譯,原因:專有名詞) [Common Object Services,公共對象服務(wù)] couple: 耦合 CRUD: 專指數(shù)據(jù)庫操作create, read, update, delete,可以不譯 -D- Daemon: (建議不譯,原因:專有名詞) [Internet中用于郵件收發(fā)的后臺程序] DAO: (建議不譯,原因:專有名詞) [Data Access Object, 數(shù)據(jù)訪問對象] data: 數(shù)據(jù) DBMS: (建議不譯,原因:專有名詞) [Database Management System, 數(shù)據(jù)庫管理系統(tǒng)] DDL: (建議不譯,原因:專有名詞) [Data Definition Language, 數(shù)據(jù)定義語言] Declarative Programming: 聲明式編程 delegate: 委托 Dependency Injection: 依賴注入 deploy: 部署 deserialize: 反序列化(也可譯為反串行化),即取出 dialect: (行業(yè))術(shù)語 directive: 指令 DIT: (建議不譯,原因:專有名詞) [Directory Information Tree, 目錄信息樹] DML: (建議不譯,原因:專有名詞) [Data Manipulation Language, 數(shù)據(jù)操作語言] DNS: (建議不譯,原因:專有名詞) [Internet Domain Name System, 因特網(wǎng)域名系統(tǒng)] domain: 域 DSL: (建議不譯,原因:專有名詞) [Domain-Specific Languages, 特定領(lǐng)域語言] DTOs: (建議不譯,原因:專有名詞) [data transfer objects, 數(shù)據(jù)傳輸對象] -E- EAI: (建議不譯,原因:專有名詞) [Enterprise Application Integration: 企業(yè)應(yīng)用集成] ECC: (建議不譯,原因:專有名詞) [error correcting codes: 錯誤糾正代碼] EIS: (建議不譯,原因:專有名詞) [Enterprise Information System: 企業(yè)信息系統(tǒng)] EJB: (建議不譯,原因:專有名詞) [Enterprise JavaBean, 企業(yè)JavaBean] encapsulate: 封裝 ESB: (建議不譯,原因:專有名詞) [Enterprise Service Bus, 企業(yè)服務(wù)總線] event: 事件 -F- FAQs: (建議不譯,原因:專有名詞) [Frequently Asked Questions, 經(jīng)常提問的問題] FIFO: 先進(jìn)先出 [First in, First out] fire: 觸發(fā) firewall: 防火墻 framework: 框架 function: 函數(shù) -G- GoF: "四人幫",對名著Design Patterns-Elements of Reusable Object-Oriented Software的四名作者的"戲"稱。
[Gang of Four] granularity: 顆粒性,顆粒度 GUI: (建議不譯,原因:專有名詞) [Graphic User Interface: 圖形用戶接口] GUID: (建議不譯,原因:專有名詞) [Globally Unique Identifier: 全球唯一標(biāo)識符] -H- hard-coding: 硬碥碼 Hibernate: (建議不譯,原因:專有名詞) [一種為應(yīng)用程序提供持久化服務(wù)的框架] -I- IDE: 集成開發(fā)環(huán)境 [Integrated Development Environment] implement: 實現(xiàn) internet: 因特網(wǎng) (也可以不譯,原因:在中文環(huán)境下已經(jīng)得到充分理解及認(rèn)同) intranet: 企業(yè)內(nèi)部網(wǎng) IoC: (建議不譯,原因:專有名詞) [Inversion of Control, 控制反轉(zhuǎn)] -J- JavaBean: (建議不譯,原因:專有名詞) JCP: (建議不譯,原因:專有名詞) [Java Community Process, Java社區(qū)研究] JDBC: (建議不譯,原因:專有名詞) [Java DataBase Connectivity, Java數(shù)據(jù)庫連接] JDO: (建議不譯,原因:專有名詞) [Java Data Objects, Java數(shù)據(jù)對象] JES: Java企業(yè)系統(tǒng) [Java Enterprise System] JOnAS: (建議不譯,原因:專有名詞) [ Java Open Application Server, Java開放應(yīng)用服務(wù)器] JNDI: (建議不譯,原因:專有名詞) [Java Naming and Directory Interface, Java命名與目錄接口] JTA: (建議不譯,原因:專有名詞) [Java Transaction API: Java事務(wù)API] JVM: (建議不譯,原。
第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 構(gòu)建Java程序2.6.1 名字的可見性2.6.2 使用其他組件2.6.3 static關(guān)鍵字2.7 我們的第一個Java程序2.8 注釋和嵌入文檔2.8.1 注釋文檔2.8.2 具體語法2.8.3 嵌入HTML2.8.4 @see:引用其他類2.8.5 類文檔標(biāo)記2.8.6 變量文檔標(biāo)記2.8.7 方法文檔標(biāo)記2.8.8 文檔示例2.9 編碼樣式2.10 總結(jié)2.11 練習(xí) 第3章 控制程序流程3.1 使用Java運算符3.1.1 優(yōu)先級3.1.2 賦值3.1.3 算術(shù)運算符3.1.4 自動遞增和遞減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 運算符常規(guī)操作規(guī)則3.1.13 造型運算符3.1.14 Java沒有“sizeof”3.1.15 復(fù)習(xí)計算順序3.1.16 運算符總結(jié)3.2 執(zhí)行控制3.2.1 真和假3.2.2 if-else3.2.3 反復(fù)3.2.4 do-while3.2.5 for3.2.6 中斷和繼續(xù)3.2.7 切換3.3 總結(jié)3.4 練習(xí) 第4章 初始化和清除4.1 由構(gòu)建器保證初始化4.2 方法過載4.2.1 區(qū)分過載方法4.2.2 主類型的過載4.2.3 返回值過載4.2.4 默認(rèn)構(gòu)建器4.2.5 this關(guān)鍵字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必須執(zhí)行清除4.4 成員初始化4.4.1 規(guī)定初始化4.4.2 構(gòu)建器初始化4.5 數(shù)組初始化4.5.1 多維數(shù)組4.6 總結(jié)4.7 練習(xí) 第5章 隱藏實施過程5.1 包:庫單元5.1.1 創(chuàng)建獨一無二的包名5.1.2 自定義工具庫5.1.3 利用導(dǎo)入改變行為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 總結(jié)5.6 練習(xí) 第6章 類再生6.1 合成的語法6.2 繼承的語法6.2.1 初始化基礎(chǔ)類6.3 合成與繼承的結(jié)合6.3.1 確保正確的清除6.3.2 名字的隱藏6.4 到底選擇合成還是繼承6.5 protected6.6 遞增開發(fā)6.7 上溯造型6.7.1 何謂“上溯造型”?6.8 final關(guān)鍵字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 總結(jié)6.11 練習(xí) 第7章 多形性7.1 上溯造型7.1.1 為什么要上溯造型7.2 深入理解7.2.1 方法調(diào)用的綁定7.2.2 產(chǎn)生正確的行為7.2.3 擴(kuò)展性7.3 覆蓋與過載7.4 抽象類和方法7.5 接口7.5.1 Java的“多重繼承”7.5.2 通過繼承擴(kuò)展接口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)部類標(biāo)識符7.6.9 為什么要用內(nèi)部類:控制框架7.7 構(gòu)建器和多形性7.7.1 構(gòu)建器的調(diào)用順序7.7.2 繼承和finalize()7.7.3 構(gòu)建器內(nèi)部的多形性方法的行為7.8 通過繼承進(jìn)行設(shè)計7.8.1 純繼承與擴(kuò)展7.8.2 下溯造型與運行期類型標(biāo)識7.9 總結(jié)7.10 練習(xí) 第8章 對象的容納8.1 數(shù)組8.1.1 數(shù)組和第一類對象8.1.2 數(shù)組的返回8.2 集合8.2.1 缺點:類型未知8.3 枚舉器(反復(fù)器)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 總結(jié)8.9 練習(xí) 第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 標(biāo)準(zhǔn)Java違例9.3.1 RuntimeException的特殊情況9.4 創(chuàng)建自己的違例9.5 違例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺點:丟失的違例9.7 構(gòu)建器9.8 違例匹配9.8.1 違例準(zhǔn)則9.9 總結(jié)9.10 練習(xí) 第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流的典型應(yīng)用10.5.1 輸入流10.5.2 輸出流10.5.3 快捷文件處理10.5.4 從標(biāo)準(zhǔn)輸入中讀取數(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 重定向標(biāo)準(zhǔn)IO10.8 壓縮10.8.1 用GZIP進(jìn)行簡單壓縮10.8.2 用Zip進(jìn)行多文件保存10.8.3 Java歸檔(jar)實用程序10.9 對象串聯(lián)10.9.1 尋找類10.9.2 序列化的控制10.9.3 利用“持久性”10.10 總結(jié)10.11 練習(xí) 第11章 運行期類型鑒定11.1 對RTTI的需要11.1.1 Class對象11.1.2 造型前的檢查11.2 RTTI語法11.3 反射:運行期類信息11.3.1 一個類方法提取器11.4 總結(jié)11.5 練習(xí) 第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進(jìn)行深層復(fù)制12.2.8 通過序。
試試這個怎么樣 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("我愛java!"); } }。
HttpServletRequest request.getRemoteAddr()//獲取遠(yuǎn)程IP地址 HttpServletResponse response.setContentType("text/html;charset=gbk")//設(shè)置發(fā)送方式和字符集 response.getWriter();//獲取輸出對象,構(gòu)造PrintWriter對象 返回響應(yīng) 利用: 1) PrintWriter out = response.getWriter // 用于返回文本數(shù)據(jù)給客戶端 2) ServletOutputStream out = response.getOutputStream // 用于返回二進(jìn)制數(shù)據(jù)給客戶端 Servlet中從request獲得參數(shù)的方法: String getParameter(String); 有此參數(shù)但無值返回""; 無此參數(shù)則返回:null String[] getParameterValues(String); Map getParameterMap(); Enumeration getParameterNames();獲得的是參數(shù)的名字,需要用名字再去獲得參數(shù)的值 1)請闡述什么是ServletContext? 一種servlet服務(wù)的上下文,每一個servlet實例都對應(yīng)在一個web application中,都屬于這個上下文, 即為這個servletContext. 在一個servlet服務(wù)中,通過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中進(jìn)行頁面轉(zhuǎn)發(fā): getServletContext().getRequestDispatcher("/user/user_list.jsp").forward(request, response); 或者: response.sendRedirect(request.getContextPath() + "/find.do"); Request中g(shù)etContextPath、getServletPath、getRequestURI、request.getRealPath的區(qū)別//轉(zhuǎn)載假定你的web application 名稱為news,你在瀏覽器中輸入請求路徑: ; charset=GBK"%>
java開發(fā)技術(shù)學(xué)習(xí)基本上有下邊幾個階段的主要內(nèi)容,大家可以參考一下:第一階段:java基礎(chǔ)本階段除了JavaSE中要求大家必會的java基礎(chǔ)知識外,重點加強了數(shù)據(jù)結(jié)構(gòu)思想、集合源碼分析、jdk9-11新特性的學(xué)習(xí)。
第二階段:數(shù)據(jù)庫本階段主要學(xué)習(xí)MySQL數(shù)據(jù)庫知識,通過層層遞進(jìn),讓大家掌握開發(fā)使用的數(shù)據(jù)是如何存儲和處理的。并且逐步深入學(xué)習(xí)到索引和優(yōu)化、鎖機(jī)制、存儲過程等。
第三階段:web網(wǎng)頁技術(shù)本階段以項目案例為驅(qū)動,采用所學(xué)即所用的方式指導(dǎo)大家學(xué)習(xí),在邊學(xué)邊練過程中,可深入掌握Web開發(fā)技術(shù),具備與之匹配的實戰(zhàn)能力。第四階段:框架學(xué)習(xí)本階段主要是學(xué)習(xí)市面上流行的框架技術(shù)來提升自己的開發(fā)能力,再輔以Linux命令以及Linux服務(wù)器的使用等內(nèi)容讓新手學(xué)到技術(shù),讓老手學(xué)到思想,讓高手學(xué)到境界。
第五階段:互聯(lián)網(wǎng)高級技術(shù)主要講解分布式管理系統(tǒng)、Keepalived+Nginx主備、微服務(wù)架構(gòu)技術(shù)、消息中間件技術(shù)、MySQL調(diào)優(yōu)、高并發(fā)技術(shù)、性能優(yōu)化、內(nèi)存和GC等。第六階段:企業(yè)項目本階段主要是通過讓學(xué)員學(xué)習(xí)企業(yè)流行的項目,在動手實操的過程中加深前面知識的認(rèn)識,并且增加學(xué)員企業(yè)項目開發(fā)經(jīng)驗。
1. PATH環(huán)境變量。
作用是指定命令搜索路徑,在命令行下面執(zhí)行命令如javac編譯java程序時,它會到PATH變量所指定的路徑中查找看是否能找到相應(yīng)的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現(xiàn)有的PATH變量中,bin目錄中包含經(jīng)常要用到的可執(zhí)行文件如javac/java/javadoc等待,設(shè)置好PATH變量后,就可以在任何目錄下執(zhí)行javac/java等工具了。
CLASSPATH環(huán)境變量。作用是指定類搜索路徑,要使用已經(jīng)編寫好的類,前提當(dāng)然是能夠找到它們了,JVM就是通過CLASSPATH來尋找類的。
我們需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設(shè)置到CLASSPATH中,當(dāng)然,當(dāng)前目錄“.”也必須加入到該變量中。2、public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int sum=0;//設(shè)定一個變量,求和的值 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("數(shù)組中最大數(shù):"+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";//定義一個變量設(shè)置文件名稱 System.out.println(str.substring(str.lastIndexOf(".")+1)); }}5、public class Student {private String name;//姓名private int age;//年齡private double score;//成績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)建借個對象。
然后把五個對象的成績放在一個數(shù)組中,直接調(diào)用Arrays.sort(數(shù)組名) 這個方法排序輸出就ok了。7、方法:可以使用文件流來讀寫。
樓主可根據(jù)文件的類型選擇是字節(jié)流還是字符流來實現(xiàn)。如果樓主還需要,可以把代碼寫出來8、TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。
一個TCP連接必須要經(jīng)過三次“對話”才能建立起來,其中的過程非常復(fù)雜,我們這里只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機(jī)A向主機(jī)B發(fā)出連接請求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次對話;主機(jī)B向主機(jī)A發(fā)送同意連接和要求同步(同步就是兩臺主機(jī)一個在發(fā)送,一個在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時候發(fā)?”,這是第二次對話;主機(jī)A再發(fā)出一個數(shù)據(jù)包確認(rèn)主機(jī)B的要求同步:“我現(xiàn)在就發(fā),你接著吧!”,這是第三次對話。
三次“對話”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過三次“對話”之后,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。TCP協(xié)議能為應(yīng)用程序提供可靠的通信連接,使一臺計算機(jī)發(fā)出的字節(jié)流無差錯地發(fā)往網(wǎng)絡(luò)上的其他計算機(jī),對可靠性要求高的數(shù)據(jù)通信系統(tǒng)往往使用TCP協(xié)議傳輸數(shù)據(jù)。
面向非連接的UDP協(xié)議“面向非連接”就是在正式通信前不必與對方先建立連接,不管對方狀態(tài)就直接發(fā)送。這與現(xiàn)在風(fēng)行的手機(jī)短信非常相似:你在發(fā)短信的時候,只需要輸入對方手機(jī)號就OK了。
UDP(User Data Protocol,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去!UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境。
比如,我們經(jīng)常使用“ping”命令來測試兩臺主機(jī)之間TCP/IP通信是否正常,其實“ping”命令的原理就是向?qū)Ψ街鳈C(jī)發(fā)送UDP數(shù)據(jù)包,然后對方主機(jī)確認(rèn)收到數(shù)據(jù)包,如果數(shù)據(jù)包是否到達(dá)的消息及時反饋回來,那么網(wǎng)絡(luò)就是通的。例如,在默認(rèn)狀態(tài)下,一次“ping”操作發(fā)送4個數(shù)據(jù)包(如圖2所示)。
大家可以看到,發(fā)送的數(shù)據(jù)包數(shù)量是4包,收到的也是4包(因為對方主機(jī)收到后會發(fā)回一個確認(rèn)收到的數(shù)據(jù)包)。這充分說明了UDP協(xié)議是面向非連接的協(xié)議,沒有建立連接的過程。
正因為UDP協(xié)議沒有連接的過程,所以它的通信效果高;但也正因為如此,它的可靠性不如TCP協(xié)議高。QQ就使用UDP發(fā)消息,因此有時會出現(xiàn)收不到消息的情況。
TCP協(xié)議和UDP協(xié)議各有所長、各有所短,適用于不同要求的通信環(huán)境。9、
用戶名: | |
密碼: |