01-什么是 Java:Java 初学者指南
什么是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 编程语言由三个主要组成部分组成,包括:
- JVM:Java 虚拟机或 JVM 是一个独立于平台的 Java 组件,为执行 Java 程序提供环境。因此,JVM 加载代码、验证代码、执行代码并提供运行时环境。
- JRE:Java运行时环境或JRE构建了Java文件可以运行和执行的环境。它是一个包含 JVM 以及 Java 类库和 Java 类加载器的软件包。
- 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 初学者指南的更多相关文章
- Java多线程初学者指南系列教程
转自:http://developer.51cto.com/art/200911/162925.htm 51cto 本系列来自NokiaGuy的“真的有外星人吗”博客,系列名称为<Java多线程 ...
- 【系列】Java多线程初学者指南(1):线程简介
原文地址:http://www.blogjava.net/nokiaguy/archive/2009/nokiaguy/archive/2009/03/archive/2009/03/19/26075 ...
- Java多线程初学者指南(7):向线程传递数据的三种方法
在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程 ...
- Java多线程初学者指南(12):使用Synchronized块同步变量
我们可以通过synchronized块来同步特定的静态或非静态方法.要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传 ...
- Java多线程初学者指南(10):使用Synchronized关键字同步类方法
要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下: public synchronized void run() { ... } 从上面的代码可 ...
- Java多线程初学者指南(9):为什么要进行数据同步
Java中的变量分为两类:局部变量和类变量.局部变量是指在方法内定义的变量,如在run方法中定义的变量.对于这些变量来说,并不存在线程之间共享的问题.因此,它们不需要进行数据同步.类变量是在类中定义的 ...
- Java多线程初学者指南(8):从线程返回数据的两种方法
从线程中返回数据和向线程传递数据类似.也可以通过类成员以及回调函数来返回数据.但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪. 一.通过类变量和方法返回数据 使用这种方法返回数 ...
- Java多线程初学者指南(6):慎重使用volatile关键字
volatile关键字相信了解Java多线程的读者都很清楚它的作用,和sychnorized 一样用于多线程的同步.volatile关键字用于声明简单类型变量,如int.float.boolean等数 ...
- Java多线程初学者指南(4):线程的生命周期
与人有生老病死一样,线程也同样要经历开始(等待).运行.挂起和停止四种不同的状态.这四种状态都可以通过Thread类中的方法进行控制.下面给出了Thread类中和这四种状态相关的方法. // 开始线程 ...
- Java多线程初学者指南(11):使用Synchronized块同步方法
synchronized关键字有两种用法.第一种就是在<使用Synchronized关键字同步类方法>一文中所介绍的直接用在方法的定义中.另外一种就是synchronized块.我们不仅可 ...
随机推荐
- window.onload 触发时机问题
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 使用 Proxychains 代理联网
前言 Proxychains 是 Linux 系统中一款简单好用的代理工具,可以指定特定命令走代理进行网络请求,适用于比较特殊的网络环境.最新版本为 proxychains4 安装 由于此软件存在于自 ...
- uni-app小程序项目发布流程
uni-app小程序项目发布流程开发工具:HbuilderX编辑器.微信小程序开发工具1.小程序开发工具就可以点击发行版本了 2.登录开发者平台配置域名白名单 在开发者设置里完成服务器域名配置(域名白 ...
- class-dump 混淆加固、保护与优化原理
class-dump 混淆加固.保护与优化原理 进行逆向时,经常需要dump可执行文件的头文件,用以确定类信息和方法信息,为hook相关方法提供更加详细的数据.class-dump的主要用于检查存 ...
- IDEA提示Cannot resolve class or package ‘beans‘等类似错误
一.解决方案 1.问题原因: 2.解决: 快捷键:Alt+Enter选择.
- 耗时三年开源的H5商城,生产级代码实战
waynboot-mall 商城项目是我从疫情开始初期着手准备开发的,到如今 2023 年底,已经过了 3 年多的时间. 从项目初期到现在,一个人持续迭代,修复漏洞,添加功能,经历了前端开发工具从 v ...
- [GDOIpj221B] 数列游戏
第二题 数列游戏 提交文件: sequence.cpp 输入文件: sequence.in 输出文件: sequence.out 时间空间限制: 1 秒, 256 MB 有一个长度为 \(n\) 的序 ...
- MySQL运维实战(1.1)安装部署:使用RPM进行安装部署
作者:俊达 我们在生产环境部署mysql时,一般很少使用RedHat Package Manager(RedHat软件包管理工具).用rpm或或者其他包管理器安装mysql有其好处,例如安装简单,并且 ...
- dfs之迭代加深
为什么要用迭代加深 \(dfs\) 每次会选择搜索树的一个分支,不断深入,直到达到递归边界条件:但这种搜索策略带有一定的缺陷性: 如果搜索树的某一个分支中的节点个数特别多,但是答案并不在这棵子树里面, ...
- Linux 逻辑卷管理
如果用标准分区在硬盘上创建了文件系统,为已有的文件系统添加额外的空间是一件十分痛苦的事情.只能在已有的硬盘上的可用空间范围内调整分区大小,如果硬盘空间不够的话,就只能换一个大容量的硬盘,然后手动将已有 ...