1. 概述
-
计算机
包括硬件和软件两部分。硬件包括计算机可以看得见的物理部分。而软件部分提供看不到的指令,这些指令控制硬件并且使得硬件完成特定任务
-
程序设计
- 定义:创建(或开发)软件,软件包含了指令,告诉计算机做什么
- 应用场景:计算机、飞机、汽车等
-
程序设计语言
软件开发人员在称为程序设计语言的强大工具帮助下创建软件
-
计算机硬件介绍
- 包括中央处理器、内存、存储设备、输入设备、输出设备、通信设备几部分,他们通过总线(搭建在主板上)相连接
- 冯·诺伊曼体系结构:
- 输入设备:输入数据和程序
- 存储器:记忆程序和数据
- 运算器:完成数据加工处理
- 控制器:控制程序执行
- 输出设备:输出处理结果
- 中央处理器(CPU)
- CPU是计算机的大脑。它从内存中获取指令,然后执行这些指令
- 包括:
- 控制单元: 用于控制和协调其他组件的动作
- 算数/逻辑单元: 用于完成数值运算(+、-、*、/)和逻辑运算(比较)
- 每台计算机都有一个内部时钟,该时钟以固定速度发射电子脉冲,时钟速度越快,在给定的时间段内执行的指令就越快,速度的计量单位是赫兹(Hz),1 Hz 相当于每秒1个脉冲,随着CPU速度不断提高,目前以千兆赫兹(GHz) 来表述
- 最初一个CPU只有一个核。核是处理器中实现指令读取和执行的部分,一个多核CPU是一个具有两个或者更多独立核的组件,可以提高CPU的处理能力
- 存储设备
- 内存中的信息在断电是会丢失,那么我们可以考虑将程序和数据永久的保存在存储设备上。当计算机确实需要这些数据时,再移入内存,因为从内存中读取比从存储设备中读取要快得多
- 存储设备主要有以下三种
- 磁盘驱动器:每一台计算机只要有一个硬盘驱动器,硬盘用于永久的保存数据和程序
- 光盘驱动器:CD和DVD
- USB闪存驱动器:USB(Universal Serial Bus),通用串行总线,可以使用USB将打印机、数码相机、鼠标、外部硬盘驱动器连接到计算机上,USB闪存驱动器很小,可用于存储和传输数据的设备
- 内存
- 比特(bit)和字节(byte)
- 一个0或者一个1存储为一个比特(bit),是计算机中最小的存储单位
- 计算机中最基本的存储单位是字节(byte),每个字节由8个bit 构成
- 内存(也叫Random-Access Memory,RAM):由一个有序的字节序列组成,用于存储程序需要的数据
- 一个程序和它的数据在被CPU执行之前必须移到计算机的内存中
- 每个字节都有一个唯一的地址,使用这个地址确定字节的位置,以便于存储和获取数据
- 比特(bit)和字节(byte)
- 输入和输出设备
- 显示器屏幕分辨率:是指显示设备水平和垂直方向上显示的像素(px)数,
- 分辨率可以手工设置
- 分辨率越高,图像越锐化、越清晰
- 显示器屏幕分辨率:是指显示设备水平和垂直方向上显示的像素(px)数,
-
万维网
- world wide web 是一个大规模的、联机式的信息储藏所,或是一个资料空间,是无数个网站终点和网页的合集,我们可以使用同一资源定位符URL来唯一标识资源,URL不区分大小写
- 用户通过点击链接获取资源,这些资源通过超文本协议HTTP传送给使用者
- 万维网是无数个网站点个网页的集合,它们在一起构成了因特网最主要的部分(因特网也包括电子邮件、Usenet以及新闻组)。它实际上是多媒体的集合,是由超级链接连接而成的,我们通常通过网络浏览器上网观看的,就是万维网的内容
- 万维网 ⊂ \subset ⊂ 因特网 ⊂ \subset ⊂ 互联网
- B/S架构、C\S架构
- browser server:浏览器输入网址访问资源
- clien server:qq客户端
2. Java语言基础
1.1 软件开发介绍
-
软件开发
软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分
-
人机交互方式
- 图形化界面(Graphical User Interface GUI),这种方式简单直观,使用者易于接受,容易上手操作
- 命令行方式(Command Line Interface CLI),需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些指令
-
常用的DOS指令
- dir:列出当前目录下的文件以及文件夹
- md:创建目录
- rd:删除目录
- cd:进入指定目录
- cd…:退回上一级目录
- cd\:退回到根目录
- del:删除文件
- exit:退出DOS命令行
1.2 计算机编程语言
-
计算机语言:人与计算机交流方式
- C、Pascal、Fortran面向过程语言
- C++面向过程/面向对象
- Java跨平台的纯面向对象的语言
- .NET跨语言的平台
- python、Scala…
-
Java
- Java SE(Java standard edition):支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API
- Java EE(Java enterprise edition):是为开发企业环境下的应用程序提供的一套解决方案,该技术体系包括的技术如servlet、jsp等,主要针对web应用程序开发
- Java ME(Java micro edition):支持Java程序运行再移动端(手机、PDA)上的平台,对Java API 有所精简,并加上了针对移动端的支持
- Java Card:支持一些Java小程序(Applets)运行再小内存设备(如智能卡)上的平台
-
Java语言的特点
-
面向对象
- 两个基本概念:类、对象
- 三大特性:封装、继承、多态
-
健壮性
- 吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
-
跨平台
-
跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行
-
原理:只要在需要运行Java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可,由JVM负责Java程序在该系统上的运行,Java应用程序实际上是跑在JVM上的
J A V A 应 用 程 序 { W i n 版 的 J V M ⊂ W i n d o w s 操 作 系 统 L i n u x 版 的 J V M ⊂ L i n u x 操 作 系 统 JAVA应用程序\begin{cases} Win版的JVM\subset Windows操作系统\\ Linux版的JVM\subset Linux操作系统 \end{cases} JAVA应用程序{Win版的JVM⊂Windows操作系统Linux版的JVM⊂Linux操作系统 -
*.java → 编 译 →^{编译} →编译 *.class → 执 行 →^{执行} →执行 JVM for *
-
-
-
Java的两种核心机制
- Java虚拟机
- JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器
- 对于不同的平台,有不同的虚拟机
- 只有某平台提供了对应的Java虚拟机,Java程序才能再此平台上运行
- Java虚拟机制屏蔽了底层运行平台的差别,实现了一次编译,到处运行
- 用户User→字节码文件→JVM→操作系统→硬件
- 垃圾收集机制
- 不再使用的内存空间应该回收——垃圾回收
- 在C/C++等语言中,由程序员负责回收无用的内容
- Java语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况,并在JVM空闲时,检查并释放那些可被释放的存储空间
- 垃圾回收在Java中是自动进行的,程序员无法精确控制和干预
- Java程序还会出现内存泄漏和内存溢出问题吗?YES
- 不再使用的内存空间应该回收——垃圾回收
- Java虚拟机
-
Java语言的环境搭建
- JDK(Java development kit)Java开发工具包,JDK提供Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE,所以安装了JDK,就不用再单独安装JRE了。其中编译工具:javac.exe;打包工具:jar.exe等
- JRE(Java runtime environment)Java运行环境,包括Java虚拟机JVM和Java程序所需要的核心类库等,如果想要运行一个开发好的Java程序,计算机只需装JRE即可
-
- JVM ⊂ \subset ⊂ JRE ⊂ \subset ⊂ JDK
- JDK=JRE+Java的开发工具
- JRE=JVM+Java核心类库
- 为什么要配置path环境变量
- JAVA_HOME = bin的上一层目录
- path = %JAVA_HOME%\bin