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
Jvm学习
JVM学习
之一:内存组成
堆(Heap)和非堆(Non-Heap)内存按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。”“在JVM中堆(Heapmemory)之外的内存称为非堆内存(Non-heapmemory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留
zhouwenjian
·
2013-06-19 00:00
jvm
JVM学习
笔记(二)------Java代码编译和执行的整个过程
Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示:Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成class文件流程图如下所示:最后生成的class文件由以下部分组成:结构信息。包
wxy_fighting
·
2013-06-17 10:20
java
JVM学习
笔记(二)------Java代码编译和执行的整个过程
Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成class文件流程图如下所示:最后生成的class文件由以下部分组成:结构信息。
wxyFighting
·
2013-06-17 10:00
java
jvm
类
ClassLoader
栈
JVM学习
笔记(一)------基本结构
从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制下面将这两个部分进行详细学习
wxyFighting
·
2013-06-17 10:00
java
jvm
jdk
内存管理
JVM学习
笔记(四)------内存调优
首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和JavaVisualVM。对JVM内存的系统级的调优主要的目的是减少GC的频率和FullGC的次数,过多的GC和FullGC是会占用很多的系统资源(主要是CPU
wxyFighting
·
2013-06-17 10:00
java
jvm
内存
对象
处理器
JVM学习
笔记(三)------内存管理和垃圾回收
JVM内存组成结构JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示:新生代。新建的对象都是用新生代分配内存,Eden空间不足的时候,会把存活
wxyFighting
·
2013-06-17 10:00
jvm
算法
对象
栈
内存管理
【
JVM学习
笔记】OOM异常
在JVM几个运行时数据区域中,除了程序计数器之外,其他几个区域都会出现内存溢出(OutOfMemory)的异常。下面通过几段代码来实例验证一下,同时可以熟悉一下JVM的启动参数。 1、JAVA虚拟机栈 JVM规范中描述了栈的两种异常:如果线程请求的栈深度大于虚拟机允许的栈深度就会抛出StackOverflowError异常;如果虚拟机在扩展栈时无法申请到足
lhg4study
·
2013-05-28 23:00
jvm
虚拟机
【
JVM学习
笔记】JAVA内存区域介绍
第一章:JAVA内存区域介绍 对于JVM内存的分类,我们常常会划分两种:栈内存(Stack)和堆内存(Heap),栈中保存的是各种基本的数据类型(boolean、bytes、char、short、int、flioat、long、double等),而new出来的对象实例都会保存在heap堆内存中,之所以会这么划分是由于在编码过程中往往只会涉及到这两部分。根据JVM规范里虚拟机结构的描述,jvm运行
lhg4study
·
2013-05-28 20:00
java
jvm
【
JVM学习
笔记】OOM异常
在JVM几个运行时数据区域中,除了程序计数器之外,其他几个区域都会出现内存溢出(OutOfMemory)的异常。下面通过几段代码来实例验证一下,同时可以熟悉一下JVM的启动参数。1、JAVA虚拟机栈JVM规范中描述了栈的两种异常:如果线程请求的栈深度大于虚拟机允许的栈深度就会抛出StackOverflowError异常;如果虚拟机在扩展栈时无法申请到足够的内存空间就会抛出OutOfMemor
iteye_14343
·
2013-05-28 00:00
JVM学习
内存溢出的解决办法一般出现内存溢出的情况1、调用本地方法2、关闭了jvm自动gc3、死循环,或者循环次数过多4、集合类中有无用对象的引用,使用完后没有立即清除。意思是集合类的链接数没有置0的时候,集合类里边的类是不会被回收的5、并发数太高,内存中加载的数据过多,方法区(即栈中)内存溢出6、启动jvm内存参数设置的太小了看了一下相关资料,下面对jvm总结一下需要使用内存空间的部分java堆,线程,类
里赫氏冷羽
·
2013-05-24 11:27
java基础
jvm学习
http://rednaxelafx.iteye.com/ http://www.ikrady.com/2012/09/java-paas/ http://www.infoq.com/articles/azul_
imacej
·
2013-04-19 22:00
jvm
JVM学习
---内存管理相关的命令行选项(二)
Oracle的Hotspot VM在内存管理方面提供了非常多的选项,一方面说明HotspotVM在内存管理这块功能非常完善,定制能力和适应能力非常强大,提供了很多内存管理算法的实现以及相关的开关,用于协助用户完成内存管理及其调优;另外也说明内存管理确实不好做,虽然Oracle尽力为用户提供通用的能力,满足绝大多数用户的需求,但通用方案的表现暂时还不能满足特定产品实际部署的需要,还是需要用户根据自己
babyblue_963
·
2013-03-25 23:00
jvm
JVM学习
---内存管理相关的命令行选项(一)
Sun出品的Hotspot VM提供了丰富的命令行选项用于定制JVM的行为,这篇文章用来记录内存管理相关的部分,但是选项太多了,我本人用到的只是少数,因此这里记录的也仅仅是其中的一部分。基础知识GC,全称GarbageCollection,直译是垃圾回收,其实就是管理内存,收集当前失效对象占用的内存,重新使这部分内存变为可用。HotspotVM提供的定制选项多以-X或者-XX开头,文档中指出这些选
babyblue_963
·
2013-03-10 14:00
jvm
GC
jvm学习
第一天
与c和c++不同,java的虚拟机拥有自动垃圾回收的机制,使得程序员不必去关注垃圾回收的具体过程,然而或许也正因为如此,一旦出现了java内存泄露或者内存溢出时,排查工作讲变的麻烦,所以,理解jvm还是很有意义的。 一、jvm运行时数据区域:分为方法区,栈(本地方法栈、虚拟机栈),程序计数器,堆。 程序计数器:由于cpu处理线程时采用的是轮询的方式,所以,计数器会帮助cpu完成下一个线程的调度工
shuaigay
·
2013-02-22 19:55
jvm
学习
jvm学习
第一天
与c和c++不同,java的虚拟机拥有自动垃圾回收的机制,使得程序员不必去关注垃圾回收的具体过程,然而或许也正因为如此,一旦出现了java内存泄露或者内存溢出时,排查工作讲变的麻烦,所以,理解jvm还是很有意义的。一、jvm运行时数据区域:分为方法区,栈(本地方法栈、虚拟机栈),程序计数器,堆。程序计数器:由于cpu处理线程时采用的是轮询的方式,所以,计数器会帮助cpu完成下一个线程的调度工作,当
shuaigay
·
2013-02-22 19:55
学习
jvm
jvm学习
第四天
继续jvm的学习,昨天学习了根据十六进制的class文件分析还原类结构,今天学习类加载的过程一、类加载的过程1、加载(类加载过程中的其中一个过程)(1)通过一个类的全限定名来获取定义此类的二进制字节流(2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构(3)在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口 虚拟机规范的这三点并不具体
ajiao2013
·
2013-02-21 19:03
jvm
学习
java中对struts中token的使用方法以及
jvm学习
--策略文件简述
很多时候要防止重复提交,比如论坛在发表提问的时候,要是不控制那就可以一直提交~使用方法:论坛为例ask.do:为跳到提问页面的actionask.jsp:为提问页面askok.do:为提问成功提交的actionaskok.jsp:处理提问之后的跳转的jsp首先在ask这个action里面加入saveToken(request);这是为了在提问页面即ask.jsp页面生成一个隐藏的表单在ask。js
yzuisoz
·
2013-01-24 15:42
java
jvm
struts
token
java中对struts中token的使用方法以及
jvm学习
--策略文件简述
很多时候要防止重复提交,比如论坛在发表提问的时候,要是不控制那就可以一直提交~使用方法:论坛为例ask.do:为跳到提问页面的actionask.jsp:为提问页面askok.do:为提问成功提交的actionaskok.jsp:处理提问之后的跳转的jsp首先在ask这个action里面加入saveToken(request);这是为了在提问页面即ask.jsp页面生成一个隐藏的表单在ask。js
yzuisoz
·
2013-01-24 15:42
java
struts
jvm
Java基础学习笔记之一_JVM参考文章
***参考文章1.
JVM学习
之:内存的分配以及回收http://blog.csdn.net/sun7545526/article/details/78933102.
JVM学习
之:GC的算法简述http:
龙龙哥
·
2013-01-22 13:01
性能优化
深入Java核心
Java基础学习笔记之一_JVM参考文章
***参考文章1.
JVM学习
之:内存的分配以及回收 http://blog.csdn.net/sun7545526/article/details/78933102.
JVM学习
之:GC的算法简述
orclight
·
2013-01-22 13:00
Java基础学习笔记之一_JVM参考文章
***参考文章 1.
JVM学习
之:内存的分配以及回收http://blog.csdn.net/sun7545526/article/details/7893310 2.
JVM学习
之:GC的算法简述
lovnet
·
2013-01-22 13:00
java基础
JVM学习
笔记——class文件结构
Java编译过程:Java的Class文件结构:上图可描述为ClassFile结构体:ClassFile{ u4magic; u2minor_version; u2major_version; u2constant_pool_count; cp_infoconstant_pool[constant_pool_count-1]; u2access_flags; u2thi
Aaron5
·
2013-01-12 00:00
jvm
ASM
字节码
JVM学习
笔记——class文件结构
Java编译过程:Java的Class文件结构:上图可描述为ClassFile结构体:ClassFile{ u4magic; u2minor_version; u2major_version; u2constant_pool_count; cp_infoconstant_pool[constant_pool_count-1]; u2access_flags; u2thi
Aaron5
·
2013-01-12 00:00
ASM
jvm
字节码
jvm学习
第四天
阅读更多继续jvm的学习,昨天学习了根据十六进制的class文件分析还原类结构,今天学习类加载的过程一、类加载的过程1、加载(类加载过程中的其中一个过程)(1)通过一个类的全限定名来获取定义此类的二进制字节流(2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构(3)在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口虚拟机规范的这三点并不
wang7839186
·
2012-12-20 22:00
java
jvm
编程语言
虚拟机
jvm学习
第四天
继续jvm的学习,昨天学习了根据十六进制的class文件分析还原类结构,今天学习类加载的过程 一、类加载的过程 1、加载(类加载过程中的其中一个过程) (1)通过一个类的全限定名来获取定义此类的二进制字节流 (2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 (3)在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口 &nb
wang7839186
·
2012-12-20 22:00
java
jvm
虚拟机
编程语言
jvm学习
第三天
阅读更多今天工作有点忙,没时间学习了,赶紧补上吧。昨天开始学习class文件结构,今天继续。一、class类文件结构Class文件是一组以8位字节为基础单位的二进制流。根据java虚拟机的规定,Class文件格式采用一种类似于C语言结构体的微结构来存储,这种伪结构只有两种数据类型:无符号数和表。1、魔数与Class文件的版本,下面是从ue中拷贝出来的十六进制片段packagecom.struts.
wang7839186
·
2012-12-19 23:00
jvm
虚拟机
java
jvm学习
第三天
今天工作有点忙,没时间学习了,赶紧补上吧。 昨天开始学习class文件结构,今天继续。 一、class类文件结构 Class文件是一组以8位字节为基础单位的二进制流。 根据java虚拟机的规定,Class文件格式采用一种类似于C语言结构体的微结构来存储,这种伪结构只有两种数据类型:无符号数和表。 1、魔数与Class文件的版本,下面是从ue中拷贝出来的十六进制片段 &n
wang7839186
·
2012-12-19 23:00
java
jvm
虚拟机
JVM学习
之 -- 栈(转)
JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放、放在哪儿,另外JVM堆中存的是对象。JVM栈中存的是基本数据类型和JVM堆中对象的引用。JVM基础概念:JVM堆与JVM栈数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某
·
2012-12-19 13:00
jvm
jvm
jvm学习
第二天
阅读更多今天是
jvm学习
的第二天,继续坚持吧,才刚刚开始。一、垃圾收集算法,由于垃圾收集算法涉及大量的程序细节,而且每个平台的虚拟机操作内存的方法又各有不同,所以只介绍几种垃圾收集算法的思想。
wang7839186
·
2012-12-18 22:00
jvm学习
第二天
今天是
jvm学习
的第二天,继续坚持吧,才刚刚开始。
wang7839186
·
2012-12-18 22:00
jvm
jvm学习
第一天
阅读更多与c和c++不同,java的虚拟机拥有自动垃圾回收的机制,使得程序员不必去关注垃圾回收的具体过程,然而或许也正因为如此,一旦出现了java内存泄露或者内存溢出时,排查工作讲变的麻烦,所以,理解jvm还是很有意义的。一、jvm运行时数据区域:分为方法区,栈(本地方法栈、虚拟机栈),程序计数器,堆。程序计数器:由于cpu处理线程时采用的是轮询的方式,所以,计数器会帮助cpu完成下一个线程的调度
wang7839186
·
2012-12-17 23:00
java
jvm
虚拟机
jvm学习
第一天
与c和c++不同,java的虚拟机拥有自动垃圾回收的机制,使得程序员不必去关注垃圾回收的具体过程,然而或许也正因为如此,一旦出现了java内存泄露或者内存溢出时,排查工作讲变的麻烦,所以,理解jvm还是很有意义的。 一、jvm运行时数据区域:分为方法区,栈(本地方法栈、虚拟机栈),程序计数器,堆。 程序计数器:由于cpu处理线程时采用的是轮询的方式,所以,计数器
wang7839186
·
2012-12-17 23:00
java
jvm
虚拟机
java之
jvm学习
笔记十三(jvm基本结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao这一节,主要来学习jvm的基本结构,也就是概述。说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信。当然,不是说看完本章,就对jvm了解了,jvm要学习的知识实在是非常的多。在你看完本节之后,
keycoding
·
2012-12-13 10:46
java之
jvm学习
笔记十三(jvm基本结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 这一节,主要来学习jvm的基本结构,也就是概述。说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信。当然
yfqnihao
·
2012-12-13 10:00
JVM学习
之:虚拟机中的运行时栈帧总结(二)
在
JVM学习
之:虚拟机中的运行时栈帧总结(一) 虚拟机栈的情况做了一个简单的介绍,也对虚拟机栈中的局部变量表做了简单的介绍,本篇文章主要是简单的总结一下在虚拟机栈帧的其他组成部分.虚拟机栈帧除了局部变量表
grzrt
·
2012-12-12 19:00
jvm
JVM学习
之:虚拟机中的运行时栈帧总结(一)
每 个人都知道,各种各样的动画视频,都是由一帧一帧图片连续切换结果的结果而产生的,其实虚拟机的运行和动画也类似,每个在虚拟机中运行的程序也是由许多的 帧的切换产生的结果,只是这些帧里面存放的是方法的局部变量,操作数栈,动态链接,方法返回地址和一些额外的附加信息组成,在虚拟机中包含这些信息的帧称 为“栈帧”,每个方法的执行,在虚拟机中都是对应的栈帧在虚拟机栈中的入栈到出栈的过程 。其中
grzrt
·
2012-12-12 19:00
jvm
java之
jvm学习
笔记十二(访问控制器的栈校验机制)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 本节源码:http://download.csdn.net/detail/yfqnihao/4863854 这一节,我们会简单的描述一下jvm访问控制器的栈校验机制。
yfqnihao
·
2012-12-10 08:00
java之
jvm学习
笔记十一(访问控制器)
欢迎装载请说明出处: http://blog.csdn.net/yfqnihao/article/details/8271665 这一节,我们要学习的是访问控制器,在阅读本节之前,如果没有前面几节的基础,对你来说可能会比较困难! 本节实验源码下载:http://download.csdn.net/deta
yfqnihao
·
2012-12-08 23:00
java之
jvm学习
笔记十(策略和保护域)
欢迎转载请说明出处:http://blog.csdn.net/yfqnihao/article/details/8271415 前面一节,我们做了一个简单的实验,来说明什么是策略文件,在文章的最后,也顺带的讲了一下什么是策略,还有策略的作用。 为了引出另外一个很重要的概念
yfqnihao
·
2012-12-08 05:00
java之
jvm学习
笔记九(策略文件)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao/article/details/8271407 课程源码:http://download.csdn.net/detail/yfqnihao/4866503 什么是java的策略,什么又是策略文件。
yfqnihao
·
2012-12-08 03:00
java之
jvm学习
笔记八(实践对jar包的代码签名)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao/article/details/8267669 课程源码:http://download.csdn.net/detail/yfqnihao/4866500 这一节,以实践为
yfqnihao
·
2012-12-07 05:00
java之
jvm学习
笔记七(jar包的代码认证和签名)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前言: 如果你循序渐进的看到这里,那么说明你的毅力提高了,jvm的很多东西都是比较抽像的,如果不找相对应的代码来辅助理解,其实很难有个比较形象的思维,前面我努力的尝试通过将概念投射到代码的方式去讲解jvm的各个
yfqnihao
·
2012-12-07 03:00
java之
jvm学习
笔记六(实践写自己的安全管理器)
安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回
yfqnihao
·
2012-12-06 10:00
java之
jvm学习
笔记五(实践写自己的类装载器)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类装载器和安全管理器是可以被动态扩展的,或者说,他们
yfqnihao
·
2012-12-06 09:00
java之
jvm学习
笔记三(Class文件检验器)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,class文件校验器。 class文件校验器,保证class文件内容有正确的内部结构
yfqnihao
·
2012-12-05 02:00
java之
jvm学习
笔记二(类装载器的体系结构)
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 在了解java虚拟机的类装载器之前,有一个概念我们是必须先知道的,就是java的沙箱,什么是java的沙箱,java的沙箱总体上经历了这么一个过程,从简单的java1.0的基础沙箱到java1.1的基于签名和认证的沙箱到后来基于基础沙箱+签名认证沙箱的j
yfqnihao
·
2012-12-04 23:00
java之
jvm学习
笔记一
欢迎装载请说明出处:http://blog.csdn.net/yfqnihao java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种,第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新的解析一次,第二种,即时解析,也就是转载到内存的字节码会被解析成本地机器
yfqnihao
·
2012-12-04 20:00
jvm学习
笔记2--虚拟机类加载机制
虚拟机类加载机制生命周期从被加载到虚拟机内存,到卸载内存为止,包含7个阶段:加载、验证、解析、准备、初始化、使用、卸载。验证、准备和解析统称为连接。加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,而解析则不一定,它可以在初始化阶段之后再开始,以支持java的运行时绑定。2.3种情况必须对类进行“初始化”遇到new(实例化对象)、getstatic(读取类静态字段)、putstatic(设置
iteye_11714
·
2012-11-25 17:16
jvm
jvm学习
笔记2--虚拟机类加载机制
虚拟机类加载机制 生命周期从被加载到虚拟机内存,到卸载内存为止,包含7个阶段:加载 、验证、解析、准备、初始化、使用、卸载。 验证、准备和解析统称为连接。 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,而解析则不一定,它可以在初始化阶段之后再开始,以支持java的运行时绑定。2. 3种情况必须对类进行“初始化”遇到new(实例化对象)、getstatic(读取类静态字段)、putstat
海浪儿
·
2012-11-25 17:00
学习笔记
jvm学习
笔记2--虚拟机类加载机制
虚拟机类加载机制 生命周期从被加载到虚拟机内存,到卸载内存为止,包含7个阶段:加载 、验证、解析、准备、初始化、使用、卸载。 验证、准备和解析统称为连接。 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,而解析则不一定,它可以在初始化阶段之后再开始,以支持java的运行时绑定。2. 3种情况必须对类进行“初始化”遇到new(实例化对象)、getstatic(读取类静态字段)、putstat
海浪儿
·
2012-11-25 17:00
学习笔记
上一页
22
23
24
25
26
27
28
29
下一页
按字母分类:
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
其他