【JavaSE基础】00-计算机基础及环境搭建
原文写于 2016 年,个人学习笔记,闲来无事,搬运至此,希望于各位有用。主要内容是:Java 开发基础,包括环境变量配置、DOS 命令 13 条、Hello World 程序、Eclipse 基本配置和操作。
文章目录
- Java 开发基础
- 计算机基础常识
- Java语言介绍
- Java开发环境搭建
- JDK的下载和安装
- JDK中的命令行工具
- 命令行简介
- 配置环境变量的两种方式
- Eclipse IDE
- 编写运行 Hello World
- 常见错误信息--`找不到文件`
- Eclipse个性配置与基本操作
- Eclipse个性化配置
- 项目和工作空间
Java 开发基础
主要内容:
- 计算机基础常识
- Java语言介绍
- Java 开发环境的搭建
- Eclipse 开发第一个程序
- Eclipse 个性配置与基本操作
计算机基础常识
计算机的应用
- 1、科学计算『第一台计算机的诞生』
- 2、数据处理『
数据
:图片、文字、音频等;处理
:对数据进行的收集、存储、分类、计算、传输等』 - 3、自动控制
- 4、计算机辅助技术
- 5、人工智能–中医专家诊断系统 模拟明医给患者诊病开方
- 6、多媒体网络应用
- 7、计算机网络
计算机硬件是计算机软件运行的基础『物质』。
主要硬件:『CPU、主板、内存、显卡、显示屏等』
计算机软件
主要软件分为两大类:系统软件和应用软件
系统软件(操作系统) | 应用软件 |
---|---|
DOS(Disk Operating System) Windows Unix Linux Mac | 系统软件自带应用『类似计算器、记事本』 |
Android IOS WindowsPhone | 用户自安装应用『QQ、YY、LOL』 |
P.S.
- DOS系统是命令行方式操作系统,为了便于用户的操作,后来产生了图形化界面操作的操作系统,也就是Windows系统
- 系统软件和应用软件都是用计算机语言编写出来的,计算机语言调用底层指令处理数据
软件开发
1、软件是一系列按照特定顺序组织的计算机数据和指令的集合。
- 数据就是指现实生活中的年龄、姓名等信息
- 指令就是告诉计算机如何对数据进行处理
2、 软件开发就是借助开发工具与计算机编程语言制作软件。
计算机语言
1、自然语言:人与人之间沟通交流的各种表达符号
2、计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言『C\C++、C#、Java、Python、Object-C…』
人机交互
软件的出现实现了人与计算机之间的更好的交互。
- 命令行界面(Command Line Interface CLI):通过控制台输入特定的指令,让计算机完成制定操作。需要记忆大量的指令,较为麻烦,像是早期的DOS系统
- 图形化界面(Graphical User Interface GUI):为了方便用户的简便操作,由CLI逐渐发展而来交互方式。简单直观,易于接受和上手操作,像是由DOS而来Windows系统
Java语言介绍
Java语言是SUN公司(StanfordUniversityNetwork,斯坦福大学网络公司)1995年推出的一门高级编程语言。Java语言是一门面向 Internet 的编程语言。随着Java技术在web方面的不断成熟,Java语言已经成为Web应用程序的首选开发语言。
Java语言是开源『Open Source』
,完全面向对象
,安全可靠,与平台『操作系统』无关
的编程语言。
Java语言的技术架构:
1、JavaSE 标准版:是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成的一些桌面应用程序的开发,比如Java版的扫雷。
2、JavaEE 企业版:是为开发企业环境下的应用程序提供的解决方案。该技术体系中包含的技术如Servlet、Jsp等,主要针对于Web应用程序开发。
3、JavaME 小型版:是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。
Java语言特点
简单性、解释性、面向对象、高性能、分布式长处理、多线程、动态、安全、体系结构中立、开源『Open Source』
、跨平台性
。
1、 开源『Open Source』:开放源代码
2、 什么是跨平台性?
通过Java语言编写的应用程序可以在不同的操作系统平台中运行。亦即可移植性
。一次编写, 到处运行『Write Once, Run Anywhere』
3、跨平台性的原理是什么?
只要在需要运行Java应用程序的操作系统中,先安装一个Java虚拟机(JVM : Java Virtual Machine) 即可,由JVM来调用操作系统底层指令解析、执行Java程序,从而在该操作系统中运行。
因为有了JVM,所以同一个Java程序在各种不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性,也就是说Java语言具有好的可移植性*。
明确:JAVA语言具有跨平台性,但是JVM不具有跨平台性,在不同的操作系统下具有不同版本的JVM。
C\C++语言编写的程序在Windows系统中可以直接运行,在Linux中则不可以。这是因为Windows系统使用C\C++语言编写的,Windows中内置了C\C++的解析器,所以C\C++可以直接在Windows系统中运行。但Java语言编写的程序如果要在Windows系统中运行,就需要在Windows系统中安装一套能够解析、执行Java程序的软件,也就是JVM( Java虚拟机 )。类似的,在Linux、Mac系统中执行Java语言编写的程序也需要安装各自的系统对应的应用。通过这种方式,就实现了Java语言“一次编译,到处运行”的跨平台性。JVM的作用就是搭建了Java语言编写的程序与操作系统之间的桥梁。
Java开发环境搭建
使用任何一门语言之前必须首先搭建环境。
什么是JRE、JDK
1、 JRE(Java Runtime Environment:Java有运行时环境)
包括Java虚拟机(JVM:Java Virtual Machine)和Java程序所需的核心类库(Java Class Library)。如果想要运行一个开发好的Java程序,计算机中只需要安装JRE就可以了。
2、 JDK(Java Development Kit::Java开发工具包)
JDK提供给Java开发人员使用的,其中主要包含了Java的开发工具以及JRE。所以理论上,安装了JDK就不需要单独安装JRE了。其中的开发工具有编译工具(javac.exe)、打包工具(jar.exe)等。
简而言之:使用JDK开发完成的Java程序交给JRE执行,由JVM保证跨平台性
。
为什么JDK中包含一个JRE呢?
开发完成的Java程序,需要执行得出结果以保证程序的正确性。最重要的是:JDK中的开发工具(如javac.exe、jar.exe等)其实都是Java语言编写的应用程序。为了放方便使用才打包成exe文件。如果没有JRE,那么开发工具是没有办法正常执行的。
总结:
JRE = JVM + 类库(Java Class Library)
JDK = JRE + Java开发工具
JDK的下载和安装
1、下载JDK(Java Development Kit:Java开发工具包)
(1)、访问 www.oracle.com,点击Downloads下的JavaforDevelopers。
(2)、点击JDK下的DOWNLOAD按钮。
P.S.:8u45代表JDK8版本,45代表子版本,u是update(更新)的缩写。
(3)、在下载之前,首先需要接受JDK的许可证协议,然后再点击jdk-8u45-windows-i586.exe(32位)/jdk-8u45-windows-x64.exe(64位)进行下载。
P.S.
Windowsx86对应的是windows32位系统。
Windowsx64对应的是windows64位系统。
2、安装JDK
(1)、双击“jdk-6u21-windows-i586.exe”文件,点击“下一步”。
(2)、继续点击“下一步”。
默认安装目录为“C:\ProgramFiles(x86)\Java\jdk1.6.0_21\”,可以通过“更改”按钮对安装路径进行自定义至":\Java\jdk1.6.0_21" 路径下。
P.S.
安装路径中不要有中文或者特殊符号如空格等,否则后期开发中可能出现一些莫名其妙的错误。
(3)、继续点击“下一步”。
正在安装中…复制文件结束,安装JDK完毕。
(4)、接下来出现的对话框是询问是否安装JRE(Java运行环境),这是可选的,因为JDK中已经包含开发环境和运行环境(JRE)两部分。所以不需要安装,一般情况建议安装,也可以直接点击“取消”按钮。
(5)、点击“关闭”按钮,安装完毕。
P.S.:
JDK无需每次都安装,因为其本身就是绿色版本,可以直接存入U盘,在任何计算机上都可以直接使用。
采用安装的方式使用JDK的好处在于其会在注册表中被注册,当JDK出现新版本,会自动更新
JDK中的命令行工具
1、JDK安装目录下的bin(binary)文件夹是二进制文件所在的目录,其中的exe文件(都是使用java语言编写)都是开发Java程序所需要的命令文件。
P.S.
这些命令文件并非是图形化方式操作的(双击执行是无效的),而是命令行方式操作的命令文件,所以需要首先打开命令行窗口。
2、打开DOS命令行窗口有两种方式。
(1)、点击"开始"–>“运行”–>“输入’cmd’”–>按下’Enter’键。『直接使用快捷键’Win + R
’』
(2)、点击"开始"–>“所有程序”–>“附件”–>“命令提示符”。
(3)、Win7之后,可以在任意文件夹下,使用Shift + 右键菜单
–> 点击"在此处打开命令窗口"。
3、进入到JDK安装目录下的bin目录。
4、输入javac(.exe可以不写),出现如下显示,说明JDK已经可以使用了。
命令行简介
常用的 Windows DOS 命令
dir(directory):列出当前目录下所有的文件以及文件夹
md(make directory):创建目录
rd(remove directory):删除目录
cd(change directory):进入指定目录
cd … :退回到上一级目录
cd \ :退回到根目录
del (delete):删除文件或文件夹
cls:清空屏幕内容
exit:退出DOS命令
13个示例轻松掌握常用DOS命令:
(1)、查看D盘下的目录
(2)、查看指定文件夹下的目录使用cd 文件夹名称的时候,输入到一定长度,可是使用Tab
键快速补全。
当输入到“Baidu”的时候,使用Tab
键补全,获取的是以"Baidu"开头的所有文件夹的第一个(按照字符编码顺序列出所有"Baidu"开头的文件夹)
(3)、通过通配符的方式更方便的进入指定文件夹
P.S.
“cd Baidu*” 命令中的 “*” 是一种通配符『代表一个或多个字符
』,如果当前目录中有多个文件夹名称都能匹配,那么会自动进入第一个名称匹配的文件夹中。
(4)、退回上一级目录
(5)、退回到根目录
(6)、在D盘根目录下创建新的文件夹。
P.S.
早期操作计算机用DOS操作,因为需要记忆太多的命令,不利于普及,后期发展成图形界面,通过鼠标点击界面的形式操作计算机,底层实际上运行的依然是DOS命令。
(7)、删除文件夹
(8)、新建文件夹,并在此文件夹下创建一个文件,由于此文件夹非空,删除文件夹失败。『Windows 防止误删除采用的机制』
(9)、只有将文件夹下的所有文件和文件夹删除,才能删除该文件夹
P.S.
del *
或del *.*
命令表示删除当前目录下的所有文件。
Windows系统删除文件是从内向外删,文件夹内部的文件如果没有完全删除,文件夹删除必定会失败。
使用rd /s
『提示是否确认删除』或rd /q /s
『不提示直接删除』。
(10)、输入help命令,可以查询所有命令功能
(11)、输入help命令,查询指定命令功能
(12)、输入cls命令,可以清空当前屏幕内容
(13)、输入exit命令,退出命令行工具!
配置环境变量的两种方式
之前在使用的时候,必须保证已经编写的.java
文件必须和javac.exe
在同一个目录下才可以正常的编译,这将会导致bin
文件夹越来越乱,给bin
目录下的文件内容带来了误删除的隐患。
为了能够在DOS命令行窗口中,在任何目录下都可以执行javac命令,就需要将javac.exe命令文件所在目录放在path环境变量中。
原理:
在DOS命令提示符窗口中输入某一个命令后,Windows系统会首先在当前目录下.
查找是否有命令可以执行。如果没有,Windows系统就会在path环境变量路径中查找。如果查找到,就会执行该命令。如果还没有找到,那么就会提示如下信息。
1、如何配置环境变量
- 右击“计算机”–>“属性”。
- 点击“高级系统配置”–>“高级”选项卡–>“环境变量”
- 将javac命令文件所在目录的路径放入path路径中,使用英文";"分割。
- 点击确定。然后,一定要新开一个新的DOS命令行窗口,再输入javac命令,如果出现如下显示,说明path环境变量配置成功。
P.S.
- 一定要将 javac 命令文件所在目录的路径放入 path 环境变量的开头。否则,如果计算机上以前已经安装了其他版本的 JDK 并且也已经配置了path 环境变量,那么先执行的 javac 命令就是以前的 JDK 安装目录下的 javac 命令。因为系统是按照 path 路径从头向后搜索各个目录的。
- 环境变量中的各个路径之间一定要以分号进行分隔。
- 设置 path 环境变量的时候千万不要删除掉原来的内容。否则,很多程序将无法运行。
P.S.
如果一台计算机上安装了多个版本的JDK,通过 javac-version 可以确定当前使用的 JDK 版本。
2、环境变量配置技巧
(1)、新创建一个环境变量JAVA_HOME记录jdk安装目录的路径
(2)、在 path 环境变量中通过 “%%” 动态的获取 JAVA_HOME 的值即可
通过这种方式,如果 JDK 安装目录改变了,那么只需要修改 JAVA_HOME 环境变量即可,而不用再修改path环境变量。
P.S.
%JAVA_HOME% 表示动态获取名称为 JAVA_HOME 环境变量的值。
3、环境变量临时配置方式
如果在别人的计算机上进行Java程序的开发,设置path这样的系统环境变量就不太好,那么就可以采用设置临时环境变量的方式(通过DOS命令中set命令完成)。
(1)、用set命令查看本机的所有环境变量的信息。
(2)、用set命令(“set 变量名”)查看具体某一个环境变量的值。
(3)、用set命令(“set 变量名=”)清空一个环境变量的值。
(4)、用set命令(“set变量名=具体值”)给指定环境变量定义具体值。
(5)、想要在原有环境变量值基础上添加新值。
首先,通过“%变量名%”操作符获取到原有环境变量的值。然后,追加上新值,再赋值给该变量名即可。
P.S.
临时配置环境变量的方式只在当前DOS命令行窗口有效。窗口关闭,配置即消失。
Eclipse IDE
编写运行 Hello World
『开发工具编写好的Java源代码,由javac.exe进行编译,得到的.class字节码文件,交由java.exe解释执行,输出到Console控制台』
(1)、使用Win + R
,输入notepad
,调用记事本,输入以下代码:
class Demo
{public static void main(String[] args){System.out.println("Hello World!");}
}
- HelloWorld:代表学习计算机语言的第一个入门小程序。现在泛指接触任何新事物的第一步。
- class:是 Java 中的关键字,用于定义类,Java 语言的程序代码都需要定义在类中。
- 关键字:被java语言赋予了特殊含义的单词,高级记事本中具有高亮显示『class、public、static、void』。
- Demo:为了方便使用这个类,给类自定义的类名。
{ }
:定义该类中代码的范围。main
方法的作用在于保证一个类可以独立运行,因为它是程序的入口。System.out.print();
语句用于告诉系统输出打印数据,可以将括号中的内容打印在控制台上。通过该语句可以直接在控制台看到 JVM 运行 Java 程序后的结果
(2)、通过 javac 命令对该 java 文件进行编译。
- 有了java源文件,将其编译成JVM可以识别的文件。
- 在该源文件目录下,通过javac编译工具对Demo.java文件进行编译。
- 如果程序没有错误,没有任何提示,就会在当前目录下出现一个Demo.class文件,该文件称为字节码文件,也就是可以执行的java的程序。
(3)、通过 java 命令对生成的 class 文件进行运行。
P.S.:使用 java 命令运行 class 文件,没有必要加上 .class 文件后缀
(4)、javac 命令的作用是对 java 程序进行语法性检查,一旦出错,就会打印出错误信息。
由于System.out.println("hellojava")
语句后面缺少分号,报错。根据报错的行数,找到错误的地方,进行修改。然后重编编译,运行。
(5)、java 命令可以启动 JVM,然后找到相应的 class 文件,再寻找程序入口,也就是 main 方法,然后调用该方法执行 java 程序。
常见错误信息–找不到文件
错误可能原因:
- 文件名写错。
- 类文件不在当前路径下或者不在 classpath 指定路径下。
- 后缀名问题。
后缀名问题 查找及解决方案如下:
- 点击“工具”–>“文件夹选项”–>点击“查看”选项卡,并且勾选掉“隐藏已知文件类型的扩展名”。
- 然后就可以看到文件真正的后缀名为 txt,所以找不到 Demo.java 文件。只需将修改后缀名为 “.java”,再重新编译、运行即可。
配置classpath环境变量
由于可能频繁执行多个 class 文件,并且多个 class 文件可能存储在不同的目录下,那么每次都在命令提示符窗口中切换目录会相当的麻烦。
classpath 环境变量的作用类似于 path 环境变量,但是它的作用在于告诉JVM 去哪里找到 class 文件。
JVM查找类文件的顺序:
- 如果没有配置 classpath 环境变量,JVM 只在当前目录下查找要运行的类文件。
- 如果配置了 classpath 环境,JVM 会先在 classpath 环境变量值的目录中查找要运行的类文件。
示例:
1)、在C盘根目录下新创建一个文件夹,命名为 myclass,将 C:\code
目录下的 Demo.class 文件复制到此文件夹下。
copy srcDirectory destDirectory
2)、 将 C:\code
文件夹中的源文件 Demo.java 修改为在控制台中打印 “你好,世界”,重新编译,生成 Demo.class。
3)、如果想要执行 C 盘根目录下 myclass 文件夹中的 Demo.class,又不想切换目录,由于JVM 会先在 classpath 环境变量值的目录中查找要运行的类文件,可以通过设置环境变量 classpath 为c:\myclass
实现。
set classpath=C:\myclass
示例:
1)、 删除C:\myclass目录下的Demo.class。
del C:\myclass\Demo.class
2)、 在C:\code目录下运行Demo.class文件,报错。
因为 classpath 环境变量已经被赋值,所以即使在 C:\code
目录下存在Demo.class 文件,JVM 也根本不会去查找。
3)、classpath 环境变量值的结尾处如果没有分号,那么 JVM 在 classpath 目录下没有找到要指定的类文件,也不会在当前目录下查找。即使当前目录下有,也不会运行。
4)、classpath 环境变量值的结尾处如果加上分号,那么 JVM 在 classpath 目录下没有找到要指定的类文件,会在当前目录下再查找一次.
示例:
为环境变量 classpath 赋值后加上 “;” 分号,然后在C:\code
目录下运行Demo.class 文件,由下图可见,运行成功。
P.S.:建议配置 classpath 环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用“.”(代表当前目录)表示,这样可读性更好一些。
set classpath=.;%classpath%
Eclipse个性配置与基本操作
Eclipse个性化配置
1)、中文字体太小:窗口(Window)→首选项(Preferences)→常规(General)→外观(Appearance)→颜色和字体(Colors and Font)→基本(Basic)→双击“文本字体(Text Font)”在弹出窗选择“Courier New
”。
2)、我喜欢大括号在同一行:首选项→Java→代码样式(CodeStyle)→格式化程序→编辑(Edit)→花括号(braces),都选“下一行”。写一个名字保存。
3)、配置项目的Java编译器版本:项目右键→属性→Java编译器(Compiler)→启用特定于项目的设置,选择相应版本,建议选择1.7以上,后续讲课也默认1.7。
4)、配置java的源代码,方便研究java类库源码、文档:首选项→Java→已安装的JRE→双击JRE→展开rt.jar→源代码链接,选择JDK中的src.zip。
5)、快捷键:Ctrl+shift+F
格式化代码(如果没反应可能是和别的软件热键冲突,比如搜狗拼音,在输入法条中点击右键“设置属性”→“按键”→“系统功能快捷键”,看到了吗,把所有都取消吧);Alt+/
智能提示;Ctrl+鼠标
查看定义。
项目和工作空间
1)、切换工作空间的方法:**退出重启,如果勾选了【将此值用作初始值并且不再询问】,则文件(File)→切换工作空间(switch workspace),从“工作空间”列表中选择(之前打开过的)或者浏览选择工作空间根目录(包含.metadata)。
2)、如何导入别人的项目到工作空间中:**包资源管理器(Package Explorer)→导入(Import)→常规(General)→现有项目到工作空间中(Existing Projects into Workspace),对话框中选中“选择根目录(Select Root Directory)”→【浏览】→选择项目的根目录(包含.project文件)或者WorkSpace,选择要导入的项目即可。
【JavaSE基础】00-计算机基础及环境搭建相关推荐
- Python基础笔记_Day01_计算机基础知识和Python开发环境搭建
Day01_计算机基础知识和Python开发环境搭建 目录 01.01_计算机基础知识(计算机概述)(了解) 01.02_计算机基础知识(软件开发和计算机语言概述)(了解) 01.03_计算机基础知识 ...
- [Java 教程 00] 计算机基础
前言 我想,来到这的朋友肯定是想学习JAVA或者想要进入IT这个行业的.考虑到大家的基础可能不一样,有些人可能还是用着新买的电脑,为了让大家在后续的学习中更加顺畅.在学习一门全新的计算机语言之前,我需 ...
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
- 视频教程-Python开发零基础入门-计算机基础-Python
Python开发零基础入门-计算机基础 马哥教育Python金牌讲师,国内知名Python技术专家,在Python全栈.Python运维开发.Python数据挖掘.爬虫.人工智能等领域有深入研究,有1 ...
- 公共基础知识计算机,公共基础知识计算机基础知识试题
计算机基础知识是公共基础知识考试的组成成分之一,以下是由学习啦小编整理关于共基础知识计算机基础知识试题的内容,希望大家喜欢! 公共基础知识计算机基础知识试题 1.CPU的主要功能是进行( ). A.算 ...
- 计算机多媒体从时效分,多媒体技术基础大学计算机基础课件.ppt
多媒体技术基础大学计算机基础课件 桂林航专 1.多媒体基本概念 (1)媒体.多媒体及多媒体技术. (2)多媒体信息的类型. (3)多媒体信息处理的关键技术. (4)多媒体计算机的硬件系统和软件系统. ...
- 计算机基础应用知识ppt,计算机应用基础【计算机基础知识】课件.ppt
计算机应用基础[计算机基础知识]课件.ppt <计算机应用基础> 第一章 计算机基础知识 1.1 了解计算机 计算机应用 数值处理:科学计算 信息管理:存储信息.检索信息:资料检索.加工信 ...
- 淄博计算机文化基础试卷,计算机基础 学习情境4
<计算机基础 学习情境4>由会员分享,可在线阅读,更多相关<计算机基础 学习情境4(55页珍藏版)>请在人人文库网上搜索. 1.计算机文化基础 淄博职业学院计算机文化基础课程研 ...
- 大学计算机基础简明教程第二版答案,操作系统基础 大学计算机基础简明教程.ppt...
操作系统基础大学计算机基础简明教程ppt课件 第四章 操作系统 操作系统在计算机软件系统中的地位 操作系统分类 常用操作系统 常用操作系统 常用操作系统 4.2 Windows基础 4.2.1 Win ...
- 消防中计算机基础知识,消防设施操作员基础知识计算机基础知识真题及答案解析.doc...
消防设施操作员基础知识计算机基础知识真题及答案解析 模块八计算机基础知识 第1节 项目1 计算机系统的组成与功能 单选题(江南博哥) 1.()是计算机的核心部分. 输入设备 存储器 中央处理器 主板 ...
最新文章
- 云计算重构渠道商的价值基础,推动渠道商向服务商转型
- 机器学习数据拆分_解释了关键的机器学习概念-数据集拆分和随机森林
- Active Directory 对象授权还原
- Python自然语言处理学习笔记(66):7.7 小结
- 41、Power Query-Text.Combine函数进阶2
- 大学电路题目怎么搜_电路(二),中国大学MOOC(慕课)答案公众号搜题
- java快递追踪系统_物流跟踪(快递100)
- 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用
- LeetCode Hot100 ---- 滑动窗口专题
- 一些基于Java的AI框架:Encog,JavaML,Weka
- php字符集转换,php字符集转换
- 实验五 数据结构综合应用 20162305
- 大数据分析有什么难题
- Objective-C路成魔【18-复制对象】
- js自写字符串 append 方法
- spring接收ajax参数的几种方式
- python读写音频文件小结
- 软件下载地址900款正版
- 微信 Android design 代码,微信代码有哪些_微信隐藏代码介绍_3DM手游
- 消费升级背景下零食行业发展报告_上海日报奥纬陈闻:疫情之下,“小”零食,“大”产业...