java基础课程笔记整理——Chapter1

先导知识:

1.计算机如何存储和计算
1)内存的最小存储单元是bit(位),内存的基本存取单元是byte(字节)
2)计算机语言中的变量和数学中的变量意义完全不同,根本不是一个概念。计算机语言中的变量指代了内存中的一个存储区(一个字节或多个字节),是实际存在的,而数学中的变量只存在抽象思维中。
3)计算机变量的四个基本要素:存储区的地址,存储区的范围,存储区的存储值,存储区的名称(即变量的名称)

2.进制转换方法
一个数的进制表示:十进制,八进制,十六进制,二进制

二进制→八进制,以小数点为起点,三个二进制位合并为一个八进制

eg  (1 101.010 1)2=(15.24)8

二进制→十六进制,以小数点为起点,四个二进制位合并为一个十六进制位

eg(1 1101.0101)2=(1D.5)16

八进制→二进制,以小数点为起点,一个八进制位变成三个二进制位

eg(15.24)8 =(001 101.010 100)2

十六进制→二进制,以小数点为起点,一个十六进制位变成四个二进制位
十进制→二进制,整数部分除2取余,逆序排列;小数部分乘2取整,顺序排列
十进制和八进制,十六进制之间的转换可以借助二进制进行
进制转换补充

3.计算机语言的发展和分类
机器语言
汇编语言
过程式程序设计语言 ——— FORTRAN(第一个过程式程序设计语言) 、PASCAL、BASIC、C(使用最广泛的过程式程序设计语言)
面向对象程序设计语言—— Smalltalk(第一个面向对象语言)C++(在C基础上的面向对象语法拓展)、Delphi、Java、C#
函数型程序设计语言
脚本语言 ——Javascript
动态语言—— Python
第四代程序设计语言 —— SQL

JAVA的跨平台性

Java语言相对于其他语言最大的优势就是所谓的平台无关性,即跨平台性。(Java程序的可移植性)
【下面通过讲解平台与机器指令,以及程序的编译、解释执行来理解Java的平台无关性】

1.平台与机器指令
无论哪种编程语言编写的应用程序都需要经过操作系统和处理器来完成程序的运行。这里的平台是指由操作系统(OS)和处理器(CPU)构成。与平台无关是指软件的运行不因操作系统、处理器的变化导致无法运行或出现运行错误。
所谓平台的机器指令就是指可以被该平台直接识别、执行的一种由0,1组成的序列代码。需要注意的是相同的CPU和不同的操作系统所形成的平台的机器指令可能是不同的,因此每种平台都会形成自己独特的机器指令。

2.C/C++程序依赖平台
C/C++语言提供的编译器对C/C++源程序进行编译时,将针对当前C/C++源程序所在的特定平台进行编译和连接,然后生成机器指令,即根据当前平台的机器指令生成机器码文件(可执行文件)。这样一来,就无法保证C/C++所产生的可执行文件在所有的平台上都能正确地被执行,这是因为不同的平台可能具有不同的机器指令。因此,如果更换了平台可能需要修改源程序,并针对新的平台重新编译源程序。
在这里插入图片描述

3.JAVA程序不依赖于平台
JAVA的优势:平台无关性,这是因为JAVA可以在平台之上再提供一个JAVA运行环境(Java Runtime Environment,JRE)。该运行环境由虚拟机(Java Virtual Machine,JVM)、类库以及一些核心文件组成。Java虚拟机的核心是所谓的字节码指令,即可以被Java虚拟机直接识别的一种由0和1组成的序列代码。字节码并不是机器指令,它不能被任何平台直接识别、执行。Java针对不同平台提供的Java虚拟机的字节码指令是相同的。
和C/C++编译器不同的是,Java语言提供的编译器不针对特定的操作系统和CPU芯片进行编译,而是针对Java虚拟机把源程序编译成称作字节码的一种”中间代码”。
字节码是可以被Java虚拟机识别、执行的代码,即Java虚拟机负责解释运行字节码,其运行原理是Java虚拟机负责将字节码翻译成虚拟机所在平台的机器码,并让当前平台运行该机器码。

JDK,JRE,JVM

JDK:Java开发工具包,主要目录内容:开发工具、JRE、Derby数据库等
JRE
Java程序要实现“编写一次,到处运行”的目标就需要提供相应的Java运行环境(JRE),即运行Java程序的平台。目前Java平台主要有以下三个版本:Java SE,Java EE ,Java ME
Java SE(曾称J2SE)称为Java的标准版或Java标准平台,提供标准的JDK(Java Development Kit)
Java EE(曾称为J2EE)称为Java企业版或Java企业平台
Java ME(曾称为J2ME)称为Java微型版或Java小型版
上述任何一种Java运行平台都包括相应的Java虚拟机。虚拟机负责把字节码文件加载到内存中,然后采用解释方式来执行字节码文件,即根据相应平台的机器指令翻译一句执行一句。
JVM:虚拟机
JDK>JRE>JVM

JAVA程序的开发步骤

Java是面向对象编程,Java应用程序可以由若干个源文件构成,每个源文件又可以由若干个书写形式独立的类组成,但是一个应用程序的源文件中必须有一个源文件包含该Java应用程序的主类(包含main方法,main函数的声明:public static void main(String[] args) )。Java程序是从main方法开始执行的。
有关一个源文件中有多个类的说明:Java允许一个源文件中编写多个类,但至多只有一个类使用public修饰,如果没有public类那么源文件名只要和其中的某个类名相同即可,文件拓展名为.java;如果有一个类是public类,那么源文件的名字必须和这个类完全相同。编译源文件将生成多个拓展名.class的字节码文件,每个字节码文件和源文件中对应的类的名字相同。】

Java程序的开发步骤:源程序(文件拓展名为.java)---->编译(由编译器javac.exe进行编译)---->字节码文件(名字和源文件中对应的类的名字一样,文件拓展名为.class)---->解释运行(由解释器java.exe启动虚拟机,虚拟机会采用解释方式来执行字节码文件)

1.注意区分:源文件,字节码文件,可执行文件
【 字节码文件和可执行文件的主要区别在于字节码文件不能直接在平台上执行】

2.注意区分:javac.exe和java.exe

3.注意区分:编译和解释
【编译是一个翻译过程,即将一个语言翻译成另一个语言,eg 将C语言源程序翻译成机器语言,或将Java语言源程序翻译成字节码。
解释是对程序中的实际语义进行分析,并按照语义进行执行的过程,如果一个程序已经编译成机器语言,就不再需要进行解释了。
C语言的特点就是编译后直接执行,Java是先编译再解释执行,Python是直接解释执行】

一个简单的Java应用程序

编写一个Java源文件:

public class Hello{   //注意这个程序有一个public类且是主类,Hello,源文件的命名为Hello.java
	public static void main(String[] args){
		System.out.println("这是一个简单的java应用程序");
		System.out.println("Hello World!");
	}
}

(javac.exe)编译,得到字节码文件Hello.class
(java.exe)解释执行

JAVA语言的特点

  • 简单
  • 面向对象
  • 多线程
  • 安全
  • 动态
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yun_gao_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值