Java零基础学习之路(一)——java的基本知识

前言:
  暑期来临,小辰开始了Java学习之旅。在此过程中,小辰发现了许多容易让人遗忘的地方。因此小辰写下该篇文章帮助自己加深印象,并且希望能够帮助各位小伙伴 😉😉
   本篇文章适合准备学习javase的小伙伴。如果文章有写的不准确或者有所遗漏的地方,还请各位大佬多多包涵,不吝赐教☕️☕️
   小辰在此先谢过大家了😘😘

一. 发展历史及语言特点

  Java 编程语言是 Sun Microsystems 公司的 James Gosling 在 1990 年创建的,于 1995 年公布于世(一般说 Java 诞生于 1995 年)。Java 是一门面向对象的编程语言,不仅吸收了 C++语言的各种优点,还摒弃了 C++里难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

1. 发展历史

	1990 年末,Sun 公司准备为下一代智能家电(电视机,微波炉,电话)编写一个通用的控
	制系统。该团队最初考虑使用 C++语言,很多成员包括 Sun 公司的首席科学家 Bill Joy,发现
	C++语言在某些方面复杂,系统资源极其有限,缺少垃圾回收系统等,于是 Bill Joy 决定开发
	一种新的语言:Oak。
	1992 年夏天,Green 计划已经完成新平台的部分功能,包括 Green 操作系统,Oak 的程序设计语言、类库等。
	同年 11 月,Green 计划被转成“FirstPerson 有限公司”,一个 Sun 公司的全资子公司。该团队致力于创建一种高度互动的设备。
	1994 年夏天,互联网和浏览器的出现不仅给广大互联网的用户带来了福音,也给 Oak 语
	言带来了新的生机。James Gosling(Java 之父)立即意识到,这是一个机会,于是对 Oak 进行
	了小规模的改造。
	1994 年秋,小组中的 Naughton 和 Jonathan payne 完成了第一个 Java 语言的网页浏览器:
	WebRunner。Sun 公司实验室主任 Bert Sutherland 和技术总监 Eric Schmidt 观看了该网页的演
	示并给予了高度的评价。当时 Oak 这个商标已经被注册了,于是将 Oak 改名为 Java。
	1995 年初,Sun 公司发布 Java 语言,Sun 公司直接把 Java 放到互联网上,免费给大家使
	用,甚至连源代码也不保密,也放在互联网公开。几个月后,Java 成了互联网上最热门的宝贝。
	各种各样的小程序层出不穷,Java 终于扬眉吐气,成为了一种广为人知的编程语言。
	1996 年底,Flash 问世了,这是一种更加简单的动画设计软件:使用 Flash 几乎无须任何编
	程语言知识,就可以做出丰富多彩的动画。Flash 逐渐蚕食了 Java 在网页上的应用。
	1997 年 2 月 18 日,Sun 公司发布了 JDK1.1,增加了即时编译器 JIT。
	1995 年 Java 诞生到 1998 年底,Java 语言虽然成为了互联网上广泛使用的编程语言,但它
	没有找到一个准确的定位。
	1998 年 12 月,Sun 发布了 Java 历史上最重要的 JDK 版本:JDK1.2。并将 Java 分成了 J2EE
	(提供了企业应用开发相关的完整解决方案)、J2SE(整个 Java 技术的核心和基础)、J2ME
	(主要用于控制移动设备和信息家电等有限存储的设备)三个版本。
	2002 年 2 月,Sun 发布了 JDK 历史上最为成熟的版本,JDK1.4。
	2004 年 10 月,Sun 发布了万众期待的 JDK1.5。JDK1.5 增加了诸如泛型、增强的 for 语句、
	可变数量的形参、注释、自动拆箱和装箱等。
	2005 年,Java 诞生十周年,J2SE/J2EE/J2ME 分别改名为:JavaSE/JavaEE/JavaME。
	2006 年 12 月,Sun 发布了 JDK1.6。
	2009 年 4 月 20 日,Oracle 甲骨文公司宣布将以每股 9.5 美元的价格收购 Sun。Oracle 通过
	收购 Sun 获得了两项资产:Java 和 Solaris。
	2007 年 11 月,Google 宣布推出一款基于 Linux 平台的开源手机操作系统:Android。Android
	使用 Java 语言来开发应用程序。Android 平台的流行,让 Java 语言获得了在客户端程序上大
	展拳脚的机会。
	2011 年 7 月 28 日,Oracle 发布了 Java SE7,这次版本升级耗时将近 5 年时间。引入二进
	制整数、支持字符串的 switch 语句等。
	2014 年 3 月 18 日,Oracle 发布了 Java SE 8。
	2017 年 7 月,Oracle 发布了 JavaSE 9。
	2018 年 3 月 20 日,Oracle 发布了正式版 JavaSE 10。同一年 9 月 25 日发布了 Java11。
	2019 年 3 月 19 日,Oracle 发布了 Java12。
	 以上的描述就是 Java 一路走来的发展历程,我们只能说:Java,你好坚挺啊!在这个发展
	的过程中一代语言的兴起又衰败,又兴起又衰败,但 Java 这 24 年来一直立于不败之地。并且
	渗透到每个行业,已然根深蒂固。

2. 语言特点

  sun 公司对 Java 的描述:“Java is a simple,object-oriented, distributed, interpreted, robust,
secure, architecture neutral, portable, high-performance, multihreaded, and dynamic language”。翻译起来就是: “Java 是一门简单的,面向对象,分布式,解释性,健壮的,安全的,结构中立的,便
捷的,高性能的,多线程的,动态的语言”。那么,在学习 Java 编程语言之前,让我们一起
来看一看它有哪些特性吧?
2.1 简单性
  Java 语言底层采用 C++语言实现,相对于 C++来说,Java 是简单的,在 Java语言中程序员不需要再操作复杂的指针(指针的操作是很复杂的),继承方面也是只支持单继承(C++语言是一种半面向对象的编程语言,支持多继承,多继承会导致关系很复杂),在很多方面进行了简化。
2.2 健壮性
  在 C++程序当中的无用数据/垃圾数据需要编程人员手动释放,当忘记释放内存的时候,会导致内存使用率降低,影响程序的执行;在Java 语言当中这种问题得到了解决,因为 Java 语言引入了自动垃圾回收机制(GC 机制),Java 程序启动了一个单独的垃圾回收线程,时刻监测内存使用情况,在特定时机会回收/释放垃圾数据,这样会让内存时刻处于最好的状态。
2.3 可移植性
  可移植性是指:只需在某一操作系统编写/编译好Java代码,就可在任何操作平台使用(前提是安装好对应的JDK),即一处编译,到处运行。那么它到底是怎么做到的呢?
  这就要归功于“Java虚拟机(Java Virtual Machine,简称为JVM)”这个工具。实际上java程序的运行并不是直接运行在操作系统上,而是先在操作系统上安装相应版本的JVM,然后将Java程序放到JVM上运行。总的来说,JVM起了一个桥梁的作用。
  JVM虽说解决跨平台的问题,但是与之相应也带来了新的问题。例如要想运行Java代码就必须先安装JVM,没有JVM,Java程序是运行不了的。就相当于你玩Flash游戏,结果浏览器却提示你需要安装Flash插件,这一点是不是感觉很不爽呀!
  那么Java程序、JVM、操作系统之间是什么关系呢?请看下图:


在这里插入图片描述
图一 Java程序、JVM、操作系统之间的关系

  通过上图我们可以看到不同操作系统中安装的JVM也是不同的, 这是因为JVM是和操作系统直接打交道的,windowsh和inux操作系统本身的执行原理也不同,所以JVM肯定也必须是定制的,不能通用
  那为什么Java程序放到两个系统的JVM上最终执行效果会相同呢? 那是因为虽然JVM版本不同,但是所有版本的JVM的实现都是遵循sun公司指定的JVM规范的。是不是很神奇呀?!😄😄

二. 三大名词之间的联系

  想必小伙伴们在学习java过程中,没少听见JDK,JRE,JVM三个名词。那大家有没有思考过它们分别是什么,它们之间的关系又是怎样呢,请看下图:


请添加图片描述
图二 JDK,JRE,JVM三者之间的关系

  从上图中我们可以看到,JDK包含JRE,JRE又包含JVM。换句话说,只要安装了JDK,JRE和JVM则自动就安装了。那么他们分别代表什么呢:
  ① JDK:JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。它是每一个 Java 软件开发人员必须安装的。JDK 安装之后,它会自带一个 JRE,因为软件开发人员编写完代码之后总是要运行的。注意:如果只是在这台机器上运行 Java 程序,则不需要安装 JDK,只需要安装 JRE 即可(JRE 是有独立安装包的,这个大家可以从 Oracle 官网上找一下)。
  ② JRE:JRE(Java Runtime Environment,Java 运行环境),运行 JAVA程序所必须的环
境的集合,包含 JVM 标准实现及 Java 核心类库。
  ③ JVM:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 是实现 Java 语言跨平台的法宝。
  在这里我需要重点强调一下,不同的操作系统需要安装不同版本的 JDK,有专门的 windows版 JDK,Linux 版 JDK,Mac 版 JDK 等,当然不同版本的 JDK安装之后会对应不同版本的 JRE
和 JVM。

三. 开发之前的准备工作

  由于开发前的准备工作繁多,小辰单独写了一篇文章,来专门介绍准备工作。
  文章的链接为:Java开发之前的准备工作

四. 第一个程序(重点)

1. 写代码

//1.定义一个名为Hello的公共类
public class Hello{
//2.创建程序入口——main函数
  public static void main(String[] args){
//3.系统打印输出HelloWorld
  	System.out.println("HelloWorld");
  }
}
编写规范
1.注意代码缩进
	缩进表示语句与语句之间的包含关系,不可省略
	一般缩进默认为4个字符,但也可为其他字符个数
2.注意分号
	方法体中,每条语句结束后都必须以英文分号结尾
3.注意括号
	方法体中,每条语句结束后都必须以英文分号结尾

2. 编译和运行

(1)编写完代码后,打开dos窗口,利用cd命令转到Java文件所在的位置。
(2)利用javac命令进行编译,将生成相应的class文件
(3)利用java命令运行class文件


请添加图片描述
图三 操作示意图

注:
若出现下图问题:

在这里插入图片描述
图四 无法加载类名

有三种可能。
一. 是未转到Java文件所在路径
二. 是定义的公开类的类名和文件名不相同。
三. 是重新配置了classpath,classpath中不包括该文件所在路径

若出现编译不通过,未生成class文件的问题
检查源文件分隔符,括号是否均用英文

3. 代码注释

  在java中,注释的方式一共有三种。它们分别是:
  第一种:单行注释,语法格式如下:
    // 单行注释,与两个正斜杠一行且在其后的内容被注释
  第二种:多行注释,语法格式如下:
    /*
    这里是多行注释
    第一行注释内容
    第二行注释内容
    …
    /
  javadocc注释。
    /**
     这里的信息是 javadoc 注释
     @author 作者名字
     @version 版本号
    @since 自从哪个版本号开始就存在了
    
/
  注意:对于 javadoc 注释来说,这里的注释会被 JDK bin 目录下的 javadoc.exe 命令解析并生成帮助文档(生成帮助文档后期做项目的时候小伙伴们会接触到的)。

五. 类

  1. 一个Java文件可以定义多个类
  2. 编译后,每个类都会产生独立的class文件
  3. 一个类中只有一个主方法(不能没有),每个类都可以有自己的主方法


请添加图片描述图五 实际演示

  4. public修饰的是公共类,类名必须与文件名相同。


请添加图片描述
图六 公共类类名必须与Java文件名相同

  5. 一个Java文件至多可以定义1个公共类(要么没有,要么只有一个)
    若有多个公开类,则违背4。因此,一个Java文件中至多有一个公共类

六.结语

  文章到这就先结束了,后面会持续更新的,希望能对各位大佬有所帮助。如果文章有需要改进的地方还请大佬斧正☕️☕️
  制作不易,还请各位小伙伴多多支持😘😘
  小辰再次感谢大家啦✨✨


请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值