了解java

news2024/12/23 17:43:51

#常见编程语言介绍
C语言
C++语言
java语言
javaScript语言
PHP语言
python语言Object-C和Swift语言
C# (c sharp)语言
Kotlin语言
Go语言
Basic语言

#JAVA的发展
起源于1991年SUN公司GREEN项目,1996年JDK1.0正式发布
后被Oracle公司收购,一年两次更新
主流以java8以上的版本

#JAVA的核心优势
跨平台
跨平台是 Java 语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,
建立了强大的生态体系,目前已经覆盖 IT 各行业的“第一大语言”,是计算机界的“英语”。

#Java的各版本的含义
JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用
JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用
JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上

#Java的特性
跨平台/可移植性
安全性
面向对象
简单性
高性能
分布式
多线程
健壮性

#Java的运行机制
在这里插入图片描述
1.java首先利用文本编译器编写java源程序,源文件后缀名为 .java ;
2.再利用编译器(javac)将源程序编译成字节码文件,字节码文件后缀名为 .class ;
3.最后用虚拟机(解释器,java)解释执行.

计算机高级语言的类型主要有编译型和解释型两种,而java语言是两种类型的结合。

#JVM、JRE和JDK

JVM(Java Virtual Machine): 用于执行 bytecode 字节码的”虚拟计算机”。不同的操作系统有不同版本 JVM,屏蔽了底层运行平台的差别,是实现跨平台的核心。
Java Runtime Environment (JRE) 包含:Java 虚拟机、库函数等。
Java Development Kit (JDK)包含:JRE,编译器和调试器等。
在这里插入图片描述

#语言类型扩展描述
C 语言
C 语言诞生于 1972 年,现代高级语言的鼻祖,由著名的贝尔实验室发明。在底层编程,比如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序。在高层应用,也可以开发从操作系统(Linux/Windows 都基于 C 语言开发)到各种应用软件。

C++语言
作为 C 语言的扩展,C++是贝尔实验室于 80 年代推出的。C++是一种混合语言,既可以实现面向对象编程,也可以开发 C 语言面向过程风格的程序。C++语言在科学计算、操作系统、网络通讯、系统开发、引擎开发中仍然被大量使用。

Java 语言
由美国 SUN 公司(被 oracle 公司收购)发明于 1995 年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。Java 广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及 IT 所有行业。关于 Java 的发展历史和特性,将在后面专门介绍。

JavaScript 语言
JavaScript 是一种脚本语言,已经被广泛用于 Web 应用开发;应用范围越来越大,重要性越来越高。目前,前端开发核心其实就是 JavaScript 语言。

Python 语言
Python 发明于 1989 年,语法结构简单,易学易懂;Python 广泛应用于:人工智能、科学计算、web 编程等。

PHP 语言
PHP 原始为 Personal Home Page 的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”。一般用于 WEB 开发领域;大量的中小型网站以及某些大型网站使用 PHP 开发。

Object-C 和 Swift 语言
Object-C 通常写作 Objective-C 或者 Obj-C 或 OC,是根据 C 语言所衍生出来的语言,继承了 C 语言的特性,是扩充 C 的面向对象编程语言。OC 主要用于苹果软件的开发。
Swift,苹果于 2014 年 WWDC(苹果开发者大会)发布的新开发语言,可与 OC 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

C#(c sharp)语言
C#是微软公司发布的一种面向对象的、运行于.NET Framework 之上的高级程序设计语言。

Kotlin 语言
Kotlin 已正式成为 Android 官方支持开发语言,并且是一种可以兼容 java 的语言。

Go 语言
Go(又称 Golang)是 Google 开发的一种静态强类型、编译型语言。
Basic 语言虽然易学,但功能不够强大,应用到大程序的有效性令人怀疑。已经逐步退出历史舞台。

#java特性扩展描述
 跨平台/可移植性
这是 Java 的核心优势。Java 在设计时就很注重移植和跨平台性。比如:Java 的 int 永远都是 32 位。不像 C++可能是 16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
 安全性
Java 适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使 Java 可以很容易构建防病毒,防篡改的系统。
 面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于 C++为了照顾大量 C 语言使用者而兼容了 C,使得自身仅仅成为了带类的 C 语言,多少影响了其面向对象的彻底性!Java 则是完全的面向对象语言。
 简单性
Java 就是 C++语法的简化版,我们也可以将 Java 称之为“C+±”。跟我念“C 加加减”,指的就是将 C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于 C 语言,因此学习起来完全不费力。
 高性能
Java 最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java 语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过 JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使 Java 程序的执行效率大大提高,某些代码甚至接待 C++的效率。因此,Java 低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多 C++应用转到 Java 开发,很多 C++程序员转型为 Java 程序员。
 分布式
Java 是为 Internet 的分布式环境设计的,因为它能够处理 TCP/IP 协议。事实上,通过 URL 访问一个网络资源和访问本地文件是一样简单的。Java 还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
 多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java 多线程的简单性是 Java 成为主流服务器端开发语言的主要原因之一。
 健壮性
Java 是一种健壮的语言,吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java 程序不可能造成计算机崩溃。即使 Java 程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。

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

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

相关文章

卷积神经网络CNN之ZF Net网络模型详解(理论篇)

1.背景 2. ZF Net模型结构 3. 改进优缺点 一、背景 ZF Net是用作者的名字命名的,Matthew D.Zeiler 和 Rob Fergus (纽约大学),2013年撰写的论文; 论文原网址https://arxiv.org/abs/1311.2901 论文名:Vis…

Vue2的基本内容(一)

目录 一、插值语法 二、数据绑定 1.单向数据绑定 2.双向数据绑定 三、事件处理 1.绑定监听 2.事件修饰符 四、计算属性computed和监视属性watch 1.计算属性-computed 2.监视属性-watch (1)通过 watch 监听 msg 数据的变化 (2&a…

IronXL for .NET 2023.2.5 Crack

关于适用于 .NET 的 IronXL 在 C# 中阅读和编辑 Excel 电子表格,无需 MS Office 或 Excel Interop。 IronXL for .NET 允许开发人员在 .NET 应用程序和网站中读取、生成和编辑 Excel(和其他电子表格文件)。您可以读取和编辑 XLS/XLSX/CSV/TS…

Apollo控制部分1-- ControlComponent组件介绍

Apollo控制部分1-- ControlComponent组件介绍摘要一、ControlComponent1、启动文件解析2、ControlComponent()组件函数解析1)ControlComponent::ControlComponent() 构造函数2)ControlComponent::Init() 初始化函数(执行一次)3&am…

分享四个前端Web3D动画库在Threejs中使用的动画库以及优缺点附地址

Threejs中可以使用以下几种动画库:Tween.js:Tween.js是一个简单的缓动库,可以用于在three.js中创建简单的动画效果。它可以控制数值、颜色、矢量等数据类型,并提供了多种缓动函数,例如线性、弹簧、强化、缓冲等等。区别…

Linux性能学习(2.3):内存_为什么分配的内存比申请的内存大16个字节

文章目录1 验证申请不同内存,系统分配机制1.1 代码1.2 测试1.3 结论2 为什么会多分配内存3 为什么会有4字节不可使用参考资料:https://www.gnu.org/software/libc/ 在上一篇文章中,探讨了Linux系统对进程以及线程的内存分配问题,…

流程图简介

一、流程与流程图1. 什么是流程具体来说,流程是一项活动或一系列连续有规律的事项或行为进行的程序。流程有6个要素,分别是:资源、过程、结构、结果、对象和价值。一个流程会把这些基本要素串联起来,例如流程中资源的输入、流程中…

gprof2dot perf

什么是gprof2dot 这是一个用于将许多探查器的输出转换为点图Python脚本。 使用需要安装的依赖 Python: known to work with version 2.7 and 3.3; it will most likely not work with earlier releases.Graphviz: tested with version 2.26.3, but should work fine with ot…

【C++】类和对象补充知识点

🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、再谈构造函数1.1 构造函数体赋…

逻辑电路代数运算(上)

逻辑代数L是一个封闭的代数系统,由一个逻辑变量集K,常量0和1,以及与或非三种基本运算构成。 参与逻辑运算的变量叫逻辑变量,用字母A,B……表示。每个变量的取值非0 即1。 0、1不表示数的大小,而是代表两种不…

三天吃透Java基础八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

Asp.net core api swagger显示中文注释

在你的 Web API 项目中使用 Swagger 的.NET Core 封装 Swashbuckle 可以帮助你创建良好的文档和帮助页面,Swagger (OpenAPI) 是一个与语言无关的规范,用于描述 REST API。 它使计算机和用户无需直接访问源代码即可了解 REST API 的功能1、OpenAPI 与 Swa…

IP定位离线库有什么作用?

IP离线是什么意思?我们以丢失手机为例来寻找它,现在手机都有IP定位功能,只要手机开通了IP定位,就能找到手机。iPhone定位显示离线一般是iPhone手机关机了或者iPhone手机中“查找我的iPhone”功能关闭了。如果手机在手中的话可以打…

【Spark】Spark的DataFrame向Impala写入数据异常及源码解析

背景 事情是这样的,当前业务有一个场景: 从业务库的Mysql抽取数据到Hive 由于运行环境的网络限制,当前选择的方案: 使用spark抽取业务库的数据表,然后利用impala jdbc数据灌输到hive。(没有spark on hive 的条件&…

cmd命令教程

小提示: 在本文中,我将向您展示可以在 Windows 命令行上使用的 40 个命令 温馨提示:在本教程中学习使用适用于 Windows 10 和 CMD 网络命令的最常见基本 CMD 命令及其语法和示例 文章目录为什么命令提示符有用一、cmd是什么?如何在…

AcWing 4868. 数字替换(DFS + 剪枝优化)

AcWing 4868. 数字替换(DFS 剪枝优化)一、问题二、思路三、代码一、问题 二、思路 题目中要求变换次数最小,其实第一印象应该是贪心,即我们每一次都去成各位中最大的那个数字。但是这个想法很容易推翻。因为你这次乘了一个最大的…

gdb/git的基本使用

热爱编程的你,一定经常徘徊在写bug和改bug之间,调试器也一定是你随影而行的伙伴,离开了它你应该会寝食难安吧! 目录 gdb的使用 断点操作 运行调试 观察数据 Git的使用 仓库的创建和拉取 .gitignore “三板斧” 常用指令 gd…

CV——day82 读论文:遥感目标检测的改进注意力特征融合SSD (AF-SSD)方法

遥感目标检测的改进注意力特征融合SSD 方法I. INTRODUCTIONII. RELATED WORKB. 特征融合C.注意力机制III. PROPOSED METHODA. 特性融合模块——**FFM**B.双路径注意模块——DAMC. 多尺度接受域——MRFIV. EXPERIMENTSA. Data Sets and TrainingV. CONCLUSIONAttention and Feat…

mac安装开发工具:clipy、iterm2、go、brew、mysql、redis、wget等

wget brew install wget clipy Releases Clipy/Clipy GitHub 环境变量 ~下有三个文件 .zshrc .zprofile .bash_profile > cat .zshrc export PATH$PATH:/usr/local/mysql/bin> cat .zprofile eval "$(/opt/homebrew/bin/brew shellenv)"> cat .bas…

[1.3.2]计算机系统概述——中断和异常

文章目录第一章 计算机系统概述中断和异常(一)中断的作用(二)中断的类型(三)中断机制的基本原理小结第一章 计算机系统概述 中断和异常 中断的作用中断的类型 内中断(也称“异常”)…