




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.JAVA基础12.设计模式73.面向对象104.常用类125.集合136.异常147.IO流158.HTML169.CSS1910.Javascript2011.AJAX2512.Json2813.AJAX和json的实例3114.Jquery3415.EasyUI3616.JDBC3617.Servlet+Jsp+JavaBean整合开发3818.案例ajax+easyui+jsp+servlet+javabean5219.WebService6020.Struts26021.hibernate611. JAVA基础1.1 变量的语法 variable has to be declared and initialized before use scope of variables. variable can be initialized only ONCE1.2 八种基本数据类型byte, short, int, longfloat, double,charboolean1.3 数据类型转换(1)自动类型转换(2)强制类型转换自动类型转换分两种情况:1,不同类型的数据进行运算时,系统会自动将运算优先级别低的转换成级别高的,结果和运算级别高的数据类型一样。2,赋值运算符两边类型不一样时,系统会自动将右侧表达式的类型转换成左侧的变量类型,然后再赋值强制类型转换:如:(int)3.1415 /就是取整数部分(int)a%10 /取a的个位数1.4 方法16.1 方法由返回值,方法名,参数,内容组成。16.2 一般方法由类所创建的对象调用,类不直接调用。16.3 形参和实参void speak(String name) /形参,入参 system.out.println(我叫+name) public static void main(String args) People zhangsan=new People(); zhangsan.speak(张三); /实参 16.4 方法有没有返回值的方法(void),和有返回值的方法int calculate(String . hobbies) for(String hobby:hobbies) system.out.println(hobby+); int totalHobbies=hobbies.length; return totalHobbies;public static void main(String args) People zhangsan=new People(); int n=zhangsan.calculate(唱歌,跳舞,游泳); system.out.println(n有+n+个爱好);16.5 方法的值传递和引用传递值传递,传的是数值;而引用传递传的是对象(即相当于地址,和c里面的指针一样)java中为了避免引用传递出错,使用static关键字,使得对象无法二次赋值,而发生错误。如:public classsanweistaticinth;/长staticintw;/重staticintk;/宽publicclassPerson intage;voidspeak(intage,sanwei sw)System.out.println(我今年+age+岁了,我的三围是+sw.h+,+sw.w+,+sw.k);age=24;sanwei.h=18;public static void main(String args)/TODOAuto-generated method stubPerson xiaoming=newPerson();intage=22;sanwei sw=newsanwei();sw.h=90;sw.w=60;sw.k=90;/age传递的是值,而sanwei传递的是引用(地址),c里面叫指针xiaoming.speak(age,sw);System.out.println(age);System.out.println(sw.h);16.6 方法的重载方法的名称,返回值相同,但是参数的类型和参数的个数不同,java的多态性的重要体现。String类型转化为int型:Integer.parseInt(b) /如b=3就会转化为316.7 static静态方法和普通方法static方法:一般是工具类方法static方法:方法属于类本身,调用方式:1.类名.方法(绝大部分情况) 2.对象.方法(不建议这么使用)普通方法:方法属于类的对象,调用方式:1.对象.方法如:public class Deomvoid fun1()static void fun2() public static void main(String args) Demo demo=new Demo(); /调用普通方法 demo.fun1(); /调用静态方法 Deom.fun2();16.8 递归方法:方法通过直接或间接的方式调用自己有一个循环体,一个终止条件如:int DiGui(int n,int result) if(n=1) return 1; else result=result*n; n-; return result; 16.9 构造方法创建实例时,进行初始化的作用,没有返回值,和类名一样。this关键字,表示当前对象,this可以调用本类中的属性和构造方法。(防止构造方法,内部重名,如=name比name=name看上去好很多,不至于那么莫名其妙)如:public class Student() private int id; private String name; private String sex; /构造方法 Student() this.id=id; =name; this.sex=sex; 1.5 运算符5.1自增运算先计算 + 运算,再赋值,最后进行 +。如:后 + 运算: a+。1 int a=1; int b;2 int b = a+;1. 取 a 的值为 1,作为 a+ 表达式的值为 12. 将 a 的值增加 1, a 为 23. 执行赋值运算,将 a+ 的值 1 赋给 b,b 为 15.2复合赋值运算sum+=i 与 sum=sum+i 等同。5.3逻辑运算1.6 流程控制6.1 ifesle6.2 switch1. switch 的条件只能是 byte char short int 类型,不能是 long或其它类型。2. case 只能是整数(byte char short int) 常量或字面量,如 中,但不能是表达式或变量。1. 遇到 break; 后跳过后面的 case 语句。6.3 while6.4 for在 for 循环中,先执行初始化(1),再判断布尔表达式(2),再执行循环体(3),再递增表达式(4) 1 for(initialization(1);boolean-expression(2);step(4) 2 statement(3)3 for(;) 与 while(true) 等效。6.5 foreach对数组与集合的循环可以使用 foreach 语句 (也叫增强 for循环)。public class ForEachFloat public static void main(String args) Random rand = new Random(47);float f = new float10;for(int i = 0; i 10; i+)fi = rand.nextFloat();for(float x : f)System.out.println(x);1.7 数组7.1数组变量的声明 int apples; / 声明数组变量 apples, 数组变量是代词7.2 数组变量的初始化 int apples = new int1,3,5;7.3 数组变量的引用 数组变量通过内存地址引用数组对象。 如: JSD 的同学们不要吸烟了,他们不听话同学们及他们(变量)引用了JSD的全体同学(对象)1.8 简单算法8.1选择排序void SelectSortArray() int min_index; for(int i=0;in-1;i+) min_index=i; for(int j=i+1;jn;j+)/每次扫描选择最小项 if(arrjarrmin_index) min_index=j; if(min_index!=i)/找到最小项交换,即将这一项移到列表中的正确位置 int temp; temp=arri; arri=arrmin_index; arrmin_index=temp; 8.2冒泡排序publicclassbubbleSort publicstaticvoidmain(String args) inttemp; int arr=2,4,5,9,7,6; /循环遍历,循环的次数为n-1次 for(inti=0;iarr.length-1;i+) /和前面的元素比较n-1-i次 for(intj=0;jarrj+1) temp=arrj; arrj=arrj+1; arrj+1=temp; for(inti:arr) System.out.println(i+ ); 8.3插入排序void InsertSortArray()/循环从第二个数组元素开始,因为arr0作为最初已排序部分 for(int i=1;i=0 & arrjtemp)/*将temp与已排序元素从小到大比较,寻找temp应插入的位置*/ arrj+1=arrj; j-; arrj+1=temp; 8.4 递归算法递归方法:方法通过直接或间接的方式调用自己必须有一个循环体,一个终止条件,归调用过程中不断地在栈内存中声明变量,因此递归效率较低。递归层次较多时可能产生内存溢出。如:下面一个阶乘的算法,int DiGui(int n,int result) int result=1; if(n=1) return 1; else result=result*n; n-; return result; 2. 设计模式1. 什么是设计模式建筑工地上,工人在盖房子,但是你看不到制造砖的人。在汽车厂房里,你看到的是组装汽车的人,而不是制造零件的人。在软件开发中,UI设计师,系统分析师,代码人员。因此一些专家就把他们在解决某一问题的过程中积累的一些经验进行总结。以帮助后来的人更好地掌握从抽象到具体的方法。这就是设计模式。2. UML3. 面向对象设计的几个基本原则A.单一职责;系统中的每一个对象应该只有一个单独的职责,所有对象关注的是自身职责的完成。基本思想:高内聚,低耦合。B.里氏替换原则;在任意父类出现的地方,都可以使用子类来替代。(子类具备父类所不具有的功能)C. 依赖注入原则;要依赖于抽象,不要依赖于具体的实现。基本思想:在开发中尽量的面向接口编程。D.接口分离原则;不要去使用一些不需要使用的功能。基本思想:一个接口不要提供太多的行为。E.迪米一个对象对其他的对象应该尽可能少的了解。基本思想:降低耦合。特原则;F. 开闭原则;一个对象对扩展开放,对修改关闭。基本思想:对类的改动是通过增加代码进行的,而不是修改现有的代码。G优先使用组合而不是继承原则;基本思想:在复用对象的时候,要优先考虑组合,而不是继承。把相关的方法放在一个类中,方便使用,如数据库的连接,关闭等等操作可以放到一个Util类中4. 设计模式(1)创建型模式:创建对象。(单例,工厂模式)(2)结构行模式:对象的组成及对象的关系。(代理模式)(3)行为型模式:对象的行为。对象能够做什么。5. 创建型模式(1)工厂方法模式当创建对象比较简单的时候,可以直接在mian里面做,但是很多时候创建对象操作会比较复杂,这个时候就可以通过工厂模式来解决。(2)单例模式保证类在内存中只有一个对象。应用:数据库中的连接池,Runtime类如何保证类在内存中只有一个对象呢?A.构造方法私有,不让外界创建对象。B在类中去创建一个对象。 C.通过一个公共的访问方式给外界提供一个入口。例如:以下程序中类一加载,对象就创建了,所以也被称为饿汉式单例模式。Student类:public class Student /为了不让外界访问,我们将构造方法私有。private Student()/创建一个对象,为了满足静态方法访问,这里也加了一个静态修饰符private static Student s=new Student();/提供一个公共的访问方式,静态类型,为了让外界直接访问public static Student getStudent()return s;public void show()System.out.println(我爱java); 测试类:public class StudentTest public static void main(String args) /通过单例模式获取对象,并调用方法Student s1=Student.getStudent();Student s2=Student.getStudent();/返回true的话,就表示满足单例模式的条件System.out.println(s1=s2);s1.show();s2.show();另外有一种,称为懒汉式单例模式。延迟加载思想,就是我们什么时候需要对象,你就什么时候给我们对象。 (Hibernate加载)public class Teacher /为了不让外界创建对象,把构造方法私有private Teacher()/本类创建一个对象/加static是为了保证静态方法可以访问/加private是为了保证外界不能直接访问private static Teacher t=null;/提供公共的访问方式/访问的时候才创建,精髓所在/synchronized关键字,解决线程同步问题,被同步的代码,在某一时刻只能在一个线程访问public synchronized static Teacher getTeacher()if(t=null) t=new Teacher();return t;/写了一个方法public void love()System.out.println(喜欢);public class TeacherTest /* * param args */public static void main(String args) / TODO Auto-generated method stubTeacher t1=Teacher.getTeacher();Teacher t2=Teacher.getTeacher();System.out.println(t1=t2);那么开发中一般采用哪种方案呢,一般采用第一种,原因:多线程安全问题,第二种的话,比如有t1和t2同时来访问,那么这个时候,当t1进来以后,判断这个时候t是null,所以t1就进去执行if所控制的语句。但是,由于线程的随机性,可能当t1刚进去执行if所控制的语句时,t2就抢到了cpu的执行权。这个时候,t2就开始执行了,发现这个时候t还是null,所以t2也进去执行if所控制的语句了。那么将来会有多个对象被创建。6. 装饰模式动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。给一个对象增加新的功能有2种方法,第一个面向对象:继承,第二个装饰模式。举例子:IO流方案一:通过继承的话,如果后期要求增加的功能太多,继承体系就会越来越大,臃肿。方案二:装饰模式应运而生。编写一个装饰者把所有的输入流内的大写字符转化成小写字符:import java.io.FilterInputStream;import java.io.IOException;import java.io.InputStream;public class LowerCaseInputStream extends FilterInputStreamprotected LowerCaseInputStream(InputStream in)super(in);Overridepublic int read() throws IOExceptionint c = super.read();return (c = -1 ? c : Character.toLowerCase(char) c);Overridepublic int read(byte b, int offset, int len) throws IOExceptionint result = super.read(b, offset, len);for (int i = offset; i = 0)System.out.print(char) c);in.close();catch (IOException e)e.printStackTrace();3. 面向对象1. 类与对象类就是一组表示属性的数据与一系列用于访问、操作这些属性的方法。类的成员(即类的属性与方法)可以分为两种:(1)static静态成员,即类成员,它们描述了类本身的特征。可以通过类名直接访问。(2)非静态成员,即实例成员、对象成员,它们描述了对象个体的特征。必须先实例化,然后通过实例化的对象名去访问。注意:类的属性会自动初始化,但局部变量需要手动初始化。2. 构造方法构造方法(constructor)用来描述对象的创建过程,它具有两大特征: 方法名与类名必须相同,且不能有返回值类型 支持方法重载。3. java的变量类型基本类型(8种)和引用类型引用变量与对象的创建过程:1. 在栈内存中分配空间,存放引用变量2. 在堆内存中分配空间,存放创建出来的对象3. 引用对象保存的是堆内存中对象的句柄(地址,不是物理地址)4. 类型转换 向上转型 (upcasting):隐式自动类型转制,即小类型到大类型,或子类型到父类型的转换。 向下转型 (downcasting):强制类型转换,即大类型到小类型的转换。如:Dog dog=(Dog) animal5. 对象的实例化过程1. 加载 class 文件2. 在堆内存中分配内存空间,递归分配所有父类与子类的实行空间3. 进行属性赋值4. 递归调用父类构造器(默认调用父类无参构造器)5. 调用本类的构造器6. 继承子类继承了父类的所有方法。每一个子类只有一个父类。这使得 Java 的类呈树状结构,所有的类的根都为 Object。这使 Java 的继承关系简单清晰,但无法获得多个父类的属性。为获得多个类的方法或属性, Java 允许一个类有多个接口。7. super(), this() 作用:减少代码的重复率 在构造函数中,同一个类中可以有多个构造函数(重载),构造函数之间可通过 this(.) 的方式相互调用。但须防止构造方法之间形成死循环,即防止构造方法相互间的错误调用。注意: this() 的语句只能在构造函数的第一行出现。 在构造函数中, super(.) 也只能在构造函数的第一行出现。如果在构造方法中未写 super(.) 语句时,系统自动调用 super() 语句。 任何子类一定至少有一个构造函数调用父类的构造函数。8. 方法重写覆盖9. 修饰符三种 public protect private10. 封装private 修饰符为对象封装提供语法基础。声明属性时应尽可能地使用私有,最大程序地对属性进行封装,在需要时可使用访问方法 (getter,setter) 适当地开放属性的访问权。11. 多态一个对象的在不同情景下表现的不同形态被称为多态。继承关系是对象多态的基础。12. 抽象与接口抽象 (abstract) 类不能实例化,含有抽象方法的类称为抽象类。它的子类必须实现所有抽象类中定义的所有抽象方法。接口(interface)是一种特殊的抽象类,但与抽象类不同,(1)接口类的所有方法都是抽象类型,即自动添加 abstract。(2)接口没有实例属性,所有属性都是 public static final 型。(3)接口没有构造方法。(4)一个类可以同时实现(implements)多个接口。13. 静态方法被 static 修饰的方法就是静态方法,静态方法与对象无关,是类的方法。同样,此方法不需要创建当前类的实例就可被调用。静态方法只在当前类加载的时候执行一次, JVM 第一次使用这个类时,会读取当前类的 class 文件载入内存,这时会执行静态代码块。14. final关键字final 关键字可以修饰类、属性、方法。用 final 修饰的类不能被继承。 Java 的 String, Math 等都是final属性的类。final 修饰的方法不能被子类覆盖。final 修饰的属性必须赋初值,且不能被修改。 final 可以修饰局部变量以及方法参数,效果与对属性的约束相同。15. abstract关键字抽象方法只有方法的声明,没有方法的实现。1. 使用 abstract 关键字的方法,即抽象方法,不能含有方法体。2. 含有抽象方法的类只能是抽象类。3. 抽象类不能被实例化,但可以用来声明对象(见下例)。4. 抽象类可以用非抽象方法,普通属性,及构造方法。5. 抽象类只能被继承。一个非抽象类如果继承了抽象类,那么它必须实现其父类中的所有抽象方法。6. 抽象方法和抽象类非常适合做系统分析与设计的工具。16. interface关键字接口是一种特殊的抽象类:1. 接口只能包含抽象方法与常量(即全部使用 public, final, static)。2. 接口定义使用 interface 关键字声明。3. 在接口中可以不用写出 abstract 关键字,系统会自动添加。接口通过 implements 实现,一个类可以对多个接口类实现。一个类与被实现的接口也是继承关系。17. javaBeanJavaBean 规范不是针对语法的规范,而是对编程习惯的指导规范,使用这个规范写的类使用方便,JavaBean 的要求包括:1. 必须有包2. 类必须有无参数的构造器3. 类必须使用 set 与 get 方法声明的属性a) 针对一般属性而言,使用 get 与 set 方法。b) 针对 boolean 类型的属性,一般采用 isXxx() 的方法。4. 必须实现序列化接口4. 常用类Java 的基本特性:1. 封装性:类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。2. 继承性:类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部可继承的成员。3. 多态性:类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。1. Object 类Java中所有的类都直接或间接地是Object类的子类,所有的类都有Object 类定义的方法,如 toString,equals,clone,hashCode 等。2. String类(如何使用API)字符串的使用相当频繁,String 提供了很多方便对字符串操作的方法。String 内部仍使用 char 的方式保存字符串。由于String是普通对象(不是8种基本数据类型),所以传递的是引用。3. 内部类5. 集合Collection是一个接口,定义了集合相关的抽象方法。 Collection 下面有两大子接口, List与 Set。1. 集合(Set)Set中可以保存任意类型实例 (集合中每个元素是任意类型实例),但一般而言,一个集合的元素类型应该是一致的,Set 元素无序, 且不能重复添加Set为无序集合,它也有 add, remove 等方法,但因其无序性,它没有 List的根据下标操作的相关方法。2. List 元素有序,且可重复添加3. ArrayList1. add2. toString: ArrayList 重写了 toString 方法,即调用各元素的 toString方法,如 aryListindex.toString()。 nn3. contains:调用各元素的 equals 方法,查看是否含有相同的元素。4. remove(Object o):将集合中的元素与 o 用 equals 比较,如果返回 true 就删除。删除成功后返回 true。5. remove(int index):将集合中的 index 处的元素删除。删除成功后返回被删除的对象,且返回对象的类型为 Object。6. size:返回当前集合中的元素数量。7. set(int index, Object o):将 index 处的元素替换为 o,并返回被替换的元素。8. get(int index):返回 index 处的元素。9. addAll(Collection c):将集合 c 中的元素全部添加到当前集合的末尾。合集10. removeAll(Collection c):将当前集合中所有 c 中的元素全部删除。差集11. retainAll(Collection c):保存当前集合与 c 共有的元素。合集12. isEmpty:判断当前集合是否为空。空集413. clear:将集合中的元素清空。4. LinkList链表采用双向循环链表实现,适于需要频繁增删元素的列表。除下面的方法外,它的方法大多与 ArrayList 的相同。可以参考API文档。5. HashMapHashMap 是以 key-value 的形式存放数据的。key 可以是任意对象,且key不允许重复。value 可以是任意对象6. 泛型Java5 开始提供的一个新特性: 泛型。编译器使用泛型约束集合中元素的类型(运行期间不检查)。这样的好处是: 向集合中存放元素时类型统一 从集合中取出元素时,不需要使用 Casting语法: LinkedList nodes = new LinkedList();7. 集合的迭代集合的迭代是对集合元素的一种遍历方法。 Java 中使用 Iterator (迭代器)来描述迭代模式操作。 Iterator 中的迭代算法是专为 while 循环设计的。 Iterator 可以通过任何集合对象获取。如:Itertator it=list.iterator();while(it.hasNext() Student s=it.next(); system.out.println(姓名:+s.getName()+年龄:+s.getAge();6. 异常异常是程序运行时出现的错误,异常需要捕获,否则下面的语句无法运行(1). try catch(Exception e) e.printStackTrace();finally 其中finally必须要执行.(2).throws和throw关键字 用throws直接把异常抛出,不处理 用throw直接new出一个异常,是自定义的(3).Exception和RuntimeException的区别 Exception是检查型异常,例如: Exception在程序中必须用try.catch进行处理 RuntimeException是非检查型异常,例如:NumberFormatException,可以不用try.catch进行处理,如果有异常由JVM进行处理。(4).自定义异常类:项目中自己定义的 /自定义异常 Public class CustomException extends Exception /构造方法 Public CustomException(String message) Super(message); 7. IO流1. 什么是IO流 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称和抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据传输的特性将流抽象为各种类,方便更直观的进行数据操作。2. 分类(依据处理数据的类型不同) 字符流(read,write)和字节流(InputStream和OutputStream)3. 文件操作File类 (1)创建目录文件 (2)创建文件 (3)删除文件4.8. HTML1. htmlHyper Text Markup Language 即文本标记语言,后缀为.html 或.htm,用浏览器解释运行。当源文件有错误时,浏览器仍试图解释。因此不同浏览器可能会出现不同的结果。2. head区域head 中包含整个文档的定义,如 title 即文档标题,与单标记的元数据。head 中还包括 link, style, script.3. body区域body 即页面的主体内容,它包括文本,表格,图像与超级链接,及表单与框架。4. 常用标记使用默认格式时, 标题 到 段落 . 换行 5. span, div 同一行元素分组,不影响其它布局 span 多行元素分组,会自动换行 div 在CSS定义中属于一个行内元素,在行内定义一个区域,也就是一行内可以被 划分成好几个区域,从而实现某种特定效果。 本身没有任何属性。 在CSS定义中属于一个块级元素 可以包含段落、标题、表格甚至其它部分。这使DIV便于建立不同集成的类,如章节、摘要或备注。在页面效果上,使用 会自动换行,使用 就会保持同行。6. a 超级链接 Text; 超链接的属性包括 target: 可以使用_self 或 _blank 在当前或新页面打开目标链接。 name: 用于定义锚点,便于在页面的不同位置之间跳转。使用锚点时,应在它的前面添加#. title: 用于设置当鼠标移动到链接上时,显示的提示信息 href=javascript:jsFunction();7. img 添加图像 单标记8. table 表格用于显示结构化数据或实现页面的布局 table/tr/td table properties: border, width, height, cellpadding, cellspacing td properties: width, height, align, valign 行分组 thead/tbody/tfoot caption 默认居中 Caption text 不规则表格 rowspan, colspan 第一个元素 第二个元素 第三个元素 aa bb cc dd ee ff 9. form表单用于收集用户提供的数据并提交给服务器。 form 元素用于承载页面的控件,以表单为单位,将当前表单中的数据提交给服务器。form 的常用属性有 action,method 点击后以 method 中定义的方式提交给服务器,并进行 action 所定义的操作9.1 form 的元素 input 为单标记,通过 type 定义不同的类型:1. 默认为文本框 (text)2. password3. checkbox,使用 name 属性便于服务器获取值;使用 checked设置默认选择状态。4. radio,使用 name 属性将 radio 分组5. value 用于设置 text 与 password 类型的默认值;或设置 checkbox 与 radio 的关键数据,通常是 id 的数据。 button1. submit 使用 value 更改名称2. reset 使用 value 更改名称3. button 依赖 onclick 进行操作4. file 用于上传文件5. hidden 用于记录隐藏类信息,如用户在服务上的唯一 ID 值 非 input 元素的标记成对出现,在各对标记之间设置默认值。1. textarea 用 rows,cols 设置文本框的大小2. select 必须包含 option 元素。 select 的 size 属性用于设置默认选项展开的行数。 selectedIndex 用于查看当前所选项的索引(第一项索引值为 0)。3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金属冶炼应急预案文字版(3篇)
- 霉菌食品安全事件应急预案(3篇)
- 供暖管道施工方案(3篇)
- 安装光伏的施工方案(3篇)
- 医院人才外流应急处置预案(3篇)
- 海姆立克应急预案总结(3篇)
- 拍卖师资格考试(拍卖实务)综合试题及答案(2025年贵州)
- 赣西科技职业学院《调查数据分析与运用》2024-2025学年第一学期期末试卷
- 装配式厂房施工方案(3篇)
- 消毒消杀应急预案村社区(3篇)
- 多媒体教室使用的课件
- 2025年军队专业技能岗位文职人员招聘考试(工程机械驾驶员)历年参考题库含答案详解(5卷)
- 2025年下半年广西现代物流集团社会招聘校园招聘笔试参考题库附带答案详解(10套)
- 2025年粉笔辅警考试题库
- 2025年小学教研室教学计划
- 2025年上海市建筑工程施工合同模板
- 高中英语必背3500单词表完整版
- 医药代表销售技巧培训
- 牛的品种及生物学特性
- 阿特拉斯变频无油螺杆空压机说明书
- 口腔解剖生理学颞下颌关节精选课件
评论
0/150
提交评论