九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

《JAVA基礎(chǔ)》PPT課件.ppt

上傳人:xt****7 文檔編號(hào):14779149 上傳時(shí)間:2020-07-30 格式:PPT 頁數(shù):63 大小:699.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
《JAVA基礎(chǔ)》PPT課件.ppt_第1頁
第1頁 / 共63頁
《JAVA基礎(chǔ)》PPT課件.ppt_第2頁
第2頁 / 共63頁
《JAVA基礎(chǔ)》PPT課件.ppt_第3頁
第3頁 / 共63頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《JAVA基礎(chǔ)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《JAVA基礎(chǔ)》PPT課件.ppt(63頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、JAVA基礎(chǔ)篇,JAVA優(yōu)點(diǎn),平臺(tái)無關(guān)性 分布式應(yīng)用 多線程 純面向?qū)ο?應(yīng)用范圍廣 (1)Java的桌面應(yīng)用 (2)Java Web應(yīng)用 (3)Java企業(yè)級(jí)應(yīng)用 (4)Java嵌入式應(yīng)用 ,JAVA編譯原理,Java編譯程序?qū)ava源程序編譯成JVM可執(zhí)行代碼Java字節(jié)碼. JAVA源文件(.java)字節(jié)碼(.class) 運(yùn)行jvm 字節(jié)碼的工作是由解釋器來完成的。解釋執(zhí)行過程分三步進(jìn)行: 代碼的裝入、代碼的校驗(yàn)、和代碼的執(zhí)行。 代碼的裝入:類裝載器class loader 代碼的校驗(yàn):被裝入的代碼由字節(jié)碼校驗(yàn)器進(jìn)行檢查 代碼執(zhí)行: 1) 即時(shí)編譯方式:解釋器先將字節(jié)編譯成機(jī)器碼,

2、然后再執(zhí)行該機(jī)器碼。 2)解釋執(zhí)行方式:解釋器通過每次解釋并執(zhí)行一小段代碼來完成java字節(jié),J2SE的運(yùn)行環(huán)境設(shè)置,安裝JAVA SDK(Java Software Development Kit) 通常,我們需要設(shè)置三個(gè)環(huán)境變量:JAVA_HOME、PATH 和 CLASSPATH JAVA_HOME:SDK的安裝目錄如:c:java PATH:指定一個(gè)路徑列表,用于搜索可執(zhí)行文件的。如:d:oracleproduct10.1.0Db_2bin;%JAVA_HOME%bin CLASSPATH:也指定一個(gè)路徑列表,是用于搜索 Java 編譯或者運(yùn)行時(shí)需要用到的類。 如:.;%JAVA_HO

3、ME%libtools.jar;%JAVA_HOME%librt.jar;,JAVA基本數(shù)據(jù)類型,進(jìn)制二進(jìn)制、八進(jìn)制、十進(jìn)制 整型 byte(1個(gè)字節(jié)) int (4個(gè)字節(jié)) Integer short (2個(gè)字節(jié)) Short long(8個(gè)字節(jié)) 浮點(diǎn)型 float (4個(gè)字節(jié)) double,JAVA基本數(shù)據(jù)類型,字符型 char 布爾型 boolean 數(shù)制: 十進(jìn)制:10 八進(jìn)制:012 十六進(jìn)制:0 x10,String 函數(shù),常用函數(shù) indexOf() substring() lastIndexOf() replace() replaceAll() matches() spli

4、t() toUpperCase(),char data = a, b, c; String str = new String(data); System.out.println(abc); String cde = cde; System.out.println(abc + cde); String c = abc.substring(2,3); String d = cde.substring(1, 2);,Date,Date類型 DateFormat.format(Date date) Date date =new Date(); /System.out.println(DateForma

5、t.getInstance().format(date); SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); /MM HH hh System.out.println(sdf.format(date); Calendar類型 Calendar cal=Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, 20); GregorianCalendar類型 GregorianCalendar gc=new GregorianCalendar(); gc.setTim

6、e(date);,數(shù)組,一維組 二維數(shù)組 三維數(shù)組 例子: int intArr=new int1,3,4; charcharArr=new chara,b; ,面向?qū)ο?類(內(nèi)部類) 訪問控制符類: public /protected/ 對(duì)象 包 重載(多態(tài)) 繼承 依賴 聚合 繼承,接口,接口聲明 接口實(shí)現(xiàn) 接口多重實(shí)現(xiàn) 接口繼承,抽象,抽象類 抽象方法,集合框架,映射(map)、集(set)、列表(list)、樹(tree)、數(shù)組(array)、散列表(hashtable),集合基類,Collection 接口是一組允許重復(fù)的對(duì)象。 Set 接口繼承 Collection,但不允許重復(fù)。

7、 List 接口繼承 Collection,允許重復(fù),并引入位置下標(biāo)。 Map 接口既不繼承 Set 也不繼承 Collection。,Collection接口,添加、刪除元素 boolean add(Object element) boolean remove(Object element) 查詢操作: int size() boolean isEmpty() boolean contains(Object element) Iterator iterator(),Set 接口,HashSet TreeSet(有序),List 接口,void add(int index, Object el

8、ement) boolean addAll(int index, Collection collection) Object get(int index) int indexOf(Object element) int lastIndexOf(Object element) Object remove(int index) Object set(int index, Object element) ListIterator listIterator() ListIterator listIterator(int startIndex) List subList(int fromIndex, i

9、nt toIndex) ArrayList 類和 LinkedList 類,Map 接口,JAVA IO,File對(duì)象 canRead() canWrite() delete() deleteOnExist() Exists() getAbsoluteFile() length() list() getName() getParent() getPath() listFiles() mkdir(),InputStream抽象類及其子類字節(jié)流,AudioInputStream ByteArrayInputStream FileInputStream FilterInputStream Objec

10、tInputStream PipedInputStream SequenceInputStream StringBufferInputStream,OutputStream,ByteArrayOutputStream FileOutputStream FilterOutputStream ObjectOutputStream PipedOutputStream,以字節(jié)為導(dǎo)向的stream,Input和Output InputStream 1) ByteArrayInputStream:把內(nèi)存中的一個(gè)緩沖區(qū)作為InputStream使用2) StringBufferInputStream:把一個(gè)

11、String對(duì)象作為InputStream3) FileInputStream:把一個(gè)文件作為InputStream,實(shí)現(xiàn)對(duì)文件的讀取操作4) PipedInputStream:實(shí)現(xiàn)了pipe的概念,主要在線程中使用5) SequenceInputStream:把多個(gè)InputStream合并為一個(gè)InputStream,OutputStream,1) ByteArrayOutputStream:把信息存入內(nèi)存中的一個(gè)緩沖區(qū)中2) FileOutputStream:把信息存入文件中3) PipedOutputStream:實(shí)現(xiàn)了pipe的概念,主要在線程中使用4) SequenceOutput

12、Stream:把多個(gè)OutStream合并為一個(gè)OutStream,以Unicode字符為導(dǎo)向的stream,InputStream1) CharArrayReader:與ByteArrayInputStream對(duì)應(yīng)2) StringReader:與StringBufferInputStream對(duì)應(yīng)3) FileReader:與FileInputStream對(duì)應(yīng)4) PipedReader:與PipedInputStream對(duì)應(yīng)OutStream1) CharArrayWriter:與ByteArrayOutputStream對(duì)應(yīng)2) StringWriter:無與之對(duì)應(yīng)的以字節(jié)為導(dǎo)向的str

13、eam3) FileWriter:與FileOutputStream對(duì)應(yīng)4) PipedWriter:與PipedOutputStream對(duì)應(yīng),線程,進(jìn)程、線程 (單CPU,多CPU) 單線程、多線程,單線程代碼1,多線程代碼,線程,用Thread 類創(chuàng)建線程 用Runnable接口創(chuàng)建線程 start() run() join()線程合并,后臺(tái)線程與聯(lián)合線程,如果我們對(duì)某個(gè)線程對(duì)象在啟動(dòng)(調(diào)用start方法)之前調(diào)用了setDaemon(true)方法,這個(gè)線程就變成后臺(tái)線程。 對(duì)于Java程序來說,只要還有一個(gè)前臺(tái)線程在運(yùn)行,這個(gè)進(jìn)程就不會(huì)結(jié)束,如果一個(gè)進(jìn)程中只有后臺(tái)線程在運(yùn)行,這)個(gè)進(jìn)程

14、就會(huì)結(jié)束。 Pp.join()的作用就是把pp所對(duì)于的線程合并到調(diào)用pp.join;語句的線程中。,使用Runnable接口創(chuàng)建多線程,適合多個(gè)相同程序的代碼的線程去處理同一資源的情況,把虛擬的CPU(線程)同程序的代碼、數(shù)據(jù)有效分離,較好體現(xiàn)了面向?qū)ο蟮脑O(shè)計(jì)思想 可以避免由于JAVA的繼承特性帶來的局限。假若一個(gè)類已經(jīng)繼承了另一類,則我們只能使該類實(shí)現(xiàn)Runnable 當(dāng)線程被構(gòu)造時(shí),需要的代碼和數(shù)據(jù)通過另一個(gè)對(duì)象作為構(gòu)造參數(shù)傳遞時(shí)去,這個(gè)對(duì)象就是實(shí)現(xiàn)了Runnable接口。,多線程的應(yīng)用,網(wǎng)絡(luò)聊天程序 發(fā)送鍵盤的數(shù)據(jù),接收別人發(fā)送的數(shù)據(jù),從鍵盤上讀取輸入,發(fā)送鍵盤的數(shù)據(jù)給對(duì)方,接收對(duì)方的數(shù)

15、據(jù),從鍵盤上讀取輸入,發(fā)送鍵盤的數(shù)據(jù)給對(duì)方,接收對(duì)方的數(shù)據(jù),多線程應(yīng)用2,批量數(shù)據(jù)copy的問題 WEB服務(wù)器的請(qǐng)求及處理,多線程同步,例子演示 代碼塊同步 方法塊同步,產(chǎn)生者與消費(fèi)者例子,一個(gè)往消息隊(duì)列中放入消息 一個(gè)往消息隊(duì)列中取出消息 消息內(nèi)容包括產(chǎn)生的ID號(hào)及內(nèi)容 三個(gè)生產(chǎn)者,三個(gè)消費(fèi)者,線程間的通訊,wait() /如隊(duì)列為空,我們可以等待,或隊(duì)列已經(jīng)滿的時(shí)候 notify()/通知由wait()而等待的線程,如我們往某個(gè)列隊(duì)中放數(shù)據(jù)時(shí),這時(shí)可以通知。 notifyAll(),JAVA反射,AWT,Swing,JDBC編程,應(yīng)用程序,JDBC,MySQL Driver,Db2 Dri

16、ver,Oracle Driver,MySQL,Db2,MySQL,連接數(shù)據(jù)庫的步驟,注冊(cè)驅(qū)動(dòng)(只做一次) 建立連接(Conntection) 創(chuàng)建執(zhí)行SQL的語句(Statement) 執(zhí)行語句 處理執(zhí)行結(jié)果 釋放資源,注冊(cè)驅(qū)動(dòng),Class.forName(“com.mysql.jdbc.Driver”); 推薦這種方式,不會(huì)對(duì)具體的驅(qū)動(dòng)類產(chǎn)生依賴。 DriverManager.registerDriver(com.mysql.jdbc.Driver); 會(huì)造成DriverManager中產(chǎn)生兩個(gè)一樣的驅(qū)動(dòng),并會(huì)對(duì)具體的驅(qū)動(dòng)類產(chǎn)生依賴。 System.setProperty(“jdbc.dr

17、ivers”, “driver1:driver2”); 雖然不會(huì)對(duì)具體的驅(qū)動(dòng)類產(chǎn)生依賴;但注冊(cè)不太方便,所以很少使用。 驅(qū)動(dòng)類型(四種類型),建立連接(Connection),Connection conn = DriverManager.getConnection(url, user, password); url格式: JDBC:子協(xié)議:子名稱/主機(jī)名:端口/數(shù)據(jù)庫名?屬性名=屬性值 st.executeQuery(sql); PreparedStatement String sql = “select * from table_name where col_name=?”; Prepar

18、edStatement ps = conn.preparedStatement(sql); ps.setString(1, “col_value”); ps.executeQuery();,處理執(zhí)行結(jié)果(ResultSet),ResultSet rs = statement.executeQuery(sql); While(rs.next() rs.getString(“col_name”); rs.getInt(“col_name”); / ,釋放資源,釋放ResultSet, Statement,Connection. 數(shù)據(jù)庫連接(Connection)是非常稀有的資源,用完后必須馬上釋放

19、,如果Connection不能及時(shí)正確的關(guān)閉將導(dǎo)致系統(tǒng)宕機(jī)。Connection的使用原則是盡量晚創(chuàng)建,盡量早的釋放。,基本的CRUD(創(chuàng)建、讀取、更新、刪除),模板代碼 Connection conn = null; Statement st=null; ResultSet rs = null; try /獲得Connection /創(chuàng)建Statement /處理查詢結(jié)果ResultSet finally /釋放資源ResultSet, Statement,Connection ,插入記錄,增加對(duì)應(yīng)SQL的INSERT,返回增加成功的行(記錄)數(shù) conn = getConnection()

20、; Statement st = conn.createStatement(); String sql=“insert into user(name, age,regist_date )” + “values(name, 10, now()”; int i = st.executeUpdate(sql); /i為插入的記錄數(shù),讀取記錄,讀?。ú樵儯?duì)應(yīng)SQL的SELECT,返回查詢結(jié)果 conn = getConnection(); st = conn.createStatement(); String sql = select id, name, age,regist_date from u

21、ser; rs = st.executeQuery(sql); while (rs.next() System.out.print(rs.getInt(id) + tt ); System.out.print(rs.getString(name) + tt ); System.out.print(rs.getInt(age) + tt ); System.out.print(rs.getTimestamp(regist_date) + tt ); System.out.println(); ,SQL注入,PreparedStatement和Statement,在SQL中包含特殊字符或SQL的關(guān)

22、鍵字(如: or 1 or )時(shí)Statement將出現(xiàn)不可預(yù)料的結(jié)果(出現(xiàn)異常或查詢的結(jié)果不正確),可用PreparedStatement來解決。 PreperedStatement(從Statement擴(kuò)展而來)相對(duì)Statement的優(yōu)點(diǎn): 1.沒有SQL注入的問題。 2.Statement會(huì)使數(shù)據(jù)庫頻繁編譯SQL,可能造成數(shù)據(jù)庫緩沖區(qū)溢出。 3.數(shù)據(jù)庫和驅(qū)動(dòng)可以對(duì)PreperedStatement進(jìn)行優(yōu)化(只有在相關(guān)聯(lián)的數(shù)據(jù)庫連接沒有關(guān)閉的情況下有效)。,數(shù)據(jù)類型,詳細(xì)信息見java.sql.Types 幾種特殊且比較常用的類型 1.DATA,TIME,TIMESTAMP date,t

23、ime,datetime 存:ps.setDate(i,d); ps.setTime(i,t); ps.setTimestamp(i, ts); ?。簉s.getDate(i); rs.getTime(i); rs.getTimestamp(i); 2.CLOB text 存:ps.setCharacterStream(index, reader, length); ps.setString(i, s); ?。簉eader = rs. getCharacterStream(i); reader = rs.getClob(i).getCharacterStream(); string = rs.

24、getString(i); 3.BLOB blob 存:ps.setBinaryStream(i, inputStream, length); ?。簉s.getBinaryStream(i); rs.getBlob(i).getBinaryStream();,一個(gè)簡單用戶相關(guān)的數(shù)據(jù)訪問層,J2EE三層架構(gòu)簡介 表示層 、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,三層之間用接口隔離。 定義domain對(duì)象User,定義存取用戶的接口 用JDBC實(shí)現(xiàn)接口 用配置文件(properties)和反射實(shí)現(xiàn)與具體類的耦合,事務(wù)(ACID),原子性(atomicity):組成事務(wù)處理的語句形成了一個(gè)邏輯單元,不能只執(zhí)行其中的

25、一部分。 一致性(consistency):在事務(wù)處理執(zhí)行前后,數(shù)據(jù)庫是一致的(數(shù)據(jù)庫數(shù)據(jù)完整性約束)。 隔離性(isolcation):一個(gè)事務(wù)處理對(duì)另一個(gè)事務(wù)處理的影響。 持續(xù)性(durability):事務(wù)處理的效果能夠被永久保存下來 。 connection.setAutoCommit(false);/打開事務(wù)。 mit();/提交事務(wù)。 connection.rollback();/回滾事務(wù)。,事務(wù)(SavePoint),當(dāng)只想撤銷事務(wù)中的部分操作時(shí)可使用SavePoint SavePoint sp = connection.setSavepoint(); connection.ro

26、llerbak(sp);mit();,事務(wù)(JTA),跨越多個(gè)數(shù)據(jù)源的事務(wù),使用JTA容器實(shí)現(xiàn)事務(wù)。 分成兩階段提交。 javax.transaction.UserTransaction tx = (UserTransaction)ctx.lookup(“jndiName); tx.begin(); /connection1 connection2 (可能來自不同的數(shù)據(jù)庫) mit();/tx.rollback();,隔離級(jí)別多線程并發(fā)讀取數(shù)據(jù)時(shí)的正確性,connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITT

27、ED); V:可能出現(xiàn),X:不會(huì)出現(xiàn),存儲(chǔ)過程,存儲(chǔ)過程 CallableStatement(從PreperedStatement擴(kuò)展來) cs = connection.prepareCall(“call psname(?,?,?)”); cs.registerOutParameter(index, Types.INTEGER); cs.setXXX(i, xxxx); cs.executeUpdate(); int id=cs.getInt(index);,其他的幾個(gè)API,PreparedStatement.getGeneratedKeys() PreparedStatement ps

28、= connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.executeUpdate(); ResultSet rs = st.getGeneratedKeys();rs.getInt(1); 批處理,可以大幅度提升大量增、刪、改的速度。 PreparedStatement.addBatch(); PreparedStatement.executeBatch();,其他的幾個(gè)API,可滾動(dòng)的結(jié)果集 Statement st = connection.createStatement(ResultSet.TYPE

29、_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = st.executeQuery(sql); rs.beforeFirst(); rs.afterLast();rs.first();rs.isFirst();rs.last();rs.isLast(); rs.absolute(9);rs.moveToInsertRow(); 可更新的結(jié)果集 conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); rs.upda

30、teString(col name, new value); rs.updateRow();,DatabaseMetaData和ParameterMetaData,DatabaseMetaData meta = connection.getMetaData(); 通過DatabaseMetaData可以獲得數(shù)據(jù)庫相關(guān)的信息如:數(shù)據(jù)庫版本、數(shù)據(jù)庫名、數(shù)據(jù)庫廠商信息、是否支持事務(wù)、是否支持某種事務(wù)隔離級(jí)別,是否支持滾動(dòng)結(jié)果集等。 ParameterMetaData pmd = preparedStatement.getParameterMetaData(); 通過 ParameterMetaDat

31、a可以獲得參數(shù)信息。,ResultSetMetaData,ResultSetMetaData meta = rs.getMetaData(); 通過ResultSetMetaData可以獲得結(jié)果有幾列、各列名、各列別名、各列類型等。 可以將ResultSet放入Map(key:列名 value:列值)。 用反射ResultSetMetaData將查詢結(jié)果讀入對(duì)象中(簡單的O/RMapping) 1)讓SQL語句中列別名和要讀入的對(duì)象屬性名一樣; 2)通過ResultSetMetaData獲得結(jié)果列數(shù)和列別名; 3)通過反射將對(duì)象的所有setXxx方法找到; 4)將3)找到的方法setXxx和2

32、)找到的列別名進(jìn)行匹配(即方法中的xxx于列別名相等); 5)由上一步找到的方法和列別名對(duì)應(yīng)關(guān)系進(jìn)行賦值 Method.invoke(obj, rs.getObject(columnAliasName);,數(shù)據(jù)源和連接池,DataSource用來取代DriverManager來獲取Connection; 通過DataSource獲得Connection速度很快; 通過DataSource獲得的Connection都是已經(jīng)被包裹過的(不是驅(qū)動(dòng)原來的連接),他的close方法已經(jīng)被修改。 一般DataSource內(nèi)部會(huì)用一個(gè)連接池來緩存Connection,這樣可以大幅度提高數(shù)據(jù)庫的訪問速度; 連

33、接池可以理解成一個(gè)能夠存放Connection的Collection; 我們的程序只和DataSource打交道,不會(huì)直接訪問連接池;,一個(gè)簡單的數(shù)據(jù)源實(shí)現(xiàn),使用裝飾模式的Connection(核心代碼) class MyConnection implements Connection private Connection realConn; private LinkedList connPool; MyConnection(Connection rConn, LinkedList cPool) this.realConn=rConn; this.connPool=cPool; public

34、void close() this.connPool.addLast(this); /. ,一個(gè)簡單的數(shù)據(jù)源實(shí)現(xiàn),DataSource(核心代碼) class MyDataSource implements DataSource private LinkedList connPool = new Vector(); public Connection getConneciton () if(this.connPool.size()0) return this.connPool.removeFirst(0); return createConnection(); private Connecti

35、on createConnection() Connection realConn = DriverManager.getConnection(); Connection myConn = new MyConnection(realConn,this.connPool); return myConn; /. ,常用的開源實(shí)現(xiàn)DBCP,使用DBCP必須用的三個(gè)包: commons-dbcp-1.2.1.jar, commons-pool-1.2.jar, commons-collections-3.1.jar。 Java API: BasicDataSourceFactory.createDataSource( properties);,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!