Javase学习day1-前置知识
1、什么是计算机
2、 硬件及冯诺依曼结构
3、软件及软件开发
4、常用的快捷键
5、常用的Dos命令
常用的Dos命令:(基本都是在cmd里面写的)
#盘符切换:直接输入那个盘符的名字加一个冒号就行。
#切换目录: cd change directory(这是英文缩写)
真正的命令应该是:cd \d 路径
#返回上一级 cd ..
#清理屏幕 cls (英文简写为clean screen)
#查看电脑的ip ipconfig
#快捷键打开计算器:直接在cmd里面输入:calc (这个是英文calculate的简写)
#快捷键打开画图:直接在cmd里面输入:mspaint
#快捷键打开记事本:直接在cmd里面输入:notepad
#ping命令:例如:ping www.baidu.com (查看百度这个网站的信息)
#文件操作(一系列操作)
创建文件夹:md 目录名
cd 目录名
在这个文件夹里面创建一个文件:cd> 文件名
删除文件:del 文件名
删除空的之前创建的文件夹:rd 目录名
6、计算机语言发展史
7、java的特性和优势
8、java三大版本
9、jdk,jre,jvm的关系图
10、java程序运行机制。
11、一些核心的概念需要知道的。
(1)编译型语言
定义:编译型语言在程序运行之前,将整个源代码翻译成目标代码(通常是机器语言或字节码),然后将这个目标代码执行。
特点:
- 预编译:程序在运行之前需要经过一个编译过程。这一过程将源代码转换为可执行文件。
- 执行效率高:由于编译生成的是机器代码,计算机可以直接执行,因此运行效率较高。
- 错误检测:编译时会检测语法错误,开发者在运行程序之前可以修正这些错误。
- 平台依赖:编译后的代码通常与特定平台相关,不同平台可能需要重新编译。
示例语言:C、C++、Rust、Go 等。
(2)解释型语言
定义:解释型语言在程序运行时逐行读取源代码并立即执行,而不是事先编译成目标代码。
特点:
- 即时执行:源代码在运行时被逐行解释执行,无需单独的编译步骤。
- 易于调试:开发者可以直接运行代码并测试部分功能,方便调试和修改。
- 跨平台性强:因为源代码在运行时被解释,可以在不同平台上运行,只要有相应的解释器。
- 执行效率低:由于每次运行时都需要解释,整体运行速度通常比编译型语言慢。
示例语言:Python、JavaScript、Ruby、PHP 等。
(3)混合型语言
一些语言结合了这两种方法,例如:
- Java:首先将源代码编译成字节码,然后通过 Java 虚拟机(JVM)解释执行。这样可以实现跨平台性,同时保持相对较高的执行效率。
- C#:类似于 Java,首先编译为中间语言(IL),然后通过 .NET 运行时解释执行。
总结
- 编译型语言:需要先编译,运行效率高,但不便于快速调试。
- 解释型语言:逐行解释执行,便于调试和跨平台,但速度较慢。
12、关于java的一些知识
一、jdk,jre,jvm的基本概念
1. JVM(Java Virtual Machine)
定义:JVM 是一种能够执行 Java 字节码的虚拟机。它为 Java 应用程序提供了一个运行环境,可以使得 Java 程序在不同的操作系统上运行而无需修改。
特点:
- 平台独立性:JVM 使得 Java 程序可以在任何安装了相应 JVM 的平台上运行。
- 内存管理:负责内存分配和垃圾回收。
- 执行字节码:将 Java 编译器生成的字节码转换为机器代码并执行。
2. JRE(Java Runtime Environment)
定义:JRE 是 Java 运行时环境,提供了运行 Java 应用程序所需的最小环境。它包含 JVM 和支持 Java 应用运行的核心类库和其他文件。
特点:
- 包含 JVM:JRE 中包含 JVM,因此可以执行 Java 程序。
- 不包括开发工具:JRE 不包含用于开发 Java 应用程序的工具,如编译器(javac)。
3. JDK(Java Development Kit)
定义:JDK 是 Java 开发工具包,提供了开发 Java 应用程序所需的工具和环境。它包含 JRE 和一套开发工具。
特点:
- 包含 JRE 和 JVM:JDK 内含 JRE 和 JVM,因此可以运行 Java 程序。
- 开发工具:包括编译器(javac)、调试工具、文档生成工具等,用于开发和测试 Java 应用程序。
三者的联系与区别
特性 | JDK | JRE | JVM |
---|---|---|---|
定义 | Java 开发工具包 | Java 运行时环境 | Java 虚拟机 |
功能 | 用于开发和运行 Java 程序 | 用于运行 Java 程序 | 执行 Java 字节码 |
包含内容 | 包含 JRE 和开发工具 | 包含 JVM 和类库 | 独立的虚拟机环境 |
适用对象 | 开发者 | 普通用户 | JVM 用户(Java 应用) |
总结
- JDK 是开发 Java 应用的完整工具包,包含 JRE 和开发工具。
- JRE 是运行 Java 应用程序的环境,依赖 JVM 来执行字节码。
- JVM 是执行 Java 字节码的虚拟机,为 Java 提供了跨平台的能力。
二、c++与java的区别
1. 内存管理
-
C++:
- 允许开发者直接管理内存,使用指针进行内存分配(如
new
和delete
)。 - 开发者需要自己负责资源的释放,容易导致内存泄漏或悬空指针问题。
- 允许开发者直接管理内存,使用指针进行内存分配(如
-
Java:
- 自动内存管理,使用垃圾回收机制(Garbage Collection)来回收不再使用的对象。
- 不支持指针,但可以通过引用来访问对象,这样避免了直接操作内存的复杂性和风险。
2. 指针与引用
-
C++:
- 支持指针,允许进行复杂的内存操作和数据结构(如链表、树等)的实现。
- 指针可以指向任何类型的数据,也可以进行算术运算。
-
Java:
- 不支持指针概念,使用引用来代替。引用可以被视为指向对象的“安全指针”。
- 由于没有指针,Java 程序在处理内存安全性方面更有保障。
3. 性能
-
C++:
- C++ 是编译型语言,通常编译成机器码,可以直接在硬件上运行,因此具备较高的执行速度。
- 允许低级别的优化,开发者可以针对特定硬件进行优化。
-
Java:
- Java 是解释型语言,编译成字节码后通过 JVM 执行。尽管现代 JVM 使用即时编译(JIT)技术来提高性能,但通常仍比 C++ 稍慢。
- 垃圾回收和自动内存管理的开销也会影响性能。
4. 平台独立性
-
C++:
- 编译后的程序与操作系统密切相关,移植性较差。
-
Java:
- 一次编写,到处运行(Write Once, Run Anywhere),通过 JVM 实现跨平台能力。
5. 多重继承
-
C++:
- 支持多重继承,可以从多个类继承属性和方法。可能导致菱形继承问题。
-
Java:
- 不支持多重继承(类),但可以通过接口实现多重继承的效果。
总结
C++ 的灵活性和高性能使其适合底层系统开发和高性能应用,而 Java 的安全性和跨平台能力使其在企业级应用和网络应用中更受欢迎。选择哪种语言取决于具体的应用需求和开发环境。