JAVA java学习(1)——————计算机历史、组成,计算机语言简史,DOS操作,java介绍,java是什么?

java算是计算机软件发展过程中的传奇其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移反而变得更加强大。

从首次发布开始,Java 就跃到了 Internet 编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java 依然是开发基于 Web 的应用程序的最佳选择。此外,Java 还是智能手机变革的推手,Android 编程采用的就是 Java 语言。

一.计算机的历史

1946年2月14日,世界上第一台电脑ENIAC在美国宾夕法尼亚大学诞生。

第二次世界大战期间,美国军方,莫奇来(Mauchly)博士和他的学生爱克特真空管取代继电器的"电子化"电脑-ENIAC
ENIAC(Electronic Numerical Integrator and Calculator),电子数字积分器与计算器)
1英寸(in)=2.54厘米(cm) 1英尺(ft)=30.48厘米(cm)
目的是用来计算炮弹弹道。

特点:
(1)费电
(2)真空管的损耗率相当高,几乎每15分钟就可能烧掉一支真空管。

计算机发展的四个阶段:
1.1946—1958:电子管数字机
2.1958—1964:晶体管数字机
3.1964—1970:集成电路数字机
4.1970—至今:大规模集成电路

中国:
1983年12月22日,中国第一台每秒钟运算达1亿次以上的计算机——“银河”在长沙研制成功。
2000年银河-Ⅳ 2000年运算速度每秒 1万亿次
超级计算机排名:2017 (百度)
1、神威•太湖之光每秒9.3亿亿次浮点运算(93PetaFlops) – 中国
2、天河二号每秒3.3亿亿次浮点运算(33.9PetaFlops) – 中国
3、代恩特峰每秒1.96亿亿次浮点运算(19.6PetaFlops) – 瑞士

发明人莫奇来和爱克特
在这里插入图片描述
工作中的ENIAC
在这里插入图片描述
ENIAC的电子管
在这里插入图片描述

二.计算机组成

概述:计算机系统的组成主要包括硬件软件两大部分。

  1. 硬件:硬件是指完成输入、存储、处理、输出功能的具体设备
    (1)输入设备:键盘、鼠标、摄像头、扫描仪
    (2)输出设备:显示器、打印机、音响
    (3)CPU(Central Processing Unit)中央处理单元:主要厂商有Intel、AMD、高通;
    是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    主要性能指标:
    ①主频:CPU内核工作的时钟频率,也就是CPU工作频率,单位是兆赫(MHz)或千兆赫(GHz)主频越高表示CPU处理数据的速度就越快。
    ②内核:2核 4核 8核
    例如:Intel 酷睿双核 i5 2.4G、i7 2.6G

    (4)存储器:用来存储数据和指令等的记忆部件。主要包括内存、硬盘、优盘等
    计算机对存储器的要求是:一要存取速度快,二要存储容量大。
    计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存)
    外存:通常是磁性介质或光盘等,能长期保存信息。
    内存:指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。

    存储器的计量单位包括位和字节、兆M、G、T、P等
    8bit —— 1 Byte
    1024B —— 1 KB
    1024KB —— 1 MB
    1024MB —— 1 GB
    1024GB —— 1 TB
    1024TB —— 1 PB

    (5)其他设备:主板、机箱等

  2. 软件:是指计算机系统中的程序及其文档。或者说是通过计算机语言编写的能够在硬件上运行的程序。
    软件有两大类:系统软件应用软件
    系统软件:控制和支持计算机系统,例如:DOS、Windows7、Windows10、Mac、Linux、Android、IOS等,一般指操作系统软件。
    应用软件:通常指一些应用软件,具有特定应用场景功能的软件。例如:Office、PhotoShop、WinRAR等。

  3. 网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享信息传递的计算机系统。

三.计算机语言的简史

计算机语言的简史,主要是给大家介绍一下计算机语言的发展史。
软件:就是通过计算机语言编写的能够在硬件上运行的程序
在这里插入图片描述在这里插入图片描述

1.低级语言

低级语言是相对于高级语言而言,所谓低级,也是指接近电脑底层的编程语言;
常见的低级语言包括:机器语言(0/1)二进制语言,汇编语言等;
其中,低级语言的特点是执行效率高,速度快;因为它们都是接近底层编程,没有编译解析等过程,程序直接操控硬件,效率相对较高,但是其学习和编程调试难度较高,编程比较慢,且比较费时,项目周期长。

2.高级语言

高级语言则包括:C、C++、C#、java、Python、PHP、go、Android、objectC、swift等。
高级语言是依赖编译解析的,更接近于人类语言逻辑的编程语言,其可读性更高,开发效率更高,学习起来相对较容易;但是其执行效率较低级语言而言要低一些,而且高级语言的执行,需要依赖运行环境,在Java等编程语言中,如果环境配置不完善,或者环境版本不一致则可能导致程序无法执行。

3.编译型语言和解释型语言的区别

计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:

  1. 编译型语言
    使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
    或者:
    把做好的源程序全部一次编译二进制代码的可运行程序,然后,计算机可直接运行这个程序。{ C 、C++ }
    特点
    在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。
    总结
    (1)一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
    (2)与特定平台相关,一般无法移植到其他平台;
    (3)现有的C、C++、Objective等都属于编译型语言。
    在这里插入图片描述

  2. 解释型语言
    使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
    或者:
    把做好的源程序翻译一句,然后执行一句,直至结束。{ JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等}
    特点
    解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
    总结
    (1)解释型语言每次运行都需要将源代码解释成机器码并执行,效率较低;
    (2)只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植
    (3)Python等属于解释型语言。
    在这里插入图片描述

注意:Java很特殊,Java程序也需要编译,但是没有直接编译成为机器语言,而是编译成为中立的字节码文件(二进制),然后由JVM解释方式执行字节码。
先编译,后解释执行。

4.二进制

在这里插入图片描述
二进制发明者:莱布尼茨
计算机中的数据不同于人们生活中的数据,人们生活采用十进制数,而计算机中全部采用二进制数表示,它只包含 0、1两个数,逢二进一,1+1=10。每一个0或者每一个1,叫做一个bit(比特)。
下面了解一下十进制和二进制数据之间的转换计算。
十进制数据转成二进制数据:使用除以2获取余数的方式(辗转相除法)
在这里插入图片描述
二进制数据转成十进制数据:使用8421编码的方式(位权)
在这里插入图片描述
二进制数系统中,每个0或1就是一个位,叫做bit(比特)。

注意
负整数的二进制
计算方法:
(1)先求出该负整数对应的正整数的二进制
(2)对结果取反加1 即可

5. 字节

字节是我们常见的计算机中最小存储单元。计算机存储任何的数据,都是以字节的形式存储,右键点击文件属性,我们可以查看文件的字节大小。

8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 Byte。
1 Byte = 8 bit
1 KB = 1024 B(Byte)
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB
1 EB = 1024 PB
1 ZB = 1024 EB

四.Dos介绍

1.认识dos

Dos,是磁盘操作系统的缩写,是个人计算机上的一类操作系统。从1981年直到1995年的15年间,磁盘操作系统在IBM PC 兼容机市场中占有举足轻重的地位。而且,若是把部分以DOS为基础的Microsoft Windows版本,如Windows 95、Windows 98和Windows Me等都算进去的话,那么其商业寿命至少可以算到2000年。微软的所有后续版本中,磁盘操作系统仍然被保留着。

2.常用dos指令

常用指令:dir、cd、cd \ 、cd … 、md、rd、cls、copy、move、del、del .、deltree
常见的dos命令:
(1)进入命令提示符: windows键+R —》打开运行窗口—>输入cmd(command的缩写)

(2)cd命令:改变当前目录或进入指定文件夹
cd [盘符:][路径名][子目录名]
cd …返回上一级目录
cd \或cd / 返回根目录,推荐使用cd
注意:如果需要访问非当前根目录下的目录文件,应该先输入该盘符,敲回车,然后再用cd命令
如:
d: 切换盘符d盘
cd programs 进入programs目录

(3)md命令:创建目录
make directory
md 盘符:<文件夹名>
md myFile在当前目录下创建myFile文件夹
md myPhoto\aaa\bbb在当前目录下创建myPhoto\aaa\bbb多级目录
注意:md命令还可以创建以.开头的文件夹。

(4)dir命令:列出当前目录下的文件以及文件夹
dir [盘符:][目录路径]\ [/p] [/s]\ [/w] [/o]
/p 分页显示下一页内容,按任意键查看下一屏
/s 显示所有目录及其子目录下所有文件
/w 宽屏显示
/o 分类顺序显示
示例:dir /s
ctrl+c终止程序运行

(5)copy命令:复制一个或一组文件到指定磁盘或目录中
copy <源文件路径> [目标路径]
copy a.txt d:\myFile 复制a.txt文件到d:\myFile文件夹中
copy myFilemyPhoto只复制myFile文件夹下的所有文件到myPhoto中,不包括子文件夹中的文件
如果要复制所有子文件夹下文件可使用:
xcopymyFilemyPhoto/s不能复制空目录
xcopymyFilemyPhoto/e复制空目录

(6)
remove directory
rd [盘符:][路径名]<子目录名>
只能删除空目录,不能删除当前目录
rdmyFile删除myFile目录
rdmyFile\aaa只能删除aaa目录,不能删除myFile目录
rd文件夹的名字删除一个空文件夹。
注意:不能用于删除非空的文件夹。

(7)del命令:删除文件
删除目录中的一个或一组文件,不能删除目录
del info.txt 删除info.txt文件
del myFile* 删除myFile目录下所有的文件

(8)其他指令
cls命令:清空屏幕
exit命令:退出dos命令行
mspaint:打开画图板
notepad:打开记事本

指令分类
操作文件夹:
dir 列出当前控制台所在的路径下的所有文件以及文件夹。
cd 路径 进入指定的路径下。
cd … 回退到上一级目录上。
cd \ 回退到当前路径下的根目录。
md 文件夹的名字创建一个文件夹 make dicrect
rd文件夹的名字删除一个空文件夹。
注意:不能用于删除非空的文件夹。
操作文件:
echo 数据>文件名创建一个文件并且指定写入的数据。
type 文件名查看指定的文件内容。
del 文件名删除指定的文件。
注意: del后面如果跟一个文件夹,那么是删除一个文件夹中的所有文件(直接子文件)。
* 通配符(可以匹配任意的文件名)
tab 内容补全.
cls清屏
上下方向键找回上一次所写过的命令。
exit 关闭控制台。

Tips:常用快捷键
ctrl+s保存
ctrl+c复制
ctrl+v粘贴
ctlr+z撤销
在这里插入图片描述

五.java语言

1.什么是程序

程序是为了模拟现实世界,解决现实问题而使用计算机语言编写的一系列有序的指令集合。

2.Java语言简史

Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言。
在这里插入图片描述James Gosling,生日:1955年05月19日
WWW 万维网的发展促进了Java的发展。
java语言生于1991年,由美国SUN公司开发,当时叫OAK语言,1995改名为java语言
Java是Sun(Stanford University Network)于1995年推出的一种高级编程语言
1996年1月发布JDK1.0
1998年 JDK1.2,更名为Java2 包括三个版本 J2ME J2SE J2EE
2000年 JDK1.3,JDK1.4
2004年JDK1.5,为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0,内部版本1.5
2005年 JDK6.0,J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME,内部版本1.6
2009年 Oracle(甲骨文)74亿美元收购Sun。取得Java的版权。(Oracle圣人,先知)
2011年 JDK7.0,内部版本1.7
2014年3月19日,JDK8.0 内部版本1.8
2017年9月22日,JDK9.0发布
2018年3月21日,JDK10.0发布
2018年9月26日,JDK11.0发布
2019年3月20日,JDK12.0发布
在这里插入图片描述

3.java语言是什么?

简单地说,Java 是由 Sun Microsystems 公司于 1995 年推出的一门面向对象程序设计语言。2010 年 Oracle 公司收购 Sun Microsystems,之后由 Oracle 公司负责 Java 的维护和版本升级。

其实,Java 还是一个平台。Java 平台由 Java 虚拟机(Java Virtual Machine,JVM)和 Java 应用编程接口(Application Programming Interface,API)构成。Java 应用编程接口为此提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个 Java 平台之后,Java 应用程序就可运行。

Java 平台已经嵌入了几乎所有的操作系统。这样 Java 程序只编译一次,就可以在各种系统中运行。

Java 可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。

2020年9月编程语言排行榜TOP20:
在这里插入图片描述可能上图的排行不够直观,下面看看2020年9月编程语言排行榜top10的柱状图
在这里插入图片描述

4.Java技术的分类

Java分为三个体系:
JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。

2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 “2”:J2EE 更名为 Java EE,J2SE 更名为Java SE,J2ME 更名为 Java ME。
在这里插入图片描述

5. Java SE

Java SE(Java Platform Standard Edition,Java 平台标准版)它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java EE 提供基础,如 Java 语言基础、JDBC 操作、I/O 操作、网络通信以及多线程等技术。

如图所示为 Java SE 的体系结构:
在这里插入图片描述

6. Java EE

Java EE(Java Platform Enterprise Edition,Java 平台企业版)企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(Service Oriented Architecture,SOA)和 Web 2.0 应用程序。

7. Java ME

Java ME(Java Platform Micro Edition,Java 平台微型版),也叫 K-JAVA。 Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。

Java ME 包括灵活的用户界面、健壮的安全模型、丰富的内置网络协议以及对可以动态下载的联网和离线应用程序。基于 Java ME 规范的应用程序 只需编写一次就可以用于许多设备,而且可以利用每个设备的本机功能。

六.Java语言的特点

Java 语言的风格很像 C 语言和 C++ 语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面向对象的技术核心,但是拋弃了 C++ 的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。

Java 语言是一种分布式的面向对象语言,具有面向对象、平台无关性、简单性、解释执行、多线程、安全性等很多特点,下面针对这些特点进行逐一介绍。

1.Java 语言是简单的:

Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动的废料收集(垃圾回收机制),使得程序员不必为内存管理而担忧,使编程变得更加简单。

2.Java 语言是面向对象的:

Java 语言它对对象中的类、对象、继承、封装、多态、接口、包等均有很好的支持。为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言,使用 Java 语言开发程序,需要采用面向对象的思想设计程序和编写代码。

3.Java语言是分布式的:

Java语 言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。

4.Java语言是健壮的:

Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。

5.Java语言是安全的:

Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。

6.Java 语言是体系结构中立的:

Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

7.Java 语言是可移植的:

这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。

8.Java 语言是解释型的:

如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

9.Java 是高性能的:

Java 的高性能主要是相对其他高级脚本语言来说的,与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。

10.Java 语言是多线程的:

在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。

11.Java 语言是动态的:

Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

Java 语言的众多特性使其在众多的编程语言中占有较大的市场份额,Java 语言对对象的支持和强大的 API 使得编程工作变得更加容易和快捷,大大降低了程序的开发成本。Java 的“一次编写,到处执行”正是它吸引众多商家和编程人员的一大优势。

下一篇:JAVA java学习(2)——————java下载安装与环境配置

猜你喜欢

转载自blog.csdn.net/qq_43434300/article/details/108766136