黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

您所在的位置:网站首页 黑马程序员python就业班视频 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

2024-06-22 04:16:41| 来源: 网络整理| 查看: 265

正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 

 

这是我总结的基础班第一章课程,

 

计算机语言:

  人与计算机交流的方式  如果人要与计算机交流,那么就要学习计算机语。计算机语言有很多种,如:C,C++,Java等。

人机交互:  软件的出现实现了人与计算机之间的更好的交互。交互方式:  图形化界面(Graphical User Interface GUI):这种方式简单直观,使用者易于接受,容易上手操作。  命令行方式(Command Line Interface CLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令

Java语言概述:1. Java语言是SUN公司(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。2. Java语言是一门面向Internet的编程语言。3. 随着Java技术在web方面的不断成熟,Java语言已经成为Web应用程序的首选开发语言。4. Java语言是简单易学,完全面向对象,安全可靠,与平台(操作系统)无关的编程语言。  P.S:Java是允许使用者将应用程序通过Internet从远端服务器传输到本地机上并执行的一种语言。Java语言的三种技术架构:  J2EE(Java 2 Platform Enterprise Edition) 企业版       是为开发企业环境下的应用程序提供的一套解决方案。      该技术体系中包含的技术如Servlet、Jsp等,主要针对于Web应用程序开发。  J2SE(Java 2 Platform Standard Edition) 标准版     是为开发普通桌面和商务应用程序提供的解决方案。      该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发,比如Java版的扫雷。  J2ME(Java 2 Platform Micro Edition) 小型版      是为开发电子消费产品和嵌入式设备提供的解决方案。      该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。  P.S    1、Java5.0版本后,三种技术架构分别更名为JAVAEE、JAVASE、JAVAME。    2、由于现在已经出现了Android、iOS、Windows Phone等手机操作系统,所以J2ME架构基本上已经不用了。目前,流行的手机软件都是基于这些最新的手机操作系统进行开发。

跨平台性:什么是跨平台性?    通过Java语言编写的应用程序在不同的系统平台上都可以运行。原理是什么?    只要在需要运行java应用程序的操作系统上,    先安装一个Java虚拟机(JVM Java VirtualMachine)即可。    由JVM来负责Java程序在该系统中的运行。 PS: java语言是跨平台,jvm不是跨平台的。

什么是JRE,JDK?

JRE(Java Runtime Environment   Java运行环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。 Jre=jvm+类库。 JDK(Java Development Kit    Java开发工具包) JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具:编译工具(javac.exe)  打包工具(jar.exe)等 Jdk=开发工具+jre PS:使用JDK开发完成的java程序,交给JRE去运行

 

为什么JDK中包含一个JRE呢? 1,开发完的程序,需要运行一下看看效果。 2,JDK中的开发工具其实都是java语言编写的应用程序,为了方便使用才打包成exe文件, 如果没有JRE,那么这些工具是运行不了的。

JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。        JDK(Java Development Kit):java的开发工具,包括jre+开发工具JDK的下载与安装:JDK(Java DevelopmentKit  Java开发工具包) 官方下载网址:www.oracle.com                       1.点击Downloads下的Java for Developers。                       2. 点击JDK下的DOWNLOAD按钮。                       3.点击Accept License Agreement 接受JDK的许可证协议,然后再点击jdk-8u45-windows-i586.exe(32位)/jdk-8u45-windows-x64.exe(64位)进行下载。                        PS: 查看系统是多少位,用鼠标右键点击我的电脑属性,查看系统类型。傻瓜式安装,下一步即可。建议:安装路径不要有中文或者特殊符号如空格等。

配置环境变量path:配置:我的电脑--属性--高级--环境变量1.新创建一个环境变量名为JAVA_HOME ,变量值为java工具所在目录,2.在path中通过%%动态的获取JAVA_HOME的值即可。   %JAVA_HOME%:动态获取名称为JAVA_HOME环境变量的值。例如:                JAVA_HOME=F:\jdk1.6.0_01(java工具(JDK)所在目录)        path=%JAVA_HOME%\bin;%path%        %path%:动态获取path环境变量的值。               

检测:打开DOS命令行(1.徽标键 +R ,输入CMD。2.点击开始-->所有程序-->附件-->命令提示符),任意目录下敲入javac 错误原理:当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。如果还没有找到,就出现以上的错误提示。如果进入到 jdk安装路径\bin目录下,执行javac就可以看到javac参数提示信息,这说明我们的JAVA_HONE的环境变量没有配置成功。 配置环境变量class_Path:由于可能频繁执行多个class文件,并且多个class文件可能存储在不同的目录下,那么每次都在命令提示符窗口中切换目录会相当的麻烦。classpath环境变量的作用类似于path环境变量,但是它的作用在于告诉JVM去哪里找到class文件。环境变量path和classpath的作用是什么?(1)path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录, 用于指定DOS窗口命令的路径。(2)Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。 

 

第二章

 

 

关键字

概述:被Java语言赋予特定含义的单词特点:组成关键字的字母全部小写注意事项:goto和const作为保留字存在,目前并不使用(保留字:在JDK的新版本中可能提升为关键字)类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

 

标识符

 

概述:给类,接口,方法,变量等起名字时使用的字符序列

组成规则:英文大小写字母、数字字符、$和_命名规范:包名:多单词组成时所有字母都小写,类名接口名:多单词组成时,所有单词的首字母大写变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写常量名:所有字母都大写。多单词时每个单词用下划线连接注意事项 :不能以数字开头、不能是Java中的关键字、区分大小写要见名知意,驼峰命名

常量概述:在程序执行的过程中其值不可以发生改变常量分类:             1、字面值常量             2、自定义常量(面向对象部分讲)     字面值常量的分类

           1. 整数常量:所有整数。

 

            2. 小数常量:所有小数。

 

            3. 布尔(boolean)型常量:只有两个数值,true、false。

 

            4. 字符常量:将一个数字字母或者符号用单引号( ' ' )标识,如:'a'。

 

            5. 字符串常量:将一个或者多个字符用双引号("")标识,如:"hello world"、"a"、""(空字符串)。

 

            6. null常量:只有一个数值就是:null。

Java针对整数常量提供了4种表现形式:二进制、八进制、十进制 、十六进制

 

进制:就是进位制,是人们规定的一种进位方法。对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一、

二进制的由来:任何数据在计算机中都是以二进制的形式存在的。二进制早期由电信号开关演变而来。

一个整数在内存中一样也是二进制的,但是使用一大串的1或者0组成的数值进行使用很麻烦。

 

八进制的由来:所以就想把一大串缩短点,将二进制中的三位用一位表示。

 

这三位可以取到的最大值就是7.超过7就进位了,这就是八进制。

 

十六进制的由来:但是对于过长的二进制变成八进制还是较长,所以出现的用4个二进制位表示一位的情况,四个二进制位最大是15,这就是十六进制。

不同进制的数据组成:二进制 由0,1组成。以0b开头  例:0101 八进制  由0,1,…7组成。以0开头  例:032十进制 由0,1,…9组成。整数默认是十进制的  例:12十六进制   由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头 例:0x42b6规律:进制越大,表现形式越短。

转换(可以通过计算机的程序员计算器)8421码(8421码是BCD代码中最常用的一种。)100转成二进制   0110 0100101101转成十进制  45二进制和八进制,十六进制进行转换是以十进制作为桥梁二进制到八进制是3位二进制组成一位八进制二进制到十六进制是4位二进制组成一位十六进制

在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

变量概述:在程序执行的过程中,在某个范围内其值可以发生改变的量格式:数据类型 变量名 = 变量值;好处: 可以用来不断的存放同一类型的常量,并重复使用 数据类型概述:Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间Java中数据类型的分类分类:基本数据类型(4类8种) 和引用数据类型

 整数型byte 占一个字节  -128到127short 占两个字  -2^15~2^15-1int 占四个字节 -2^31~2^31-1long 占八个字节 -2^63~2^63-1浮点型float 占四个个字节 -3.403E38~3.403E38double 占八个字节-1.798E308~1.798E308字符型char 占两个字节 0~65535布尔型boolean   boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小  

注意事项作用域 :变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。初始化值:没有初始化值不能直接使用在一行上可以定义多个变量,但是不建议只定义一个

数据转换默认转换byte,short,char—int—long—float—doublebyte,short,char相互之间补转换,他们参与运算首先转换为int类型强制转换目标类型 变量名=(目标类型)(被转换的数据);boolean类型不能转换为其他的数据类型

运算符 加法(+):      1、加法   System.out.println("a+b="+(a+b))  ,此处是求(a+b)的值     2、正数    int b = +3;  此处表示b是正数3     3、字符串连接符   System.out.println("a=“+a+"b="+b))   ‘+’为字符串连接符号,不参与运算,显示的为 a=a,b=b 除法(/):1、整数相除,只能得到整数2、要想得到小数,可以*1.0/和%的区别:除法和平时用法一样,取模就是取余数,负数对正数取模结果为负数。正数对负数取模结果为正数。举个栗子:-2%5= -2  -2是被模数,5是模数,负数的取模运算结果是不是负数看左边。++和--的应用:++运算单独存在时放左放右是没有区别的,参与其他运算时 b = ++a相等于 b = a+1 ,b = a++ b应为a的初始值,a为a+1赋值运算符符号:= , +=, -=, *=, /=, %==为基本的赋值运算符,其他的为扩展的赋值运算符=赋值号+=加赋值把左边和右边的结果赋值给左边。注意:左边不能是常量关系运算符 比较运算符的结果都是boolean型,也就是要么是true,要么是false。比较运算符“==”不能误写成“=” 。

 

第三章

 

逻辑运算符

基本用法

     逻辑运算符一般用于连接boolean类型的表达式或者值。     表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。          算术表达式:a + b          比较表达式:a == b(条件表达式)特点:偶数个不改变本身。举个栗子:       用来连接boolean模式的表达式         &(与):  35        两边都是true,结果是true,否则都是false        true & true = true ;        true & false = false;        false & true = false;        false & false = false ;       |(或):  x5        两边都是false,结果是false,否则都是true        true | true = true ;        true |  false = true;        false |  true = true;        false |  false = false ;        ^(异或):         两边相同为false,两边不同为true。        true ^ true = false ;        true ^  false = true;        false ^  true = true;        false ^  false = false ;        !(非):        true = false;“&”和“&&”的区别:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。异或( ^ )与或( |)的不同之处是:当左右都为true时,结果为false。位运算符 

:右移稍微复杂一点,如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1。相当于除以2的倍数 >>>:无论最高位是1还是0,左边被移空的高位都填入0。 看结果:总结相当于乘以或者除以2的多少次幂。 1为真0为假。 &:有0则0,可以用来取二进制中的有效位1。|:有1位为1,结果为1^:相同则0,不同则1 ,a^b^b  a异或b两次还是a。~:按位取反  6取反 ~6+1=-6

三元运算符格式:(关系表达式)?表达式1:表达式2   如:z=(x>y)?x:y 如果条件为true,运算后的结果是表达式1如果条件为false,运算后的结果是表达式2和if else 的简写差不多一定要返回一个变量或者值不能是其他语句。键盘录入的基本格式1.导入包: import  java.util.Scanner;2.在main函数中实例化对象: Scanner sc = new Scanner(System.in);        接受用户输入:            2.1) 接收整数:                int num = sc.nexInt();        2.2)    接收字符串:                String str = sc.next();        2.3)接收浮点值:                   double val = sc.nextDouble();     在Scanner类中,有一些:hasNextXxxx()方法,这些方法可以先期判断是否能够获取一个Xxxx的值,如果可以,此方法返回true,否则返回false  流程控制语句流程控制语句分类 顺序结构选择结构循环结构选择结构的分类if语句switch语句if语句有几种格式格式1

         if(关系表达式) ;{                  语句体          } 复制代码

  执行流程      先计算比较表达式的值,看其返回值是true还是false。      如果是true,就执行语句体;      如果是false,就不执行语句体;  选择结构if语句注意事项  a:比较表达式无论简单还是复杂,结果必须是boolean类型  b:if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。  c:一般来说:有左大括号就没有分号,有分号就没有左大括号格式2

   if(关系表达式){                               语句体          }else{                  语句体          }; 复制代码

  执行流程:       首先计算比较表达式的值,看其返回值是true还是false。       如果是true,就执行语句体1;       如果是false,就执行语句体2;   注意事项:else后面是没有比较表达式的,只有if后面有。  if语句的格式2和三元的相互转换问题:     当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果,在其他的时候三元运算符的操作都可以使用if语句改进  格式3

          if(关系表达式){                                 语句体          }else if(关系表达式) {                  语句体          }           ...          else{                  语句体          }; 复制代码

执行流程:       首先计算比较表达式1看其返回值是true还是false,       如果是true,就执行语句体1,if语句结束。       如果是false,接着计算比较表达式2看其返回值是true还是false,       如果是true,就执行语句体2,if语句结束。       如果是false,接着计算比较表达式3看其返回值是true还是false,       如果都是false,就执行语句体n+1。  注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示选择结构   switch语句格式         

        switch(表达式) {                     case 值1:                           语句体1;                          break;                       case值2:                           语句体2;                           break;                           …                     default:                           语句体n+1;                        break;           } 复制代码

格式解释1.switch表示这是switch语句        表达式的取值:byte,short,int,char        JDK5以后可以是枚举        JDK7以后可以是String2.case后面跟的是要和表达式进行比较的值3.语句体部分可以是一条或多条语句4.break表示中断,结束的意思,可以结束switch语句5.default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。执行流程首先计算出表达式的值其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 注意事项1."表达式"可以产生的值:byte,short,int,char,枚举(JDK5以后),String(JDK7以后)2.case语句后跟"常量表达式",不能是"变量";而且不能出现相同的常量值;3.break;语句"不是必须的"。如果不写,如果一旦case相应的值成功,但内部没有break语句,那么将会无条件(不再进行case匹配)的继续向下执行其它case中的语句,直到遇到break;语句或者到达switch语句结束。4.多个case之间,没有顺序关系;5.default语句"不是必须的"。可以不写,它就相当于多重if语句中最后的else。6.default语句和case语句"没有顺序关系"选择结构if语句和switch语句的区别switch建议判断固定值的时候用if建议判断区间或范围的时候用

现有黑马教程2000G,欢迎互换项目资源共同进步!  QQ 1481135711 

逻辑运算符

基本用法

     逻辑运算符一般用于连接boolean类型的表达式或者值。     表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。          算术表达式:a + b          比较表达式:a == b(条件表达式)特点:偶数个不改变本身。举个栗子:       用来连接boolean模式的表达式         &(与):  35        两边都是true,结果是true,否则都是false        true & true = true ;        true & false = false;        false & true = false;        false & false = false ;       |(或):  x5        两边都是false,结果是false,否则都是true        true | true = true ;        true |  false = true;        false |  true = true;        false |  false = false ;        ^(异或):         两边相同为false,两边不同为true。        true ^ true = false ;        true ^  false = true;        false ^  true = true;        false ^  false = false ;        !(非):        true = false;“&”和“&&”的区别:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。异或( ^ )与或( |)的不同之处是:当左右都为true时,结果为false。位运算符 

:右移稍微复杂一点,如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1。相当于除以2的倍数 >>>:无论最高位是1还是0,左边被移空的高位都填入0。 看结果:总结相当于乘以或者除以2的多少次幂。 1为真0为假。 &:有0则0,可以用来取二进制中的有效位1。|:有1位为1,结果为1^:相同则0,不同则1 ,a^b^b  a异或b两次还是a。~:按位取反  6取反 ~6+1=-6

三元运算符格式:(关系表达式)?表达式1:表达式2   如:z=(x>y)?x:y 如果条件为true,运算后的结果是表达式1如果条件为false,运算后的结果是表达式2和if else 的简写差不多一定要返回一个变量或者值不能是其他语句。键盘录入的基本格式1.导入包: import  java.util.Scanner;2.在main函数中实例化对象: Scanner sc = new Scanner(System.in);        接受用户输入:            2.1) 接收整数:                int num = sc.nexInt();        2.2)    接收字符串:                String str = sc.next();        2.3)接收浮点值:                   double val = sc.nextDouble();     在Scanner类中,有一些:hasNextXxxx()方法,这些方法可以先期判断是否能够获取一个Xxxx的值,如果可以,此方法返回true,否则返回false  流程控制语句流程控制语句分类 顺序结构选择结构循环结构选择结构的分类if语句switch语句if语句有几种格式格式1

         if(关系表达式) ;{                  语句体          } 复制代码

  执行流程      先计算比较表达式的值,看其返回值是true还是false。      如果是true,就执行语句体;      如果是false,就不执行语句体;  选择结构if语句注意事项  a:比较表达式无论简单还是复杂,结果必须是boolean类型  b:if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。  c:一般来说:有左大括号就没有分号,有分号就没有左大括号格式2

   if(关系表达式){                               语句体          }else{                  语句体          }; 复制代码

  执行流程:       首先计算比较表达式的值,看其返回值是true还是false。       如果是true,就执行语句体1;       如果是false,就执行语句体2;   注意事项:else后面是没有比较表达式的,只有if后面有。  if语句的格式2和三元的相互转换问题:     当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果,在其他的时候三元运算符的操作都可以使用if语句改进  格式3

          if(关系表达式){                                 语句体          }else if(关系表达式) {                  语句体          }           ...          else{                  语句体          }; 复制代码

执行流程:       首先计算比较表达式1看其返回值是true还是false,       如果是true,就执行语句体1,if语句结束。       如果是false,接着计算比较表达式2看其返回值是true还是false,       如果是true,就执行语句体2,if语句结束。       如果是false,接着计算比较表达式3看其返回值是true还是false,       如果都是false,就执行语句体n+1。  注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示选择结构   switch语句格式         

        switch(表达式) {                     case 值1:                           语句体1;                          break;                       case值2:                           语句体2;                           break;                           …                     default:                           语句体n+1;                        break;           } 复制代码

格式解释1.switch表示这是switch语句        表达式的取值:byte,short,int,char        JDK5以后可以是枚举        JDK7以后可以是String2.case后面跟的是要和表达式进行比较的值3.语句体部分可以是一条或多条语句4.break表示中断,结束的意思,可以结束switch语句5.default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。执行流程首先计算出表达式的值其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。 注意事项1."表达式"可以产生的值:byte,short,int,char,枚举(JDK5以后),String(JDK7以后)2.case语句后跟"常量表达式",不能是"变量";而且不能出现相同的常量值;3.break;语句"不是必须的"。如果不写,如果一旦case相应的值成功,但内部没有break语句,那么将会无条件(不再进行case匹配)的继续向下执行其它case中的语句,直到遇到break;语句或者到达switch语句结束。4.多个case之间,没有顺序关系;5.default语句"不是必须的"。可以不写,它就相当于多重if语句中最后的else。6.default语句和case语句"没有顺序关系"选择结构if语句和switch语句的区别switch建议判断固定值的时候用if建议判断区间或范围的时候用

 

配套资料可以找我要 1481135711



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭