一、Java简介

——————————————————————————————————————————————————

——————————————————————————————————————————————————

1.1.Java简介

Java是一门高级的面向对象的程序设计语言。使用Java语言编写的程序是跨平台的,从计算机到智能手机,到处都运行着Java开发的程序和游戏。Java程序可以在任何计算机、操作系统以及支持Java的硬件设备上运行。

——————————————————————————————————————————————————

1.1.1.什么是Java语言

Java是1995年由Sun公司推出的面向对象的程序设计语言,由“Java之父”院士詹姆斯·戈士林博士设计而成,完成了Java技术的原始编译器和虚拟机。Java最初的名字是OAK,在1995年被重命名为Java,并正式发布。

Java是一种通过解释方式来执行的语言,语法规则和C++类似。Java也是一种跨平台的程序设计语言,用Java语言编写的程序,可以运行在任何平台和设备上,如个人计算机、MAC苹果计算机、各种微处理器硬件平台,以及Windows、UNIX、OS/2、Mac OS等系统平台,真正实现“一次编写,到处运行”。Java非常适于企业网络和Internet环境,并且已成为Internet中最具有影响力、最受欢迎的编程语言之一。

——————————————————————————————————————————————————

1.1.2.Java应用的领域

借助Java,程序开发人员可以自由地使用现有的硬件和软件系统平台。这是因为Java是独立于平台的,它还可以应用于计算机之外的领域。Java程序可以在便携式计算机、电视、电话、手机和其他的大量电子设备上运行。Java的应用领域主要有以下方面:
桌面应用系统开发。
嵌入式系统开发。
电子商务应用。
企业级应用开发。
交互式系统开发。
多媒体系统开发。
分布式系统开发。
Web应用系统开发。
移动端应用开发。

——————————————————————————————————————————————————

1.1.3.Java版本

Java主要分为两个版本:Java SE和Java EE。
Java SE是Java的标准版,主要用于桌面应用程序开发。它包含了Java语言基础、JDBC(Java数据库连接)、I/O(输入/输出)、TCP/IP网络、多线程等核心技术。
Java EE是Java的企业版,主要用于开发服务器应用程序,如网站、服务器接口等,其核心为EJB(企业Java组件)。

以Java SE为例,各版本如下:
JDK 1.0~JDK 1.6 JDK7-JDK19
具体版本特点内容百度。

在JDK 7升级到JDK 8的过程中,Oracle公司放弃了原本的“1.X”版本号名称,直接使用版本号的最后第二位数字,所以很多资料中仍会记载“JDK 1.7”而不是“JDK 7”,其实这两个名称是同一个版本的不同叫法。即使是JDK 8版本,使用“java-version”命令查询出的结果仍然是“1.8.XX”。这个版本名称不统一的问题直到JDK 9才得以解决,JDK 9彻底删除了“1.X”前缀。

以上介绍的是Oracle公司推出的JDK,除此之外还有一个Open JDK。Open JDK最早由Sun公司推出,它是一个完全开源且商业免费的Java平台,被广泛应用到Linux系统上。因为Oracle JDK的源码有知识产权问题,所以Open JDK的源码和Oracle JDK并不是完全一样的,但运行效果是相同的。

虽然是代码开源的,但功能不完整,只包含了JDK中最精简的功能。

——————————————————————————————————————————————————

1.1.4.如何学好Java

1、明确自己的学习目标和大的方向,选择并锁定一门语言,然后按照自己的方向努力学习,认真研究。

2、初学者不用看太多的书,先找本相对基础的书进行系统的学习。很多程序开发人员工作了很久也只是熟悉部分基础而已,并没有系统地学习Java语言。

3、了解设计模式。开发程序必须编写程序代码,这些代码必须具有高度的可读性,这样编写的程序才有调试、维护和升级的价值。学习一些设计模式,能够更好地把握项目的整体结构。

4、不要死记语法。在刚接触一门语言,特别是Java语言时,掌握好基本语法并大概了解一些功能即可。尽量借助开发工具的代码辅助功能完成代码的录入,这样可以快速进入学习状态。

5、多实践,多思考,多请教。仅读懂书本中的内容和技术是不行的,必须动手编写程序代码,并运行程序、分析运行结构,从而对学习内容有个整体的认识和肯定。学会用自己的方式思考问题,通过编写代码来提高编程思想。平时多请教老师或同事,和其他人多沟通技术问题,提高自己的技术和见识。

6、不要急躁。遇到技术问题,必须冷静对待,不要让自己思维混乱。保持清醒的头脑才能分析和解决各种问题。可以尝试用听歌、散步等方式来放松自己。

7、多阅读别人的源代码。不但要看懂他人的程序代码,还要分析他人的编程思想和设计模式,并化为己用。

——————————————————————————————————————————————————

1.1.5.Java API文档

API即应用程序编程接口,主要包括类的继承结构、成员变量、成员方法、构造方法、静态成员的描述信息和详细说明等内容。从JDK 1.7开始,官方已不再发布中文版的API文档。如果感觉阅读英文吃力,可以选择查看基于JDK 1.6的中文版API文档。国内的“开源中国”网站提供了一个可以在线查找的中文版JDK 1.6 API文档,地址为https://tool.oschina.net/apidocs/apidoc?api=jdk-zh。

——————————————————————————————————————————————————

1.1.6.Java语言特性

简单

1、语法规则和C++类似。从某种意义上讲,Java语言是由C和C++语言转变而来的,因此C/C++程序设计人员可以很容易地掌握Java语言的语法。

2、Java语言对C++进行了简化和提高。例如,Java语言使用接口取代了多重继承,并取消了指针,因为指针和多重继承通常使程序变得复杂。Java语言还通过垃圾自动收集,大大简化了程序设计人员的资源释放管理工作。

3、Java语言提供了丰富的类库、API文档以及第三方开发包,另外还有大量基于Java的开源项目。JDK(Java开发者工具箱)已经开放源代码,读者可以通过分析项目的源代码,提高自己的编程水平。

面向对象

面向对象是Java语言的基础,也是Java语言的重要特性,它本身就是一种纯面向对象的程序设计语言。Java语言提倡万物皆对象,语法中不能在类外面定义单独的数据和函数,也就是说,Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。

分布型

Java的分布性包括操作分布和数据分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存储在多个不同的主机上,这些主机是网络中的不同成员。Java可以凭借URL(统一资源定位符)对象访问网络对象,访问方式与访问本地系统相同。

可移植性

Java程序具有与体系结构无关的特性,它可以非常方便地被移植到网络上的不同计算机中。同时,Java的类库也实现了针对不同平台的接加粗样式口,使得这些类库也可以被移植。

解释型

运行Java程序需要解释器。任何移植了Java解释器的计算机或其他设备都可以用Java字节码进行解释执行。字节码独立于平台,它本身携带了许多编译时的信息,使得连接过程更加简单,开发过程更加迅速,更具探索性。

安全性

Java语言取消了类C语言中的指针和内存释放等语法,有效地避免了用户对内存的非法操作。Java程序代码要经过代码校验、指针校验等很多测试步骤才能够运行,因此未经允许的Java程序不可能运行,也不可能出现损害系统平台的行为,而且使用Java可以编写出防病毒和防修改的系统。

健壮性

Java语言的设计目标之一,是能编写出多方面、可靠的应用程序。因此,Java会检查程序在编译和运行时的错误,并消除错误。类型检查能帮助用户检查出许多在开发早期出现的错误,集成开发工具(如Eclipse、NetBeans)的出现也使得编译和运行Java程序更加容易。

多线程

Java语言支持多线程机制,能够使应用程序在同一时间并行执行多项任务,而且相应的同步机制可以保证不同线程能够正确地共享数据。使用多线程,可以带来更好的交互能力和实时行为。

高性能

Java编译后的字节码是在解释器中运行的,所以它的速度较多数交互式应用程序提高了很多。另外,字节码可以在程序运行时被翻译成特定平台的机器指令,从而进一步提高运行速度。

动态

Java在很多方面比C和C++更能够适应不断发展的环境,可以动态地调整库中方法和变量的增加,而客户端不需要任何更改。在Java中进行动态调整是非常简单和直接的。

——————————————————————————————————————————————————

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/83437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL学习系列(1)-每天学习10个知识

目录 1. SQL 和 MySQL2. JOIN 类型3. 索引4. ACID5. 优化MySQL查询性能6. 创建MySQL存储过程的步骤7. 范式和反范式设计8. SQL注入9. GROUP BY 和 HAVING10. UNION 和 UNION ALL 👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的…

java 性能分析:如何提高 Java 程序的性能

示例示例Java性能分析是指通过对Java程序进行分析,以改善应用程序的性能。它可以帮助开发人员确定程序中的性能瓶颈,并对其进行优化。Java性能分析可以通过多种方式完成,比如使用JVM内置的性能分析工具,如jstat,jmap&a…

ffplay源码解析-main入口函数

main入口函数 初始化 变量、缓存区、SDL窗口初始化等 int main(int argc, char **argv) {int flags;VideoState *is; // av_log_set_level(AV_LOG_TRACE);init_dynload();av_log_set_flags(AV_LOG_SKIP_REPEATED);parse_loglevel(argc, argv, options);/// av_log_set_le…

Hive行转列[一行拆分成多行/一列拆分成多列]

场景: hive有张表armmttxn_tmp,其中有一个字段lot_number,该字段以逗号分隔开多个值,每个值又以冒号来分割料号和数量,如:A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-4…

深入理解JVM虚拟机第九篇:详细介绍JVM中的双亲委派机制工作原理和机制

文章目录 一:双亲委派机制 1:工作原理 2:代码展示 3:异常代码展示

用Jmeter进行压测详解

简介: 1.概述 一款工具,功能往往是很多的,细枝末节的地方也很多,实际的测试工作中,绝大多数场景会用到的也就是一些核心功能,根本不需要我们事无巨细的去掌握工具的所有功能。所以本文将用带价最小的方式讲…

软路由和硬路由的区别是什么,性价比与可玩性分析

软路由和硬路由是两种不同类型的路由器设备,它们在基本原理、功能、性能和灵活性等方面存在一些区别: 硬件:软路由是基于一台普通的计算机或服务器,通过软件来实现路由器的功能;而硬路由是专门设计的硬件设备&#xff…

Vue前端开发中的输入限制与输入规则探究

前言 在Vue前端开发中,我们经常需要对用户的输入进行限制和规范,以确保数据的准确性和安全性。本文将介绍如何使用Vue的el-input组件来实现输入限制和输入规则,并提供相应的代码示例。 一、输入限制 最大长度限制 我们可以使用maxlength属…

CCC数字钥匙设计【BLE】--URSK管理

1、URSK创建流程 URSK的英文全称为:UWB Ranging Secret Key,即UWB安全测距密钥。 在车主配对时会生成URSK,且在车主配对期间,车辆不得尝试生成第二个URSK。 URSK示例: ed07a80d2beb00f785af2627c96ae7c118504243cb2c3226b3679da…

抖音seo账号矩阵源码系统

1. 开通多个抖音账号,并将它们归纳为一个账号矩阵系统。 2. 建立一个统一的账号管理平台,以便对这些账号进行集中管理,包括账号信息、内容发布、社区交互等。 3. 招募专业的运营团队,对每个账号进行精细化运营,包括内…

CSS 响应式设计:图片

文章目录 图片使用 width 属性使用 max-width 属性网页中添加图片背景图片不同设备显示不同图片HTML5 \<picture> 元素 图片 在CSS中&#xff0c;可以通过以下方法实现响应式设计中的图片处理&#xff1a; 使用 max-width 属性&#xff1a;将图片的最大宽度设置为 100%…

年龄大了转嵌入式有机会吗?

年龄大了转嵌入式有机会吗&#xff1f; 首先&#xff0c;说下结论&#xff1a;年龄并不是限制转行嵌入式软件开发的因素&#xff0c;只要具备一定的编程和电子基础知识&#xff0c;认真学习和实践&#xff0c;是可以成为优秀的嵌入式软件开发工程师的。最近很多小伙伴找我&…

AOSP 13 屏蔽系统的crash和anr弹窗

需求 屏蔽系统的crash和anr弹窗 原理 在frameworks/base/services/core/java/com/android/server/am/AppErrors.java的handleShowAppErrorUi方法中做是否屏蔽判断mSystemConfiguration.hideCrashWindow() , 以及ActivityTaskManagerService.java的mShowDialogs属性 实现 fram…

一、【漏洞复现系列】Tomcat文件上传 (CVE-2017-12615)

1.1、漏洞原理 描述: Tomcat 是一个小型的轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。 攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 的webshell文件&#x…

Java线上故障排查(CPU、磁盘、内存、网络、GC)+JVM性能调优监控工具+JVM常用参数和命令

CPU/堆/类/线程 根据服务部署和项目架构&#xff0c;从如下几个方面排查&#xff1a; &#xff08;1&#xff09;运用服务器&#xff1a;排查内存&#xff0c;cpu,请求数等&#xff1b; &#xff08;2&#xff09;文件图片服务器&#xff1a;排查内存&#xff0c;cpu,请求数等…

R语言-关于颜色

目录 颜色 示例 R 颜色板 参考&#xff1a; 颜色 什么场景会用到颜色&#xff1f;比如在绘图过程中&#xff0c;为了让图更好看&#xff0c;有的时候&#xff0c;需要选择使用不同的颜色进行绘制或者填充。本文提供了R颜色的相关参数。 在R中&#xff0c;可以通过颜色下标…

摸鱼也摸鱼之点灯游戏自动求解

游戏 变色方块 世上最难智力游戏 (yanhaijing.com) 脚本 新建文件夹&#xff0c;命名为Inverter 在文件夹下新建inverter.js文件&#xff0c;内容如下 "use strict";function getA() {let a [];let level parseInt(document.querySelector("#cur-level&q…

解决 SQLyog 连接 MySQL8.0+ 报错:错误号码2058

文章目录 一、问题现象二、原因分析三、解决方案1. 方案1&#xff1a;更新SQLyog版本2. 方案2&#xff1a;修改用户的授权插件3. 方案3&#xff1a;修复my.cnf 或 my.ini配置文件 四、最后总结 本文将总结如何解决 SQLyog 连接 MySQL8.0 时报错&#xff1a;错误号码2058 一、问…

线程池:神秘的“轻量级线程”

当前我们的多线程部分已经学习了几个代码案例&#xff1a; 1.单例模式 2.阻塞队列 -> 生产者消费者模型 3.定时器 4.线程池 而线程存在的意义就是&#xff0c;使用进程来实现并发编程会“太重了”&#xff0c;创建和销毁进程都会比较耗资源。 但是线程会更加高效。此时&…

K8S名称空间和资源配额

Kubernetes 支持多个虚拟集群&#xff0c;底层依赖于同一个物理集群。 这些虚拟集群被称为名称空间。名称空间namespace是k8s集群级别的资源&#xff0c;可以给不同的用户、租户、环境或项目创建对应的名称空间&#xff0c;例如&#xff0c;可以为test、dev、prod环境分别创建各…