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
内存模型(面试必备)
并发编程这一块内容,是高级资深工程师必备知识点,25K起如果不懂并发编程,那基本到顶。但是并发编程内容庞杂,如何系统学习?本专题将会系统讲解并发编程的所有知识点,包括但不限于:线程通信机制,深入JMM内存模型原理,深入synchronized原理,深入volatile原理,DCL,详解AQS,CAS,可重入锁,读写锁原理,详解并发工具类,深入理解threadLocal,Fork、Join,原子类详
风平浪静如码
·
2022-02-06 08:30
深入理解Java
Script中的堆与栈 、浅拷贝与深拷贝
JavaScript中的浅拷贝与深拷贝学了这么长时间的JavaScript想必大家对浅拷贝和深拷贝还不太熟悉吧,今天在项目中既然用到了,早晚也要理清一下思路了,在了解之前,我们还是先从JavaScript的数据类型存放的位置堆栈开始说起吧!现在我们带着问题来学习!一:什么是堆栈?我们都知道:在计算机领域中,堆栈是两种数据结构,它们只能在一端(称为栈顶(top))对数据项进行插入和删除。堆:队列优先
雪妮爸爸
·
2022-02-06 07:27
2018-05-11
《
深入理解Java
虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见面试题总结本节常见面试题(推荐带着问题阅读,问题答案在文中都有提到):简单介绍一下Class类文件结构(常量池主要存放的是那两大常量
玲小喵
·
2022-02-05 09:51
【Java】Java内存模型(JMM)
网上有很多关于Java内存模型的文章,在《
深入理解Java
虚拟机》和《Java
littlefogcat
·
2022-02-05 00:42
阿里大牛力荐6篇实战文档:JVM+多线程+Kafka+Redis+Nginx+MySQL
深入理解Java
虚拟机:JVM高级特性与最佳实践第一部分走近Java第1章走近Java第二部分自动内存管理机制第2章Java内存区域与内存溢出异常第3章垃圾收集器与内存分配策略第4章虚拟机性能监控与故障处理工具第
Java微服务
·
2022-02-04 16:41
深入理解Java
并发编程(一):JMM(Java内存模型)详解
一、JMM是什么?JMM是一个抽象的概念:描述的是一组围绕原子性、有序性、可见性的规范。其定义程序中各个变量的访问规则,即虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量是共享变量。JMM规定:所有共享变量存储在主内存中,每条线程有自己的工作内存,线程的工作内存保存了被该线程使用到的变量的主内存副本,线程对变量的所有操作都必须在工作内存上进行,线程不能直接读写主内存的共享变量。
SEMINECES
·
2022-02-04 16:35
Java并发与多线程
Java并发指南2:
深入理解Java
内存模型JMM
本文转载自并发编程网,侵删本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/Java-Tutorial喜欢的话麻烦点下Star哈文章同步发于我的个人博客:www.how2playlife.com本文是微信公众号【Java技术江湖】的《Java并发指南》其中一篇,本文大部分内容来源于网络,为了把本文主题讲得清
Java技术江湖
·
2022-02-04 15:34
Java并发编程指南
Java
深入理解Java
虚拟机_2(垃圾收集器与内存分配策略)
Ceratedbywestfallonon8/21哪些内存需要回收程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭。在这几个区域不需要过多考虑回收的问题,因为方法或者线程结束时,内存自然就随着回收了Java堆和方法区则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期间的时候才会知道创建哪些对象,这部分内存的分配和
westfallon
·
2022-02-03 08:04
阿里内部都在学习的五大
深入理解Java
虚拟机PDF,真的强
前言Java是目前用户最多、使用范围最广的软件开发技术,Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java类库、Java编程语言及许许多多的第三方Java框架(如Spring、MyBatis等)构成。在国内,有关Java类库API、Java语言语法及第三方框架的技术资料和书籍非常丰富,相比而言,有关Java虚拟机的资料却显得异常贫乏。这种状况很大程度上是由Jav
程序员高级码农
·
2022-02-02 22:48
深入理解Java
虚拟机之Java内存区域与内存溢出异常
Java内存区域与内存溢出异常运行时数据区域程序计数器用于记录从内存执行的下一条指令的地址,线程私有的一小块内存,也是唯一不会报出OOM异常的区域Java虚拟机栈Java虚拟机栈(JavaVirtualMachineStack)是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java方法执行的线程内存模型:每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧(StackFrame)用于存
·
2022-01-12 21:47
java
深入理解Java
虚拟机之自己编译JDK
题外话最近在阅读《
深入理解Java
虚拟机》,其中有一小节实战是自己编译JDK,实际操作过程中遇到了不少问题,为此特地记录一下,也希望可以为大家带来一些参考前置准备平台及工具:Windows10+WSL(
·
2022-01-10 10:13
java
深入理解java
中的SPI机制
1.开始感受SPI机制的作用SPI(ServiceProviderInterface),翻译成为中文叫做"服务提供接口"。它的作用是什么呢?它的作用其实就是根据一个接口,找到项目中要使用的实现类,用户可以根据实际需要启用或者是扩展原来的默认策略。下面先以jdk提供的ServiceLoader这个类库去进行举例吧。通过ServiceLoader.load方法中传入指定的接口,它会加载这个接口下的指定
Wannay
·
2022-01-01 03:16
CentOS7 编译 JDK17
CentOS7编译JDK17引言最近看《
深入理解JAVA
虚拟机》,决定实操下编译OpenJDK。目前LTS版本是17,选择的OpenJDK版本为17。
biaoqianwo
·
2021-12-31 15:02
[基要稳]
深入理解Java
虚拟机随笔之运行时数据区域
运行时数据区域Java虚拟机运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。1.程序计数器(ProgramCounterRegister)-------线程私有2.Java虚拟机栈(JVMStack)------------------------线程私有3.本地方法栈(NativeMethodStack)------------线城私有4.堆(H
Guxxxd
·
2021-12-09 15:51
【
深入理解JAVA
虚拟机】读书笔记——调优案例分析总结
学习参考资料:周志明老师的著作《
深入理解Java
虚拟机(第3版)》1.大内存硬件上的程序部署一般单体应用在较大内存的硬件方式,有下面两种:1)通过一个单独的Java虚拟机实例来管理大量的Java堆内存2
遇事不决问清风
·
2021-12-05 10:02
JVM学习篇
java
jvm
后端
java虚拟机
深入理解Java
Script的事件执行机制
目录前言浏览器JS异步执行的原理浏览器中的事件循环执行栈与任务队列宏任务和微任务Async/await的运行顺序特点示例个人分析前言熟悉事件循环,了解浏览器运行机制将对我们理解JavaScript的执行过程和排查运行问题有很大帮助。以下是总结的一些浏览器事件循环的一些原理和示例。浏览器JS异步执行的原理JS是单线程的,也就是同一个时刻只能做一件事情,那么,为什么浏览器可以同时执行异步任务呢?因为浏
·
2021-12-03 13:16
深入理解Java
并发内存模型
为什么要有Java内存模型在介绍JMM时,先看《
深入理解Java
虚拟机》中的一张图,如下:jmm.png上图描述的意思是,在每一个线程中,都会有一块内部的工作内存(wor
有没有口罩给我一个
·
2021-12-03 10:02
浅析Java NIO 直接缓冲区和非直接缓冲区
定义以上是书《
深入理解java
虚拟机》对直接内存的描述。直接缓冲区用的就是直接内存。javanio字节缓冲区要么是直接的,要么是非直接的。
·
2021-11-30 11:54
JAVA基础之虚拟机故障处理工具
今天学习了《
深入理解java
虚拟机》的故障处理工具,都是一些小命令,不复杂,只不过有些命令在prod环境不要使用,jmap这种,在动辄几G的内存的pod中,生成一次文件可能就导致了环境停止,这时如果还有大量请求进来
·
2021-11-23 17:44
java虚拟机
深入理解Java
设计模式之简单工厂模式
目录一、什么是简单工厂模式二、简单工厂模式的结构三、简单工厂模式的应用场景四、简单工厂模式和工厂方法模式区别五、简单工厂模式和策略模式的异同六、简单工厂模式的优缺点七、简单工厂模式的实现八、总结一、什么是简单工厂模式简单工厂模式又称为静态工厂模式,实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。简单工厂模式的创建目标,所有创建的对象都是充当这
·
2021-11-22 11:44
深入理解Java
虚拟机 -- JMM(Java内存模型)
文章目录1、为什么要有Java内存模型?1.1、CPU和缓存一致性1.2、处理器优化和指令重排1.3、并发编程带来的问题1.4、JMM诞生的原因2、Java内存模型2.1、JMM对内存的划分2.2、完成主内存和工作内存交互的操作2.3、线程间的通信机制2.4、volatile关键字解析2.4.1、volatile关键字的特性2.4.2、volatile关键字可见性问题2.4.3、volatile关
崇尚学技术的科班人
·
2021-11-18 22:50
JVM
java
开发语言
后端
深入理解Java
main方法详解
目录1.深入理解main方法2.在Idea下如何传递参数总结1.深入理解main方法解释main方法的形式:publicstaticvoidmain(String[]args){}1..main方法是虚拟机调用的2.java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public3.java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static4.该方法接收St
·
2021-11-18 19:19
Java虚拟机内存分配与回收策略问题精细解读
本文参考于《
深入理解Java
虚拟机》内存分配与回收策略Java技术体系的自动内存管理,最根本的目标是自动化地解决两个问题:自动给对象分配内存以及自动回收分配给对象的内存。
·
2021-11-17 11:31
熟练掌握Java8新特性之Stream API的全面应用
大家可以参考我的这两篇文章:
深入理解Java
8新特性之StreamAPI的创建方式和中间操作步骤、
深入理解Java
8新特性之StreamAPI的终止操作步骤那么这篇文章主要就是说一个StreamAPI的简单应用练习题
·
2021-11-16 11:35
深入理解Java
8新特性之接口中的默认方法和静态方法
1.接口中的默认方法和静态方法Java8中允许接口中包含具有具体实现的方法,该方法称为“默认方法”,默认方法使用default关键字修饰。接口默认方法的”类优先”原则。若一个接口中定义了一个默认方法,而另外一个父类或接口中又定义了一个同名的方法时选择父类中的方法。如果一个父类提供了具体的实现,那么接口中具有相同名称和参数的默认方法会被忽略。接口冲突。如果一个父接口提供一个默认方法,而另一个接口也提
·
2021-11-16 11:00
深入理解Java
虚拟机 -- 内存分配与回收策略
文章目录内存分配与回收策略(1)、对象优先在Eden分配(2)、大对象直接进入老年代(3)、长期存活的对象将进入老年代(4)、动态对象年龄判定(5)、空间分配担保本文参考于《
深入理解Java
虚拟机》内存分配与回收策略
崇尚学技术的科班人
·
2021-11-16 00:22
JVM
java
开发语言
后端
作用域(一)
这段时间小编把两本js的经典图书看完了,一本是《
深入理解Java
Script》,一本是《你不知道的JavaScript》。
·
2021-11-12 21:20
深入理解Java
虚拟机 -- Java运行时数据区域
文章目录1.运行时数据区域1.1程序计数器1.2Java虚拟机栈1.3本地方法栈1.4Java堆1.5方法区1.6运行时常量池2.直接内存本文参考于《
深入理解Java
虚拟机》运行时数据区域Java虚拟机在执行
·
2021-11-12 20:17
jvm
深入理解Java
虚拟机 -- HotSpot虚拟机对象探秘
、分配内存的方式(2)、分配内存的并发问题1.3初始化零值1.4设置对象头1.5执行方法2.对象的内存布局2.1对象头2.2实例数据2.3对齐填充3.对象的访问定位3.1句柄3.2直接指针本文参考于《
深入理解
崇尚学技术的科班人
·
2021-11-12 19:53
JVM
java
经验分享
开发语言
深入理解Java
8新特性之Stream API的终止操作步骤
目录1.写在前面2.终止操作2.1终止操作之查找与匹配2.2终止操作之归约与收集1.写在前面承接了上一篇文章(说完了StreamAPI的创建方式及中间操作):
深入理解Java
8新特性之StreamAPI
·
2021-11-11 10:17
深入理解Java
8新特性之Stream API的创建方式和中间操作步骤
目录1.什么是StreamAPI?2.StreamAPI操作的三个步骤2.1创建Stream2.2中间操作2.2.1中间操作之筛选与切片2.2.2中间操作之映射2.2.3中间操作之排序1.什么是StreamAPI?Java8中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是mStreamAPI(java.util.stream.*)。Stream是Java8中处理集合的关键抽象概念,
·
2021-11-11 10:46
深入理解Java
8新特性之Optional容器类的应用
1.Optional容器类Optional类(java.util.Optional)是一个容器类,代表一个值存在或不存在,原来用null表示一个值不存在,现在Optional可以更好的表达这个概念。并且可以避免空指针异常。常用方法:Optional.of(Tt):创建一个Optional实例Optional.empty():创建一个空的Optional实例Optional.ofNullable(T
·
2021-11-11 10:45
深入理解Java
8新特性之Lambda表达式的基本语法和自定义函数式接口
1.写在前面目前我们学习Java主要用到的应该就是Java8了,或者说大部分企业当前使用的也是Java8。那么既然Java8的应用如此之广泛,一定有一些亮点所在:Lambda表达式函数式接口方法引用与构造器引用StreamAPI接口中的默认方法与静态方法新时间日期API其他新特性速度更快、代码更少(增加了新的语法Lambda表达式)、强大的StreamAPI、便于并行、最大化减少空指针异常Opti
·
2021-11-10 18:01
深入理解java
script原型和原型链
构造函数通过new函数名来实例化对象的函数叫构造函数。任何的函数都可以作为构造函数存在。之所以有构造函数与普通函数之分,主要从功能上进行区别的,构造函数的主要功能为初始化对象,特点是和new一起使用。new就是在创建对象,从无到有,构造函数就是在为初始化的对象添加属性和方法。构造函数定义时首字母大写(规范)。functionPerson(name){this.name=name;}letp1=ne
猫老板的豆
·
2021-11-08 18:39
深入理解Java
设计模式之代理模式
目录一、引言二、什么是代理模式三、代理模式的结构四、代理模式和装饰模式的异同五、代理模式和委托六、代理模式的种类七、代理模式的应用场景八、代理模式的优缺点九、代理模式的实现总结一、引言我们都知道,数据库连接是很珍贵的资源,频繁的开关数据库连接是非常浪费服务器的CPU资源以及内存的,所以我们一般都是使用数据库连接池来解决这一问题,即创造一堆等待被使用的连接,等到用的时候就从池里取一个,不用了再放回去
·
2021-11-08 16:53
深入理解Java
设计模式之外观模式
目录一、什么是外观模式二、外观模式的使用场景三、外观模式的优缺点四、外观模式的实现总结一、什么是外观模式定义:为子系统中的一组接口提供一个一致的界面,用来访问子系统中的一群接口。外观模式组成:Facade:负责子系统的的封装调用SubsystemClasses:具体的子系统,实现由外观模式Facade对象来调用的具体任务二、外观模式的使用场景1、设计初期阶段,应该有意识的将不同层分离,层与层之间建
·
2021-11-08 16:53
深入理解Java
设计模式之适配器模式
目录一、什么是适配器模式二、适配器模式的结构三、适配器模式的使用场景四、适配器模式的优缺点五、适配器模式的实现1.类适配器模式2.对象适配器模式六、适配器模式的.NET应用总结一、什么是适配器模式定义:适配器模式属于结构型模式,把一个类的接口变成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式又可以分为4种类型,类适配器模式、对象适配器模式、单接口适配
·
2021-11-08 13:09
深入理解Java
设计模式之组合模式
目录一、什么是组合模式动机(Motivation)意图(Intent)二、组合模式的结构结构图说明:三、组合模式的使用场景四、组合模式的优缺点五、组合模式的实现六、组合模式的.NET下应用一、什么是组合模式定义:将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。动机(Motivation)客户代码过多地依赖于对象容器复杂的内部实现结构,对象容
·
2021-11-08 09:39
深入理解Java
设计模式之享元模式
目录一、引言二、什么是享元模式三、享元模式的结构四、享元模式和单例模式的异同五、享元模式的优缺点六、享元模式的使用场景七、享元模式的实现八、总结一、引言大家都知道单例模式,通过一个全局变量来避免重复创建对象而产生的消耗,若系统存在大量的相似对象时,又该如何处理?参照单例模式,可通过对象池缓存可共享的对象,避免创建多对象,尽可能减少内存的使用,提升性能,防止内存溢出。在软件开发过程,如果我们需要重复
·
2021-11-08 09:39
深入理解Java
设计模式之桥接模式
目录二、桥接模式的结构三、桥接模式的使用场景四、桥接模式的优缺点五、装饰,桥接和适配器模式的异同适配器模式:桥接模式:装饰器模式:六、桥接模式的实现七、总结一、什么是桥接模式桥接模式(BridgePattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(HandleandBody)模式或接口(Interface)模式。二、桥接模式的结构在桥接模式结
·
2021-11-08 09:06
深入理解Java
设计模式之装饰模式
目录一、前言二、什么是装饰模式1.定义:2.意图3.别名4.动机5.作用6.问题三、装饰模式的结构四、装饰模式的使用场景五、装饰模式的优缺点六、装饰模式的实现七、装饰模式的.NET应用八、总结一、前言装饰模式实际上是一直提倡的组合代替继承的实践方式,个人认为要理解装饰者模式首先需要理解为什么需要组合代替继承,继承又是为什么让人深恶痛绝.为什么建议使用组合代替继承?面向对象的特性有继承与封装,但两者
·
2021-11-08 09:06
深入理解Java
设计模式之单例模式
目录一、什么是单例模式二、单例模式的应用场景三、单例模式的优缺点四、单例模式的实现1.饿汉式2.懒汉式3.双重加锁机制4.静态初始化五、总结一、什么是单例模式单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一
·
2021-11-08 09:05
深入理解Java
设计模式之策略模式
目录一、什么是策略模式二、策略模式的结构三、策略模式的应用场景四、策略模式的优缺点六、策略模式的实现七、策略模式和简单工厂模式的结合八、策略枚举的实现九、总结一、什么是策略模式策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助
·
2021-11-07 20:27
深入理解Java
设计模式之原型模式
目录一、前言二、什么是原型模式三、原型模式的适用场景四、原型模式的实现1.浅拷贝实现2.深拷贝实现五、总结一、前言单例模式可以避免重复创建消耗资源的对象,但是却不得不共用对象。若是对象本身也不让随意访问修改时,怎么办?通常做法是备份到副本,其它对象操作副本,最后获取权限合并,类似git上的PR操作。二、什么是原型模式原型模式用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。需要注意的关
·
2021-11-07 20:26
深入理解Java
设计模式之建造者模式
目录一、什么是建造者模式二、建造者模式的应用场景三、建造者模式的优缺点四、工厂模式和建造者模式的对比五、建造者模式的实现六、总结一、什么是建造者模式建造者模式也称生成器模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(依赖倒转)产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实
·
2021-11-07 20:26
深入理解Java
设计模式之抽象工厂模式
目录一、什么是抽象工厂模式二、抽象工厂模式的应用场景三、抽象工厂模式和工厂方法模式对比四、抽象工厂模式的优缺点五、抽象工厂模式的实现六、总结一、什么是抽象工厂模式为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端
·
2021-11-07 20:26
深入理解Java
设计模式之命令模式
目录一、什么是命令模式二、命令模式的使用场景三、命令模式的优缺点四、命令模式的实现五、总结一、什么是命令模式命令模式是一个高内聚的模式,其定义为:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。在该类图中,我们看到三个角色:Receiver接受者角色:该角色就是干活的角色,命令传递到这里是应该被执行的Command命令角色:
·
2021-11-07 16:51
深入理解Java
设计模式之模板方法模式
目录一、什么是模板方法模式二、模板方法模式的使用场景三、模板方法模式的优缺点四、模板方法模式的实现五、总结一、什么是模板方法模式模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤的具体实现。看到“设计模式”这四个字我们往往会觉得高深莫测,但是模板方法模式却是一个例外,你要关注的就是一个方法而已。模板方法模
·
2021-11-07 16:51
深入理解Java
设计模式之观察者模式
目录一、什么是观察者模式二、观察者模式的结构三、观察者模式的使用场景使用观察者模式也有两个重点问题要解决:广播链的问题。异步处理问题。四、观察者模式的优缺点五、观察者模式的实现六、观察者模式和委托的结合七、总结一、什么是观察者模式在许多设计中,经常涉及多个对象都对一个特殊对象中的数据变化感兴趣,而且这多个对象都希望跟踪那个特殊对象中的数据变化,也就是说当对象间存在一对多关系时,在这样的情况下就可以
·
2021-11-07 16:51
深入理解Java
设计模式之状态模式
目录一、什么是状态模式二、状态模式的结构三、状态模式的使用场景四、状态模式和策略模式对比五、状态模式的优缺点六、状态模式的实现七、总结一、什么是状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。主要解决:当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。意图:允许一个对象在其内部状态改变时改
·
2021-11-07 16:20
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
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
其他