• 关于

    java的不同版本

    的搜索结果

回答

JDK 是Java开发工具包 (Java Development Kit ) 的缩写。它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java基础API里面是Java类库和Java的语言规范,同时Java语言的任何改进都应当加到其中,作为后续版本发布。要成为一名程序员,JDK是一种最基本的工具。 Java SDK最早叫Java Software Develop Kit,后来改名为JDK,即Java Develop Kit。JDK作为Java开发工具包,主要用于构建在Java平台上运行的应用程序、Applet 和组件等。 JDK的功能: 它的功能是用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。它不提供具体的开发软件,它提供的是无论你用何种开发软件写Java程序都必须用到的类库和Java语言规范。 JDK有哪些版本: J2EE、J2SE、J2ME这三个不同版本的平台,它们的共同点是:语言是相同的,不同点是捆绑的库不同。J2EE是企业版平台,它除了包含标准版(SE的任何组件,还增加了附加库;J2SE是标准版平台;J2ME是微型平台。 掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。

huacai.shc 2019-12-02 01:02:41 0 浏览量 回答数 0

回答

1、Java NIO(新IO)是Java的替代IO API(Java 1.4版本),2、意味着替代标准Java IO和Java Networking API。 3、Java NIO提供了与标准IO API不同的使用IO的方式。4、使用1.4以后的版本就会支持NIO接口,使用新版本的JDK,包括Stream或者Socket编程可以获得最新的NIO的支持5、Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架。6、Netty源码可以在这里下载,https://github.com/netty/netty/,建议先从基础的例子入手,写个netty聊天通信的例子,然后在看Server和Client源码,以及序列化机制。

徐雷frank 2019-12-02 01:47:18 0 浏览量 回答数 0

回答

1、Java NIO(新IO)是Java的替代IO API(Java 1.4版本),2、意味着替代标准Java IO和Java Networking API。 3、Java NIO提供了与标准IO API不同的使用IO的方式。4、使用1.4以后的版本就会支持NIO接口,使用新版本的JDK,包括Stream或者Socket编程可以获得最新的NIO的支持5、Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架。6、Netty源码可以在这里下载,https://github.com/netty/netty/,建议先从基础的例子入手,写个netty聊天通信的例子,然后在看Server和Client源码,以及序列化机制。

徐雷frank 2019-12-02 01:46:42 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

回答

距离 Java 11 的正式发布已过去一个多月,而 Java 12 也正在赶来的路上。根据此前开源中国发起的一项关于开发者使用的 Java 版本的调查(https://www.oschina.net/question/2918182_2287320)显示,Java 8 仍然是开发者的主流选择,而 Java 11 是 Java 8 之后的首个 LTS 版本,所以有不少开发者表示会选择升级至 Java 11。按照 Java 的发布计划,Java 12 将于明年 3 月推出,那么问题来了,我们是应该采用 Java 12,还是坚持使用 Java 11 呢? 可能你会觉得这是一个无关紧要的问题,但对于那些需要在 JVM 中使用 Java 的开发者,或是比较看重 Java 新特性的开发者,这是一项十分重要的决策。这篇文章将和大家就这个问题进行相关的分析。 Java 发布计划 现在每六个月就会发布一个新的 Java 版本,所以尽管 Java 11 才发布不久,但距离 Java 12 的发布也就剩下不到五个月的时间。作为发布计划的一部分,某些版本会被指定为长期支持版本(LTS),它们会获得四年或更长时间的技术支持和安全补丁。所以这些版本通常会被称为“主要版本” —— 不是因为它们拥有更多的功能特性,而是因为它们具有长期的技术支持。 预计 Java 11 的更新补丁(11.0.1, 11.0.2, 11.0.3 等)将比 Java 8 的补丁(8u20, 8u40, 8u60)更小更简单。因为 Java 11 的更新将更加集中在安全补丁上,不会像 Java 8 的更新那样带来内部的功能增强。因为 Oracle 希望将 Java 12, 13, 14 等这些版本当做是小更新版本,类比成 Java 8 的话,即是 Java 11u20, 11u40。 Oracle 高级员工一再认为像 8u20 和 8u40 这样的更新常常会带来破坏性的变更,但本文作者表示这不是自己的经历,他记得的唯一有破坏性的变化是为 Javadoc 添加了 --allow-script-in-comments,但它也不是 Java 的核心部分。因此,他从不担心升级到最新版本带来的影响 —— 因为这是 Java 平台的核心优势。 下面深入了解一下为什么在旧的发布模式下,升级版本不会导致任何问题。先看一下新旧发布模式之间的差异: Oracle 的官方观点认为:与 Java 7->8->9 相比,Java 9->10->11的升级和 8->8u20->8u40 更相似。 表格清楚地显示新模式下的 Java 版本发布都会包含许多变更,包括语言变更和 JVM 变更,这两者都会对 IDE、字节码库和框架产生重大影响。此外,不仅会新增其他 API,还会有 API 被删除(这在 Java 8 之前没有发生过)。 Oracle 的观点是,因为每个版本仅在前一个版本发布后的 6 个月推出,所以不会有太多新的“东西”,因此升级并不困难。虽然如此,但这不是重点。重要的是升级是否有可能会破坏代码。很明显,从 11 -> 12 -> 13 开始,代码遭受破坏的可能性要大于 8 -> 8u20 -> 8u40。 11 -> 12 -> 13 与 8u20 -> 8u40 等这样的更新主要区别在于对字节码版本的更改以及对规范的更改,对字节码版本的更改往往特别具有破坏性,大多数框架都大量使用与每个字节码版本密切相关的 ASM 或 ByteBuddy 等库。而 8u20 -> 8u40 仍然使用相同的 Java SE 规范,具有所有相同的类和方法,不同于从 Java 12 移动到 13。 除此之外,Oracle 的另一个声明也十分值得我们关注。声明透露出的消息是,如果坚持使用 Java 11 并计划在下一个 LTS 版本(即 Java 17)发布时再进行升级,开发者可能会发现自己的项目代码无法通过编译。所以请记住,Java 新的开发规则现在声明可以在一个版本中弃用某个 API 方法,并在下一个版本中删除它。 采用新版本 Java 的注意事项 在本节中,将概述在采用新版本 Java 之前必须考虑的一些注意事项/风险。 被新版本系列“绑定” 如果采用了 Java 12 并使用新的语言特性或新的 API,这意味着实际上你已将项目绑定到 Java 的新版本系列。接下来你必须采用 Java 13, 14, 15, 16 和 17,并且必须在下一个版本发布后的一个月内采用每个新版本。 使用了新版本,每个版本的使用寿命为六个月,并且在发布后仅七个月就过时了。这是因为每个版本只有在六个月内提供安全补丁,发布后1个月的第一个补丁和发布后4个月的第二个补丁。7个月后,下一组安全补丁会发布,但旧版本不能获取更新。 因此,你要判断自身的开发流程是否允许升级 Java 版本,时间窗口方面会不会太狭窄? 升级的“绊脚石” 实际使用中有很多阻止我们升级 Java 的因素,下面列出一些常见的: 开发资源不足:你的团队可能会非常忙碌或规模太小,你能保证两年后从 Java 15 升级到 16 的开发时间吗? 构建工具和 IDE:你使用的 IDE 是否会在发布当天支持每个新版本?Maven? Gradle 呢? 如果不是,你有后备计划吗?请记住,你只有1个月的时间来完成升级、测试并将其发布到生产环境中。此外还包括 Checkstyle,JaCoCo,PMD,SpotBugs 等等其他工具。 依赖关系:你的依赖关系是否都准备好用于每个新版本?请记住,它不仅仅是直接依赖项,而是技术堆栈中的所有内容。字节码操作库尤其受到影响,例如 ByteBuddy 和 ASM。 框架:这是另一种依赖,但是一个大而重要的依赖。在一个月的狭窄时间窗口内,Spring 会每六个月发布一个新版本吗? Jakarta EE(以前的 Java EE)会吗?如果它们不这样做会怎么样? 云 / 托管 / 部署 你是否可以控制代码在生产环境中的运行位置和方式?例如,如果你在 AWS Lambda 中运行代码,则无法控制。AWS Lambda 没有采用 Java 9或10,甚至没有采用 Java 11。所以除非 AWS 提供公共保证以支持每个新的 Java 版本,否则根本无法采用 Java 12。 如何托管你的 CI 系统?Jenkins, Travis, Circle, Shippable, GitLab 会快速更新吗?如果不是,你会怎么做? 对未来的预测 如果已经阅读了上面的列表,并且你的代码和流程可以应对。这十分好,但更重要的是要明白,你也在限制未来进行改变的能力。例如,你的代码可能今天不在 AWS Lambda 上运行,但未来三年呢? 为采用新版本进行规划 如果正在考虑采用新版本的 Java,建议你准备一份现在所依赖的所有内容的清单,或者可能在未来3年内会依赖的。你需要保证该列表中的所有内容都能正常工作,并与新版本一起升级,或者如果该依赖项不再更新,请制定好计划。作者提供了他的清单: Amazon AWS Eclipse IntelliJ Travis CI Shippable CI Maven Maven plugins (compile, jar, source, javadoc, etc) Checkstyle, 以及相关的 IDE 插件和 maven 插件 JaCoCo, 以及相关的 IDE 插件和 maven 插件 PMD 和相关的 maven 插件 SpotBugs 和相关的 maven 插件 OSGi bundle metadata tool Bytecode 工具(Byte buddy / ASM etc) 超过 100 个 jar 包依赖项 说了这么多,作者当然不是鼓励大家不进行升级,新语言特性带来的好处以及性能增强会让开发者受益,但升级背后的风险也应该考虑进去。 其他第三方产商的声明 Spring 框架已经在视频中表达了对 Java 12 的策略。关键部分是: “Java 8 和 11 作为 LTS 版本会持续获得我们的正式支持,对于过渡版本,我们也会尽最大努力支持。如果你升级到 Java 11,我们非常愿意和你合作,但它们不会获得正式的生产环境支持。因为长期支持版本才是我们关注的重心,对于 Java 12 及更高版本我们会尽最大的努力。” 作为典型软件供应商的一个例子,Liferay 声明如下: Liferay 已决定不会对 JDK 的每个主要版本进行认证。我们将选择遵循 Oracle 的主导并仅认证标记为 LTS 的版本。—— Liferay 博客 640?wx_fmt=png 总结 相信肯定已经有开发团队采用了新版本的 Java,但希望他们是经过思考判断之后做出的决定。除了文章中提到的问题,还会有很多其他在升级前需要思考的因素,欢迎在评论中留下你的看法。

问问小秘 2020-04-29 17:45:51 0 浏览量 回答数 0

回答

杨晓峰认为这一情况也正常:Java8 在可预见的将来依然会是生产的主体,放在晚期大众阶段是合理的。但是对于很多头部厂商来说,Java11 或者再后续版本,有可能陆续出现一定规模的生产化部署。他认为这样的趋势只会在头部公司发生,如果一个公司对大堆栈 GC 能力、延迟 SLA 等方面要求没有那么高,就没有足够动力去做相关升级,也未必有技术力量解决版本评估、兼容性修正等现实问题。所以结论就是:Java11 处于早期采用者阶段。 对此黄飞补充:也正是因为 Java11 处于早期采用者阶段,因此相关的资料较少,遇到问题会有比较高的学习成本,例如 JFR 对 11 的支持,JMC 对 Java11 的分析能力较弱。 而对于 Java 13,小马哥认为该版本在新 GC 算法的提升以及 Socket 实现上的变化还是非常令⼈期待的,因此 Java 13 排在创新者之列。 对于 Java 的升级,Oracle 宣布从 Java 9 开始每半年将更新一个 Java 大版本——Java 11 是长期支持(Long-Term -Support, LTS)版本,Java 9、10 则成了过渡版本(non‑LTS),因此,陈楚晖不建议用户在生产中使用 Java 9、10。在他看来,小版本升级相对风险是比较小的,而大版本变更则会有可能需要更改大量的代码,这也是为什么这么多人还在坚持用 Java8,而不去更新 Java 11、12、或者 13 的原因。 对于开发者升级 Java 动力不足的原因,李三红的解释更为详细,他认为有两个原因: 敏捷的基础底层架构对软件升级的支持,企业对底层架构的重视程度也是 Java 升级的一个很关键原因。中国的企业业务发展都很快,但是其实很多对底层架构的支持和重视是不足够的。底层架构是否在企业内部被统一强管控,是否很容易支持不同软件版本的灰度,并能通过有效的预发测试,覆盖软件升级不兼容等带来的不确定性,这都考验着软件升级的难度。 另外一点,如果企业享受不到技术升级带来的红利,包括性能、编程效率等多方面提升,势必也影响升级的积极性。

游客pklijor6gytpx 2019-12-02 03:11:35 0 浏览量 回答数 0

回答

Eclipse自身使用ecj来编译java代码,而不是JDK的java编译器,是为了便于Eclipse对代码解析过程进行处理并且不必须要求JDK(Eclipse通过ecj可在只具有JRE的环境上对代码进行编译运行) 但ecj编译器仍然需要有JRE(不一定是JDK,JRE即可,除非需要JDK提供的Tools开发包)提供相应版本的Java类库。Eclipse自身不带JDK(MyEclipse等商业版本除外,这一类带的JDK版本自查发行网站)。 另外,由于Eclipose本身也是使用Java进行开发的,所以Eclipse的运行需要机器有JRE环境。 引用来自“逝水fox”的评论 Eclipse自身使用ecj来编译java代码,而不是JDK的java编译器,是为了便于Eclipse对代码解析过程进行处理并且不必须要求JDK(Eclipse通过ecj可在只具有JRE的环境上对代码进行编译运行) 但ecj编译器仍然需要有JRE(不一定是JDK,JRE即可,除非需要JDK提供的Tools开发包)提供相应版本的Java类库。Eclipse自身不带JDK(MyEclipse等商业版本除外,这一类带的JDK版本自查发行网站)。 另外,由于Eclipose本身也是使用Java进行开发的,所以Eclipse的运行需要机器有JRE环境。 JDK:JavaDevelopmentToolKit(Java 开发工具包 ) 。 JDK 是整个 JAVA 的核心,包括了 Java 运行环境( JavaRuntimeEnvirnment ),一堆 Java 工具( javac/java/jdb 等)和 Java 基础的类库(即 JavaAPI  包括 rt.jar)。 JRE:Java    Runtime    Enviromental(java 运行时环境 )。 也就是我们说的 JAVA 平台,所有的 Java 程序都要在 JRE 下才能运行。包括 JVM 和 JAVA 核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。 JVM:JavaVirtualMechinal(JAVA 虚拟机 ) 。JVM是 JRE 的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM 有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。 JVM  的主要工作是解释自己的指令集(即字节码)并映射到本地的  CPU  的指令集或  OS  的系统调用。Java语言是跨平台运行的,其实就是 不同的操作系统,使用不同的 JVM 映射规则,让其与操作系统无关,完成了跨平台性 。 JVM  对上层的  Java  源文件是不关心的,它关注的只是由源文件生成的类文件(  classfile )。

爱吃鱼的程序员 2020-06-09 11:09:21 0 浏览量 回答数 0

回答

Java属于编译型和解释型的编程语言,所有的*.java程序必须编译为*.class文件之后才可以在电脑上执行,而执行*.class 文件的电脑并不是一台真实的电脑,而是利用软件和硬件模拟出来的一台虚拟电脑,称为Java虚拟机,而针对于不同的操 作系统平台,有不同版本的Java虚拟机,即:由Java虚拟机去适应不同的操作系统,即:只要Java虚拟机的支持没有改 变,同一个*.class可以在不同的平台上运行。

游客pklijor6gytpx 2019-12-02 03:17:58 0 浏览量 回答数 0

问题

在 RHEL/CentOS 上安装 OpenJDK 和 Oracle JDK

妙正灰 2019-12-01 21:50:42 2850 浏览量 回答数 0

问题

生产环境下,同一台服务器运行运行两个不同版本的JDK会不会有影响? #Java

黄一刀 2020-05-07 22:12:13 0 浏览量 回答数 1

回答

平台无关 是指你写的java代码,可以在不同的os,不同的硬件,不同的版本上面运行,且表现一致这种无关本质可以理解为 java 在os之上搭建了一层解析器(虚拟机),会根据不同的os和硬件等最终解析成机器运行的指令当然有的时候一些程序需要大内存,或者需要一些机器的特殊属性,亦或没有相关的java虚拟机支持,这时候可能还是会和平台相关

griffin_curry 2019-12-02 01:50:00 0 浏览量 回答数 0

回答

众所周知,Java是平台无关的语言,那么Java为什么要支持平台无关性,总结一下,有如下几点支持多变的网络环境。如今是一个互联网的时代,网络将各种各样的计算机和设备连接起来,比如网络连接了windows的PC机,UNIX工作站等等。为了保证程序能够不加任何修改运行于网络上的任何计算机,而不管计算机是什么种类,什么平台,这样就极大减轻了系统管理员的工作。尤其是程序是通过网络环境进行部署的。支持网络化嵌入式设备。目前工作场所中存在各种各样的嵌入式设备,比如打印机,扫描仪,传真机等。他们往往通过网络连接起来,甚至在家庭网络和汽车内部也存在这样那样的嵌入式设备 。Java的平台无关性可以简化这样的系统管理任务。无论是哪个网络的管理员,它只需关注程序本身即可。此外添加一台新设备,可以立即被其他设备访问到,也可以访问其他设备。这都是平台无关性带来的好处。减少开发者部署程序的成本和时间。对于开发者而言, Java平台无关的能力给予网络一个同构的运行环境,使得分布式系统可以围绕着“网络移动对象”开构建。比如对象序列化,RMI, Jini就是利用平台无关性。把面向对象编程从虚拟机带到了网络上。影响Java平台无关性的因素Java平台的部署。运行Java程序之前,必须要部署好Java平台。Java平台的版本。Sun公司提供了不同的API集合,有标准版,扩展版等等。此外API本身也面临着改动,一些API被认为是过期的,一些API甚至不向下兼容,因此我们需要选择合适的Java平台版本支持程序开发。本地方法。当编写一个平台独立的Java程序时候,最重要的原则是:不要直接或间接调用不属于Java API的本地方法。调用Java API以外的本地方法使得程序平台相关。一般而言,本地方法在三种情况适用:使用底层主机平台的特性,而Java API无法访问;为了访问老系统或者使用现有的库,但是这个系统或库不是Java编写的;为了加快程序性能,将时间敏感代码用本地方法实现。因此当必须使用本地方法,而且支持多种平台运行,必须将本地方法移植到所有需要的平台上。因此编写平台独立的Java程序做主要的目的就是完全禁止本地方法,通过Java API和主机交互。非标准运行时库。所谓平台无关性,一种解释是你调用的方法是否在任何地方都已经实现。本地方法顾名思义,就是只是在本地实现了,所以无法保证平台无关。而Java API在如windows, Solaris等操作系统上的实现上使用了本地方法访问主机,即保证了平台无关。对虚拟机的依赖。虚拟机可以由不同开发商开发,但是必须满足如下两条原则:不要依赖及时终结(finalization)保证程序的正确性,因为特定程序中对象可能在不同的时间被垃圾收集;不要依赖线程的优先级来保证程序的正确性。因为一些虚拟机可以实现优先级高线程优先运行,一些虚拟机不能保证这一点。对用户界面依赖,AWT库提供基本的用户界面,这些组件被映射成每个平台上的本地组件,而Swing库为用户提供更高级的组件,但并没有被映射为本地组件。实现平台无关的7大步骤选择程序运行的主机和设备集合(目标宿主机)在目标宿主机中选择Java平台版本。对于每个目标宿主机,选择程序将要运行的Java平台实现(目标运行时环境) 。编写程序,调用Java API标准运行库(不调用本地方法,或者专门开发商专门调用本地方法的库)编写程序,不依赖于垃圾收集器收集垃圾时间,不依赖线程的优先级努力设计用户界面,在所有的目标宿主机都能正常工作在所有目标运行时环境和所有目标宿主机进行测试 Java从四个方面支持了平台无关性最主要的是Java平台本身。Java平台扮演Java程序和所在的硬件与操作系统之间的缓冲角色。这样Java程序只需要与Java平台打交道,而不用管具体的操作系统。Java语言保证了基本数据类型的值域和行为都是由语言自己定义的。而C/C++中,基本数据类是由它的占位宽度决定的,占位宽度由所在平台决定的。不同平台编译同一个C++程序会出现不同的行为。通过保证基本数据类型在所有平台的一致性,Java语言为平台无关性提供强有力的支持。Java class文件。Java程序最终会被编译成二进制class文件。class文件可以在任何平台创建,也可以被任何平台的Java虚拟机装载运行。它的格式有着严格的定义,是平台无关的。可伸缩性。Sun通过改变API的方式得到三个基础API集合,表现为Java平台不同的伸缩性:J2EE,J2SE,J2ME。

缘灭山上 2019-12-02 01:39:36 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档在安装完 Java 开发环境后,您需要安装 Log Service Java SDK。目前,我们提供两种方式安装日志服务的 Java SDK: 建议使用 Apache Maven 获取最新版本的 SDK,您可以添加如下配置到您的 Maven 项目。<dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>2.5.0</version> </dependency> <dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>aliyun-log</artifactId> <version>0.6.7</version> <exclusions> <exclusion> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> </exclusion> </exclusions> </dependency> 您也可以完整下载 Java SDK 软件包,然后在自己的 Java 项目中直接引用本地软件包。 从 这里 克隆 Java SDK 包(版本会定期更新,如需使用最新版本请使用 Maven)。 解压完整下载的包到指定的目录即可。Java SDK 是一个软件开发包,不需要额外的安装操作。 把 SDK 包中的所有 Jar 包(包括依赖的第三方包)添加到您的 Java 工程(具体操作请参照不同的 IDE 文档)。

2019-12-01 23:11:18 0 浏览量 回答数 0

问题

java动态连接数据源。

何处买醉 2019-12-01 19:28:55 746 浏览量 回答数 1

回答

简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastException)。可以编写测试类: import java.io.Serializable; public class Serial implements Serializable { private static final long serialVersionUID = 6977402643848374753L; int id; String name; public Serial(int id, String name) { this.id = id; this.name = name; } public String toString() { return "DATA: " + id + " " + name; } } 序列化测试代码: import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; public class SerialTest { public static void main(String[] args) { Serial serial1 = new Serial(1, "song"); System.out.println("Object Serial" + serial1); try { FileOutputStream fos = new FileOutputStream("serialTest.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(serial1); oos.flush(); oos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 反序列化测试代码: import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.ObjectInputStream; public class DeserialTest { public static void main(String[] args) { // TODO Auto-generated method stub Serial serial2; try { FileInputStream fis = new FileInputStream("serialTest.txt"); ObjectInputStream ois = new ObjectInputStream(fis); serial2 = (Serial) ois.readObject(); ois.close(); System.out.println("Object Deserial" + serial2); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 可以测试待序列化类Serial设置了版本号,分别运行SerialTest和DeserialTest类后,如果修改Serial类添加一个属性int age,那么再执行DeserialTest的时候还是能够正确运行的。但是如果注释掉版本号后,就会报不兼容异常了,因为我们运行SerialTest序列化时类信息没变更之前的版本号是A,然后修改Serial类的版本号后,并修改了类的属性信息。再执行反序列话时发现读取的字节码信息中的序列号与当前类的版本号不同,所以会任务前后类型版本不一样,有变更,所以报运行时异常了。

蛮大人123 2019-12-02 02:23:23 0 浏览量 回答数 0

回答

问题现象 云服务器 ECS 服务器内出现大量类似 hs_err_pid*.log 的日志文件。 问题原因 该文件是 Java 虚拟机崩溃后自动生成的崩溃现场描述文件。记录了 Java 虚拟机版本、崩溃时相关内存信息、操作系统信息、崩溃时间点等相关现场信息。   处理办法 Java 虚拟机崩溃一般是由于软件代码或兼容性问题引起的,可以结合崩溃日志中相关信息和业务日志、系统日志等做进一步的排查分析,或尝试更换不同版本的 Java 看是否会复现问题。也可使用 jmap 等专业工具对业务代码的内存泄露跟踪分析。

KB小秘书 2019-12-02 01:29:05 0 浏览量 回答数 0

问题

为什么云服务器 ECS 内Java虚拟机崩溃出现大量 hs_err_pid*.log 日志

boxti 2019-12-01 21:57:33 1214 浏览量 回答数 0

回答

引用来自“编走编想”的评论类名相同,但是还报ClassCastException,那原因基本上就是ClassLoader不同导致的了 引用来自“lizhi.zero”的评论说的很对,估计在你的tomcatlib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 引用来自“小小太阳”的评论 我在上边对JedisPool进行了一下构造,失败了,也报了一个异常: Causedby:java.lang.NoSuchMethodError:redis.clients.jedis.JedisPool:method<init>()Vnotfoundatcom.redis.monitor.redis.impl.RedisServiceImpl.ping(RedisServiceImpl.java:530)atcom.redis.monitor.manager.impl.RedisManagerImpl.ping(RedisManagerImpl.java:190)atcom.redis.monitor.web.interceptor.ServerInteceptor.preHandle(ServerInteceptor.java:93)atorg.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:891)...31more 这个问题我查了一下,也没搜到个结果来. 你的jedis的版本冲突了,你那个异常说明有不同版本的jar######类名相同,但是还报ClassCastException,那原因基本上就是ClassLoader不同导致的了###### 引用来自“编走编想”的评论类名相同,但是还报ClassCastException,那原因基本上就是ClassLoader不同导致的了说的很对,估计在你的tomcatlib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 ###### 引用来自“编走编想”的评论类名相同,但是还报ClassCastException,那原因基本上就是ClassLoader不同导致的了 引用来自“lizhi.zero”的评论说的很对,估计在你的tomcatlib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 我在上边对JedisPool进行了一下构造,失败了,也报了一个异常: Causedby:java.lang.NoSuchMethodError:redis.clients.jedis.JedisPool:method<init>()Vnotfoundatcom.redis.monitor.redis.impl.RedisServiceImpl.ping(RedisServiceImpl.java:530)atcom.redis.monitor.manager.impl.RedisManagerImpl.ping(RedisManagerImpl.java:190)atcom.redis.monitor.web.interceptor.ServerInteceptor.preHandle(ServerInteceptor.java:93)atorg.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:891)...31more 这个问题我查了一下,也没搜到个结果来. ######如果用Maven做项目管理的话,试试mvndependency:tree命令,查查是否有重复的jedis依赖###### 引用来自“编走编想”的评论类名相同,但是还报ClassCastException,那原因基本上就是ClassLoader不同导致的了我也考虑过classloader的问题,但是发现不是classloader的问题###### 谢谢哥,原来问题是这样的,我在项目里用到了ant和maven,ant打包的时候会把maven中的那些jar包都放到WEB-INF下的lib文件夹,然后我在eclipse测试测试的时候,虽然是用maven构建的项目,但项目依然会进入lib文件夹读取jar包. 而我确实升级了一下jedis的版本,从2.1.0->2.7.3,导致有两个jar包依赖.结果2.7.3的类构建的对象又被赋值给2.1.0版本的类声明的变量,结果出错了. 解决方案就是,我把lib下的包都删掉了.然后在ant打包的时候,加了删除的内容,保证lib包的内容始终跟开发项目里的内容同步.搞定.

爱吃鱼的程序员 2020-06-22 23:03:03 0 浏览量 回答数 0

回答

引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 引用来自“lizhi.zero”的评论说的很对,估计在你的tomcat lib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 引用来自“小小太阳”的评论 我在上边对JedisPool进行了一下构造, 失败了,也报了一个异常: Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool: method <init>()V not found at com.redis.monitor.redis.impl.RedisServiceImpl.ping(RedisServiceImpl.java:530) at com.redis.monitor.manager.impl.RedisManagerImpl.ping(RedisManagerImpl.java:190) at com.redis.monitor.web.interceptor.ServerInteceptor.preHandle(ServerInteceptor.java:93) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:891) ... 31 more 这个问题我查了一下,也没搜到个结果来. 你的jedis的版本冲突了,你那个异常说明有不同版本的jar######类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了###### 引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 说的很对,估计在你的tomcat lib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 ###### 引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 引用来自“lizhi.zero”的评论说的很对,估计在你的tomcat lib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 我在上边对JedisPool进行了一下构造, 失败了,也报了一个异常: Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool: method <init>()V not found at com.redis.monitor.redis.impl.RedisServiceImpl.ping(RedisServiceImpl.java:530) at com.redis.monitor.manager.impl.RedisManagerImpl.ping(RedisManagerImpl.java:190) at com.redis.monitor.web.interceptor.ServerInteceptor.preHandle(ServerInteceptor.java:93) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:891) ... 31 more 这个问题我查了一下,也没搜到个结果来. ######如果用 Maven 做项目管理的话,试试 mvn dependency:tree 命令,查查是否有重复的 jedis 依赖###### 引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 我也考虑过classloader的问题,但是发现不是classloader的问题###### 谢谢哥, 原来问题是这样的, 我在项目里用到了ant和maven, ant打包的时候会把maven中的那些jar包都放到WEB-INF下的lib文件夹,然后我在eclipse测试测试的时候,虽然是用maven构建的项目,但项目依然会进入lib文件夹读取jar包. 而我确实升级了一下jedis的版本,从2.1.0->2.7.3,导致有两个jar包依赖.结果2.7.3的类构建的对象又被赋值给2.1.0版本的类声明的变量,结果出错了. 解决方案就是,我把lib下的包都删掉了. 然后在ant打包的时候,加了删除的内容,保证lib包的内容始终跟开发项目里的内容同步.搞定.

爱吃鱼的程序员 2020-06-02 14:05:04 0 浏览量 回答数 0

回答

引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 引用来自“lizhi.zero”的评论说的很对,估计在你的tomcat lib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 引用来自“小小太阳”的评论 我在上边对JedisPool进行了一下构造, 失败了,也报了一个异常: Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool: method <init>()V not found at com.redis.monitor.redis.impl.RedisServiceImpl.ping(RedisServiceImpl.java:530) at com.redis.monitor.manager.impl.RedisManagerImpl.ping(RedisManagerImpl.java:190) at com.redis.monitor.web.interceptor.ServerInteceptor.preHandle(ServerInteceptor.java:93) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:891) ... 31 more 这个问题我查了一下,也没搜到个结果来. 你的jedis的版本冲突了,你那个异常说明有不同版本的jar######类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了###### 引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 说的很对,估计在你的tomcat lib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 ###### 引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 引用来自“lizhi.zero”的评论说的很对,估计在你的tomcat lib下面和你的项目环境下面或者其他什么地方有多个Jedis的jar包 我在上边对JedisPool进行了一下构造, 失败了,也报了一个异常: Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool: method <init>()V not found at com.redis.monitor.redis.impl.RedisServiceImpl.ping(RedisServiceImpl.java:530) at com.redis.monitor.manager.impl.RedisManagerImpl.ping(RedisManagerImpl.java:190) at com.redis.monitor.web.interceptor.ServerInteceptor.preHandle(ServerInteceptor.java:93) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:891) ... 31 more 这个问题我查了一下,也没搜到个结果来. ######如果用 Maven 做项目管理的话,试试 mvn dependency:tree 命令,查查是否有重复的 jedis 依赖###### 引用来自“编走编想”的评论类名相同,但是还报 ClassCastException,那原因基本上就是 ClassLoader 不同导致的了 我也考虑过classloader的问题,但是发现不是classloader的问题###### 谢谢哥, 原来问题是这样的, 我在项目里用到了ant和maven, ant打包的时候会把maven中的那些jar包都放到WEB-INF下的lib文件夹,然后我在eclipse测试测试的时候,虽然是用maven构建的项目,但项目依然会进入lib文件夹读取jar包. 而我确实升级了一下jedis的版本,从2.1.0->2.7.3,导致有两个jar包依赖.结果2.7.3的类构建的对象又被赋值给2.1.0版本的类声明的变量,结果出错了. 解决方案就是,我把lib下的包都删掉了. 然后在ant打包的时候,加了删除的内容,保证lib包的内容始终跟开发项目里的内容同步.搞定.

黄二刀 2020-05-27 10:18:33 0 浏览量 回答数 0

问题

SpringBoot1.X和SpringBoot2.X的不同。

大俊哥哥 2019-12-01 22:05:06 13 浏览量 回答数 1

问题

Log Service Java SDK如何快速入门?

轩墨 2019-12-01 22:02:43 1264 浏览量 回答数 0

回答

我有偏见(是一名Python专家,但对Java却很生疏),但我认为GAE的Python运行时目前比Java运行时更先进和更好地开发-毕竟前者还有一年多的开发和成熟时间。 事情的进展当然很难预测-Java方面的需求可能会更强(尤其是因为它不仅与Java有关,而且其他语言也位于JVM之上,因此这是运行方式,例如PHP或App Engine上的Ruby代码);但是,Python App Engine团队的确具有加入Python的发明者,非常强大的工程师Guido van Rossum的优势。 在灵活性方面,如前所述,Java引擎确实提供了运行由不同语言(不仅是Java)制作的JVM字节码的可能性-如果您在一家多语言商店中,那肯定是很大的。反之亦然,如果您讨厌Javascript但必须在用户的浏览器中执行一些代码,则Java的GWT(从Java级编码为您生成Javascript)比Python端的替代方法更丰富和更先进(实际上,如果您选择Python,您将为此自己编写一些JS,而如果您选择Java GWT,则如果您讨厌编写JS,则可以使用它。 就库而言,这几乎是一种洗礼- JVM受到足够的限制(没有线程,没有自定义类加载器,没有JNI,没有关系数据库),以至于与现有Python相比,现有Java库的简单重用受到了更多的干扰。类似地,Python运行时的类似限制也限制了库。 就性能而言,尽管您应该以自己的任务为基准,但我认为这是一次洗礼-不要依赖高度优化的基于JIT的JVM实现的性能,因为它们降低了启动时间和内存占用,因为应用引擎环境是非常不同的(启动成本将经常支付,因为您的应用程序实例被启动,停止,移动到其他主机等)对您来说都是透明的-与Python相比,使用Python运行时环境这些事件通常要便宜得多。 叹为观止,XPath / XSLT的情况(实际上是委婉的...)并不是两边都完美无缺,尽管我认为这在JVM中可能会稍微好一些(显然,可以使Saxon的大部分子集可以运行) ,但要小心)。我认为值得在Appengine问题页面上打开标题,标题中包含XPath和XSLT;现在只有问题要求特定的库,这是近视的:我真的不在乎如何实现良好的XPath / XSLT,只要适用于Python和/或Java。(特定的库可能会简化现有代码的迁移,但这比能够以某种方式执行“快速应用XSLT转换”这样的任务要重要!)。我知道如果措辞得当(尤其是以与语言无关的方式),我会盯上这样的问题。 最后但并非最不重要的一点:请记住,您可以拥有不同版本的应用程序(使用相同的数据存储),其中一些版本是通过Python运行时实现的,某些版本是通过Java运行时实现的,并且您可以访问不同于“默认/活动”的版本”带有明确的网址。因此,您可以同时使用Python 和 Java代码(在应用的不同版本中)使用和修改相同的数据存储,从而为您提供更大的灵活性(尽管只有一个拥有“ nice” URL,例如foobar.appspot.com)我想这可能仅对交互式用户在浏览器上的访问很重要;-)。

祖安文状元 2020-02-22 15:31:57 0 浏览量 回答数 0

回答

Re:Java多版本镜像上线,即刻体验多版本任意切换为什么没有北京地区的 & .. 镜像市场目前正在进行镜像复制到不同地域的 升级 工作,预计3月中旬升级完成后,Java多版本镜像商品都可以实现覆盖:杭州、北京、 青岛 、深圳,4个节点。 http://bbs.aliyun.com/read/230578.html   关于镜像市场地域复制升级工作的公告

yanjy 2019-12-02 01:48:08 0 浏览量 回答数 0

问题

当在Docker容器中运行时,高I / O Java进程始终在JavaThread中获得信号11 SIGSEGV

k8s小能手 2019-12-01 19:30:31 542 浏览量 回答数 1

回答

Java 语言本身1. 查漏补缺,把 SDK 里常用的方法的源码都看看。然后搞清楚每个版本都引入了那些新特性,这些新特性解决什么问题,如何使用。 2. 分布式计算,去看看 Spring cloud 相关的东西 3. Java 调优,深入到虚拟机的细节,不同的垃圾回收器的工作原理,一堆虚拟机参数该怎么配置。通用能力1. 数据结构和算法,java 里常见的算法怎么实现的,比如 java 的排序实现,Map 的数据结构 2. 设计模式

倚贤 2019-12-02 01:40:03 0 浏览量 回答数 0

回答

不同版本的java这个变量的定义不一样。在java7和之前的版本中,jvm环境变量 user.home 在 windows 系统中被定义为 desktop 文件夹的上级目录。而 desktop 的位置则是从注册表的HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell FoldersDesktop 处读取,其值一般为 %userprofile%desktop 。因此其上级目录,即 user.home 一般就被映射为 %userprofile% ,即 c:documents and settingsyourusername 或 c:usersyourusername 。这在win7里容易出现被解析成 %userprofile% 字符串而不会进一步解析成目录路径的bug:http://bugs.java.com/view_bug.do?bug_id=4787931 。因此java8中对该问题进行了修复,直接将 user.home 映射系统 %userprofile% 变量,一般是用户主目录,即 c:usersyourusername 。综上所述,直接把这个变量当成是系统的环境变量 userprofile 就好啦:Environment.GetEnvironmentVariable("userprofile");或者Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

蛮大人123 2019-12-02 02:00:05 0 浏览量 回答数 0

回答

Apache Tomcat VersionsApache Tomcat®是java Servlet和JSP技术的一个开放源代码的软件实现。不同版本的Apache Tomcat可用于不同版本的servlet和JSP规范。规格和各自的Apache Tomcat版本之间的映射是:每个版本的tomcat是任何稳定的java版本,满足最后一列的表中的上述要求的支持。Tomcat也应该工作在任何java早期访问构建满足最后一列的表中的上述要求。例如,用户已成功运行Tomcat 8在java 8个多月前的第一个稳定的java 8版本。但是,早期访问构建的用户应该知道以下内容:这是不寻常的初步早期访问构建包含错误,可能会导致问题的Web应用程序运行在Tomcat。如果新的java版本引入了新的语言特征,然后默认的JSP编译器可能不支持他们。JSP编译器javac开关可以使这些新的语言功能可用于在JSPs。如果你发现一个问题,使用java早期Access建立,请寻求帮助。Tomcat的用户的邮件列表可能是最好的开始。下面的详细说明将帮助您确定哪一个适合您。有关每个版本的详细信息可以在相关的发行说明中找到。请注意,虽然我们提供下载和旧版本的文件,如Apache Tomcat 6,x,我们强烈鼓励用户使用最新的稳定版本的Apache Tomcat尽可能。我们认识到,在主要版本的升级可能不是一个简单的任务,一些支持仍然提供的旧版本的用户的邮件列表。但是,由于社区驱动的支持方式,你的版本越老,会有更少的人感兴趣或者能够支持你。Alpha / Beta / Stable当投票为一个版本,评审指定的稳定水平,他们认为释放已经达到。最初版本的一个新的主要版本通常从阿尔法,通过测试,以稳定在几个月的时间内。然而,稳定的水平是唯一的一次java规范发布实施已完成。这意味着在所有其他方面被认为是稳定的版本,如果规格不是最终的,仍然可以被标记为beta。下载页将始终显示最新的稳定版本和任何新的alpha或beta版本,如果存在。alpha和beta版本总是在下载页面上明确标注。稳定性是一个主观判断,你应该仔细阅读发行说明任何版本,你打算利用。如果你是一个释放的早期采用者,我们很想听听你对其作为投一部分稳定的看法:它发生在开发邮件列表。alpha版本可能包含大量未经测试的/缺少的功能所需的规范和/或重大错误,预计不会运行稳定的任何时间长度。Beta版本可能包含一些未经测试的功能和/或一些相对较小的错误。beta版本预计不会稳定运行。稳定版本可能包含少量相对较小的错误。稳定版本的目的是生产使用,预计将稳定运行长时间。Apache Tomcat 9.xApache Tomcat 9是当前开发的重点,它基于Tomcat 8和X实现了Servlet 4规范的当前草案,并且还将实现JSP 2.4?,厄尔尼诺3.1?1.2、WebSocket?1.1、jaspic规格一旦开始更新java EE 8规范。除此之外,还包括以下重大改进:增加支持HTTP / 2(要求APR /本机库)增加支持TLS虚拟主机增加使用TLS支持JSSE连接器支持OpenSSL(NiO和NIO2)Apache Tomcat 8.xApache Tomcat 8。x建立在Tomcat 7。X实现了servlet JSP 2.3,3.1,3和1.1规格的WebSocket EL。除此之外,还包括以下重大改进:一个单一的,共同的资源实现,以取代早期版本中提供的多个资源扩展功能。Apache Tomcat 8.5。X支持同一个servlet,JSP,EL和WebSocket规范版本的Apache Tomcat 8。X。此外,它还实现jaspic 1.1规范。在许多地区的引擎盖下有显着的变化,从而提高性能,稳定性和总拥有成本。请参阅Apache Tomcat 8.5更新详情。Apache Tomcat 7.xApache Tomcat 7。x建立在Tomcat 6做了改进。X实现了JSP Servlet 3,2.2,2.2和1.1规格的WebSocket EL。除此之外,还包括以下改进:Web应用程序内存泄漏检测与防范管理器和主机管理器应用程序的安全性改进通用的CSRF保护支持直接包含外部内容的web应用程序重构(连接器,生命周期)和大量内部代码清理Apache Tomcat 6.xApache Tomcat 6 x基于Tomcat 5.5和X的改进,实现了servlet 2.5和JSP 2.1规范。除此之外,还包括以下改进:内存使用的优化先进的IO能力重构的聚类Tomcat 6的用户应该意识到Tomcat 6已经达到生命的终结。Tomcat 6的用户应该升级到Tomcat 7 x或更高版本。Apache Tomcat 5.xApache Tomcat 5 x可从档案中下载。Apache Tomcat 5.5 x支持与Apache Tomcat 5相同的servlet和JSP规范版本。在引擎盖下的许多区域都有显著的变化,导致性能、稳定性和总拥有成本的提高。请参阅Apache Tomcat 5.5更新详情。Apache Tomcat 5 x在许多方面提高Apache Tomcat 4.1,包括:性能优化和减少垃圾收集重构应用程序的部署,一个可选的独立部署允许Web应用程序的验证和编译之前把它在生产完整的服务器使用JMX和经理的Web应用监控可扩展性和可靠性增强改进的标签库处理,包括先进的共享和标签插件改进的平台集成,与本机的Windows和Unix的包装嵌入使用JMX增强安全管理器支持集成会话聚类扩展的文件Apache Tomcat 4.xApache Tomcat 4 x可从档案中下载。Apache Tomcat 4。X实现了一种新的servlet容器(称为卡特琳娜)是基于全新的架构。4、X发布实现Servlet 2.3和JSP 1.2规范。Apache Tomcat 4.1 x是Apache Tomcat 4 x的重构,并包含显著的增强功能,包括:基于JMX的管理功能基于JSP和Struts的管理Web应用新狼连接器(HTTP/1.1,AJP 1.3和JNI支持)重写JSP页面编译器性能和内存效率改进增强管理器应用程序支持与开发工具集成自定义Ant任务与管理应用程序直接从build.xml脚本互动Apache Tomcat 4。X的Apache Tomcat 4.0.6是旧的生产质量释放。4 Servlet容器(Catalina)已经从地上爬起来的灵活性和性能开发。版本4实现了servlet 2.3和JSP 1.2规范的最终发布版本。按照规格要求,Apache Tomcat 4还支持为servlet 2.2和JSP 1.1规范构建的Web应用程序,没有任何更改。Apache Tomcat 3.xApache Tomcat 3 x可从档案中下载。版本3.3是当前生产质量发布的servlet 2.2和JSP 1.1规格。Apache Tomcat 3.3是Apache Tomcat 3最新的延续。X架构;然后3.2.4更先进,这是'老'生产质量释放。3.2.4版本是'老'生产质量的释放和现在在维护模式。3.1.1版是一个传统的释放。所有Apache Tomcat 3 x释放他们的遗产回到原来的servlet和JSP实现Sun捐赠给Apache软件基金会。3、X版全部实现Servlet 2.2和JSP 1.1规范。Apache Tomcat 3.3。X版本3.3.2是当前生产质量释放。它继续在第3.2版中开始的重构,并把它带到合乎逻辑的结论。版本3.3提供了一个更加模块化的设计,通过添加和移除控制servlet请求处理的模块来实现servlet容器的定制。此版本还包含许多性能改进。3.2版本的版本自3.1起增加了一些新的功能;主要的努力是重构内部以提高性能和稳定性。3.2.1版本的,像3.1.1,是一个安全补丁。3.2.2版本,一大批固定的错误和所有已知的规范合规问题。3.2.3版本是一个安全更新,关闭一个严重的安全漏洞。是一个小bug修复版本3.2.4释放。Apache Tomcat版本3.2.3所有用户之前,应尽快升级。除了关键的安全相关的错误修复,Apache Tomcat 3.2 X分支的发展已经停止。3.1的版本包含了Apache Tomcat 3的几个改进,包括servlet重装、WAR文件支持以及为IIS和Netscape Web服务器添加了连接器。最新的维护版本,3.1.1,包含对安全问题的修复。没有活动的发展进行了Apache Tomcat 3.1。X的用户应该升级到Apache Tomcat 3.1 3.1.1关闭安全漏洞,大力鼓励他们迁移到目前的产能释放,Apache Tomcat 3.3。Apache Tomcat 3初始Apache Tomcat发布。

hiekay 2019-12-02 01:39:27 0 浏览量 回答数 0

回答

这还真很奇怪,看看电脑上的java环境有什么不同吗遍历的写法不会是Jdk8的方式吧,而不同电脑上安装的jdk版本又不同

爱吃鱼的程序员 2020-06-08 21:11:54 0 浏览量 回答数 0

回答

Java 虚拟机崩溃一般是由于软件代码或兼容性问题引起的,可以结合崩溃日志中相关信息和业务日志、系统日志等做进一步的排查分析,或尝试更换不同版本的 Java 看是否会复现问题。也可使用 jmap 等专业工具对业务代码的内存泄露跟踪分析。

元芳啊 2019-12-02 00:36:51 0 浏览量 回答数 0

回答

1、Java源代码编译之后得到的是字节码(byte code),不是机器指令。 2、字节码也可以看作是JVM才能看懂的源代码,在运行期间,JVM会将字节码解释、编译为机器指令。 3、Sun公司在开发Java语言时,为不同的系统平台提供了不同版本的JVM,用于将字节码解释、编译为各个系统平台所支持的机器指令。

cnhanxj 2019-12-02 02:11:28 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站