AP CSA 01 - 一些基础

写在前头: 学习编程不要妄想自己什么都能一行行搞懂,所有无法理解的东西且本文我说了你不用知道的东西完全不用在乎,因为一时半会影响不了你的学习,学到后面有了一定的知识积累或者渐渐理解编程的本质之后,通过查阅文档,就能自然而然的理解那些当年不知道的内容。
当然,我会尽力把所有的点“为什么出现?”、“解决什么问题?”、“与先前的有什么关系?”介绍清楚,希望你不会因为到一半跟丢了就跟不上了。
先介绍一些编程基础概念 (考试不考,但我要说):
1. 编译 (Compile)
首先,我们都知道,电脑只认识0和1,所以你写的代码它当然是看不懂的。正是因为如此,需要编译。
编译就是指把你写的代码转换为机器码的过程,但是我需要强调的是现在编程语言普遍分为3种,运行效率由高到低如下:
- 编译型,指你写的代码会被完全编译成汇编语言,至于汇编是啥你不用管,你只需要知道这玩意跟000111的二进制是差不多一个级别的底层玩意就行,运行速度最快,缺点是很繁琐,写的比较慢,而且需要手动管理内存,没管好就爆了,例如:C/C++、Rust、Go。
- 托管型(Java所在的类型),指你写的代码会被翻译成一种中间语言,交给运行器托管运行,运行器看这种中间语言效率相对较高,虽然运行效率略低于编译型,但是会比解释型要强不少,它的优势在于,可以自动释放内存,不用考虑跑着跑着内存爆了的问题,例如:Java、C#。
- 解释型(又称脚本型),指你写的代码会被运行器一行一行看着执行,虽然有些语言会有优化,也不需要手动管理内存,但是总的来看,还是效率最低,例如:Python、JavaScript。
「实际情况比这里说的要复杂得多,这里只是一个简化模型,帮助理解不同语言的大致类别。至于管理内存的问题由于JAVA是托管型,我们不需要考虑这个问题,不理解可以直接不理它」
2. 运行 (Run)
指你的代码被实际跑在设备上的过程
3. 环境 (Environment)
代码不是能凭空编译和运行的,代码是给人看的,只有机器码才是机器看的,尤其是后面两种类型的编程语言也不是能直接独立运行的,需要一个运行器或者编译器,电脑里装上这个的过程叫做配环境
属于Java的特殊概念
Java因为是托管型语言,所以是跑在一个叫做 JVM (Java Virtual Machine) 的虚拟机上的,这里又有同学要问了,”虚拟机是什么”,了当的说就是一个不真实的环境,类似给你的代码套了个壳,你的代码在壳里面跑,至于壳是怎么跑在电脑上的你不用管,上面说了环境是装在你电脑上的,出来的东西是直接和电脑硬件交互,那么不直接跑在你电脑硬件上的都叫虚拟机,Java为了能一套代码能在各种平台上运行,比如Windows电脑、Mac电脑、Linux电脑、Android手机,这个叫做跨平台,所以给每个设备都准备了一种虚拟机,你的代码不用变,就能直接依靠这个虚拟机跑在各个不同的设备上,结合前面的东西图示如下

(注:图片内容有点问题,iOS由于系统的特殊性不允许托管型语言,所以跑不了)
图标资源来自:icons8
接下来是 JAVA 的 两种工具类型:
- JRE (Java Runtime Environment) ,只有 JVM,没有上面的编译器,只能用来跑,没法编译,这个是给用户装的
- JDK (JAVA Development Kit),既有 JVM 还有编译器,已经包含了 JRE 了,写代码装这个
配环境
接下来是装 JDK 配环境,直接看别人写好的文章就好了,我不造轮子了
为了方便我们看和写代码,我们需要一个专门的工具来写,你总不可能拿记事本写不是?
AP官方内推荐使用 IntelliJ IDEA,但是这玩意是给大项目用的,我们只是学习个语言,犯不着这么高级的东西,于是我们使用 Visual Studio Code
下载这个 VS Code -> https://code.visualstudio.com/Download
然后调中文这一步我就不教了,都要考 AP 了还调什么中文,有需要的可以自行 Google 搜索
接下来为了能在 VS Code 丝滑的写 Java 代码用于练习安装 Java 插件
我们可以在这里看到一个这个Extensions图标,点开它

然后在搜索框内搜索 Java,然后根据图示安装 Extension Pack for Java

写代码
这一步我们先开始试着跑出来第一个代码,让我们来尝试一下,首先先在 VS Code 里面打开一个文件夹

点开左上角 Files -> Open Folder 选一个你喜欢的地方确定
Java程序是以类为单位运行的,所以我们需要创建一个新的类
然后在左侧的导航栏打开最上面的 Explore,右键 Explore 的空白处 New Java File -> Class...,顶上会弹出来让你写文件名,把文件名敲进去回车,你应该能看到这个
1 | public class <你刚刚敲进去的文件名> { |
这个就是一个Java的类,我们先不管它是做啥的
在这个地方里面直接粘贴下面的代码,后面的章节我会解释这个什么意思
1 | public static void main(String[] args) { |
然后右上角点一下那个小三角▶️,不出意外你应该能看到下面大致长这样:

你看到那个 Hello World 就是成功了
注释 (Comments)
有些时候我们需要给别人或者未来的自己留下一些备注,告诉他们有一部分是干什么用的,既然是备注就应该是给人读的不是给机器读的,所以机器看到注释会直接跳过不看,你可以在注释里面塞任何的东西,不会影响程序
注释有两种方式:
//本行后面的所有内容都会被转成注释,编译器都不看/* */被/*和*/包裹住的内容都会变成注释,可以跨行
比如:
1 | //这一行内后面的都会变成注释 |
一定一定要注意的
编程中的所有符号全部给我用英文的半角符号,不知道这是啥的就给我切成英文再写代码,或者直接把中文输入法关了,比如逗号,区分一下:, 这个是中文的,, 这个是英文的
中文的是全角符号,会比英文的宽好多,而且会圆润一点,你敲中文的编译器不认识,敲错了没看出来别说你编程是我教的
以下是容易敲错符号的列表,代码跑不起来的时候请自查符号问题:
| 符号名称 | 中文符号 | 英文符号 |
|---|---|---|
| 逗号 comma | , | , |
| 分号 semicolon | ; | ; |
| 句点 period | 。 | . |
| 小括号 curve | ( ) | ( ) |
| 中括号 square bracket | 【 】 | [ ] |
| 大括号 bracket | 「 」 | { } |
| 感叹号 bang or shriek | ! | ! |
| 双引号 double quotes | “ ” | " " |
| 单引号 single quote | ‘ ’ | ' ' |
输出 (有叫打印 Print)
计算机是用来计算的,它算完了总得告诉我们算了啥,所以就有了输出,刚才你在底下那块区域看到的 Hello World 就是输出的内容,那个地方叫做控制台,我们的输出就会出现在那里
这里是 AP 选择题的一个考点,有关于 Java 程序的输出
像刚刚我们在上方看到的如下代码
1 | public static void main(String[] args) { |
里面的
1 | System.out.println("Hello World"); |
就是 Java 中的输出语句,它会将双引号里面的内容打印 (Print) 到你的控制台上,就像上面的图片里那样

这里我们就要引申出 AP 计算机科学一个我都不知道考了有什么意义的考点了,输出的两种语句
Java 的输出有两个语句,一个是你上面看到的 System.out.println("Hello World");
还有一个是下面这里的
1 | System.out.print("Hello World"); |
它们的区别就是一个 ln,那么这一个 ln 究竟区别有多大呢?
我们用下面的例子来理解一下:
1 | //我们先执行一下 |
执行之后的输出结果是这样的:
1 | Hello AP Computer Science A |
我相信细节的小伙伴已经发现区别了,没错不带 ln 的输出后不换行,带 ln 的输出后会进行换行,那么接着它打印的内容就会出现在下一行
那么这里我就可以放一个我对练习题的改编题了,题目如下:
1 | System.out.println("My Name is PLFJY"); |
What is printed as a result of executing the code segment above?
A.
My Name is PLFJY I Love
AP Computer Science A
Glad to See you
B.
My Name is PLFJY
I Love AP Computer Science A
Glad to See you
C.
My Name is PLFJY
I Love AP Computer Science A
Glad to
See you
D.
My Name is PLFJY
I Love
AP Computer Science A
Glad to
See you
正确答案是 B,解析:
第1行 System.out.println("My Name is PLFJY"); 带ln,所以下一行换行输出,所以此时输出内容如下
1 | My Name is PLFJY |
第2行 System.out.print("I Love "); 不带 ln,所以下一行不换行输出,当前控制台上的内容如下
1 | My Name is PLFJY |
第3行 System.out.println("AP Computer Science A"); 带 ln,所以下一行换行输出,当前控制台上的内容如下
1 | My Name is PLFJY |
第4行 System.out.print("Glad to "); 不带 ln,所以下一行换行输出,当前控制台上的内容如下
1 | My Name is PLFJY |
第5行 System.out.println("See you"); 带 ln,所以下一行换行输出,但是已经是最后一句了所以没啥影响,最后控制台上的内容如下
1 | My Name is PLFJY |
本章节到此结束
- Title: AP CSA 01 - 一些基础
- Author: 零风PLFJY
- Created at : 2025-07-21 11:22:21
- Updated at : 2025-12-06 22:44:55
- Link: https://blog.plfjy.top/ap-csa/01-basic-concept/
- License: This work is licensed under CC BY-NC-SA 4.0.