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

news2024/10/5 17:24:39

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.coloradmin.cn/o/2190238.html

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

相关文章

程序员如何在 AI 时代保持核心竞争力

前言 随着 AIGC 大语言模型的不断涌现,AI 辅助编程工具的普及正在深刻改变程序员的工作方式。在这一趋势下,程序员面临着新的挑战与机遇,需要思考如何应对以保持并提升自身的核心竞争力。 目录 一、AI 对编程工作的影响 (一&…

一、走进新语言

走进新语言 介绍环境配置JDK配置Kotlin配置 开发工具代码基本结构程序注释 介绍 Kotlin是一种现代但已经成熟的编程语言,旨在让开发人员更快乐。它简洁、安全、可与Java和其他语言互操作,并提供了许多在多个平台之间重用代码的方法。它由JetBrains公司于…

2.JUC

掌握 Java 并发编程,熟悉线程池、并发容器以及锁的机制,如 sychronized、ReentrantLock、AQS等。 2.0 并发基础 线程等待唤醒机制LockSupport (3种) 方式一:使用Object中的wait()方法让线程等待,使用Object中的notify()方法唤醒…

数据结构 ——— 单链表oj题:链表分割(带哨兵位单向不循环链表实现)

目录 题目要求 手搓简易单链表 代码实现 题目要求 现有一链表的头指针 ListNode* head ,给一定值 x ,编写一段代码将所有小于 x 的节点排在其余节点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头节点 举例说明&a…

【包教包会】2D图片实现3D透视效果(支持3.x、支持原生、可合批)

将去年写的SpriteFlipper从2.x升级到3.x。 如果需要2.x版本或需要了解算法思路,请移步:https://blog.csdn.net/weixin_42714632/article/details/136745051 优化功能:可同时绕X轴和Y轴旋转,两者效果会叠加。 完美适配Web、原生…

typescript使用webpack打包编译问题

解决方案:在webpack.config.js中的mdule.exports中设置mode。 再次运行npm run start即可。

Python基本库的使用--urllib

开篇 本篇文章旨在总结urlib基本库的一些常用用法。 相关方法 urlopen 用户打开和读取URL。 import urllib.requestresponse urllib.request.urlopen(https://www.python.org) print(response.read().decode(utf-8))带data参数 import urllib.parse import urllib.requestda…

【计算复杂性理论】P可归约(归约,P-reducible)与P、NP、NP-Hard、NP-Complete问题

1 问题背景 如果想要了解P问题、NP问题、NP-Hard问题、NP-Complete问题之间的关系,那就需要从了解NP-complete问题和归约概念开始。上一篇文章中,我们介绍了计算复杂性理论的奠基之作《The Complexity of Theorem-Proving Procedures》,在这篇…

初识算法 · 滑动窗口(1)

目录 前言: 长度最小的子数组 题目解析 算法原理 算法编写 无重复长度的最小字符串 题目解析 算法原理 算法编写 前言: 本文开始,介绍的是滑动窗口算法类型的题目,滑动窗口本质上其实也是双指针,但是呢&#…

初识数据结构--时间复杂度 和 空间复杂度

数据结构前言 数据结构 数据结构是计算机存储、组织数据的方式(指不仅能存储数据,还能够管理数据-->增删改)。指相互之间存在一种或多种特定关系的数据元素的集合。没有单一的数据结构对所有用途都有用,所以我们要学习各种的数据结构,比…

[Python] 编程入门:理解变量类型

文章目录 [toc] 整数常见操作 浮点数字符串字符串中混用引号问题字符串长度计算字符串拼接 布尔类型动态类型特性类型转换结语 收录专栏:[Python] 在编程中,变量是用于存储数据的容器,而不同的变量类型则用来存储不同种类的数据。Python 与 C…

Springboot项目整合RabbitMQ+Redis实现可靠的阿里云短信异步收发功能(手把手实操详细教程)

文章目录 1、项目介绍1.1、项目描述1.2、项目结构 2、创建项目(idea)2.1、依赖引入2.2、 配置文件2.3、 数据库表2.4、 实体类2.5、 配置类2.6、 验证码服务类2.7、 短信发送服务类2.8、 消费者类2.9、发送服务类2.10、定时任务类2.11、启动类2.12、测试控制器 3、效果测试4、总…

计算机科学英语词汇汇总(上)(Computer Science English Complete Vocabulary)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…

对不经常变动的数据集合添加Redis缓存

目录 前言 什么是缓存 如何使用缓存 添加商户缓存 缓存模型和思路 实现代码 问题分析 解决方案 实现商铺和缓存与数据库双写一致 实现代码 前言 什么是缓存 缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码 缓存…

【框架篇】过滤器和拦截器的区别以及使用场景

在项目开发中,常常会同时配置拦截器(Interceptor)和过滤器(Filter),以下就是它们两个主要的区别: 过滤器(Filter) 配置和实现 Filter的实现还是很简单的,可…

提升快递管理效率的必备技能:教你批量查询与导出物流信息

在当今快节奏的商业环境中,快递与物流行业的效率直接关系到企业的运营成本和客户满意度。随着订单量的不断增加,如何高效地管理和追踪大量的物流信息成为了企业面临的一大挑战。批量查询与导出物流信息作为一种高效的数据处理手段,正逐渐成为…

微信小程序-npm支持-如何使用npm包

文章目录 1、在内建终端中打开2、npm init -y3、Vant Weapp4、通过 npm 安装5、构建 npm 1、在内建终端中打开 Windows PowerShell 版权所有 (C) Microsoft Corporation。保留所有权利。尝试新的跨平台 PowerShell https://aka.ms/pscore6PS C:\Users\dgq\WeChatProjects\minip…

重学SpringBoot3-集成Redis(三)

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(三) 1. 引入 Redis 依赖2. 配置 RedisCacheManager 及自定义过期策略2.1 示例代码:自定义过期策略 3. 配置…

大学生就业招聘系统:Spring Boot技术解析

3系统分析 3.1可行性分析 通过对本大学生就业招聘系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本大学生就业招聘系统采用JAVA作为开发语言,S…

【现代控制理论】第2-5章课后题刷题笔记

文章目录 第二章:线性控制系统的状态空间描述第三章:控制系统状态空间描述的特性3.1 计算状态转移矩阵(矩阵指数函数)3.2 计算系统的时间响应(状态方程的解)3.3 判断系统的能控性和能观性,以及能…