版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学java找维信科技/学嵌入式找维信科技/学物联网找维信科技维信科技中北大学软件学院-学员实训总结日期作者版本2014/9/30何玲玉1.0Java核心技术目录HYPERLINKJava核心技术 1HYPERLINK第一章Java入门 2HYPERLINK1.1语言发展史 2HYPERLINK1.2C/C++/Java 2HYPERLINK1.3Java发展史 2HYPERLINK1.4 Java语言特点 3HYPERLINK1.5Java语言及JDK 3HYPERLINK1.6Java运行环境搭建 3HYPERLINK1.7Java代码的编写 4HYPERLINK第二章标识符和数据类型 4HYPERLINK2.1标识符命名规范 4HYPERLINK2.2变量定义及使用 4HYPERLINK2.3数据类型 5HYPERLINK2.4运算符 6HYPERLINK2.5流程控制: 6HYPERLINK2.6类的概念 9HYPERLINK2.7定义类和成员方法 9HYPERLINK2.8构造方法 9HYPERLINK2.9定义新的对象: 10HYPERLINK2.10Java垃圾回收机制 11HYPERLINK第三章引用类型 11HYPERLINK1. 什么是引用类型 11HYPERLINK2.引用类型的赋值 12HYPERLINK3.按值传递和按引用传递的区别 12HYPERLINK4.局部变量和全局变量 13HYPERLINK5.对象构造次序 13HYPERLINK第四章关键字 14HYPERLINK1. this关键字: 14HYPERLINK2. static关键字 14HYPERLINK3. final关键字 15HYPERLINK4. 封装数据类型 15HYPERLINK5. 多态: 16HYPERLINK6. 抽象abstract 16HYPERLINK7. Java接口 17HYPERLINK第五章Java中异常处理 17HYPERLINK5.1异常类 17HYPERLINK5.2JAVA异常处理方法 18HYPERLINK第六章集合框架接口 20HYPERLINKJava框架的实现类 20HYPERLINK第七章GMI图形用户界面 21HYPERLINK7.1AWT抽象窗口工具集 21HYPERLINK7.2边界布局管理器 21HYPERLINK7.3流式布局管理器 22HYPERLINK7.4网格布局管理器 22HYPERLINK7.5卡式布局管理器 22HYPERLINK第八章事件处理 23HYPERLINK8.1事件定义 23HYPERLINK8.2窗口监听器 23HYPERLINK8.3JDBC概述 24HYPERLINK8.4数据库的增删改查 24第一章Java入门1.1语言发展史机器语言:0,1低级语言:汇编语言高级语言:面向过程的语言:C面向对象的语言:C++,Java1.2C/C++/JavaC语言之父:丹尼斯—里奇;C++之父:本贾尼.斯特劳斯特卢普;Java之父:詹姆斯·高斯林;1.3Java发展史1990年由加拿大人詹姆斯·高斯林创建1995年5月23日Java语言诞生1998年12月8日,JAVA2企业平台J2EE发布1999年6月,SUN公司发布Java的三个版本:标准版JAVASE,微型版JAVAME,企业版JAVAEE2009年04月20日,甲骨文74亿美元收购Sun。取得java的版权2014年3月19日,甲骨文公司发布java8.0的正式版Java语言特点Java提供了JDK,供开发人员进行java开发,开发出的Java文件本身并不具备平台无关的特性。Java文件编译后,生成的class二进制文件。SUN提供了各个平台下的JRE:Windows下的,Linux下的,UNIX下的。编译后的class文件,就在各个平台下的jre上运行了。简单的说,就是因为jre的存在。简单Simple安全Safe面向对象Objectoriented1.5Java语言及JDKJava是有编译有解释的语言,通过编译器,可以把Java程序编译成一种中间代码,称为子节码——可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。Java的跨平台性由Java虚拟机帮它实现。cmd窗口下Java运行:(1).Java文件转换为.class文件。.class文件叫做类文件或者自解码文件打开命令如E:\>Javac文件名.java;(2)运行.class文件JDK为Java开发工具集,所有的Java应用程序是构建在这个之上的。它啊是一组API,也可以说是一些Javaclass。Java工具集包括javac,Java等。Javac-编译器,将源程序转成字节码Jar-打包工具,将相关的类文件打包成一个文件Javadoc-文档生成器,从源码注释中提取文档Java-运行编译后的Java程序(.class后缀的)Jre为Java运行环境1.6Java运行环境搭建*javaJDKOSHardWare配置环境变量右键点击“我的电脑”选择“属性”,选择“高级”,点击“环境变量”按钮,在系统变量里双击“path”,在变量值中添加路径,如C:\ProgramFiles\Java\jdk1.8.0_20\bin;1.7Java代码的编写publicclassHelloWorld{publicstaticvoidmain(sting[]args){System.out.println(“helloworld!”);//System是类,out是属性,printin是方法}}\n换行\t四个空格Java的三种注释形式:单行注释://注释内容多行注释:/*注释内容*/分块注释:/**注释内容*/第二章标识符和数据类型2.1标识符命名规范标志符给类、变量、函数取名时要遵守命名规范:标识符首字母可以是字母、下划线“_”、“$”,不可以是数字,其余部分可以是数字、字母、下划线“_”、“$”;命名变量时,第一个单词首字母小写,其余单词首字母大写;Java关键字/保留字,不能做标识符,关键字有:abstractcontinuefornewswitchassertdefautifpackagesynchronised(同步)booleandogotoprivatethisbreakdoubleimplements(实现)protectedthrowbyteelseimportpublicthrowscaseenuminstanceafreturntrans2.2变量定义及使用定义:内存里存储数据的一块空间叫变量。数据类型变量名=数值eg.intmoney=1000;使用变量的步骤:第一步:声明一个变量根据数据类型开辟空间第二步:赋值将数据存入空间第三步:使用变量取出数据使用2.3数据类型整数类型(byte,short,int,long)数值型浮点类型(float,double)简单数据类型字符型char数据类型布尔型true/false(只有两种状态)类class复合数据类型 接口interface数组类型占用存储空间byte1字节short2字节int4字节long8字节float4字节double8字节char2字节boolean1位字符类型的值:用单引号括起来的单个字符。charc=‘A’;charc1=‘\u0061’;‘\’转义符charc2=‘\n’;转义字符:\”双引号\b退格\\反斜杠\r回车\’\t\n注:longl=300l;加l和整形做区分floatf=1.1f;Java默认定义为double,加f转为float型强制类型转换:高级数据类型转换成低级数据类型用强制类型转换。低级数据类型变量名=(类型名)高级数据类型变量名byteb;shorts;b=(byte)s;intbefore=23;doublerise=9.8;intn=before+(int)rise;2.4运算符算术运算符:+、-、*、/、%、++、--关系运算符:>、<、==、!=、<=、>=布尔逻辑运算符:!、&、|、^异或、&&短路与、||短路或位运算符赋值运算符:=三元运算符System.out.println(++num)先自加再输出;System.out.println(num++)先输出再自加。&&第一个操作数为假,则不判断第二个操作数||第一个操作数为真,则不判断第二个操作数扩展赋值运算符:a+=b和a=a+b一样boolean表达式?if-true-state:if-false-stateintresult=score<60?60:score(结果为60)2.5流程控制:流程控制 分支语句循环语句break/continueifelseswitchforwhiledowhile1if…else…//部分代码Scannerinput=newScanner(System.in)System.out.println(“请输入年份”);Stringyear=input.next();If(year%4==0&&year%100!=0||year%400==0){System.out.println(“该年份为闰年!”);}else{System.out.println(“不是闰年!”);}2switch循环switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。switch(表达式){case常量表达式1:语句1case常量表达式2:语句2case常量表达式n:语句n;default:语句n+1}switch(year){ case2011: System.out.println(“我是2011年”); break;case2012: System.out.println(“我是2012年”); break;default: System.out.println(“没有这一年”);}3for循环for(inti=1;i<=100;i++){ System.out.println(i);}4while循环i=1;while(i<100){ system.out.println(i); i++;}eg2.Scannerinput=newScanner(System.in); Stringanswer="y"; while(answer.equals("y")){ System.out.println("请选择购买商品编号:"); intn=input.nextInt(); switch(n){ case1: System.out.println("T恤245"); break; case2: System.out.println("网球鞋570"); break; case3: System.out.println("网球拍320"); break; } System.out.println("是否继续:y/n"); answer=input.next(); } System.out.println("程序结束!");5dowhile循环先执行再判断,至少执行一次。do{body_statement;[alter_expr;]}while(text_expr);Eg:Inta=1;do{ System.out.println(a); a++;}while(a<100);//;不能丢2.6类的概念类与对象关系:类是描述具有相同特征的一类事物的基本原型,定义了这类事物所拥有的数据特征以及可以执行的操作;对象是类的实例,是类的具体化。java类是面向对象封装概念的基本体现,java类封装了抽象概念的数据(属性)与行为(方法)。类是Java代码组织的最小单位。类—>描述特征—>描述行为2.7定义类和成员方法访问修饰符class类名{//定义类 数据类型变量名;//成员变量/属性 访问修饰符返回值类型方法名(参数类型参数名){//成员方法/类的方法}}2.8构造方法方法名和类名相同,没有返回值类型,参数可有可无,可有一个或多个。构造方法的作用在创建对象实例时,构造方法负责对象的初始化,可以为实例变量初始化赋值。构造方法的语法语法:[构造方法访问修饰符]<方法名>([参数列表]){[方法体]}无参类型PublicPerson(){ Personp=newPerson();P.name=“张三”;P.age=18;}默认的类型,不定义的时候系统自动生成,只是看不到。但若定义有参的类型,则默认无参的消失。有参类型PublicPerson(Stringname){Personp=newPerson(“张三”);}PublicPerson(Stringname,Intage){Personp=newPerson(“张三”,18);}注意:参数个数、类型、顺序不同则构造方法不同。2.9定义新的对象:方法一:Personp=newPerson(“张三”,18);//有参方法二:Personp=newPerson();P.name=“张三”;P.age=18;2.10Java垃圾回收机制1什么是内存垃圾?所谓的内存垃圾,简单理解就是把一些信息加载到内存里,但这些信息对用户来说没一点用处,但它还占着内存,这些信息就成为内存垃圾信息。2Java如何回收垃圾?Java通过一个所谓的垃圾回收机制来确定不在使用的对象内存并负责清理。GC通过确定对性是否被活动对象引用来确定是否收集对象。垃圾收集程序的运行由VM控制。第三章引用类型什么是引用类型引用类型(reference
type)指向一个对象,不是原始值,指向对象的变量是引用变量。
在java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。示例如下:
public
class
MyDate
{
private
int
day
=
8;
private
int
month
=
8;
private
int
year
=
2008;
private
MyDate(int
day,
int
month,
int
year){...}
public
void
print(){...}
}
public
class
TestMyDate
{
public
static
void
main(String
args[])
{
//这个today变量就是一个引用类型的变量
MyDate
today
=
new
MyDate(23,
7,
2008);
}
}
2.引用类型的赋值
在java编程语言中,用类的一个类型声明的变量被指定为引用类型,这是因为它正在引用一个非原始类型,这对赋值具有重要的意义。如下代码:
int
x
=
7;
int
y
=
x;
String
s
=
"Hello";
String
t
=
s;
3.按值传递和按引用传递的区别
1)按值传递
指的是在方法调用时,传递的参数是按值的拷贝传递。示例如下:
public
class
TempTest
{
2.
private
void
test1(int
a)
{
3.
//
做点事情
4.
a++;
5.
}
6.
7.
public
static
void
main(String
args[])
{
8.
TempTest
t
=
new
TempTest();
9.
int
a
=
3;
10.
t.test1(a);//这里传递的参数a就是按值传递。
11.
System.out.printIn("main方法中的a==="
+
a);
12.
}
13.
}
按值传递的重要特点:传递的是值的拷贝,也就是说传递后就互不相关了。第9行的a和第2行的a是两个变量,当改变第2行的a的值,第9行a的值是不变的,所以打印结果是3。
main
方法中的a
为
3
test1
方法中的a
为
4
我们把第9行的a称之为实参,第2行的a称之为形参;对于基本数据类型,形参数据的改变,不影响实参的数据。
2)按引用传递
指的是在方法调用时,传递的参数是按引用进行传递,其实传递的是引用的地址,也就是变量所对应的内存空间的地址。
示例如下:
1.
public
class
TempTest
{
2.
private
void
test1(A
a)
{
3.
a.age
=
20;
System.out.printIn("test1方法中的age="+a.age);
}
6.public
static
void
main(String
args[])
{
7.
TempTest
t
=
new
TempTest();
8.
A
a
=
new
A();
9.
a.age
=
10;
10.
t.test1(a);//
这里传递的参数a就是按引用传递
11.
System.out.printIn("main方法中的age="+a.age);
12.
}
13.
}
14.
classA
{
15.
public
int
age
=
0;
16.
}
运行结果如下:test1方法中的age
=
20
main方法中的age
=
20
4.局部变量和全局变量局部变量只在局部可以被使用的变量。 方法内部定义的、方法的形参、游离块内部定义的游离块{inta;}成员变量(全局变量)在整个类内都可以使用的变量 。 类的成员变量5.对象构造次序创建对象空间出事对象的成员变量调用对象游离块调用对象构造方法第四章关键字this关键字:在一个类中,当调用构造方法创建对象实例时,如果类的实例变量和局部变量名称相同,则要用this关键字区分。反之,编译可能出错。例子publicclassTest{
Stringname;
PublicTest(Stringname){
=name;
}}使用this关键字的情况(1)在一个构造方法中,通过this关键字调用所在类中的另一个构造方法。(2)在一个实例方法内,局部变量或参数与实例变量名称相同,编译口器无法区分变量,这时要用this关键字。在一个实例方法内,通过this关键字访问当前实例的引用。static关键字static从字面理解,是“静态的“的意思。static关键字可以用来修饰成员方法、成员变量、构造块。publicclassTest{ publicstaticvoidmain(String[]args){ { System.out.println("no-static"); } } static{ System.out.println("static"); }}输出结果:staticno-staticfinal关键字被final修饰后成为常量:finalintAGE=11;finaldoubleMAX_COUNT=3.14;注意:1.常量命名大写;2.多个单词中间用下划线“_”隔开;3.常量值一旦被赋予,后面不能修改。final可以修饰方法publicfinalvoidt(){
}publicfinalclassTest{}封装数据类型对于简单数据类型,Java对它们进行了封装,是它们都有相应的封装类。length()字符串长度equals()比较两个字符串内容是否相同charAt()获得指定位置的字符index()返回字符串第一次出现的位置substring()获得子字符串trim()忽略前后空白replace()替换旧的字符为新字符例:packagecom;importjava.util.UUID;publicclassTest{ publicstaticvoidmain(String[]args){ Stringname="img.jpg"; inti=name.lastIndexOf("."); System.out.println(i); Stringn2=name.substring(0,i); System.out.println(n2); Stringn1=name.substring(i); System.out.println(n1); Stringuuid=UUID.randomUUID().toString(); System.out.println(uuid+n1); }}运行结果: 3img.jpg0caa4e0f-d9e2-476f-9abb-c1e68c61ef32.jpg多态:5.1定义多态是具有表现多种形态的能力的特征。同一个接口,使用不同的实例而执行不同操作5.2如何实现多态1.子类重写父类的方法2.编写方法时,使用父类定义的方法3.运行时,根据实际创建的对象类型动态决定使用哪个方法抽象abstract抽象类里面并非一定需要抽象方法,但是没有抽象方法,抽象类就没有存在的必要;在以下任一条件成立时,类必须定义成抽象类:(1)类中有至少一个抽象方法(2)类继承了父类中的抽象方法,但是至少有一个抽象方法没有实现(3)类实现了某个接口,但没有实现接口中全部的方法publicabstractvoidinto();final和abstract不能同时存在Java接口一个Java接口是一些方法特征的集合,但没有方法的实现InterfaceFlyable{ publicvoidfly();}Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为。接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点。接口不是类,不能使用new运算符实例化一个接口。第五章Java中异常处理程序难免出错,如果能够提供一种机制来捕获这种错误并使我们的程序从错误的状态中恢复,我们的程序将更加健壮更加稳定。
JAVA语言提供一种异常处理机制,来捕获程序的错误,提高程序的稳定性和健壮性。
异常
是程序运行过程中发生的事件,该事件可以中断指令的正常执行流程
错误(Error):是JVM系统内部错误、资源耗尽等严重情况,出现此种异常,程序将终止,不可捕获;
违例(Exception):是指其他因编程错误或偶然的外在因素导致的一致性问题,例如对负数开平方根、空指针访问、试图读取不存在的文件以及网络连接中断等,此种异常可以捕获,下文我们重点讨论此种异常;5.1异常类
JAVA异常类是Throwable,它包含两个继承他异常类:Error
和
Exception。
Error(错误)
类:
Exception(违例)
类:检查性异常java.lang.Exception程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。JAVA编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。运行期异常:java.lang.RuntimeException这意味着程序存在bug,如数组越界,0被除,入参不满足规范这类异常需要更改程序来避免,JAVA编译器强制要求处理这类异常。错误java.lang.Error一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。5.2JAVA异常处理方法
JAVA提供两种方法处理异常:
A
捕获异常
B
声明抛弃异常
Java的异常处理时通过5个关键字来实现的:try,catch,finally,throw,throws5.2.1
捕获异常
异常处理语句:
try-catch
try{
可能出现异常的语句;
}
Catch(抛出的异常对象){
异常处理语句;
Catch(抛出的异常对象){
异常处理语句;
}
[finally{
最后需要处理的语句
}]
*注意
·catch块不是方法,尽管它某些方面像一个方法
·catch块参数之前的类名规定了这个catch的块可以捕获什么样的异常;
·try块一旦抛出异常,其后面的语句不会被执行,而是转去至此那个catch中的语句;
·一个异常是一个对象;
.finally如果把finally块置try...catch...语句后,finally块一般都会得到执行,它相当于一个万能的保险,即使前面的try块发生异常,而又没有对应异常的catch块,finally块将马上执行。以下情形,finally块将不会被执行:(1)finally块中发生了异常;(2)程序所在线程死亡;(3)在前面的代码中用了System.exit();(4)关闭CPU。PS:一般情况下,不要再finally块中使用renturn或throw等导致方法终止的语句,因为一旦使用,将会导致try块、catch块中的return、throw语句失效
5.2.2抛出异常
如果一个方法中不处理此类异常,可以声明抛弃该异常,此方法将不对此类异常进行处理,而是由该方法的调用者处理。
Throws
用法:
Throws
(异常类型)
重写方法不允许抛出比被重写方法范围更大的异常类型5.2.3
人为抛出异常
Throw
用法:
Throw(异常类型)
第六章集合框架接口所有框架就是一个类库的集合,集合框架就是一个用来表示和操作集合的统一的架构,包含了实现集合的接口和类。Collection位于体系结构的顶层
Set接口是一个按照升序排列元素的,用于处理集(元素没有具体的位置,不允许重复)
List接口是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。用于处理序列(元素有具体的位置,允许重复)
Map包含了key-value对,用于处理键值对,(键不允许重复,值允许)、Set,List,Map统称为“Java集合”。Java框架的实现类ArrayListArrayListHashSetHashSetSortedSetsetSortedSetsetTressMapHashMapSortedMapMapLinkesListListTreeSetLinkedHashSet TressMapHashMapSortedMapMapLinkesListListTreeSetLinkedHashSet第七章GMI图形用户界面7.1AWT抽象窗口工具集importjava.awt.Button;importjava.awt.Frame;publicclassTest{ publicstaticvoidmain(String[]args){ Frameframe=newFrame(); frame.setSize(500,500); frame.setVisible(true); frame.setLocation(500,500); frame.setBounds(50,50,300,400); frame.setResizable(false);//不可改变窗口大小 Buttonbutl=newButton("文字"); frame.add(butl); }}7.2边界布局管理器 BorderLayoutbar=newBorderLayout(); frame.add(butl.BotderLayout.NORTh);//可换面板名和菜单名7.3流式布局管理器FlowLayout7.4网格布局管理器GridLayoutgl=newGridLayout(5,5);//5乘5格子7.5卡式布局管理器CardLayout所有按钮手动布局文本框Labellabel=newLabel(); label.setText("用户名"); label.setBounds(80,80,50,20); frame.add(label);复选框Checkboxcb=newCheckbox("足球",false);//false不被选中,true被选中 cb.setBounds(100,100,50,20); frame.add(cb);单选框 CheckboxGroupcg=newCheckboxGroup(); cb1.setCheckboxGroup(cg); cb2.setCheckboxGroup(cg);多行式文本 TextAreata=newTextArea(); ta.setBounds(140,100,250,250); frame.add(ta);第八章事件处理8.1事件定义事件(Event)——一个对象,它描述了发生什么事情事件源(Eventsourse)是产生事件的组件事件处理方法是能够接收、解析和处理事件类对象、实现和用户交互的方法8.2窗口监听器WindowListener第一种:publicclassTestimplementsWindowListener{ publicTest(){ Frameframe=newFrame();frame.addWindowListener(this);//在当前类实现 } publicstaticvoidmain(String[]args){ newTest();}publicvoidwindowClosing(WindowEventarg0){ System.exit(0); }}第二种:frame.addWindowListener(newWindowAdapter(){ PublicvoidwindowClosing(windowEvente){ System.exit(0);}});8.3JDBC概述JDBC——JavaDataBaseConnectioityStandard,它是Java访问数据库的应用程序接口(API),通过这套API可以访问各种类型的关系数据库,例如oracle,MySQL,SQLServerJDBC功能支持基本SQL语句,在Java程序中实现数据库操作功能并简化操作过程提供多样化的数据库连接方法为各种不同的数据库提供统一的操作界面JDK编程查询注册驱动Class.forName(“oracle.jdbc.OracleDriver”);创建连接Connectionconn=DriverManager.getConnection("jdba:oracl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025食品代销合同书范本
- 上海外国语大学贤达经济人文学院《免疫与病原生物学》2023-2024学年第一学期期末试卷
- 上海体育大学《电视学导论》2023-2024学年第一学期期末试卷
- 2025民间个人借款合同标准版
- 2025国营印刷厂劳动合同范本
- 《乘法和加减法的混合运算》教学案
- 2025软件外包合同范文2
- 2025波形护栏安装合同范本
- 上海师范大学《玻陶工艺学》2023-2024学年第一学期期末试卷
- 上海思博职业技术学院《幼儿园级管理》2023-2024学年第一学期期末试卷
- 反保险欺诈主题教育课件
- 口腔营销培训
- 《歌剧魅影》音乐赏析
- 2023年浙江省高考1月化学真题试卷及答案
- 企业开放日活动方案
- 五力分析微軟office
- 山东省济南市2022-2023学年高二上学期期末数学试题(学生版+解析)
- 2024年全国养老护理职业技能大赛选拔赛参考试题库(含答案)
- 铸牢中华民族共同体意识建设中华民族共同体
- 医学检验、医学影像检查结果互认制度测试题
- 大学生考风考纪主题班会课件
评论
0/150
提交评论