首页
学习
活动
专区
圈层
工具
发布

从Java EE到Jakarta EE,企业版Java的发展历程

开始支持内部类和反射 JDK 1.2 1998.12 引入集合框架Collections、Map等。...从此版本开始,分为3个版本:J2SE/J2EE/J2ME(注:1999.04著名的HotSpot虚拟机诞生,顺势推出了Java EE首个版本) JDK 1.3 2000.05 千禧年的第一个版本,对类库进行了优化...Java EE发展史 J2EE(JavaEE)自1999年首次发布以来,已成为实现和部署可移植、多层企业应用程序的集成标准(它是标准,它是规范),现在了解下它的发展史,记录到如下表格(从成体系的Java...EE 1.4版本开始)。...从Java EE到Jakarta EE,它能否重新焕发生命力我不知道,但留下来的不少东西依旧是目前的主流(如Servlet规范、JPA等等),具有非常高的学习价值,切莫轻视。

4.6K50

java ee简介_Java EE 简介

Java EE 简介 Java EE 基本架构 JavaEE 的诞生是为了解决传统 C/S 架构的弊端:客户端臃肿庞大,扩展性差等弊端。 JavaEE 将传统的两层结构细分为了四层。...这四层分别是:Client 层, Web 层, Business 层, EIS 层 Java EE 客户端 Java EE客户端层可分为以下几种: Web 客户端,通常是浏览器呈现的网页,这种客户端成为轻量级客户端...层与层之间通信,Web 客户端一般先于 Web 层打交道,Web 层与 Business层通讯, Business层从 EIS层交互。...Java EE 技术变迁 Java EE前身是J2EE(J2EE最后一个版本号是1.4),截止到目前,最新的是 1.7版本。...下图揭示了Java EE中的技术变迁: 每种技术的简单介绍请参照这里; Java EE 容器 前面我们介绍Java EE分层的时候,Web 层和 Business 层用的是 组件(Component),

1.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java EE --JUC

    理解FutureTask         想象去吃麻辣烫,当餐点好后,后厨就开始做了。...延迟1秒后,每2秒执行一次任务(周期从任务开始时计算) scheduledThreadPool.scheduleAtFixedRate(() -> { System.out.println...线程池就是为了解决这个问题,如果某个线程不再使用了,并不是真正把线程释放,而是放到一个"池子"中,下次如果需要用到线程就直接从池子中取,不必通过系统来创建了。...操作逻辑: S = S + 1; 若 S > 0:当前进程继续执行(无等待进程); 若 S ≤ 0:从该信号量的等待队列中唤醒一个进程,使其进入就绪状态,当前进程继续执行。...后继进程开始前执行P 操作(等待信号,若S=0则阻塞,直到前驱进程唤醒)。

    16610

    Java ee-synchronized

    synchronized 就会阻塞等待         进入synchronized修饰的代码块,相当于加锁         退出synchronized修饰的代码块,相当于解锁 synchronized用的锁是存在Java...Java 中的synchronized是可重入锁,因此没有上面的问题 for (int i = 0; i < 50000; i++) { synchronized (locker) { synchronized...并让计数器自增         解锁的时候计数器递减为0的时候,才真正释放锁(才能被别的线程获取到) 2、synchronized 使用示例     synchronized 本质上要修改指定对象的“对象头”,从使用角度来看...method() { } }  我们重点要理解,synchronized锁的是什么,两个线程竞争同一把锁,才会产生阻塞等待 两个线程分别尝试获取两把不同的锁,不会产生竞争 5.3 Java...标准库中的线程安全类 Java 标准库中很多都是线程不安全的.这些类可能会涉及到多线程修改共享数据,又没有任何加锁措 施. • ArrayList • LinkedList • HashMap • TreeMap

    20310

    别了 Java EE,开源组织将其更名为 Jakarta EE

    2017年8月,Oracle(甲骨文)决定将Java EE(Java Enterprise Edition)移交给开源组织,最后Eclipse基金会接手。 ?...不过,甲骨文可不允许开源组织用Java的名号,于是Eclipse选出了 "Jakarta EE" 和"Enterprise Profile"两个后续按名字,最终前者以64.4%的票数获胜。 ?...也就是说,Java EE已经正式更名为Jakarta EE(雅加达)。 开源组织也不是没有争取过,原因是沿用Java可以完美地保持兼容性,尤其是API,可这无法撼动甲骨文的意志。...与此同时,Glassfish正式更名为Eclipse Glassfish,Java Community Process更名为Eclipse EE.next Working Group,就连Oracle开发管理团队现在也变成了...其实很多人认为,甲骨文当年买下Java就是为了“勒索”谷歌钱,结果两次败诉,现在Sun的不少软件业务、老员工也基本从甲骨文的企业基因中彻底消失了。

    77620

    Java EE基础之JSP

    从本篇文章开始,我会用文章记录下我在学习Java EE过程中的一些笔记和感悟,至于还没有更新结束的Java SE还是会继续写的,只是我觉得一直写语法很枯燥,自己也没法继续下去,所以带着点web...out.write(" \n"); out.write("\n");      所有的html代码都是用这种方式输出到浏览器的,这种将html代码耦合在Java...在不甘痛苦中,我们发明了JSP,这是一种将Java代码耦合在html代码中的方式,类似于这样: java和编译后的.class文件,其实很多人认为JSP好像和面向对象没有什么关系了,其实不然,因为每个servlet都是一个Java类,不然如何执行Java脚本。...我们可以在jsp页面中使用java的for循环,if,else判断等,只要是Java语法允许的,jsp页面都是可以写的。

    2K100

    微服务与Java EE

    不过,对于那些使用Java EE服务器,编写传统系统的开发者来说应该何去何从呢?我们一直所做的都是错误的么?我们该如何让技术设计能够适应于未来?...单体指的就是Java EE或是一开始的Java 2 Enterprise Edition设计的目标。集中式应用可以进行伸缩与集群,但其设计却不一定具有弹性。...传统上,Java EE应用遵循着一些核心模式,并且会分成3个主要的层次:展现、业务与集成。...围绕着Java EE的技术与最佳实践足以构建出设计良好的单体应用。不过,大多数企业级项目都不太关注架构。这也说明了为何有时设计良好的意大利面条是项目依赖与内部结构可视化的最佳方式。...Java EE并不会消亡,它会得到补充和完善。 如果对如何将Java EE应用演化为微服务感兴趣,那么请 下载 这本电子书。此外,还可以通过 这里了解更多信息。

    65910

    探秘Java:从main函数启动开始

    从main函数开始 一、前言   不知道在座的各位朋友是否跟我一样,初学Java时写下的第一段代码就是类似下面这段代码: public static void main(String[] args...当我们在idea中去执行上述代码时,实际上执行的是这样一行命令: java {类名}.java   在上面这行命令中出现的 java 指令实际上是jdk提供的执行java程序的指令,指令后面紧跟着的文件名就是待执行的...java程序。...、配置初始化并创建一个JVM进程来执行Java程序,执行Java程序的过程就是上面代码展示的寻找并调用入口类的main方法。   ...Java程序的执行方式   在日常的开发过程中,除了上面直接运行一个java文件,我们大部分情况都是将Java程序打包成一个jar包进行运行,这里从源码中也能得窥一二。

    1.7K30

    从 Java 开始进入 Kotlin的世界: From Java to Kotlin: JKotlinor从 Java 开始进入 Kotlin的世界: From Java to Kotlin: JKo

    从 Java 开始进入 Kotlin的世界: From Java to Kotlin: JKotlinor 非常感谢您亲爱的读者,大家请多支持!!!...有任何问题,欢迎随时与我交流~ ---- Kotlin与Java对比 在前面的内容里,我们已经看到了Java与Kotlin的互操作的基本方式。...为了更好的认识Java与Kotlin这两门语言,我们在这里给出一些基本功能,同时使用Java与Kotlin来实现的代码实例。通过横向对比,从中我们可以看出它们的异同。...(此处可整理成表格形式) 打印日志 Java System.out.print("Java"); System.out.println("Java"); Kotlin print("Kotlin") println...Range区间 Java if (score >= 0 && score <= 300) { } Kotlin if (score in 0..300) { } 更灵活的case语句 Java

    68620

    【Java EE初阶 --- 网络原理】JVM

    前言 JVM(Java Virtural Machine) ,简称Java虚拟机:指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。...java文件转化成 .calss字节码文件,再加载到内存中(内加载)。...中默认提供了三种加载器:BootstrapClassLoader(Java标准库的目录)、ExtensionClassLoader(Java扩展库的目录)、ApplicationClassLoader(...Java的第三方库) 类加载的步骤 1....堆类对象的各种属性进行填充,如果这个类有父类且父类还没有加载,此环节触发父类加载 双亲委派模型 更准确的是父亲委派模型,描述了类加载中,根据全限定名找到.class文件的过程 约定优先级,先从Bootstrap开始找

    11410

    java EE 相关概念的总结

    2.Hibernate和MyBatis ORM(Object Relation Mapping)的起源:传统的java应用都采用JDBC(Java DataBase Connectivity,java数据库连接...)来访问数据库,JDBC是一中基于SQL的操作方式,这种操作方式与java语言面向对象的思想不太一致,而且操作繁琐,所以就产生了ORM技术。...最早的ORM技术是EJB(Enterprise JavaBean),EJB是java EE的核心,但是EJB操作仍然极其繁琐。...Hibernate是开源的ORM框架,它将普通的、传统的Java对象(POJO, Plain Old Java Object)映射成持久化类,应用程序可以用面向对象的方式来操作POJO,Hibernate...Hibernate会全自动的生产SQL语句,而MyBatis需要程序员自己编写具体的SQL,将大量的SQL语句从程序中剥离出来,配置在配置文件中,实现SQL的灵活配置。

    72220
    领券