一,计算机硬件与软件
1,计算机的组成:软件+硬件
硬件(物理层面):CPU,内存,存储设备,输入设备,输出设备,通信设备
软件(精神层面):系统软件,应用软件
2,CPU,内存与硬盘
- CPU(中央处理器),电脑的“大脑”,核心,电脑靠CPU来进行运算,控制
- 硬盘:
- 计算机主要的存储设备,容量大,断电数据不丢失
- 分类:机械硬盘,固态硬盘,以及混合硬盘
- 固态硬盘在开机速度和程序加载速度远远高于机械硬盘,缺点是贵,所以无法完全替代机械硬盘
- 内存
- 负责硬盘上的数据与CPU之间数据交换处理
- 具体的:保存从硬盘读取的数据,提供给CPU使用,保存CPU的一些临时执行,结果,以便CPU下次使用或保存到硬盘
- 断电后数据丢失
3,输入设备:键盘输入
二,软件相关介绍
1,什么是软件
- 软件,即一系列按照特定顺序组织的计算机数据和指令的集合,有系统软件和应用软件之分
2,人机交互方式
- 图形化界面(Graphical User Interface 简写为GUI),这种方式简单直观,使用者易于接受,易上手操作
- 命令行方式(Command Line Interface 简写为CLI),需要在控制台输入特定的指令,让计算机完成一些操作,需要记忆一些指令,较为麻烦
3,常见的DOS命令
- DOS(Disk Operating System 磁盘操作系统)是Microsoft公司在Windows之前推出的一个操作系统,是单用户,单任务的操作系统
- 进入DOS操作窗口
Win+R→cmd→确定
DOS命令
- dir 展示当前目录下的文件和文件夹
- md md 文件名 在当前目录下新建文件夹
- cd cd 文件名 进入指定文件目录
- cd.. 返回上一级目录,每执行一次返回一次上一级
- cd\ 到根目录
- rd rd 文件名 删除当前目录下的指定文件夹 rd不能删除有文件的文件夹
- del del 文件名 删除当前目录下指定文件
- cls 清空当前命令窗口所有命令
- exit 退出命令提示符窗口
- ←→ 左右移动光标
- ↑↓ 上下移动光标,调阅读历史操作命令
- Delete和Back space 删除字符
三,计算机编程语言
1,计算机语言是什么
- 语言:是人与人之间用于沟通的一种方式
- 计算机编程语言:就是人与计算机交流的方式,人们可以用编程语言对计算机下命令,让计算机完成人们需要的功能
- 计算机语言有很多种,如:C,C++,Java,Go,Java script,Python等
- 语言=语法+逻辑
2,计算机语言简史
- 第一代:机器语言(相当于石器时代),
- 1946年2月14日,世界上第一台计算机ENAC诞生,使用的是最原始的穿孔卡片,这种卡片上使用的是二进制代码表示的语言,与人类的需要差别极大,这种语言就称为机器语言
- 第二代:汇编语言(相当于人类的青铜,铁器时代)
- 使用英文缩写的助记符来表示基本的操作,这些助记符构成了汇编语言的基础,因此,汇编语言也称为符号语言
- 优点:能编写高效率的程序
- 缺点:汇编语言是面向机器的,不同计算机机型特点不用,因此会有不同的汇编语言,彼此之间不能通用,程序不易移植,较难调试
- 比起机器语言,汇编大大进步了,是机器语言向更高级语言进化的桥梁,目前仍然应用于工业电子编程领域,软件的加密,解密,计算机病毒分析等
- 第三代:高级语言(人类的信息时代)
- 高级语言发展于20世纪50年代中叶到70年代,是一种接近于人们使用习惯的程序设计语言,它允许程序员使用接近日常英语的指令来编写程序,程序中的符号和算式也与日常用的数学式子差不多,接近于自然语言和数学语言,容易为人们掌握
- 高级语言独立于机器,有一定的通用性,计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,转换为机器语言才能被识别和执行
高级语言→(编译)→汇编语言→(编译)/(反编译)→机器语言→计算机
此外,高级语言按照程序设计方法的不同,又分为面向过程语言,面向对象语言
- C,Pascal,Fortran面向过程语言
- C++ 面向过程/面向对象语言
- Java跨平台的纯面向对象的语言
- C#,Python,Java script,Scala面向对象语言
目前以及可预见的将来,计算机语言仍然处于“第三代高级语言”阶段,但是不管是什么语言,最后都要向机器语言靠近,因为CPU只认识0和1
四,Java语言概述
1,Java概述
- 是SUN(Stanford University Network 斯坦福大学网络公司)公司1995年推出的一门高级编程语言,2009年4月20日被Oracle(甲骨文)公司收购
- 是一种面向Internet编程语言,Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行,这些Java程序被称为Java小程序,内嵌在HTML代码中
- 伴随着互联网的迅猛发展,以及Java技术在web方面的不断成熟,已经成为web应用程序的首选开发语言
2,Java开发环境搭建
- 什么是JDK,JRE
- JDK (Java Development Kit):是Java程序开发工具包,包含JRE和开发人员使用的工具
- JRE (Java Runtime Environment):是Java程序的运行时环境,包含JVM和运行时所需的核心类库
小结:
JDK=JRE+开发工具集(例如Javac编译工具等)
JRE=JVM+Java SE标准类库
3,JDK版本选择
建议Java 8.0或者Java 17.0
五,Java开发体验:Hello World
JDK安装完毕之后就可以尝试开发第一个Java程序了,习惯性的称为:Hello World
1,开发步骤
Java的开发三步骤:编写,编译,运行
- 将Java代码编写到扩展名为.java的源文件中
- 通过javac.exe命令对该java文件进行编译,生成一个过多个字节码文件
- 通过java.exe命令对生成的class文件进行运行
java文件→(javac.exe编译)→.class文件
→(java.exe运行)→结果
java文件为源文件
.class文件为字节码文件
先编译,后运行
-
总结
1,Java程序编写和执行的过程
- 步骤1,编写,将Java代码写在.java结尾的源文件中
- 步骤2,编译,针对于.java结尾的源文件进行编译操作 格式:javac 文件名.java
- 步骤3,运行针对于编译后生成的字节码文件进行解释运行 格式:java 字节码文件名
针对步骤1的编写进行说明
class Hello World{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
其中
- class:关键字,表示"类",后面跟着类名 例如class Hello World 中Hello World就是类名
- main()方法的格式是固定的 表示程序的入口 public ststic void main(String[] args) 如果非要有变化的话,只能变化String[] args结构,可以写成:方式1,String args[] 方式2,String[] a
- Java程序是严格区别字母大小写的
- 从控制台输出数据的操作 System.out.println("输出的信息");
- 每一行执行语句必须以;结束
针对于步骤2编译的说明
- 如果编译不通过,可以考虑的问题
问题1,查看编译的文件名,文件路径是否书写错误
问题2,查看代码中是否存在语法问题,如果存在,就可能导致编译不通过
- 编译以后会生成一个或多个字节码文件,没一个字节码文件对应一个java类,并且字节码文件名与类名相同
针对步骤3运行的说明
- 我们是针对字节码文件对应的Java类进行解释运行的,要注意区分大小写
- 如果运行不通过,可以考虑的问题
- 问题1,查看解释运行的类名,字节码文件路径是否书写错误
- 问题2,可能存在运行时异常
- 一个源文件中可以声明多个类,但是最多只能有一个类使用public进行声明,且要求声明为public的类的类名与源文件名相同
2,注释(comment)
什么是注释
- 源文件中用于解释,说明程序的文字就是注释
- 注释是一个程序员必须要具有的良好编程习惯,实际开发中,程序员可以先将自己的思想通过注释整理出来,再用代码去体现
程序员最讨厌的两件事
一件是自己写代码被要求加注释,另一件是接手别人的代码没有注释
不加注释的危害
- Java中的注释类型
单行注释
// 注释文字
多行注释
/* 注释文字1
注释文字2
注释文字3
*/
文档注释
/**
@author 指定Java程序的作者
@version 指定源文件的版本
*/
单行注释,多行注释的作用
- 对程序中的代码进行解释说明
- 对程序进行调试
注意:
- 单行注释和多行注释中声明的信息,不参与编译,也就是编译之后的字节码文件中不包含单行注释和多行注释中的信息
- 多行注释不能嵌套使用,也就是注释里不能写注释
文档注释
文档注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档
3,Java API文档
- API(Application Programming Interface 应用程序编程接口)是Java提供的基本编程接口
- Java语言提供了大量的基础类,因此Oracle也为这些基础类提供了相应的说明文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法
- Java API文档,即为JDK使用说明书,帮助文档
4,Java的核心机制 JVM
4.1 Java语言的优缺点
Java确实是从C语言和C++语言继承了许多成分,甚至可以将Java看成是类C语言发展和衍生的产物
4.1.1 优点
- 跨平台性:这是Java的核心优势,Java在最初设计时就很注重移植和跨平台性
- 通过Java语言编写的应用程序在不同的系统平台上都可以运行
- 原理:只需要在运行Java应用程序的操作系统上,先安装一个Java虚拟机 JVM(Java Virtual Machine)即可,由JVM来负责Java程序在该系统的运行
- 面向对象性:面向对象是一种程序设计技术,非常适合大型软件的设计和开发,面向对象编程支持封装,继承,多态等特性,让程序更好达到高内聚,低耦合的标准
- 健壮性:吸收了C和C++语言的特点,但去掉了其影响程序健壮性的部分,提供了一个相对安全的内存管理和访问机制
- 安全性高:Java适合于网络/分布式环境,语言提供一个安全机制以防恶意代码的攻击,可以分配不同的命名空间,以防替代本地的同名类,字节代码检查
- 简单性:Java是C++语法的简化版,我们也可以将Java称为C++--
- 高性能:Java最初发展阶段,总是被人们诟病性能低,客观上,高级语言运行效率总是低于低级语言的,这个无法避免,Java语言本身发展中通过虚拟机的优化提升了几十倍的运行效率,比如,通过JIT(Just InTime)即时编译技术提高运行效率
4.1.2缺点
- 语法过于复杂,严谨,对程序员的约束比较多
- 一般适用于大型网站开发,整个架构会比较重对于初创公司开发和维护人员的成本比较高,
- 并非适用于所有领域
4.2 JVM功能说明
JVM(Java Virtual Machine)Java 虚拟机:是一个虚拟的计算机,是Java程序的运营环境,JVM具有指令集,并使用不同的存储区域,负责执行指令,管理数据,内存,寄存器
4.2.1 功能1:实现Java程序的跨平台性
我们编写的Java代码,都运行在JVM之上,正是因为有了JVM,才使得Java程序具备了跨平台性
4.2.2 功能2:自动内存管理(内存分配,内存回收)
- Java程序在运行过程中,涉及到运算的数据分配,存储等都由JVM来完成
- Java消除了程序员回收无用内存空间的职责,提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间
- GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄露
第02章 变量和运算符
1,关键字(key word)
- 定义:被Java语言赋予了特殊含义,用做专门用途的字符集(或单词)
- 特点:全部关键字都是小写字母
2,标识符(identifier)
Java中变量,方法,类等要素命名时使用的字符序列,称为标识符
- 技巧:凡是自己可以起名字的地方都叫标识符
标识符的命名规则(必须遵守的硬性规定)
- 由26个英文字母大小写,0-9,_或$组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- Java中严格区分大小写,长度无限制
- 标识符不能包含空格
标识符的命名规范(建议遵守的软性要求,否则工作中容易被鄙视)
- 包名:多单词组成时所有字母都小写:xxxyyyzzz 例如:java.lang,com.atguigu.bean
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 例如:HelloWolrd,Steing,System
- 变量名,方法名:多单词组成时第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz 例如:age,name,bookName,binarySearch,getName
- 常量名:所有字母都大写,多单词时每个单词用下划线_连接XXX_YYY_ZZZ 例如:MAX_VALUE,PI,DEFAULT_CAPACITY
注意:在起名字时,为了提高阅读性,要尽量有意义
3,变量
3.1为什么需要变量
变量是程序中不可或缺的组成单位,最基本的存储单元
3.2初识变量
3.2.1变量的概念:
- 内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
- 变量的构成包含三个要素:数据类型,变量名,存储的值
- Java中变量声明的格式:数据类型 变量名=变量值 例如:int age=10; int 数据类型 age 变量名 10变量值
- Java中的变量按照数据类型来分类
基本数据类型(8种)
整型:byte,short,int,long
字符型:char
浮点型:float,double
布尔型:boolean
引用数据类型:
类(class)
数组(array)
接口(interface)
枚举(enum)
注解(annotation)
记录(record)
3.2.2 定义变量时,变量名要遵循标识符命名的规则和规范
变量都有其作用域,变量只在作用域内是有效的,出了作用域就失效了
变量的作用
- 用于在内存中保存数据
4,基本数据类型介绍
4.1 整数类型:byte,short,int,long
4.1.1 补充:计算机的基本存储单位
- 字节(byte):是计算机用于计量存储容量的基本单位,一个字节等于8bit
- 位(bit):是数据存储的最小单位,二进制中系统中,每个0或1就是一个位。叫做bit(比特),其中8bit等于一个字节
- 转换关系
1 B(byte)=8bit
1024 B=1 KB
1024 KB=1 MB
1024 MB=1 GB
1024 GB=1 TB
4.2 浮点类型:float,double
与整数类型类似,
4.2.1