当前位置: 首页 > news >正文

了解java

#常见编程语言介绍
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 程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。

相关文章:

了解java

#常见编程语言介绍 C语言 C语言 java语言 javaScript语言 PHP语言 python语言Object-C和Swift语言 C# (c sharp)语言 Kotlin语言 Go语言 Basic语言 #JAVA的发展 起源于1991年SUN公司GREEN项目,1996年JDK1.0正式发布 后被Oracle公司收购&…...

【编程实践】代码之中有创意:“我一直认为工程师世界上最具创造性的工作之一”

代码之中有创意 “我一直认为工程师世界上最具创造性的工作之一”。 文章目录 代码之中有创意一、代码可以赋予创造力1.1 代码的创造力1.2 如何发挥代码的创造力二、有创意的代码可以提高工作效率2.1 代码创意可以提高工作效率2.2 如何利用代码创意来提高工作效率三、代码创意可…...

【MySQL】表连接

一、为什么要学习 因为不合理的使用连接会导致慢查询 二、什么是连接 参与连接的表叫做 连接表, 连接就是把 各个连接表 进行的组合 (笛卡儿积)加入结果集并返回 三、连接查询 如何只是对表进行大量的连接,笛卡儿积作用得到的…...

2023湖南省“楚怡杯”职业技能大赛“网络安全” 项目比赛任务书

2023湖南省“楚怡杯”职业技能大赛“网络安全” 项目比赛任务书2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2:Ngi…...

Android应用启动优化笔记整理

应用启动相关流程与优化 应用启动主要涉及SystemServer进程 和 app进程。 SystemServer进程负责app进程创建和管理、窗口的创建和管理(StartingWindow 和 AppWindow)、应用的启动流程调度等。 App进程被创建后,进行一系列进程初始化、组件初…...

图像bytes字节串二进制转十六进制及bytes转为图像

目录前言正文二进制与十六进制的bytes互转读取bytes为图像法1:直接写入f.read的结果法2: 转换为PIL或Numpy前言 参考: 8. python基础之基础数据类型–bytes - CSDN python 16进制与图片互转 - CSDN 正文 二进制与十六进制的bytes互转 bytes保存的是原始的字节(二…...

信息安全与数学基础-笔记-②同余

知识目录同余完全剩余系剩余类完全剩余系❀简化剩余系❀欧拉函数逆元!欧拉定理 !同余 a,b 两个数字,都模m,当两个数字模m后余的数一样即为同余。 例子: a bq r (mod m),这里的a 和 r 就是同余 &#xff…...

网络安全法

目录正文第一章第二章第三章第四章第五章第六章 法律责任第七章 附则正文 学习网络安全应该知道网络安全法 第一章 总则 第一条: 为了保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济…...

django框架开发部署项目

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…...

Unity记录1.3-入门-第一阶段总结

文章首发及后续更新:https://mwhls.top/4447.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 汇总:Unity 记录 摘要:第一阶段的总…...

Linux入门篇-文件管理

简介 简单的文件管理。 ⽂件内容的查看 ⽂本⽂件内容的查看 cat ⽂本⽂件的path1 ⽂本⽂件的path2 head ⽂本⽂件的path ,显示⽂件的前10⾏内容 head -n 5 ⽂本⽂件的path , 显示⽂件的前5⾏内容 head -5 等于head -n 5tail ⽂本⽂件的path, 显示⽂件的后10⾏内容…...

如何从错误中成长?

在上一篇文章“技术人的犯错成本”里,我和你聊了技术人可能会犯的各式各样的错误,也举了很多例子,说明了技术人犯错的成本。在竞争激烈的互联网时代,试错当然是好事,但了解错误成本,避免不应该犯的错误&…...

谈谈一个程序员的职场心得(真有用)

谈谈一个程序员的职场心得 我会分为三个部分:软件开发,职场协作和认知成长,每个部分精简成 7 条心得。 软件开发 若无必要,勿增实体。 这是奥卡姆剃刀的定义,所谓剃刀就是法则,是奥卡姆这个英国学者提出来…...

Pytest:一个卓有成效的测试工具

大家都知道,目前最流行的Python单元测试框架有三种,分别是unittest, nose和pytest。其中unittest是Python自带的测试框架,但问题是比较老了,赶不上时代发展了(哈哈哈);nose2定位是带插件的unitt…...

Compose 动画 (三) : AnimatedVisibility 从入门到深入

1. AnimatedVisibility 是什么 AnimatedVisibility可以实现Compose组件的显示和隐藏,并且可以指定显示/隐藏时候的动画效果。(EnterTransition/ExitTransition) 和 animateXxxAsState、animateContentSize、Crossfade、AnimatedContent 这几个API一起,都…...

网络基础(二)

目录 应用层 再谈 "协议" 协议是一种 "约定". socket api的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一些"结构化的数据" 怎么办呢? 为什么要转换呢? 如果我们将struct message里面…...

Java线程知识点总结

文章目录Java 线程基础线程简介什么是进程什么是线程进程和线程的区别创建线程ThreadRunnableCallable、Future、FutureTaskCallableFutureFutureTaskCallable Future FutureTask 示例线程基本用法线程休眠线程礼让终止线程守护线程线程通信wait/notify/notifyAlljoin管道线程…...

数据结构——第三章 栈与队列(4)

队列的应用1.基于队列的医院挂号模拟系统2.队列的运用1.基于队列的医院挂号模拟系统 代码实现分享 2.队列的运用 问题描述:某运动会设立N个比赛项目,每个运动成员可以参加1~3个项目。试问如何安排比赛日程,既可以使同一运动员参加的项目不…...

华为机试HJ73-计算日期到天数转换

HJ73 计算日期到天数转换 题目描述: 描述 根据输入的日期,计算是这一年的第几天。 保证年份为4位数且日期合法。 进阶:时间复杂度:O(n) ,空间复杂度:O(1) 输入描述: 输入一行,每行…...

【阅读笔记】你不知道的JavaScript--this与对象2

目录this默认绑定隐式绑定隐式丢失显示绑定API 调用上下文new 绑定this 绑定优先级其余绑定例外对象字面量与对象属性描述符迭代器遍历this 默认绑定 默认绑定适配 独立函数调用 默认绑定 this 指向全局对象; 故直接调用函数,该函数内部的 this 即指向全…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...