免费的网络营销方式,长治seo,网上商城有哪几家,网站建设的搜索栏怎么设置1.在Java中使用Deprecated方法或类是错误的吗#xff1f; 从已弃用的定义 #xff1a; 注释Deprecated的程序元素是程序员不鼓励使用的程序元素#xff0c;通常是因为它是危险的#xff0c;或者是因为存在更好的select。 该方法被保存在API中#xff0c;用于在未指定的时间… 1.在Java中使用Deprecated方法或类是错误的吗 从已弃用的定义 注释Deprecated的程序元素是程序员不鼓励使用的程序元素通常是因为它是危险的或者是因为存在更好的select。 该方法被保存在API中用于在未指定的时间段内向后兼容并且可能在将来的版本中被删除。 也就是说不这没有错 但是有一个更好的方法可以做到这一点这对API的变化更加强大。 2.如果我没有改变任何方法并且运行我的应用程序那么我会有什么警告会不会造成任何性能问题 最有可能没有。 它将继续按照弃用的方式工作。 API方法的合同不会改变。 如果一些内部数据结构改变而采用新的更好的方法则可能会对性能产生影响但这种情况不太可能发生。 Java API中最有趣的弃用方法是FontMetrics.getMaxDecent 。 弃用的原因拼写错误。 已过时。 从JDK版本1.1.1开始由getMaxDescent()取代。 您仍然可以使用不推荐使用的代码而不改变性能但是抛弃方法/类的全部意义在于让用户知道现在有更好的方法来使用它而且在将来的版本中可能会删除已弃用的代码。 术语 从官方的Sun词汇表 弃用 指不再推荐的类接口构造函数方法或字段并可能在将来的版本中停止存在。 从何时何地开始弃用指南 你可能听说过“自嘲的幽默”这个词或者幽默说话者的重要性最小化。 不推荐使用的类或方法就是这样。 这不再重要。 事实上你不应该再使用它因为它已被取代将来可能不复存在。 Deprecated注释更进一步并警告危险 注释Deprecated的程序元素是程序员不鼓励使用的程序元素通常是因为它是危险的 或者是因为存在更好的select。 参考 java.sun.com词汇表 语言指南/如何以及何时弃用API 注释types不推荐使用的API 对还是错 使用弃用方法是否正确的问题将需要在个人基础上进行检查。 下面是有效Java第2版中出现“已弃用”一词的所有引号 第7项避免终结器 声称保证终止的唯一方法是System.runFinalizersOnExit及其邪恶的双Runtime.runFinalizersOnExit 。 这些方法是致命的缺陷已被弃用。 第66项同步对共享可变数据的访问 这些库提供了Thread.stop方法但是这种方法很久以前就被弃用了因为它本质上是不安全的 – 它的使用会导致数据损坏。 项目70文档线程安全 System.runFinalizersOnExit方法是线程敌对的并已被弃用。 Item 73避免线程组 它们允许你一次性将特定的Thread原语应用到一堆线程。 其中有几个基元已被弃用其余的基本不常使用。 线程组已经过时。 所以至less在所有上述方法中使用它们显然是错误的至less按照Josh Bloch的说法。 用其他方法你必须单独考虑这些问题并理解为什么他们被弃用但一般来说当反对的决定是合理的倾向于倾向于错误而不是正确的继续使用它们。 相关问题 弃用和传统API之间的区别 除了上述所有出色的响应我发现还有一个原因是删除不推荐的API调用。 研究为什么一个调用被弃用我经常发现自己学习了关于Java / API /框架的有趣的事情。 通常有一个很好的理由为什么一个方法被弃用理解这些原因导致更深刻的见解。 所以从学习/成长的angular度来看这也是一个值得的努力 它当然不会造成性能问题 – 在将来不推荐使用的方式函数可能不再是库的一部分所以您应该避免在新代码中使用它并更改旧代码以停止使用它所以有一天当你升级struts并发现该function不再存在时你不会遇到问题 你可能听说过“自嘲幽默”这个词。 这是幽默最大限度地减less你的重要性。 不推荐使用的类或方法就是这样。 这不再重要。 事实上它不应该再被使用因为它将来可能会不复存在。 尽量避免它 这没有错只是不推荐。 这通常意味着在这一点上有更好的做事方式如果你使用新的改进方式你会做得很好。 一些弃用的东西是非常危险的应该完全避免。 新方法可以产生比已弃用的更好的性能但事实并非总是如此。 一般来说不使用deprecated方法并不是绝对错误只要你有一个好的应急计划以避免这些方法从你使用的库中消失时出现任何问题。 有了Java API本身这绝不会发生但随着其他任何东西这意味着它将被删除。 如果您特别计划不升级( 尽pipe您最有可能应该从长远来看 )软件的支持库那么使用deprecated方法没有问题。 没有。 是的这是错的。 弃用的方法或类将在未来版本的Java中删除不应使用。 在每种情况下都应该有一个替代scheme。 使用它。 有些情况下您必须使用已弃用的类或方法才能实现项目目标。 在这种情况下你真的别无select只能使用它。 Java的未来版本可能会破坏该代码但如果这是一个要求你必须忍受。 这可能不是你第一次为了满足项目要求而做错了事情而且肯定不会是最后一次。 当您升级到新版本的Java或其他库时有时您使用的方法或类已被弃用。 不推荐使用的方法不被支持但不应该产生意想不到的结果。 这并不意味着他们不会尽快切换你的代码。 弃用过程是为了确保作者有足够的时间将代码从旧的API更改为新的API。 利用这个时间。 尽快更改您的代码。 这是没有错的但是一些被弃用的方法在未来版本的软件中被删除了所以你最终可能会得到不工作的代码。 在Java中使用Deprecated方法或类是错误的吗“ 不是这样的错误但它可以为您节省一些麻烦。 下面是一个非常不鼓励使用不推荐的方法的例子 为什么不推荐使用Thread.stop 因为它本质上是不安全的。 停止线程会导致它解锁所有已locking的监视器。 (当ThreadDeathexception传播到堆栈时监视器被解锁。)如果之前由这些监视器保护的对象处于不一致状态则其他线程现在可以以不一致的状态查看这些对象。 据称这些物体被损坏。 当线程操作受损对象时可能导致任意行为。 这种行为可能是微妙的难以察觉或者可能是明显的。 与其他未经检查的exception不同ThreadDeath静默地杀死线程; 因此用户没有警告他的程序可能被损坏。 在发生实际损害后腐败现象可能会随时出现甚至在未来数小时甚至数天。 如果不改变任何方法并运行我的应用程序如果我有警告它会产生任何性能问题。 在性能方面应该没有问题。 标准API旨在尊重一些向后兼容性因此应用程序可以逐渐适应新版本的Java。 在Java中使用Deprecated方法或类是错误的吗 这不是“错误的”仍在工作但尽可能避免。 假设存在一个与方法相关的安全漏洞开发人员认定这是一个devise缺陷。 所以他们可能会决定放弃这个方法并引入新的方法。 所以如果你仍然使用旧的方法你有一个威胁。 所以要注意到弃用的原因并检查它是如何影响你的。 如果不改变任何方法并运行我的应用程序警告我会有什么它会造成任何性能问题。 如果弃用是由于性能问题造成的那么您将面临性能问题否则没有理由有这样的问题。 再次想指出的是要知道贬值的原因。 当然不是 – 因为整个Java得到Deprecated :-)只要Java持续你可以随意使用它们。 无论如何不会注意到任何差异除非它真的被破坏了。 含义 – 必须阅读并决定。 然而在.Net中当声明了某个东西的时候即使你之前没有使用它你也应该马上去阅读这个东西 – 你有50的机会比replace更有效率和/或更容易使用:-)) 所以总的来说这些天保持技术保守是相当有益的但是你必须首先做好你的阅读工作。 在Java中它被Deprecated在C中是[Obsolete]。 我想我更喜欢C的术语。 这只是意味着它已经过时了。 你仍然可以使用它但可能有更好的方法。 这就像使用Windows 3.1而不是Windows 7如果你相信Windows 3.1已经过时。 你仍然可以使用它但未来的版本可能会有更好的function而未来的版本可能会被支持 – 过时的版本将不会被支持。 Java的deprecated也一样 – 你仍然可以使用这个方法但是风险自担 – 将来可能有更好的select甚至可能不被支持。 如果您使用的是不推荐使用的代码则通常可以只要您不必升级到更新的API不build议使用的代码可能不存在。 我build议如果你看到使用不推荐的代码的东西更新使用新的替代品(这通常在注释或Javadoc弃用的评论中指出)。 编辑正如迈克尔所指出的如果弃用的原因是由于function上的缺陷(或者因为function不应该存在)那么很明显不应该使用弃用的代码。 我觉得弃用的方法意味着; 还有一种替代方法可用比现有方法在所有方面都更好。 最好使用比现有的方法更好的方法。 为了向后兼容旧的方法被弃用。