Java从入门到入土

前言

记录Java的发展史以及Java编程必备的一些软件和准备工作,然后会在后面记录一些Java语言的基础数据类型。

文章目录

  • Java从入门到入土
    • 前言
    • Java发展史
    • Java特点
    • Java中的基础配置
      • JDK安装
    • 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安装的博客,链接如下:

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,所以该强制类型转换会出现内存溢出问题,如果是浮点数转换为整数超出范围则可能会出现精度丢失异常。
*/

总结

本篇笔记从一些学习习惯到编程语言中最为基础的数据类型都有记录,数据类型记录的不是很走心,因为数据类型基本都是在实践中逐步求精,现在说太多可能会劝退一些人,后期记录吧。

本篇笔记中记录的知识点比较多,说实在话,记录的并不细,熟悉博主的人都了解,我比较懒。不过后期可能会对某些单独的知识点抠的比较细,如果有需要的话可以关注我,我的更新随缘,不过尽量保证最差为周更。

Java从入门到入土相关推荐

  1. 动漫java从入门到入土_适合刚入宅的萌新悠哉观看的经典番,全员致郁,从入门到入土?...

    二次元是一个十分美好的世界,如果入了这个坑的话,就很难再走出去了.很多动漫都可以成为某些人的入坑番,就看你喜欢你什么样的了.如果是萌新,刚入坑二次元的话,新一君推荐几部番,真的很治愈,非常适合萌新观看 ...

  2. 小黑子—Java从入门到入土过程:第六章

    Java零基础入门6.0 Java系列第六章 1. 面向对象综合练习 1.1 文字版格斗游戏= 参数占位,格式化输出回顾 关于printf和print和println的区别 1.2 对象数组练习 1. ...

  3. 小黑子—Java从入门到入土过程:第四章

    Java零基础入门4.0 Java系列第四章 1. 顺序结构 2. if语句 3. switch 语句 3.1 default的位置和省略 3.2 case 穿透 3.3 switch 新特性 (jd ...

  4. java从入门到入土_Java从入门到入土100天,第四天

    第四天,String的常用方法 首先,先说明一个重点,在大部分语言中,String 都是不可变的,改变的都是建一个新的字符串然后将修改结束的字符串存到新的字符串中. 然后再提一个区别:String.S ...

  5. java从入门到入土图_Java从入门到入土day08

    好家伙,这个作者竟然妄图一天就把面向对象的两个特征说了.他可真是自不量力啊,作者心中OS:学习真累,赶快写完去打游戏真香. 正文分割线 一.抽象 1.抽象的定义:抽象,字面意思.很抽象,很多人都不懂的 ...

  6. JAVA从入门到入土(引入篇)

    JAVA是什么?为什么要学习使用JAVA?JAVA有什么突出的特色?这一连串的问号是我在上大学时刚学习到JAVA时产生的疑问,相信大家也会有些疑问.我在下面会结合我的经历进行解答. 初出茅庐 大学期间 ...

  7. java从入门到入土图片_Spring从入门到入土——概述以及HelloWorld

    第一篇本文主要介绍了Spring的基本概念以及如何快速编写一个Spring项目,并让它运行起来. Spring 概述 优点Spring是一个开源免费的框架.容器 Spring是一个轻量级的框架.非侵入 ...

  8. JAVA从入门到入土(1)

    目录 JAVA学习路线规划 01-JAVA语言概述 01章-JAVA企业真题 02-变量与运算符 基本数据类型介绍 02章-JAVA企业真题 03-流程控制语句 Scanner:键盘输入功能的实现 i ...

  9. Java从入门到入土之Spring-IoC篇

    1.Spring是什么   Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE ...

  10. Java学习指南从入门到入土

    Java学习指南从入门到入土 本身其实只是刚刚入门,只是经历了两年时间的风吹雨打,经历了各种bug的折磨和学习各种框架的辛酸,才有得现有的 刚刚入门.有句老话说的好叫做 从入门到放弃,人生不易要及时放 ...

最新文章

  1. mysql遇到your password does not satisfy the current policy requirements
  2. java快速创建dto_根据数据库表对象信息快速建立Dto类详解
  3. SolrJ查询Solr数据
  4. 【无标题】服务机器人---SLAM算法之gmapping
  5. 【项目管理】采购管理
  6. 用Spring更好地处理Struts动作三种整合
  7. 浅析微信支付:微信支付简单介绍(小程序、公众号、App、H5)
  8. 如何在Windows上设置BitLocker加密
  9. LeetCode 325. 和等于 k 的最长子数组长度(哈希表记录第一次出现的状态)
  10. linux 动态传参执行shell脚本
  11. [C语言] 插入排序之直接插入排序的特性及实现
  12. Spring 4 官方文档学习 Spring与Java EE技术的集成
  13. 分布式服务框架-原理与实践:15---服务降级-学习笔记
  14. MATLAB画图线性,颜色和数据点
  15. __ieee80211_data_to_8023
  16. 4 Three.js一个案例详解
  17. 美团校招题 小团的默契游戏
  18. 阿里巴巴、腾讯、字节跳动“顺从”互联网监管,提交应用算法详情
  19. MyBatis-Plus之多租户架构(Multi-tenancy)——SAAS
  20. 推荐!国外程序员整理的Java资源大全

热门文章

  1. 三角函数公式大全(速查手册)
  2. python引用配置文件_python中配置文件的使用方法
  3. prepared statement mysql_MySQL之 Statement实现及PreparedStatement实现
  4. 制作VOC格式的数据集
  5. pytorch求范数函数——torch.norm
  6. as本地仓库更改_如何将源仓库的更改同步到fork仓库?
  7. 如何在linux系统下读写windows上的共享文件夹
  8. 常用的C语言学习网站
  9. 探讨【IGE】的源代码【五】。
  10. 电商网站项目总结(面向对象编程篇)