欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java基础知识笔记总结(共249页).doc

    • 资源ID:13936722       资源大小:1.64MB        全文页数:249页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java基础知识笔记总结(共249页).doc

    精选优质文档-倾情为你奉上Java知识精华总结 十七十八 十七 十八一、1、何为编程?编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。2、Java语言概述,历史、特点是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级语言。是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。java5.0之后的三大技术框架J2EE(Java 2 Platform Enterprise Edition)企业版在jdk5.0版本后称为JAVAEE,是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如Servlet Jsp等,主要针对于Web应用程序开发。J2SE(Java 2 Platform Standard Edition)标准版在jdk5.0版本后称为JAVASE,这是在java基础阶段主要学习的内容,也是java的基础,以后不管从事Android开发或者是物联网+云计算的开发,等是建立在JSE基础上的,因此该技术是java的最核心技术,主要上课内容.。J2ME(Java 2 Platform Micro Edition)小型版在jdk5.0版本以后称为JAVAME,该技术多应用于一些电子产品的嵌入式开发,以前在手机开发上应用的也比较多,但是随着智能手机的发展,现在手机应用程序(比如Android程序)的开发已经不再使用该技术。3、什么是跨平台性?原理是什么?JVM 所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。 实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。(注意不是能在所有的平台上运行,关键是该平台是否能安装相应的虚拟机)。我的总结:Java程序之所以能够实现跨平台运行,是因为它根本就不直接运行在任何底层平台上,而是需要在哪里运行,就在哪里(如Windows平台)事先准备好自己的Java平台,而这只是仅仅是安装和配置一个软件而已!4、Jre和Jdk的区别? JRE:(Java Runtime Environment),java运行环境。包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE 即可。JDK:(Java Development Kit Java)开发工具包。JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等 简单而言:使用JDK开发完成的java程序,交给JRE去运行。我的总结:必须熟练的记忆,核心类库,开发工具!5、java虚拟机JVMJava Virtual Machine ,简称JVM;它是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一,JVM读取并处理编译过的与平台无关的字节码(class)文件。Java编译器针对JVM产生class文件,因此是独立于平台的。Java解释器负责将JVM的代码在特定的平台上运行。Java虚拟机是不跨平台的.6、 Java程序运行机制编译: javac 文件名.文件后缀名运行: java 类名我的总结:Java程序的组成:Java源文件,字节码文件。7、 学习java注意的地方Java语言拼写上严格区分大小写;一个Java源文件里可以定义多个Java类,但其中最多只能有一个类被定义成public类;若源文件中包括了public类,源文件必须和该public类同名;一个源文件中包含N个Java类时,编译后会生成N份字节码文件,即每个类都会生成一份单独的class文件,且字节码文件名和其对应的类名相同;我的总结:一个Java源文件只定义一个类,不同的类使用不同的源文件定义;将每个源文件中单独定义的类都定义成public的;保持Java源文件的主文件名与源文件中的类名一致;8、Java语法格式任何一种语言都有自己的语法规则,Java也一样,既然是规则,那么知道其如何使用就可以了。代码都定义在类中,类由class来定义,区分 public class 和 class;代码严格区分大小写,如main 和 Main 是不一样的;Java中的标识符与关键字;注释;main方法的作用:程序的入口保证程序的独立运行被JVM调用9、代码注释:单行/,多行/* */,文档注释/* */1.单行注释 /:/后到本行结束的所有字符会被编译器忽略;2.多行注释 /* */:/* */之间的所有字符会被编译器忽略3.文档注释 /* */: 在/* */之间的所有字符会被编译器忽略,java特有的(用于生成文档);我的总结:多行和文档注释都不能嵌套使用。10、Java中的标识符可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。命名规则:(1) 由字母、数字、下划线、$组成,不能以数字开头注意:此处的字母还可以是中文,日文等;(2) 大小写敏感(3) 不得使用java中的关键字和保留字(4) 别用Java API里面的类名作为自己的类名。11、java中的常量和变量变量的概念:占据着内存中的某一个存储区域;该区域有自己的名称(变量名)和类型(数据类型);该区域的数据可以在同一类型范围内不断变化;为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用;使用变量注意:变量的作用范围, 初始化值定义变量的格式:数据类型 变量名 = 初始化值;注:格式是固定的,记住格式,以不变应万变。作用范围:定义开始到定义它的代码块结束;同一范围内,不允许多个个局部变量命名冲突12、Java成员变量和局部变量局部变量:不是声明在类体括号里面的变量;局部变量使用前必须初始化值;局部变量没有默认初始化值;局部变量的作用域是从定义开始到定义它的代码块结束;成员变量:在方法体外,类体内声明的变量,又称字段(Field)或全局变量;(其实Java中没有全局变量,由于Java是,所有变量都是类成员)成员变量的作用域是整个类中;我的总结:注意成员变量和局部变量的区别package reviewDemo;public class Demo2 public static void main(String args) int i; System.out.println(i); 备注:局部变量调用前没有初始化,所以编译的时候就会报错!package reviewDemo;public class Demo2 static int i; public static void main(String args) System.out.println(i); 备注:此时i为全局变量,未初始化会被赋予默认的初始化值!程序正确!我的总结:局部变量是定义在方法中的变量,出了该方法就不能访问该变量了.成员变量是在类中定义,并且在类的成员方法中都能访问的变量.13、基本数据类型在数据类型中,最常用也是最基础的数据类型,被称作基本数据类型。可以使用这些类型的值来代表一些简单的状态。Java 语言的基本数据类型总共有以下8 种,下面是按照用途划分出的4 个类别: 定点类型:整数型是一类代表整数值的类型。当需要代表一个整数的值时,可以根据需要从4 种类型中挑选合适的,如果没有特殊要求的话,一般选择int 类型。4 种整数型区别主要在每个数据在内存中占用的空间大小和代表的数值的范围。浮点类型:小数型是一类代表小数值的类型。当需要代表一个小数的值时,可以根据需要从以下2 种类型中挑选合适的。如果没有特殊要求,一般选择double类型。由于小数的存储方式和整数不同,所以小数都有一定的精度,所以在计算机中运算时不够精确。根据精度和存储区间的不同,设计了两种小数类型。字符型:字符型代表特定的某个字符,按照前面介绍的知识,计算机中都是以字符集的形式来保存字符的,所以字符型的值实际只是字符集中的编号,而不是实际代表的字符,由计算机完成从编号转换成对应字符的工作。Java 语言中为了更加方便国际化,使用Unicode 字符集作为默认的字符集,该字符集包含各种语言中常见的字符。在程序代码中,字符使用一对单引号加上需要表达的字符来标识,例如A、a等,当然也可以直接使用字符编码,也就是一个非负整数进行表示。布尔型:布尔型代表逻辑中的成立和不成立。Java 语言中使用关键字true 代表成立,false 代表不成立。布尔型是存储逻辑值的类型,其实很多程序中都有逻辑值的概念,Java 把逻辑的值用布尔型来进行表达。14、基本数据类型转换之向上转型和向下转换向上转换:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:容量小的类型可自动转换为容量大的数据类型;byte,short,char int long float doublebyte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。boolean 类型是不可以转换为其他基本数据类型。Eg:int i = 123;long l = i;/自动转换,不需强转float f = 3.14F;double d = f;向下转换:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:容量小的类型可自动转换为容量大的数据类型;byte,short,char int long float doublebyte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。boolean 类型是不可以转换为其他基本数据类型。Eg:long l = 123L;int i = (int) l;/必须强转double d = 3.14;float f = (float) d;我的总结:类型转化小转大,自动!自动类型转换(也叫隐式类型转换) 大转小,强转!强制类型转换(也叫显式类型转换) 15、Java的运算符运算符是一种特殊符号,用以表示数据的运算、赋值和比较等共分以下几种: 算术运算符(+ 、 、* 、/ 、%)赋值运算符(= 、+=、-=、*=、/=,、%=)关系运算符(>、>=、<、<=、!=)条件运算符(&&、|、!&、|、)位运算符(&、|、>>、<<、<<<、>>>)我的总结:逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。“&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。“|”和“|”的区别同理,双或时,左边为真,右边不参与运算。“ ”与“|”不同之处是:当左右都为true时,""结果为false。16、表达式和三目运算符是由数字、运算符、数字分组符号(括号)等以能求得数值的有意义排列的序列;a + b3.14 + a(x + y) * z + 100boolean b= i < 10 && (i%10 != 0)表达式的类型和值:对表达式中操作数进行运算得到的结果是表达式的值。表达式值的数据类型即为表达式的类型。表达式的运算顺序应按照运算符的优先级从高到低的顺序进行;优先级相同的运算符按照事先约定的结合方向进行;“三目运算符”,语法格式:x ? y : z;其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算符的结果是表达式y的值,否则就是z的值。package reviewDemo;public class Demo2 public static void main(String args) String s = "lz"s = (s = "lz" ? "正确" : "错误");System.out.println(s);输出:正确17、程序流程控制顺序结构分支结构(条件结构)循环结构控制循环结构顺序结构:如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。if语句:基本语法:if(表达式)方法体else if(表达式)方法体else(方法体)几种形式:三种格式:if(条件表达式)执行语句;if(条件表达式)执行语句;else执行语句;if(条件表达式)执行语句;else if (条件表达式)执行语句;else执行语句;public class If3 public static void main(String args)int i = 3;if (i > 5)System.out.println("变量i大于5");else if (i > 4)System.out.println("变量i小于4");elseSystem.out.println("其他");switch控制语句格式:switch(表达式)case 表达式可能的结果值1:执行语句;break;case 表达式可能的结果值2:执行语句;break;.default:执行语句;break;/最后这个一般不写备注:case之间与default没有顺序。先执行第一个case,都没有匹配的case值执行default。结束switch语句的两种情况:遇到break,switch语句执行结束。如果匹配的case或者default没有对应的break,那么程序会从第一次匹配的case语句开始继续向下执行,运行可以执行的语句,直到遇到break或者switch结束为止。class switch2 public static void main(String args) int a = 7,b = 5;switch(a-b)case 3:/表达式可能的值;System.out.println("33!");break;case 4:System.out.println("44!");break;default:/都没有执行则 执行该语句!System.out.println("其它的");18、三大循环结构:用于处理需要重复执行的操作;根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落我们称为循环体;while:事先不需要知道循环执行多少次;do while:同上,只是至少要执行一次(先做,后判断);for:需要知道循环次数;循环结构(while & do while)while语句格式:while(条件表达式值为true)执行语句;do while语句格式:do执行语句;while(条件表达式值为true);我的总结:do while特点是无论条件是否满足,循环体至少被执行一次。循环里的条件表达式不能直接写false或直接写结果是false的表达式,不过可以使用变量来传递false值;循环结构(for)格式:for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3))执行语句;(4)执行顺序:(1) (2) (4) (3) (2) (4) (3)备注:1, for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。2, while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。3, 最简单无限循环格式:while(true) , for(;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。Eg:用三种循环控制求出100以内前5个3的倍数的数字;class whilepublic static void main(String args) int i = 1,k = 0;while(i<=100)if(i%3=0)if(k<5)System.out.println(i);k+;i+;class dowhilepublic static void main(String args) int i = 1,k = 0;doif(i%3=0)if(k<5)System.out.println(i);k+;i+;while(i<=100);class forpublic static void main(String args) int i = 1,k = 0;for(;i<100;i+)if(i%3=0&&k<5)System.out.println(i);k+;19、嵌套循环与流程控制嵌套循环:循环里套循环假设外循环的循环次数是m次,内循环的循环次数是n次,那么内层循环的循环次数需要 m * n次。Eg:利用for循环语句的嵌套打印出乘法口诀表class break1 public static void main(String args) for(int i=1;i<=10;i+)/定义i与j的值必须在for循环里面,否则每次跳出循环重新执行就无法取值for(int j=1;j<=10;j+)if(j<=i)System.out.print(j+"*"+i+"="+i*j+" ");/小注意:print()括号里面必须传递参数,println()无限制!System.out.println();流程控制break语句、 continue语句;break:终止该层循环;continue:跳过该层循环注:若这两个语句离开应用范围,存在是没有意义的。:这个两个语句后面都不能有语句,因为执行不到。:continue语句是跳过本次循环,继续下次循环。:标签的出现,可以让这两个语句作用于指定的循环。Eg:package reviewDemo;public class Demo2 public static void main(String args) int i = 1;for (; i < 10; i+) System.out.println(i);if(i = 8)break;/流程控制,不会完全执行!二、第二篇:1、什么是方法(Method)?方法是一组为了实现特定功能的代码块的集合。方法在语法上的功能主要有以下两个:结构化代码将代码按照功能进行组织,使代码的结构比较清晰,容易阅读和修改,也就是程序的可维护性强。:减少代码重复一个固定的功能,可能会在程序中多次使用,在使用时只需要调用写好的方法,而不用重复书写对应的功能代码。方法在书写时需要注意以下两点:逻辑严谨方法实现的一个完整的功能,所以在书写时要考虑到各种可能的情况,并对每种情况做出恰当的处理。:通用性强(可重复利用)方法实现的是一种功能,在实际实现时,可以根据需要,使方法具备一定的通用性,除非必要,否则不要写专用的方法。在Java 语言中,恰当的使用方法,将使程序更加优雅,便于阅读和使用。我的总结:方法:一段可重复使用的代码段;程序中完成独立功能的一段代码的集合。2、 Java中方法的格式:修饰符 返回值类型 方法名(参数类型 形式参数1,参数类型 形式参数2,)执行语句;return 返回值;/需要的话参数列表(参数的类型 ,参数的个数,参数的顺序)我的总结:只要上述有一个不一样,那么这个参数列表就不一样!对于方法而言,即使同名也不是同一个方法,也就是下面讲的方法签名。3、方法里的属性访问控制符:访问控制符限定方法的可见范围,或者说是方法被调用的范围。方法的访问控制符有四种,按可见范围从大到小依次是:public、protected,无访问控制符,private。其中无访问控制符不书写关键字即可。具体的范围在后续有详细介绍。形式参数:在方法被调用时用于接收外界输入的数据。实参:调用方法时实际传给方法的数据。返回值:方法在执行完毕后返还给调用它的环境的数据。返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回类型 void。方法签名:方法名和方法的参数列表(能区别方法);/最关键的java语言中调用方法:对象名.方法名(实参列表)。实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配。return 语句终止方法的运行并指定要返回的数据。4、方法特点它可以实现独立的功能;必须定义在类里面;它只有被调用才会执行;它可以被重复使用;方法结束后方法里的对象失去引用;如何定义一个功能,并通过方法体现出来: 明确该功能运算后的结果.明确返回值类型; 明确在实现该功能过程中是否有未知内容参与运算,确定参数列表;Eg:package reviewDemo;/* * player 的值分别是1,2,3或者其他值时,该方法返回“大明”,“二明”,“小明”,“我没有这个孩子”。 */public class Demo2 public static void main(String args) int player = 5;System.out.println("返回的结果是:"+show(player);public static String show(int p)switch (p) case 1:return "大明"case 2:return "二明"case 3:return "小明"default:return "我没有这个孩子!"5、什么是方法的重载(Overload)?概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或参数顺序不同即可。存在的原因:屏蔽了一个对象的同一类方法由于参数不同所造成的差异。特点:与返回值类型无关,只看参数列表。以下是方法重载的示例:public void a(int a)public int a()public void a(int a,String s)Eg:class Chongzai public static void main(String args) int ret = name(3,4,5);System.out.println(ret);public static int name(int a, int b)int c = a+b;return c;public static int name(int a, int b, int m)/这就叫做方法的重载,只要参数列表不一样。好处:用户使用时限制很小;int c = a+b+m;return c;我的总结:方法重载,方法名相同,但是参数列表不一致!(和方法覆写不一样,方法覆写的方法名和参数列表都必须一样),注意方法重载和方法覆写的不同!6、 可变参数从java5开始出现了可变参数,这是对java方法及数组的拓展!方法中可以接受的参数不再是固定个数的,而是随着具体需求传递的多少来决定。定义格式: 返回值类型 方法名(参数类型 . 形式参数)可变参数的特点:只能出现在参数列表的最后;. 位于变量类型和变量名之间,前后有无空格都可以;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。Eg:package reviewDemo;import java.util.Arrays;public class Demo6 public static void main(String args) int age = 1,2,3,69,36,636,459;show(age);public static void show(int.a)/此时这里写的就是可变参数,和数组的作用一样!/把数组给打印出来!System.out.println(Arrays.toString(a);7、数组简介:数组(Array)是Java 语言中内置的一种基本数据存储结构,通俗的理解,就是一组数的集合,目的是用来一次存储多个数据。数组是程序中实现很多算法的基础,可以在一定程度上简化代码的书写。备注:1. 数组的好处:数组里的每个元素都有编号,编号从0开始,并且依次递增,方便操作这些元素;2. 使用Java数组:必须先声明数组,再给该数组分配内存;3. 数组对应在内存中一段连续空间。4. 数组元素必须是相同数据类型,也可以是引用数据类型,但是同一个数组中的元素必须是同一类数据类型。8、一维数组的声明与初始化:一维数组:可以理解为一列多行、类型相同的数据,其中每个数据被称为数组元素;一维数组的声明方式: type varName; 或 type varName;(推荐)Eg:int age; int age;数组的长度一旦确定,就不能改变,也就数组是定长的;我的总结:java语言声明数组的时候不能指定其长度(元素的个数)Eg:int a5; /非法初始化:Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;数组初始化的两种方式:静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;格式:数组名 = new 数组类型元素1,元素2,元素3.元素n;简化语法:数组名 = 元素1,元素2,元素3.元素n;动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;格式:数组名 = new 数组类型数组长度;我的总结:不能静态和动态初始化同时使用:也就是说不能同时指定数组的长度和元素;Eg:package reviewDemo;/* * 声明数组及初始化 */public class Demo3 public static void main(String args) int age = new int10;/动态初始化for (int i = 0; i < age.length; i+) agei = i;System.out.print(agei+" ");输出:0 1 2 3 4 5 6 7 8 9 9、数组的使用:Java语言的数组索引是从0开始的,也就是说数组里的第一个元素的索引是0,第二个元素的索引是1,依次可以类推。常见操作:给数组元素赋值数组名索引 = 数组类型的值 ;访问数组元素数组类型 变量 = 数组名索引;得到数组的长度int len = 数组名.length;/length是数组的属性遍历数组(备注:length 属性和循环语句)数组元素的索引范围(0,长度1) Eg:判断数组是否重复package reviewDemo;/* * 判断数组是否重复 */public class Demo3 public static void main(String args) int age = 1,2,3,4,5,6,5;for (int i = 0; i < age.length-1; i+) /双层循环,定住一个,再考虑下一个!for (int j = i+1; j < age.length; j+) if(agei = agej)System.out.println("有重复的!"+i+" "+j);break;求最大值:package reviewDemo;public class Demo4 public static void main(String args) int age = new int 12, 26, 3, 60, 55, 6, 48, 4, 98 ;int max = age0;for (int i = 0; i < age.length; i+) if (max < agei) max = agei;System.out.println(max);经典用法:冒泡法排序package reviewDemo;import java.util.Arrays;/冒泡排序public class Demo6 public static void main(String args) int age = 1,2,36,363,56,95,12,32,1232,3263;for (int i = 0; i < age.length; i+) for (int j = i+1; j <= age.length-1; j+) if(agei > agej)int temp = agei;agei = agej;agej = temp;System.out.println(Arrays.toString(age);/输出为:1, 2, 12, 32, 36, 56, 95, 363, 1232, 326310、分配内存空间分配内存空间数组名=new 数据类型数组长度;new关键字用来实现为数组或对象分配内存数组具有固定的长度。获取数组的长度: 数组名.length定义数组+分配内存空间数据类

    注意事项

    本文(Java基础知识笔记总结(共249页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开