E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Java多线程
java集合类的线程安全_Java集合中的线程安全问题
如果您还想要了解线程的相关内容,请查看《
Java多线程
》。线程不安全java.util.HashMap、java.util.ArrayList、java.util.LinkedList、java.
易洪艳
·
2025-05-05 23:17
java集合类的线程安全
Java多线程
同步方法wait与notify/notifyAll机制实现方式
一、基本机制与使用条件方法定义与作用wait():当前线程释放锁并进入等待池(WaitSet),等待被其他线程唤醒。notify():唤醒等待池中一个随机线程,使其进入锁池(LockQueue),重新竞争锁。notifyAll():唤醒等待池中所有线程,均进入锁池竞争锁。使用要求必须在同步代码块或方法中调用,否则抛出IllegalMonitorStateException。调用者必须是当前同步块的
DKPT
·
2025-05-03 09:28
#
Java知识点
java
学习
笔记
开发语言
面试
JAVA多线程
基础学习三:volatile关键字
Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字。volatile,从字面上说是易变的、不稳定的,事实上,也确实如此,这个关键字的作用就是告诉编译器,只要是被此关键字修饰的变量都是易变的、不稳定的。那为什么是易变的呢?因为volatile所修饰的变量是直接存在于主内存中的,线程对变量的操作也是直接反映在主内存中,所以说其是
Hello_java大师
·
2025-05-01 22:34
java
学习
jvm
面试
redis
Java多线程
的暗号密码:5分钟掌握wait/notify
wait和join的区别wait和join在使用上都是等待。但是join是等待其他线程结束,而wait是等待其他线程的notify通知再运行。当拿到锁的线程,发现要执行的任务时机不成熟的时候,使用wait进行阻塞等待,然后等时机成熟了再notify通知他可以接着走了。这样的使用可以大大约束线程的运行顺序,此外他还有以下优点:优势说明节省CPU替代忙等待,线程挂起时不消耗资源。精准唤醒通过notif
种时光的人
·
2025-04-28 00:02
javaee
java
开发语言
Java 高并发核心:线程池使用详解 + 自定义参数配置全剖析(附源码+面试解析)
本文是
Java多线程
与并发核心知识中的“线程池”专题,包含官方线程池分类、自定义ThreadPoolExecutor参数详解、工作队列选择、拒绝策略剖析、生产实践案例与高频面试题解析,适合有基础但想进一步掌握线程池底层原理的读者
Java不晚
·
2025-04-27 16:08
Java
Java全栈面试题
java
面试
后端
Java多线程
:Callable解析(附实战案例)
文章提示适合人群:具备Java基础、了解线程基本概念你将学会:线程创建的四种方式Callable与Runnable的核心区别FutureTask的实战应用技巧避免常见多线程陷阱的方法目录文章提示前言一、线程创建的四大门派1.继承Thread类(青铜段位)2.实现Runnable接口(白银段位)3.Callable+FutureTask(黄金组合)4.线程池(王者之选)二、RunnablevsCal
苦学编程啊
·
2025-04-27 08:48
JUC
java
开发语言
【Java并发】Java并发编程之CountDownLatch详解:原理、使用场景与代码实战
摘要在
Java多线程
编程中,CountDownLatch是一个强大的同步工具类,用于协调多个线程的执行顺序,线程间的同步是一个常见的需求。
啊松同学
·
2025-04-26 04:14
Java并发
java
后端
并发编程
Java多线程
系列--Future接口和CompletableFuture类
Future接口Future接口是Java1.5引入的新特性,可以方便的用于异步结果的获取。接口定义如下:publicinterfaceFuture{//取消提交的异步任务booleancancel(booleanmayInterruptIfRunning);//判断异步任务是否已取消booleanisCancelled();//判断异步任务是否已完成booleanisDone();//获取异步任
打酱油的葫芦娃
·
2025-04-24 15:56
Java多线程
Java
异步
Future
《Java 多线程编程核心技术》笔记——第7章 拾遗增补
BLOCKED7.1.4验证WAITING7.4SimpleDateFormat非线程安全7.4.1出现异常7.4.2解决异常方法17.4.3解决异常方法27.5线程中出现异常的处理声明:本博客是本人在学习《
Java
bm1998
·
2025-04-19 10:18
#
《Java
多线程编程核心技术》
Java
多线程
轻松掌握
Java多线程
- 第五章:synchronized关键字
文章目录学习目标1.对象锁与类锁的概念1.1对象锁(实例锁)1.2类锁(静态锁)1.3对象锁与类锁的对比2.synchronized修饰方法与代码块的区别2.1修饰方法vs修饰代码块2.2不同锁对象的选择3.synchronized的底层实现原理3.1Monitor监视器3.2字节码层面的实现3.3锁的优化4.实战案例:使用synchronized解决银行账户并发问题4.1问题描述:银行账户转账4
qianmoQ
·
2025-04-19 09:43
轻松掌握Java多线程
java
python
jvm
Java多线程
与高并发入门到精通(带视频讲解)
概述
Java多线程
与高并发是构建高性能、高可用系统的核心技术,涉及的知识点广泛且深入。以下是其主要内容的系统梳理。
hweiyu00
·
2025-04-15 18:16
分享
java
开发语言
Java八股文背诵 第三天
java多线程
Java多线程
进程和线程的区别进程是系统运行程序的基本单位,在Java中,当我们启动main函数时其实就是启动了一个JVM的进程,而main函数所在的线程就是这个进程中的一个线程,也称主线程。
kill bert
·
2025-04-15 04:44
代码随想录算法训练营
java
python
开发语言
Java多线程
入门指南
一、Thread和ThreadLocal区别ThreadLocal和Thread是Java中两个与线程相关的概念,它们在多线程编程中有不同的作用和使用场景。1.ThreadThread是Java中表示一个线程的类。每个Thread对象表示一个单独的执行路径,即程序中的一个执行流。Java中的多线程是通过创建Thread对象来实现的。每个Thread可以拥有自己的执行逻辑,通常是通过继承Thread
小白的一叶扁舟
·
2025-04-13 04:02
Java开发
java
开发语言
多线程
spring
boot
Java多线程
Java实现线程的四种方法在Java中,实现线程主要有四种方法,这些方法本质上都依赖于Thread类来进行线程控制。下面将详细介绍这四种方法及其原理。一、继承Thread类原理通过创建一个继承自Thread类的子类,并重写其run()方法,将线程要执行的任务放在run()方法中。然后创建该子类的实例,调用start()方法启动线程。优缺点优点:实现简单,直接继承Thread类并重写run()方法即
eason再来一次
·
2025-04-11 18:17
java
开发语言
JAVA多线程
(阻塞队列的实现)
目录1.阻塞队列是什么?2.阻塞队列的实现。2.1插入操作的实现。2.2删除操作的实现。2.3其他变量代码。2.4测试类。这篇文章只是主要给大家介绍下阻塞队列的代码实现,这里不阐述使用的好处,以及为啥要使用。1.阻塞队列是什么?阻塞队列是一种特殊的数据结构,遵守的依旧是我们在学习数据结构的时候普通的队列的原则——“先进先出”的原则。阻塞队列是一种线程安全的数据结构,并且它具有以下特征:1.当队列满
@西瓜@
·
2025-04-11 15:54
JAVAEE
java
开发语言
多线程安全问题和解决方案
多线程安全问题的原因
Java多线程
安全问题主要源于多个线程同时访问共享资源时的不可控行为,出现多线程安全的根本原因是线程调度是随机的(抢占式执行),这是目前计算机设计的问题我们无法直接干预,我可从其他方面研究
小李不想说话
·
2025-04-09 15:45
python
开发语言
学习
java
数据结构
安全
c语言
Java多线程
(七):单例模式详解
3.2.2懒汉方式1.什么是单例模式===========java中单例模式是一种常见的设计模式,单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个PrinterSpooler,以避免两个打印作业同时输出到
2401_84558508
·
2025-04-09 15:44
程序员
java
学习
经验分享
【
Java多线程
】JUC之显示锁(Lock)与初识AQS(队列同步器)
文章目录一.前言了解高并发必须知道的概念了解Java并发包Concurrent发展简述了解锁的分类线程安全三大特性自旋锁二.内置锁-synchronized三.显示锁-Lock1.Lock特性1.1.显示加锁、解锁1.1.可重入1.2.可响应中断1.3.可设置等待超时时间1.4.锁的公平性1.5.读写锁1.6.基本方法1.7.丰富的API2.锁的使用2.1.ReentrantLock2.2.Ree
墩墩分墩
·
2025-04-08 17:25
Java多线程
显示锁
Lock
AQS
线程同步
线程安全
Java多线程
中currentThread()方法
关于
Java多线程
中currentThread()方法的一些信息:currentThread()方法的作用:该方法可返回当前正在执行的线程对象的引用。
KNeeg_
·
2025-04-08 01:42
java
开发语言
Java多线程
(03)—— 锁策略与锁升级
常见的锁策略锁的策略是指:在加锁过程中,处理锁冲突的时候的处理方式;1.悲观锁&乐观锁悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别⼈想拿这个数据就会阻塞直到它拿到锁;乐观锁:假设数据⼀般情况下不会产生并发冲突,所以在数据进行提交更新的时候,才会正式对数据是否产生并发冲突进行检测,如果发现并发冲突了,则会返回用户错误的信息,让用户决定如何去做
Rcnhtin
·
2025-04-07 18:26
Java多线程
java
开发语言
锁
锁策略
Java【多线程】(7)常见的锁策略
挂起等待锁和自旋锁2.4互斥锁与读写锁2.5可重入锁与不可重入锁2.6公平锁与不公平锁2.7synchronized优化2.7.1锁升级2.7.2锁消除2.7.3锁粗化3.小结1.前言哈喽大家好,今天来给大家分享
Java
爱吃烤鸡翅的酸菜鱼
·
2025-04-07 18:55
java
开发语言
intellij-idea
什么是ThreadLocal(面试必问),以及如何实现的?
什么是ThreadLocalThreadLocal是java.lang下面的一个类,是用来解决
java多线程
程序中并发问题的一种途径;通过为每一个线程创建一份共享变量的副本来保证各个线程之间的变量的访问和修改互相不影响
程序猿摸鱼
·
2025-04-05 17:09
面试
职场和发展
Java多线程
-多线程面试题整理
目录线程安全什么是线程安全如何解决线程安全问题线程的生命周期线程阻塞问题线程饥饿问题活锁多线程线程和进程多线程的上下文切换并发与并行同步方法和同步块单例模式的线程安全性Synchronized关键字和Lock区别Synchronized关键字和Volatile关键字区别Synchronized锁升级过程ReentrantLock与synchronizedSynchronized的实现原理sleep
骆驼整理说
·
2025-04-05 16:28
Java基础
多线程
线程池
线程安全
并发编程
java信号量_
JAVA多线程
--信号量(Semaphore)
简介信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,它负责协调各个线程,以保证它们能够正确、合理的使用公共资源。一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个acquire(),然后再获取该许可。每个release()添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore只对可用许可的号
十月飘零
·
2025-04-05 16:58
java信号量
Java多线程
通信-Semaphore(信号量)
一、semaphone信号量 Semaphone(信号量)是一个同步工具类、用来控制同时访问某个资源的线程数量,还可以用来实现某些资源池、或者给容器添加边界。 Semaphone管理着一组“虚拟”的许可(permit),许可的初始数量可通过构造函数来指定。操作之前可以先获得许可,并在操作结束之后释放许可。acquire方法需要消耗一个许可,如果没有许可acquire将阻塞直到有许可(除非被中断
鲲鹏之上
·
2025-04-05 15:26
Java多线程
并发
java
Semaphore
多线程
java多线程
实现方式
目录1.继承Thread类2.实现Runnable接口3.实现Callable接口4.使用线程池5.使用CompletableFuture(Java8+)6.使用ForkJoinPool(Java7+)7.使用Timer和TimerTask8.使用ScheduledExecutorService总结1.继承Thread类通过继承Thread类并重写run()方法来实现多线程classMyThrea
木子0204
·
2025-03-31 15:09
java
开发语言
Java多线程
与高并发专题——什么是 Java 内存模型?
引入本文我们回顾并拓展一下JMM的相关内容,在阅读前,最好先看一下前面的如下文章:线程安全问题与性能问题JMM保障原子性保障可见性和有序性JMM是什么JMM是规范JMM是和多线程相关的一组规范,需要各个JVM的实现来遵守JMM规范,以便于开发者可以利用这些规范,更方便地开发多线程程序。这样一来,即便同一个程序在不同的虚拟机上运行,得到的程序结果也是一致的。如果没有JMM内存模型来规范,那么很可能在
黄雪超
·
2025-03-31 09:30
Java并发编程
java
开发语言
并发编程
Java多线程
及线程变量学习:从熟悉到实战(下)
Java多线程
技术通过线程池、并发工具类等机制,为Web应用提供了强大的异步处理能力和资源管理手段。本文将深入探讨线程池参数优化策略与线程变量存储的最佳实践。
rider189
·
2025-03-26 08:43
java
学习
开发语言
Java多线程
Java多线程
为什么要在代码中引入多线程?
反方向的空
·
2025-03-24 12:06
Java多线程
java
开发语言
Java复习路线
Java复习1、Java基础2、
Java多线程
3、Javaweb的复习4、MySql复习数据库常用的代码:思维导图:5、计算机组成原理6、网络编程7、Java注解和反射8、计算机网络9、html/css
Code good g
·
2025-03-22 10:31
面试准备
java
mysql
数据库
JAVA————十五万字汇总
JAVA图形用户界面设计JAVA系统主界面设计JAVA图形绘制JAVA电子相册JAVA数据库技术(一)JAVA数据库技术(二)JAVA数据库技术(三)拓展:JAVA导入/导出——输入/输出JAVA网络通信
JAVA
MeyrlNotFound
·
2025-03-22 07:31
java
开发语言
Java多线程
与高并发专题——Callable 和 Runnable 的不同?
为什么需要Callable?Runnable的缺陷Runnable是JDK1.0就有的,而Callable是JDK1.5新增的,那我们为什么需要Callable?要想回答这个问题,我们先来看看先有的Runnable有哪些缺陷?不能返回一个返回值第一个缺陷,对于Runnable而言,它不能返回一个返回值,虽然可以利用其他的一些办法,比如在Runnable方法中写入日志文件或者修改某个共享的对象的办法
黄雪超
·
2025-03-21 19:47
技术基础
java
开发语言
并发编程
【总结篇】
java多线程
,新建线程有几种写法,以及每种写法的优劣势
java多线程
新建线程有几种写法,以及每种写法的优劣势[1/5]
java多线程
新建线程有几种写法–继承Thread类以及他的优劣势[2/5]
java多线程
-新建线程有几种写法–实现Runnable接口以及他的优劣势
橙-极纪元JJYCheng
·
2025-03-20 10:11
java免费文章
java
开发语言
java多线程
新建线程有几种写法
第十三章
Java多线程
——阻塞队列
13.1阻塞队列的由来我们假设一种场景,生产者一直生产资源,消费者一直消费资源,资源存储在一个缓存池中,生产者将生产的资源存进缓存池中,消费者从缓存池中拿到资源进行消费,这就是大名鼎鼎的生产者-消费者模式。该模式能够简化开发过程,一方面消除了生产者与消费者类之间的代码依赖性,另方面将生产数据的过程与使用数据的过程解耦简单化负载。我们⾃⼰coding实现这个模式的时候,因为需要让多个线程操作共享变量
龙少丶
·
2025-03-19 19:37
java
java
开发语言
Java多线程
与并发编程实战——从基础到进阶
作者:禅与计算机程序设计艺术1.简介互联网企业都在大力拓展自己的业务,而新的技术革命也带来了海量的数据量,因此,单机并发处理能力已经无法满足现代信息时代对高速数据的需求。大数据和云计算带来的分布式系统架构,让单台计算机不仅能够执行单个任务,而且可以横向扩展处理大量任务。在这种情况下,如何充分利用多核CPU、共享内存等资源并发地处理多项任务就成为现代系统设计者们必备技能之一。本书将以实操为导向,全面
AI天才研究院
·
2025-03-16 12:40
Python实战
Java实战
自然语言处理
人工智能
语言模型
编程实践
开发语言
架构设计
Java多线程
与高并发专题——原子类和 volatile、synchronized 有什么异同?
原子类和volatile异同首先,通过我们对原子类和的了解,原子类和volatile都能保证多线程环境下的数据可见性。在多线程程序中,每个线程都有自己的工作内存,当多个线程访问共享变量时,可能会出现一个线程修改了共享变量的值,而其他线程不能及时看到最新值的情况。原子类和volatile关键字都能在一定程度上解决这个问题。例如,当一个变量被volatile修饰后,对该变量的写操作会立即刷新到主内存,
黄雪超
·
2025-03-16 02:31
技术基础
java
开发语言
并发编程
【
java多线程
】线程通信(以生产者消费者问题为例)
线程通信(主讲wait方法和notifyAll方法)在
Java多线程
编程中,线程通信是指多个线程之间相互协作、交换信息的过程。
6<7
·
2025-03-14 09:57
java
python
开发语言
Java中的线程中断
1线程中断相关方法介绍
Java多线程
编程中的interrupt()方法、isInterrupted()方法和interrupted()方法都是跟线程中断相关的方法,都非常重要。
雾里有果橙
·
2025-03-14 06:05
java
开发语言
jvm
Java多线程
与并行计算:深入剖析Java线程,线程池,以及利用Java进行并行计算的策略
一、Java线程概述线程基础概念:线程是操作系统调度的最小单元,它是进程的一部分,每个线程都有自己的程序计数器、栈和局部变量。线程之间共享进程的堆和方法区。Java线程创建和启动:在Java中主要有两种方式创建线程:继承Thread类:创建一个新class,继承自Thread类,然后重写run()方法,并在该方法中执行需要在该线程中运行的代码。最后创建该class的实例,并调用其start()方法
哎 你看
·
2025-03-13 14:12
Java
java
开发语言
线程
并行
并发
Java多线程
与高并发专题——阻塞和非阻塞队列的并发安全原理是什么?
引入之前我们探究了常见的阻塞队列的特点,在本文我们就以ArrayBlockingQueue为例,首先分析BlockingQueue,也就是阻塞队列的线程安全原理,然后再看看它的兄弟——非阻塞队列的并发安全原理。ArrayBlockingQueue源码分析我们首先看一下ArrayBlockingQueue的源码,ArrayBlockingQueue有以下几个重要的属性:/***用于存储队列元素的数组
黄雪超
·
2025-03-13 00:56
技术基础
java
开发语言
并发编程
java多线程
——单例模式
目录1.概念2.实现1.概念1.1什么是单例模式单例模式能保证某个类在程序中只存在唯一一份实例,而不会创建出多个实例.这一点在很多场景上都需要。比如JDBC中的DataSource实例就只需要一个1.2单例模式分类单例模式具体的实现方式,分成"饿汉"和"懒汉"两种.所谓”饿汉“模式,就是指程序启动则立刻创建实例,可以形象理解为”饿汉“迫不及待想要吃饭(创建实例)。但不管是否使用都创建对象可能会浪费
invictusQAQ
·
2025-03-12 19:56
单例模式
Java多线程
编程实战:synchronized与Lock锁对比
一、锁机制全景图:从内核态到用户态1.Java锁分类与演进史锁机制悲观锁乐观锁synchronizedReentrantLockCAS版本号机制2.锁升级全流程(synchronized底层原理)无锁→偏向锁(单线程)→轻量级锁(CAS自旋)→重量级锁(OS互斥量)锁膨胀条件:偏向锁:-XX:BiasedLockingStartupDelay=0(默认延迟4秒)重量级锁:自旋超过阈值(-XX:Pr
微风灬浮尘
·
2025-03-11 04:26
java
java
java入门
java多线程
Java多线程
和锁_八股&场景题
Java多线程
_八股&场景题
Java多线程
是面试和实际开发中非常重要的内容。以下是一些常见的
Java多线程
八股文问题和场景题,以及详细答案和示例代码。1.Java中创建线程的几种方式?
吃海鲜的骆驼
·
2025-03-10 18:35
面试专题
java
开发语言
Java多线程
与高并发专题——什么是阻塞队列?
引入阻塞队列(BlockingQueue)是一种线程安全的队列数据结构,它的主要特点是:线程安全:多个线程可以安全地同时访问队列。阻塞操作:当队列为空时,从队列中获取元素的操作会被阻塞,直到队列中有元素可用;当队列为满时,向队列中插入元素的操作会被阻塞,直到队列有空间可用。BlockingQueueBlockingQueue继承了Queue接口,是队列的一种。Queue和BlockingQueue
黄雪超
·
2025-03-10 03:21
技术基础
java
开发语言
并发编程
JAVA后端面试八股文汇总(2)
二、
Java多线程
篇1.简述java内存模型(JMM)java内存模型定义了程序中各种变量的访问规则。其规定所有变量都存储在主内存,线程均有自己的工作内存。
使峹行者
·
2025-03-09 15:32
java
面试
后端
Java进阶——一篇搞懂多线程实战
本文主要是对
Java多线程
相关知识进行总结和讲解。一、线程创建方式继承Thread类:通过重写run()方法来定义线程的执行逻辑,只能单继承。
1加1等于
·
2025-03-09 10:01
Java
java
Java多线程
理发店小测试
功能需求如下:一个理发店里有两张理发椅子,各有一个理发师(线程),还有5张用户椅子。初始主线程每间隔100毫秒产生一个用户(线程),连续产生20名用户。一个用户理发需要300毫秒。用户线程的逻辑:1)如果理发店客满(两个理发师正忙理发,5张客户椅子有人坐着等待),理发店外的用户(线程),将在外等待。2)但理发店中一张用户椅子空,则允许一个用户进入并坐上椅子等待。3)但一个用户理完发,允许5张椅子上
不被定义的~wolf
·
2025-03-08 18:21
Java多线程
java
安全
Java多线程
与高并发专题——为什么 Map 桶中超过 8 个才转为红黑树?
引入JDK1.8的HashMap和ConcurrentHashMap都有这样一个特点:最开始的Map是空的,因为里面没有任何元素,往里放元素时会计算hash值,计算之后,第1个value会首先占用一个桶(也称为槽点)位置,后续如果经过计算发现需要落到同一个桶中,那么便会使用链表的形式往后延长,俗称“拉链法”。当链表长度大于或等于阈值(默认为8)的时候,如果同时还满足容量大于或等于MIN_TREEI
黄雪超
·
2025-03-07 01:10
技术基础
java
开发语言
并发编程
JavaAdv——多线程同步案例(售票系统)
售票系统假设您正在开发一个基于
Java多线程
技术的售票系统。该系统需要支持多个售票窗口同时进行售票操作,并且要确保不会出现超卖或漏卖的情况。
搬码红绿灯
·
2025-03-06 20:59
java
Java多线程
,线程安全,线程死锁,线程通信,线程同步(上)
什么是线程??线程是计算机执行的最小单位,在一个进程中可以有多个不同线程多线程有什么用?干什么的?单线程就像一个瓶子戳一个洞,而多线程是戳了多个洞,可以提高程序的执行效率,一个事情分配到不同线程同时执行,在写的程序往往会遇到同时处理多个问题的情况,而单线程必须上一个任务完成后才能执行下一个任务无法完成同时处理多个任务的情况,而多线程就是来解决这个问题的,不用等待上一个任务结束,提高了程序的响应度和
Alie鱼
·
2025-03-06 06:30
Java高级
java
多线程
线程安全
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他