多次调用java.awt.Toolkit.getDefaultToolkit方法获得是同一个单例的Toolkit

news/2024/12/29 11:14:39/

多次调用java.awt.Toolkit.getDefaultToolkit方法获得是同一个单例的Toolkit

java.awt.Toolkit.getDefaultToolkit()
import java.awt.Toolkit;public class 多次调用Toolkit的getDefaultToolkit方法获得是同一个单例的Toolkit {static public void main (String...arguments)throws Exception{System.out.println("Toolkit.getDefaultToolkit()获得的java.awt.Toolkit是不是同一个? 是否为单例设计模式?");System.out.println("Toolkit.getDefaultToolkit()==Toolkit.getDefaultToolkit()的结果是");System.out.println(Toolkit.getDefaultToolkit()==Toolkit.getDefaultToolkit());for(int r=0; r<100; r++) {for(int c=0; c<100; c++) {System.out.print(Toolkit.getDefaultToolkit()==Toolkit.getDefaultToolkit());}System.out.println();}}}

在这里插入图片描述

jdk17源码去掉注释的

private static Toolkit toolkit;public static synchronized Toolkit getDefaultToolkit() {if (toolkit == null) {toolkit = PlatformGraphicsInfo.createToolkit();if (GraphicsEnvironment.isHeadless() &&!(toolkit instanceof HeadlessToolkit)) {toolkit = new HeadlessToolkit(toolkit);}if (!GraphicsEnvironment.isHeadless()) {loadAssistiveTechnologies();}}return toolkit;}

private static Toolkit toolkit; 一个镜头变量保存实例, 如果保存实例的变量为空, 才创建新实例. 所以是单例

jdk17源码带注释的

    /*** The default toolkit.*/private static Toolkit toolkit;/*** Gets the default toolkit.* <p>* If a system property named {@code "java.awt.headless"} is set* to {@code true} then the headless implementation* of {@code Toolkit} is used,* otherwise the default platform-specific implementation of* {@code Toolkit} is used.* <p>* If this Toolkit is not a headless implementation and if they exist, service* providers of {@link javax.accessibility.AccessibilityProvider} will be loaded* if specified by the system property* {@code javax.accessibility.assistive_technologies}.* <p>* An example of setting this property is to invoke Java with* {@code -Djavax.accessibility.assistive_technologies=MyServiceProvider}.* In addition to MyServiceProvider other service providers can be specified* using a comma separated list.  Service providers are loaded after the AWT* toolkit is created.* <p>* If the list of assistive technology providers as provided through system* property "{@systemProperty javax.accessibility.assistive_technologies}"* is the empty string or contains only* {@linkplain Character#isWhitespace(int) white space} characters it is* ignored. All other errors are handled via an AWTError exception.* <p>* The names specified in the assistive_technologies property are used to query* each service provider implementation.  If the requested name matches the* {@linkplain AccessibilityProvider#getName name} of the service provider, the* {@link AccessibilityProvider#activate} method will be invoked to activate the* matching service provider.** @implSpec* If assistive technology service providers are not specified with a system* property this implementation will look in a properties file located as follows:* <ul>* <li> {@code ${user.home}/.accessibility.properties}* <li> {@code ${java.home}/conf/accessibility.properties}* </ul>* Only the first of these files to be located will be consulted.  The requested* service providers are specified by setting the {@code assistive_technologies=}* property.  A single provider or a comma separated list of providers can be* specified.** @return     the default toolkit.* @throws  AWTError in case of an error loading assistive technologies.* @see java.util.ServiceLoader* @see javax.accessibility.AccessibilityProvider*/public static synchronized Toolkit getDefaultToolkit() {if (toolkit == null) {toolkit = PlatformGraphicsInfo.createToolkit();if (GraphicsEnvironment.isHeadless() &&!(toolkit instanceof HeadlessToolkit)) {toolkit = new HeadlessToolkit(toolkit);}if (!GraphicsEnvironment.isHeadless()) {loadAssistiveTechnologies();}}return toolkit;}

注释翻译

获取默认工具包。

如果名为“java.awt.headless”的系统属性设置为 true,则使用 Toolkit 的无头实现,否则使用 Toolkit
的默认平台特定实现。

如果此工具包不是无头实现,并且如果它们存在,则如果由系统属性javax.accessibility.assistive_technologies指定,则将加载javax.accessibility.AccessibilityProvider的服务提供者。

设置此属性的一个示例是使用
-Djavax.accessibility.assistive_technologies=MyServiceProvider 调用 Java。除了 MyServiceProvider 之外,还可以使用逗号分隔的列表指定其他服务提供程序。创建
AWT工具包后,将加载服务提供商。

如果通过系统属性“{@systemProperty
javax.accessibility.assistive_technologies}”提供的辅助技术提供程序列表是空字符串或仅包含空格字符,则忽略它。所有其他错误都通过
AWTError 异常进行处理。

assistive_technologies属性中指定的名称用于查询每个服务提供程序实现。如果请求的名称与服务提供商的名称匹配,则将调用
AccessibilityProvider.activate 方法来激活匹配的服务提供程序。 返回:默认工具包。抛出:AWTError -
在加载辅助技术时出错。另请参阅:java.util.ServiceLoaderjavax.accessibility.AccessibilityProviderImpl
规范:如果未使用 systemproperty 指定辅助技术服务提供程序,则此实现将在位于以下属性文件中查找: •
${user.home}/.accessibility.properties} •
${java.home}/conf/accessibility.properties} 只会查阅要找到的第一个文件。通过设置
assistive_technologies=属性来指定请求的服务提供程序。可以指定单个提供程序或以逗号分隔的提供程序列表。


http://www.ppmy.cn/news/103944.html

相关文章

Java on Azure 开发工具路线图新发布!

大家好&#xff0c;欢迎来到Java on Azure工具产品的4月更新。让我们首先来谈谈我们对未来几个月的Java on Azure开发工具的投资。在这次更新中&#xff0c;我们还将介绍Azure Service Bus支持和Azure Spring Apps入门模板增强功能。要使用这些新功能&#xff0c;请下载并安装用…

sprintboot logback高级特性使用

一、业务需求 日志级别的分类 日志的级别分为&#xff1a; trace&#xff1a;微量&#xff0c;少许的意思&#xff0c;级别最低info&#xff1a;普通的打印信息debug&#xff1a;需要调试时候的关键信息打印warn&#xff1a;警告&#xff0c;不影响使⽤&#xff0c;但需要注…

HTTP协议基本格式

HTTP即HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09;&#xff0c;HTTP基于TCP/IP协议传输数据。 目录 Chrome抓包Fiddler代理抓包HTTP协议格式HTTP请求首行URL方法Get方法Post方法Get与Post的区别 请求报头中的属性Cookie和SessionCookie与Session的区别…

C语言深度解析--指针

目录 指针 指针的定义&#xff1a; 指针的大小&#xff1a; 指针和指针类型 野指针 指针运算 指针-整数&#xff1a; 指针-指针&#xff1a; 指针的关系运算&#xff1a; 指针和数组 二级指针 指针数组 理解指针的第一步是在机器级上观察指针表示的内容。大多数现代…

那些你的疑惑

1.当你本地做好域名解析后&#xff0c;服务端配置了基于域名的访问&#xff0c;我们访问的域名会带着吗&#xff1f; 是的&#xff0c;当您在本地对域名进行解析并配置基于域名的访问后&#xff0c;在使用该域名访问服务端时&#xff0c;访问请求会带上该域名。 具体来说&#…

我的第一个128天创作纪念日,幸福的回忆

我的博客 https://blog.csdn.net/yaosichengalpha?typeblog 我的博客 机缘 在学习C的时候想要分享自己的学习成果 记录自己所学习的知识&#xff0c;这样以后还可以回头来复习 通过文章进行技术交流 为了结识更多志同道合的人 收获 获得了多少385粉丝的关注 获得231次点赞…

【Python Twisted】零基础也能轻松掌握的学习路线与参考资料

Python Twisted是一个用于网络编程的事件驱动的框架&#xff0c;该框架使用异步I/O模型和回调函数。它支持多种协议&#xff0c;包括TCP、UDP、SSL/TLS、XMPP等&#xff0c;可以用来编写Web服务器、聊天应用、邮件服务器等。Twisted是一个成熟的框架&#xff0c;拥有强大的社区…

图片风格自动分析模型

## 1.1 项目背景 随着计算机视觉技术的不断发展&#xff0c;图片风格分析已经成为了一个热门的研究领域。图片风格分析可以帮助我们更好地理解图片中的视觉元素和艺术风格&#xff0c;从而在艺术、设计、广告等领域找到应用。此外&#xff0c;图片风格分析还可以用于推荐系统、…