什么是Java?

Java 是一种用于互联网分布式环境的面向对象编程语言。它是一种高级语言,也易于阅读和理解。有了它,开发人员可以“编写一次,随处运行”(WORA),这意味着编译后的 Java 代码将在所有 Java 兼容平台上运行,而无需重新编译。

Java的历史

James Gosling 和 Sun Microsystems 于 1991 年发明了 Java 编程语言。他在创建该语言时有一个座右铭:“一次编写,一次编写”。到处跑。” 他们最初将这种语言命名为 Oak,因为 Gosling 办公室外面有一棵橡树。后来名字改为Green,再改为Java Coffee,以产自印度尼西亚的咖啡命名,最终于1995年缩写为Java。

Java 的用途是什么?

Java 广泛应用于 Web 控制台、GUI、Web 和移动应用程序、游戏开发、嵌入式系统和桌面应用程序。除此之外,Java还用于开发设备软件。它不仅用于计算机和移动设备,甚至还用于电视、空调、洗衣机等电子设备。由于 Java,在线注册表、银行应用程序和互联网购物都成为可能。

Java 是基于什么?

Java是基于C和C++的。第一个 Java 编译器由 Sun Microsystems 开发,并使用 C++ 中的一些库用 C 语言编写。Java 文件使用编译器转换为位代码格式,然后由 Java 解释器执行。Java 代码在 Java 虚拟机 (JVM)(运行时环境)上运行。

Java 版本

Java 共有三个版本。程序员可以根据他们想要制作的应用程序来学习这些版本中的任何一个。

  • Java 标准版 - 包含核心库,如 java.lang、java.util 等。
  • Java 企业版- 包括Java API,如 JMS、EJB、JSP/servlet 等。
  • Java Micro Edition  - 该版本用于在手机、机顶盒、手持设备等中对 Java 进行编程。

Java 使用最广泛的版本是 Java SE(标准版)。Java SE 包含 Java 的基础知识 — 大多数应用程序需要标准版。

Java的概念和特点

Java概念

Java 中的基本概念是其面向对象编程 (OOP) 功能。OOP 通过提供一些概念来简化软件和应用程序的开发以及维护,例如:

  • 对象:对象是具有状态和行为的元素或实体。例如,狗可以被视为具有颜色、品种和名称的对象。它有吠叫和进食等行为。
  • :类是多个对象的集合。它是一个蓝图,可用于创建任意数量的对象。类用于组织代码,就像超市中的水果、蔬菜和临床产品被划分为不同的部分一样。
  • 构造函数:构造函数可能看起来像一种方法,但它不是一种方法。它的名称与类名相同,并且不返回任何值。
  • 继承:继承是一个类获取父类的属性和行为的概念。
  • 多态性:多态性是以不同方式执行同一任务的过程。它允许程序员在不同的上下文中使用相同的单词来表示不同的事物。
  • 抽象:Java 中的抽象用于隐藏内部细节并仅显示相关的基本细节。
  • 封装:将代码和数据绑定或包装到一个单元(如胶囊)中称为封装。Java 类是封装的一个例子。

Java特性

Java 具有多种品质和特性,包括:

  • 简单的语法非常容易理解和学习
  • Java 语言很健壮
  • 消除 C 和 C++ 语言中出现的错误
  • Java 包含垃圾收集器和异常处理等功能
  • 作为一种可移植语言,Java可以运行在任何平台上
  • Java 是安全的并且可以执行多任务处理
  • Java 不如 C 和 C++ 快,但它提供比任何其他语言更高的性能

现在我们已经讨论了 Java 的不同特性,接下来让我们看看 Java 编程语言的不同组件。

Java的组件

Java 编程语言由三个主要组成部分组成,包括:

  1. JVM:Java 虚拟机或 JVM 是一个独立于平台的 Java 组件,为执行 Java 程序提供环境。因此,JVM 加载代码、验证代码、执行代码并提供运行时环境。
  2. JRE:Java运行时环境或JRE构建了Java文件可以运行和执行的环境。它是一个包含 JVM 以及 Java 类库和 Java 类加载器的软件包。
  3. JDK:Java 开发工具包或 JDK 是 JRE 的超集,是用于开发 Java 应用程序和小程序的软件开发环境。JDK 包括一个私有 JVM 和一些其他资源来完成 Java 应用程序的开发。

Java OOP 概念

面向对象编程(OOP)有四个主要概念,包括:

1. 抽象

抽象意味着显示相关细节并隐藏所有后端或内部细节。在下面的示例中,对于要进入大学的学生,询问的相关详细信息将是姓名、地址、父母姓名和高中成绩。喜欢的运动、食物或电影等细节并不相关。

2. 封装

封装类似于胶囊。整个代码和所有数据都绑定在一个单元中。所有的方法和变量都存储在一个类名下,同一个类对象可以使用它。

3. 多态性

多态性意味着一项任务以不同的方式执行。一种功能用于不同的任务。在下面的示例中,方法draw()可以在不同的地方使用来绘制不同的形状,如三角形、矩形或圆形。

4. 继承

当一个类继承其他类的某些属性时,称为继承。总是有一个超类和一个子类。子类继承了超类的属性。在下面的示例中,动物是具有 eat() 和 sleep() 属性的超类。爬行动物、哺乳动物和人类子类继承了这些属性。

如何学习Java?

Java 是最常用的编程语言之一,主要是因为 Java 天生具有通用性、可靠性和兼容性。因此,如果您想开始编程职业,这是一项急需的技能。以下是一些入门技巧:

  • 从 Java 编程基础知识开始(变量、数据类型、条件语句、数组、循环、函数)
  • 阅读一本有关 Java 编程的书,了解基本概念
  • 学习高级主题(面向对象编程、继承、抽象类、Java 接口、集合、抽象类、异常处理、包装类)
  • 定期练习编码以了解从经验中学习
  • 阅读有关 Java 的文章和新文档以了解最新信息

Java 中的 Hello World 程序

输出:

不使用临时变量交换两个数字

输出:

01-什么是 Java:Java 初学者指南的更多相关文章

  1. Java多线程初学者指南系列教程

    转自:http://developer.51cto.com/art/200911/162925.htm 51cto 本系列来自NokiaGuy的“真的有外星人吗”博客,系列名称为<Java多线程 ...

  2. 【系列】Java多线程初学者指南(1):线程简介

    原文地址:http://www.blogjava.net/nokiaguy/archive/2009/nokiaguy/archive/2009/03/archive/2009/03/19/26075 ...

  3. Java多线程初学者指南(7):向线程传递数据的三种方法

    在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程 ...

  4. Java多线程初学者指南(12):使用Synchronized块同步变量

    我们可以通过synchronized块来同步特定的静态或非静态方法.要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传 ...

  5. Java多线程初学者指南(10):使用Synchronized关键字同步类方法

    要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下: public synchronized void run() { ... } 从上面的代码可 ...

  6. Java多线程初学者指南(9):为什么要进行数据同步

    Java中的变量分为两类:局部变量和类变量.局部变量是指在方法内定义的变量,如在run方法中定义的变量.对于这些变量来说,并不存在线程之间共享的问题.因此,它们不需要进行数据同步.类变量是在类中定义的 ...

  7. Java多线程初学者指南(8):从线程返回数据的两种方法

    从线程中返回数据和向线程传递数据类似.也可以通过类成员以及回调函数来返回数据.但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪. 一.通过类变量和方法返回数据 使用这种方法返回数 ...

  8. Java多线程初学者指南(6):慎重使用volatile关键字

    volatile关键字相信了解Java多线程的读者都很清楚它的作用,和sychnorized 一样用于多线程的同步.volatile关键字用于声明简单类型变量,如int.float.boolean等数 ...

  9. Java多线程初学者指南(4):线程的生命周期

    与人有生老病死一样,线程也同样要经历开始(等待).运行.挂起和停止四种不同的状态.这四种状态都可以通过Thread类中的方法进行控制.下面给出了Thread类中和这四种状态相关的方法. // 开始线程 ...

  10. Java多线程初学者指南(11):使用Synchronized块同步方法

    synchronized关键字有两种用法.第一种就是在<使用Synchronized关键字同步类方法>一文中所介绍的直接用在方法的定义中.另外一种就是synchronized块.我们不仅可 ...

随机推荐

  1. 🔥🔥通过访问URL地址,5分钟内渗透你的网站!很刑很可拷!

    今天我来带大家简单渗透一个小破站,通过这个案例,让你深入了解为什么很多公司都需要紧急修复各个中间件的漏洞以及进行URL解析拦截等重要操作.这些措施的目的是为了保护网站和系统的安全性.如果不及时升级和修 ...

  2. 🔥🔥Java开发者的Python快速进修指南:实战之跳表pro版本

    之前我们讲解了简易版的跳表,我希望你能亲自动手实现一个更完善的跳表,同时也可以尝试实现其他数据结构,例如动态数组或哈希表等.通过实践,我们能够发现自己在哪些方面还有所欠缺.这些方法只有在熟练掌握之后才 ...

  3. Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个

    如果你对shiro有问题的话,请看这篇文章:Springboot+shiro,完整教程,带你学会shiro-CSDN博客 第一步,先准备数据库: 数据库需要准备三个表,一个user表,一个role表, ...

  4. [ABC233G] Strongest Takahashi

    Problem Statement There is a $N \times N$ grid, with blocks on some squares. The grid is described b ...

  5. zookeeper JavaApi 删除节点

    /* * 删除节点 * 1.删除单个节点 * 2.删除带有子节点的节点 * 3.必须成功的删除 * 4.回调 * * */ @Test public void delete1() throws Exc ...

  6. 单元测试平台搭建:sonarQube+sonarScanner+Jenkins+jacoco

    单元测试平台搭建及结果分析 一.方案 需求目标:提高单元测试覆盖率和规范代码编写规范 选用工具:Sonarqube.sonarqube Scanner.Jenkins.jacoco 方案: 工程中引入 ...

  7. 神经网络优化篇:机器学习基础(Basic Recipe for Machine Learning)

    机器学习基础 下图就是在训练神经网络用到的基本方法:(尝试这些方法,可能有用,可能没用) 这是在训练神经网络时用到地基本方法,初始模型训练完成后,首先要知道算法的偏差高不高,如果偏差较高,试着评估训练 ...

  8. 数字孪生融合GIS系统能够为物流行业提供什么解决方案?

    全球贸易和电子商务的不断发展,让物流行业面临着越来越多的挑战.其中,提高运输效率.降低成本.优化供应链和增强可持续性等问题成为业界关注的焦点.在这个数字化时代,数字孪生和GIS系统的融合为物流行业带来 ...

  9. 解决 VM with version 2.1.0 has multidex support ; VM has multidex support, MultiDex support library is disabled.问题

    发布打包完之后,android studio提示 VM with version 2.1.0 has multidex support I/MultiDex: installI/MultiDex: V ...

  10. 【C#】【IO】【实例】接上一个统计的新功能

    先用Python来创建多层级文件夹: import os root_path = r"C:\Users\Desktop\文案整理\Practice" for item in ran ...