111-Lecture1

Simple Java Program,Data,Variables

程序的基本元素,包括类(Class)、主方法(Main() method)和语句(Statements)。变量的使用,包括变量的声明(Declaration)、初始化(Initialization)和赋值(Assignment)。

  1. 类(Class):定义了对象的属性和行为。
  2. 主方法(Main() method):主方法是程序的入口点,它告诉计算机从哪里开始执行程序。它通常被声明为public static void main(String[] args)
  3. 语句(Statements):如变量赋值、方法调用或控制流程(如循环和条件语句)。
  4. 变量(Variables):变量是用于存储数据值的容器。
  5. 声明(Declaration):变量声明是告诉编译器变量的名称和类型的过程。例如,int number;声明了一个名为number的整型变量。
  6. 初始化(Initialization):初始化是在声明变量时给它赋予一个初始值的过程。例如,int number = 10;不仅声明了变量number,还将其初始化为10。
  7. 赋值(Assignment):赋值是将一个值赋给已经声明的变量的过程
    a program is a set of instructions that a
    computer follows to perform a specific task

编译器或解释器,将编写的代码翻译成计算机能够理解的语言。这意味着,当程序员写代码时,他们通常使用的是高级语言,比如Python、Java或C++,这些语言对人类来说相对容易理解和编写。但计算机硬件并不直接理解这些高级语言,因此需要通过编译器或解释器将这些代码转换成机器语言,也就是计算机处理器能够执行的0和1的组合。

关键词解析:

  1. 编译器(compilers):编译器是一种程序,它将源代码一次性地转换成机器语言,生成可执行文件。一旦编译完成,生成的可执行文件就可以直接被计算机运行,而无需再次翻译。
  2. 解释器(interpreters):解释器则不同,它在程序运行时逐行翻译代码,然后立即执行。解释器不生成独立的可执行文件,而是直接在源代码和机器代码之间进行实时转换。
  3. 高级语言:高级语言是一种更接近人类语言的编程语言,它抽象了计算机的许多复杂性。
  4. 机器语言:机器语言是计算机处理器(CPU)直接理解和执行的指令集,它由一系列二进制代码组成,是计算机硬件能够直接识别和处理的语言。

Lower- level to High-Level Language

二进制(Binary):1000110100111010100100100111
● 汇编语言(Assembly):
TAD I Z STPTR / 获取下一个字符character
SNA / 如果非零则跳过(不是字符串的结尾)
HLT / 否则在零时停止(else halt on zero)(字符串的结尾)
TLS / 将AC中的字符输出到电传打字机teleprint
● C, C++, C#, Python,
和 Java: System.out.println(“Hello World!”)
High Level Language --> Assembly Language --> Machine Language --> Hardware

First Program

public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
// this will make a single line to be skipped
/* this will make the
whole section to be skipped
*/
System.out.println("\"Hello World\"");
	}
}
  1. public class Hello:这部分定义了一个公共类,类名是Hello。在Java中,类是构成程序的基本单位,而公共类是其他类可以访问的类。
  2. main方法:在Java中,main方法是程序的入口点,是程序开始执行的地方。这里的main方法有一个字符串数组参数args,它用于接收命令行参数。
  3. System.out.println:这是Java中的一个标准输出方法,用于在控制台上打印信息。
  • 编程(Programming):指的是使用计算机语言来编写程序的过程。
  • 在 Java 程序中,字符串必须被双引号包围,否则编译器会报错
    如果我们想要在程序输出中打印出 “Hello World”(包括双引号double quotes)需要使用转义字符 \ 来实现,即在双引号前加上反斜杠。

关联关键词解析:
双引号:在编程中,双引号用于标识字符串的开始和结束。Strings must be written within quotes
转义字符:在编程语言中,转义字符用来表示一些特殊的字符,例如换行符 \n 或者双引号 \"。同理,单引号(‘)和反斜杠()escape character也需要使用转义字符来表示。
\" -> "
\’ -> ’
\\ -> \

  • 首先,有一个名为“HelloWorld.java”的Java源文件,它包含了一个简单的程序。
  • 这个Java源文件被编译成一个字节码程序(bytecode program),即“HelloWorld.class”。
  • 接下来,使用Java虚拟机(JVM)来执行这个字节码程序,最终输出了“Hello, World!”。

整个过程包括:编写editor、编译compile和执行execute请添加图片描述

关键字解析:
编译器compiler
○ 一个程序,它将源代码source code(High Level)翻译成可执行形式executable form,
并且
○ 识别违反编程violate语言规则的语法syntax错误
Java Virtual Machine (JVM)
○ 一个程序,它读取Java字节码指令并按读取顺序执行它们
Java bytecode字节码(Lower Level)
JVM可安装在各种平台上
● Java类文件是一个文件(具有.class文件扩展名filename extension),其中包含可以在JVM上执行的Java字节码
○ 不是CPU的机器语言
○ 可以被视为JVM的机器语言
请添加图片描述

这张图片主要介绍了Java语言的可移植性和跨平台特性。

“Any computer”,意为任何计算机。这个中心点代表了Java程序可以在任何类型的计算机上运行。

“Java Virtual Machine”,即Java虚拟机。它表示Java程序在运行时需要一个虚拟环境来执行,这就是Java的可移植性体现之一。

再往外,还有一个更大的蓝色圆圈,上面写着“Java Bytecode”。字节码是Java源代码编译后生成的二进制代码,它被Java虚拟机所执行。这种字节码格式使得Java程序可以在不同操作系统和硬件架构之间进行移植。
开发者能够编写一次代码,在任何地方都能运行。

Integrated Development Environment

集成开发环境(IDE)是一种软件应用程序,它为计算机程序员提供了软件开发的全面设施comprehensive facilities。它通常包括:
○ 源代码编辑器Source Code Editor:一个专为编写writing和编辑editing源代码设计的文本编辑器text editor。
○ 编译器Compiler/解释器Interpreter:一个工具,将编写的代码翻译成计算机能够理解和执行的语言。
○ 构建自动化工具Build Automation Tools:这些工具自动化编译和构建软件的过程,节省时间并减少人为错误的风险。
○ 调试器Debugger:一个工具,通过允许你逐行运行代码、检查inspect变量和track down追踪错误来帮助你测试test和调试debug程序。

Common Language Infrastructure(CLI)

公共语言基础设施(CLI)

CLI使得使用不同编程语言编写的应用程序可以在任何支持.NET框架的平台上运行

  • Common intermediate Language:
  • .NET兼容compatible语言编译到第二平台neutral language称为公共中间语言(CIL)
  • Common Language Runtime(CLR)
    平台特定的CLR将CIL编译为可以在当前平台上执行的机器可读代码
    CLR是.NET框架的运行时环境,负责管理CIL代码的执行请添加图片描述

Text Editor, Command Line Compilation and Execution
使用文本编辑器编写源代码,以及在命令行中编译和执行程序的基本步骤
● We can use a text editor to write the source code
○ e.g. Notepad, Notepad++, Sublime Text
● We can compile and execute in command line
○ need to set the environment variables first
○ javac is used to compile programs
○ java is used to execute 编译后的 programs
○ we must always compile before execution
○ Java source code is compiled into Java bytecode
这段文字介绍了。它首先提到可以使用文本编辑器来编写源代码,然后在命令行环境下编译和执行程序的过程。这包括设置环境变量、使用javac编译器来编译Java程序,以及使用java命令来执行编译后的程序。最后,它强调了在执行程序之前必须先进行编译,以及Java源代码会被编译成Java字节码。
关联关键词解析:

1.命令行:一种通过文本命令来操作计算机的方式,不依赖图形用户界面。
2. javac:Java编译器,用于将Java源代码编译成Java字节码。
3. 环境变量:操作系统中用于指定系统运行环境的一些参数,比如路径、系统变量等。
4. 编译:将源代码转换成机器可以理解的代码的过程,对于Java来说,就是将Java源代码转换成Java字节码的过程。

Objeci-Oriented Language

面向对象的语言:
○ 每个Java文件必须包含一个类声明(class declaration)
○ 所有代码都写在一个类(class)的内部
○ 要运行Java程序,需要定义一个main方法
面向对象编程(OOP)
● Java的语言特性:
○ 大括号braces/curly brackets用于表示代码块或代码段的开始和结束。例如,类或方法声明
○ 语句以分号结束

elements
  1. statement(语句):编程中的语句是一条指令,告诉计算机执行某个操作。一条语句通常以分号(;)结束。

  2. parameter(参数):在方法定义中,参数是方法接收输入值的变量。调用方法时,传入的参数值将被赋给对应的参数变量。

  3. braces括号 ({})

    • 主要用于定义代码块。最常见的用途是在控制结构如if语句、for循环、方法体等中定义一组需要执行的语句。
    if (condition) {
        // 代码块
    }
    
    • 用于封装类、接口、枚举和方法的主体。
    public class MyClass {
        void myMethod() {
            // 方法体
        }
    }
    
  4. squared brackets方括号 ([])

    • 用于数组声明和访问数组元素。
    int[] myArray = new int[10]; // 声明一个长度为10的整型数组
    myArray[0] = 42; // 访问并修改数组的第一个元素
    
    • 用于泛型类型参数声明。
    List<String> list = new ArrayList<>(); // 创建一个字符串类型的列表
    
  5. parentheses圆括号 ()

    • 用于方法调用。它们包含传递给方法的参数。
    int result = myMethod(5, 3); // 调用myMethod方法并传递两个参数
    
    • 用于控制流语句中的条件表达式。
    if (condition) {
        // 如果条件为真则执行这里的代码
    }
    
    • 用于创建对象时的构造函数调用。
    MyClass obj = new MyClass(); // 使用无参构造函数创建对象
    
    • 用于表示表达式的优先级。
    int result = (a + b) * c; // 确保先计算括号内的加法
    

Java 是一种静态类型编程语言statically typed language,
这意味着在编写 Java 程序时,所有的变量、参数和方法都必须事先声明其类型declared type
。这种类型被称为静态类型static type,是固定的,一旦声明后不能更改。
变量在使用前必须声明其类型,而且一旦确定,其类型就不会改变。
表达式也有类型,例如表达式 5 + 10 的类型是 int。
Java 编译器在编译程序时会检查类型一致性consistency,如果类型不一致,程序将无法编译,
这属于语法错误的一种。
使用集成开发环境(IDE),编译器会在程序运行之前检查所有的类型是否兼容。

关键词解析:

  1. 静态类型:指的是在编译时类型信息就已经确定的语言特性,与之相对的是动态类型语言,在运行时才确定类型。
    2.类型一致性:指的是代码中各个部分的数据类型必须相互匹配,以避免运行时错误。
public class Hello {
public static void main(String[] args) {
int num = 5;
num = num + num;
System.out.println(num);
}
}

reuse the initial value of num in other computation
Variables can be declared and initialized once,
and assigned multiple times

判断题
  1. ClassLoader 是 JVM 实现的一部分 - 正确。ClassLoader 是 JVM 的一部分,负责加载类。
  2. Java 虚拟机逐行读取并执行Java代码 - 不正确。
    能够逐行执行的是javac 而 jvm去执行的是.class文件Java 虚拟机(JVM)执行的是字节码,而不是源代码。Java源代码首先通过编译器编译成字节码,然后由 JVM 解释或即时编译(JIT)成机器码执行。
  3. Java 编译器会将程序编译为 Java 虚拟机可以执行的字节码 - 正确。
    Java 源代码通过 Java 编译器(例如 javac)编译成字节码。
  4. Java 虚拟机(Java Virutal Machine)简称 JVM ,用于执行 Java 字节码 - 正确。JVM 是用于执行 Java 字节码的虚拟计算机。
  5. Java 运行时环境(Java Runtime Evironment)简称 JRE ,用于运行 Java 程序,包含 JVM - 正确。JRE 是运行 Java 程序的环境,它包含了 JVM 和一些必要的库文件。
  6. Java 开发工具包(Java Development Kit)用于开发Java程序,包含JRE和 Java 编译工具等 - 正确。JDK 是用于开发 Java 程序的工具包,它包含了 JRE 和一些开发工具,如编译器(javac)

JDK(java开发工具包)>JRE(java运行时环境)>JVM(java虚拟机), 其中, JDK = JRE + Java编译工具,JRE = JVM + Java核心类库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值