Java从入门到入土
前言
记录Java的发展史以及Java编程必备的一些软件和准备工作,然后会在后面记录一些Java语言的基础数据类型。
文章目录
Java发展史
最早的时候,Java创立的初衷是因为当时的高级语言C/C++在指针、内存管理等方面饱受诟病,十分折磨程序员;同时Sun公司预料到未来嵌入式系统会成为未来一段时间的发展主流,于是启动了“Green计划“,在计划进行中,发现C/C++在实现阶段有局限性,而且编写的程序并不能完全做到可移植,要知道当时计算机多数都是定制机,也就没有一个业内标准,所以我们需要一个可以在任何平台都可以运行的编程语言。于是在Java诞生之前就指定了一些基于程序员角度的新语言的特性和要求:
- 语法变化不能过大;
- 不需要手写指针;
- 不需要手动内存管理;
- 强大的可移植性;
- 面向对象;
- 类型安全;
- 高质量的集成工具;
- ………………
最早的时候,Java语言还不叫这个名字,1992年被命名为OAK语言。在1994年的时候,互联网和浏览器的出现使得OAK语言察觉到了自己的春天,于是开发者们在OAK的基础上做了一些小改经,想注册并发布这门语言,然而OAK这个名字已经有人抢先注册了,于是OAK语言被正式更名为Java并在1995年年初发布。
最初的浏览器页面很low,且开发难度大,于是诞生了基于Java的图形界面的程序(Applet),只要在浏览器安装一个插件就可以运行Applet,页面开始美轮美奂,从此Java开始大放异彩。
接下来就是正常的商业发展,互联网巨头们便开始与Java寻求合作,微软也在此行列。不过微软在申请Java的使用许可之后就想把Java做一些修改,使其只能在Windows系统上运行,并借助自己在行业中的地位引领未来发展(大家有没有想到某家企业?)。不过被IT届的革命者们联合抵制,将微软踢出了Java生态圈。微软也没有放弃,在此之后微软边模仿Java的理念开发出了.net语言。
书归正传,Java大放异彩后,决定乘胜追击,从三个方向进军互联网:JavaSE、JavaME、JavaEE。
由于语言局限性以及发展方向的原因,JavaSE在系统桌面应用中没有获胜,JavaME在互联网时代的局限性中也很快败下阵来,而JavaEES在服务器端的发展却是大获全胜,开发出了许多平台工具,比如我们所熟知的Maven、Tomcat、Spring、Eclipse。
2006年,Hadoop的出现使Java迅速进军大数据,因其符合大数据时代的发展方向,很快便发展为主力技术。
接下来,Android系统出现了,Java更是在谷歌的帮助下占领了移动端一段时间,那个时候手机中的软件和游戏都是由Java语言编写的。然后我们国产的鸿蒙出现了,虽然Java在移动端已经没有什么位置,不过Java在日常生活中依旧无处不在。
Java特点
- 简单性:使用起来相对简单,而且没有C/C++中的指针;
- 面向对象:面向对象的理念使得在解决一些功能方面可以按照人类思维进行编程,其核心还是我在CSDN中第一篇Java中提到的抽象,这个概念后期慢慢理解,它将是贯穿Java编程的一条主线;
- 可移植性:Java是运行在虚拟机中,只要系统中有对应版本的Java虚拟机就可以运行Java程序(Java虚拟机后期会有专门讲解);
- 高性能:这个没什么好说的,如果性能不高的话是不可能迅速发展;
- 分布式:通过TCP/IP协议可以访问网络上的程序,调用远程方法;
- 动态性:Java语言本身不具备动态性,它的动态性是基于反射机制(后期会有详细说明);
- 多线程:在用户角度来看可以同时使用一个设备做多件事,比如:看电影、下载游戏,聊天同时进行;
- 安全性:Java可以防止奔溃、病毒等问题;
- 健壮性:Java可以通过异常捕获等相关操作解决系统容易出现的问题。
Java中的基础配置
- JDK:Java Development Kit,Java开发者工具,其中包含JRE以及JVM;
- JRE:Java Runtime Environment,Java运行环境,包含了JVM;
- JVM:Java Virtual Machine,Java虚拟机,专门处理Java语言的一个平台。
JDK安装
我在CSDN中发过一篇关于JDK安装的博客,链接如下:
博客中提供的是JDK8版本,也是现在市场上主流的版本。
Java程序运行机制
Java语言简介
Java语言是编译解释型语言。
- 编译:将程序整体翻译成另外一种语言;
- 解释:对程序进行逐行解释。
【注】:编译可以理解为买了一本外文书籍,如果我们看不懂就需要找人帮忙翻译一下,翻译成我们能读懂的语言后才能继续阅读;解释可以理解为我们花钱请了一个翻译官,他边读书边给我们将书中的内容。
Java语言
注释
-
单行注释:
// 这是一个单行注释
-
多行注释:
/* * 这是一个多行注释 */
-
文档注释:对程序的描述,程序运行时会识别到它,但不会执行或输出。
/** * @Description 程序描述 * @Author 作者 **/
需要注意的是,注释是给开发者查阅的,在程序运行时并不会把注释的内容执行并输出。注释是一个程序员代码最基础的规范,很多程序员工作时并没有书写注释的习惯。书写注释不单单是为了方便别人,当你工作半年以后再看之前写过的程序你会发现看不懂自己的代码。所以,大家要逐渐养成书写注释的习惯。
标识符
-
关键字:指的是Java语言中由官方定义的、具有一定功能及含义的概念,且关键字不能用作用户自定义的变量、类名等。
-
用户自定义标识符的要点:
- 标识符由数字、字母、下划线以及美元符号组成;
- 数字不能用作用户自定义标识符的开头;
- 标识符要注意大小写;
- 用户自定义标识符不能与关键字同名;
- 个人建议不要使用拼音来命名。
数据类型
数据类型大体分类
数据类型大体分为两大类:基本类型、引用类型。
- 基本类型:系统定义的最基本的数据类型,其中共有八种,下文有叙述;
- 引用类型:系统定义或用户自定义的数据类型,其内部由基本类型组成,后续会有详细讲解。
数据类型具体分类
首先说明,Java是一门强类型语言,即对于变量的使用极其严格,变量必须定义后才能使用。Java中包含许多数据类型,对应类型的数据必须用相关类型的变量来指向,至于数据类型方面,下面只会贴几张图片,数据类型入门很简单,但是具体解释很麻烦,如果图片看不懂的话就去看看别人的博客吧。
以下是Java数据类型的取值范围:
其中,1KB=1024B;1B=8字节。
数据单位
- 位(bit):计算机内部数据存储的最小单位;
- 字节(byte):计算机中数据处理的基本单位,习惯使用B来表示;
- 字符:计算机中使用的字母、数字、符号;
数据单位的具体换算
-
1bit = 1位;
-
1 byte = 8 bit;
-
1KB = 1024 B;
-
1M = 1024 KB;
-
1GB = 1024 M;
-
1TB = 1024 GB。
类型转换
Java作为强类型语言,在实现功能的时候可能会需要数据类型之间的转换,具体的转换规则如下:
上图中,数据类型的排列方式是根据优先级的由低到高排列。
数据类型中转换的一些要点:
- 低到高,自动转换;高到低,强制转换;
int i = 128;
byte b = (int)i;
/*
以上是强制类型转换的写法,不过要注意取值范围,byte的取值范围是 -128~127,所以该强制类型转换会出现内存溢出问题,如果是浮点数转换为整数超出范围则可能会出现精度丢失异常。
*/
总结
本篇笔记从一些学习习惯到编程语言中最为基础的数据类型都有记录,数据类型记录的不是很走心,因为数据类型基本都是在实践中逐步求精,现在说太多可能会劝退一些人,后期记录吧。
本篇笔记中记录的知识点比较多,说实在话,记录的并不细,熟悉博主的人都了解,我比较懒。不过后期可能会对某些单独的知识点抠的比较细,如果有需要的话可以关注我,我的更新随缘,不过尽量保证最差为周更。