Java、PHP、ASP、JSP、Kotlin、.NET、Go

Java

1995年,Java诞生了,微软的Java是J#,早期是J++. 它在C++的基础上增强了安全性,不允许多重继承,堆栈不允许类对象,数组和枚举都是类对象。

Java的诞生

  • 早期的Sun公司想要在消费级嵌入式设备编写可移植的代码,发现C++代码太复杂,搞出了Java.

  • Java 得名于印度尼西亚爪哇岛,此地盛产咖啡。Java .class文件开头是”CA FE BA BE”, 就代表Cafe Babe(咖啡屋宝贝).

Java扩展

  • Scala是Java的扩展,Clojure是一种类似LISP语言并运行在JVM的动态函数式编程语言。

  • Groovy (2007年)是一门改进的Java语言,抛弃了Java繁琐的语法,一样运行于JVM。它借鉴了Python/Ruby等语言。

PHP

1995年PHP发布了。minicoda后台就是PHP.

重要发展

  • PHP 5.4开始支持Traits, 它是对接口和多继承妥协的产物。它允许直接复用已有其他类的功能。

引擎

  • PHP默认底层解释器用Zend, C语言编写。

  • Facebook开源PHP引擎是HHVM.

ASP

1996年,微软借鉴PHP思想,IIS 3.0引入了ASP. 2000年跟随.NET推出APS.NET.

JSP

1997年,Servlet技术诞生。1998年,JSP技术产生。

Servlet和JSP

  • Servlet为了实现服务器动态生成HTML,但它需要在Java代码中插入HTML, 逐渐大家无法忍受,JSP出现。 JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例,JSP页面由系统翻译成Servlet,Servlet再负责响应用户的请求。

Kotlin

Kotlin可以被称为改进的Java,发布于2011年。

Kotlin被广泛用于Android的开发,为Android界的Swift。

.NET

.NET是微软为了对抗Java的中间件设计。C#为类Java语言,毕竟Java先出山,早期C#的语法和设计”简直就是抄”Java, 经过多个版本的发展,C#语法已经甩开Java一大截,但很难撼动Java服务端老大哥地位,只能说生虽逢时,不开源只用于Windows的最初设计害了.NET. 等微软搞明白跨平台才能活得好,程序员已经不想给它机会了。

.NET Core

  • 微软越来越拥抱开源,.NET Framework最新已变成.NET Core.

其他.NET相关

  • Mono是.NET移植到非Windows系统的实现。

  • Xamarin, 是Mono分支,跨平台框架,旨于让移动平台如iOS/Android/Windows Phone以及watchOS/tvOS和Mac App可以直接用C#搞定。

  • Boo语言是Unity3D早期使用脚本语言,既可被编译成MISL,也可直接当script使用,由booi或booish解析。

  • IronPython是.NET平台实现的Python解释器。

Go

Go语言出自Ken Thompson和 Rob Pike、Robert Griesemer 之手。Ken Thompson大家应该会熟悉,C语言创作者之一。2012年,Go语言正式发布。

Go语言历史

  • 随着服务器软件越来越大,程序代码也越来越多,带来的编译时间越来越多,为了解决这个问题,在一次C++大会讨论新增的许多特性时,大家在思考如何不创建新特性,代替C++,这是Go语言产生的萌芽。

Go语言自举

  • Go语言早期源码使用C语言和汇编语言写成。从 2015年Go 1.5 版本后,完全使用 Go 语言自身进行编写。

Go应用

  • Docker是Go语言有名的框架。


若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

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

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

相关文章

单片机闪存,闪存缓冲取,闪存延迟

一、启用闪存预取缓冲区(FLASH_PrefetchBufferCmd (FLASH_PrefetchBuffer_Enable);) 闪存预取缓冲区的作用: 在微控制器中,闪存是用于存储程序代码和常量数据的非易失性存储器。当微控制器执行程序时,需要从闪存中读取…

Leetcode热题100-200 岛屿数量

Leetcode热题100-200 岛屿数量 1. 题目描述2. 代码实现1. dfs算法2. bfs算法 1. 题目描述 200 岛屿数量 2. 代码实现 1. dfs算法 class Solution { public:int numIslands(vector<vector<char>>& grid) {int m grid.size(), n grid[0].size();int res 0…

kubernetes-强制删除命名空间

一、故障现象 1、删除命名空间卡住、强制删除也卡住 2、其他终端显示命名空间下无资源 二、处理步骤 1、kubectl get namespace cilium-test -o json > temp.json 获取你需要删除的命名空间json描述文件。 2、修改finalize字段 3、替换 kubectl replace --r…

OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)

前言 由于我司一直在针对各个工厂、公司、客户特定的业务场景&#xff0c;做解决方案或定制开发&#xff0c;所以针对每一个场景&#xff0c;我们都会反复考虑用什么样的机器人做定制开发 于此&#xff0c;便不可避免的追踪国内外最前沿的机器人技术进展&#xff0c;本来准备…

信息安全工程师(42)VPN类型和实现技术

前言 VPN&#xff08;Virtual Private Network&#xff0c;虚拟专用网络&#xff09;是一种在公共网络上建立专用网络连接的技术。 一、VPN类型 VPN可以根据不同的分类标准划分为多种类型&#xff0c;主要包括以下几种&#xff1a; 按协议分类&#xff1a; PPTP&#xff08;Poi…

JPA 概述及描述对象和表之间的映射关系注解

参考文档&#xff1a;JPA 概述及常用注解详解、SpringDataJpa 使用指南-阿里云开发者社区 (aliyun.com) 概述 JPA&#xff08;Java Persistence API&#xff09;是 Java 标准中的一套ORM规范&#xff08;提供了一些编程的 API 接口&#xff0c;具体实现由 ORM 厂商实现&#x…

创建osd加入集群

故障原因&#xff1a;ceph节点一个磁盘损坏&#xff0c;其中osd69 down了&#xff0c;需要更换磁盘并重新创建osd加入ceph集群。 信息采集&#xff1a; 更换磁盘前&#xff0c;查询osd69对应的盘符&#xff1a; 将对应的故障磁盘更换后&#xff0c;并重做raid&#xff0c;然后查…

ChatGPT相关参数示例

max_token 用于控制最大输出长度&#xff0c;若ChatGPT的回复大于max_tokens&#xff0c;则对输出结果进行截断。 from openai import OpenAI client OpenAI(base_url"https://api.chatanywhere.tech/v1" ) response client.chat.completions.create(model"…

超轻巧modbus调试助手使用说明

一、使用说明 1.1 数据格式 和其他的modbus采集工具一样&#xff0c;本组件也支持各种数据格式&#xff0c;其实就是高字节低字节的顺序。一般是2字节表示一个数据&#xff0c;后面又有4字节表示一个数据&#xff0c;目前好像还有8字节表示一个数据的设备。不同厂家的设备对应…

vue3+vant4+微信公众号实现图片上传和扫一扫功能

这里我只记录了js的实现过程 首先先安装weixin-js-sdk npm install weixin-js-sdk 处理JS-SDK配置&#xff0c;前提是已经从后端获取到了appId和openId <script setup> import { ref, onMounted } from "vue"; import { imageConfig } from "/api&quo…

C++ | Leetcode C++题解之第457题环形数组是否存在循环

题目&#xff1a; 题解&#xff1a; class Solution { public:bool circularArrayLoop(vector<int>& nums) {int n nums.size();auto next [&](int cur) {return ((cur nums[cur]) % n n) % n; // 保证返回值在 [0,n) 中};for (int i 0; i < n; i) {if …

【论文速看】DL最新进展20241009-图像生成、多模态、医学扩散模型、行人重识别

目录 【图像生成】【多模态】【医学扩散模型】【行人重识别】 【图像生成】 [2024] CAR: Controllable Autoregressive Modeling for Visual Generation 论文链接&#xff1a;https://arxiv.org/pdf/2410.04671 代码链接&#xff1a;https://github.com/MiracleDance/CAR 可控…

torchvision.transforms.Resize()的用法

今天我在使用torchvision.transforms.Resize()的时候发现&#xff0c;一般Resize中放的是size或者是(size,size)这样的二元数。 这两个里面&#xff0c;torchvision.transforms.Resize((size,size))&#xff0c;大家都很清楚&#xff0c;会将图像的h和w大小都变成size。 但是…

Wasserstein距离

Wasserstein距离&#xff08;Wasserstein distance&#xff09;&#xff0c;又称为推土机移动距离&#xff08;Earth Mover’s Distance, EMD&#xff09;&#xff0c;是度量理论中用来比较两个概率分布之间差异的一种距离度量。它源自最优传输问题&#xff08;Optimal Transpo…

gpt为什么可以依据上下文来回答问题,依据的是什么原理

GPT 可以依据上下文回答问题&#xff0c;主要依据以下几个原理&#xff1a; Transformer 架构&#xff1a; 并行计算与长距离依赖处理&#xff1a;Transformer 架构摒弃了传统的递归神经网络和长短时记忆网络的序列依赖处理方式&#xff0c;具有并行计算的能力。它可以同时处理…

洞察AI趋势:智享AI直播,打造专属你的数字化直播AIGC系统!

洞察AI趋势&#xff1a;智享AI直播&#xff0c;打造专属你的数字化直播AIGC系统&#xff01; 在当今这个日新月异的数字时代&#xff0c;人工智能&#xff08;AI&#xff09;已不再是遥不可及的未来科技&#xff0c;而是正深刻改变着我们生活、工作的每一个角落。其中&#xf…

[ROS2]解决PyQt5和sip的各种报错问题 stderr: qt_gui_cpp

前言 编译ros环境的时候遇到了qt_gui_cpp各种编译问题&#xff0c;但是鉴于网上解决方法基本没有&#xff0c;故记录下来帮助后来者。整篇文章总结下来就是一句话&#xff1a;PyQt5和sip安装过程或安装版本有问题&#xff0c;需要重新安装。 问题与解决方法 如果PyQt5你是正…

DAMA数据管理知识体系(第12章 元数据管理)

课本内容 12.1 引言 图12-1 语境关系图&#xff1a;元数据概念理解 元数据的信息范围很广&#xff0c;不仅包括技术和业务流程、数据规则和约束&#xff0c;还包括逻辑数据结构与物理数据结构等。它描述了数据本身&#xff08;如数据库、数据元素、数据模型&#xff09;&#x…

女性议题,正在成为喜综困境?

《脱口秀和Ta的朋友们》&#xff08;以下简称《脱友》&#xff09;与《喜剧之王单口季》&#xff08;以下简称《喜单》&#xff09;两档喜综的对垒&#xff0c;竟然意外走向了同一个落点&#xff1a;对女性视角的收割。 #杨笠 这是血肉在疯长的声音# #杨笠 不是敢说是不知道这…

滚雪球学MySQL[8.3讲]:数据库中的JSON与全文检索详解:从数据存储到全文索引的高效使用

全文目录&#xff1a; 前言8.3 JSON与全文检索1. JSON数据类型的使用1.1 JSON 数据类型概述1.2 JSON 数据的插入与查询1.3 JSON 常用函数与操作1.4 JSON使用的优缺点与性能考虑 2. 全文索引与全文检索2.1 全文索引概述2.2 全文检索的使用2.3 全文检索模式2.4 全文索引优化与性能…