- ssh -i key 执行时 Permissions 0644 for '你的.pem' are too open 问题
Java菜鸟在北京
Linux常见问题
ssh-ikey地址;使用密钥登录时的Permissions0644for'你的.pem'aretooopen.ItisrequiredthatyourprivatekeyfilesareNOTaccessiblebyothers.Thisprivatekeywillbeignored.Loadkey"你的.pem":
[email protected]
- 手写一些常见算法
林tong学
算法排序算法java数据结构
手写一些常见算法快速排序归并排序Dijkstra自定义排序交替打印0和1冒泡排序插入排序堆排序快速排序publicclassMain{publicstaticvoidmain(String[]args){intnums[]={1,3,2,5,4,6,8,7,9};quickSort(nums,0,nums.length-1);}privatestaticvoidquickSort(int[]num
- DAY31 回溯算法 排列问题
Useee
leetcode数据结构算法c++
491.非递减子序列-力扣(LeetCode)这道题限制了nums的取值范围,所以可以使用数组来去重,如果范围过大要使用哈希表。classSolution{private:vector>result;vectorpath;voidbackTracking(vector&nums,intstartIndex){if(path.size()>1){result.push_back(path);}int
- DAY30 回溯算法 子集问题 Ⅰ
Useee
算法leetcodec++数据结构
93.复原IP地址-力扣(LeetCode)classSolution{private:vectorresult;voidbackTracking(string&s,intstartIndex,intpiontNum){if(piontNum==3){if(isUseful(s,startIndex,s.size()-1)){result.push_back(s);}return;}for(int
- 怎么使用jwt,token以及redis进行续期?
曦月不可及?
java
怎么使用jwt,token以及redis进行续期?什么是jwt?什么是token?结合JWT、Token和Redis进行续期的一般步骤:生成JWT:用户登录成功后,服务器生成一个JWT,并返回给客户端。importio.jsonwebtoken.Jwts;importio.jsonwebtoken.SignatureAlgorithm;publicclassJwtUtil{privatestati
- 【架构思维基础:如何科学定义问题】
调皮的芋头
架构阿里云云计算大数据
架构思维基础:如何科学定义问题一、问题本质认知1.1问题=矛盾根据毛泽东《矛盾论》,问题本质是系统内部要素间既对立又统一的关系。例如:电商系统矛盾演变:90年代:商品供给不足vs消费需求增长00年代:商品丰富但信息匹配低效10年代:商品数量充足但质量需求升级1.2问题三维度publicclassProblem{//核心矛盾主体(如用户需求)privateCoreConflictmainConfli
- WinForm基础知识1-20
观无
microsoft
1.如何在WinForms中实现异步编程?答案:使用async/await或BackgroundWorker实现异步操作,避免阻塞UI线程。示例:privateasyncvoidbtnDownload_Click(objectsender,EventArgse){btnDownload.Enabled=false;stringresult=awaitDownloadDataAsync("https
- Oracle RAC 三种心跳机制
数据库急诊日记
故障处理oracle数据库databaselinuxjavapythonc语言
在OracleRAC(RealApplicationClusters)中,心跳(Heartbeat)是集群节点间用于检测存活状态的核心机制,确保节点间的通信正常并避免脑裂(SplitBrain)问题。以下是RAC的三种关键心跳机制及其作用:1.网络心跳(NetworkHeartbeat)作用:通过私有网络互联(PrivateInterconnect)实时检测节点间的通信状态。工作原理:每个节点周期
- Java调用腾讯云短信接口-API发送短信-无须引入SDK
莫非鱼能语
Java后端javahttps
腾讯云短信接口—API发送短信以下内容仅支持api3.0,加密方式为v1,请求方式为get,有意者请继续。共有参数不用调整,后台配置参数需在短信控制台配置//共有参数privatestaticStringurl="sms.tencentcloudapi.com";privatestaticStringmethod="HmacSHA1";privatestaticStringVersion="201
- java实现腾讯短信云平台发送短信
AAAhxz001
java
1.首先在腾讯云控制台建立一个应用,(腾讯有活动,免费的一百条短信)我这里取名“随机”点击“随机”进入2.点击进入后可以看到相关信息,密码和AppID3.这是具体代码实现类publicclassTextDemo{publicstaticvoidmain(String[]args){execute();}privatestaticStringoperation="/industrySMS/sendS
- QT信号与槽:实现方法、技术细节、高级用法和底层机制
程序先锋
QT界面开发qt
1.基本概念信号(signals):当对象的状态发生变化或发生特定事件时,自动触发的通知。比如PushButton常见的信号是clicked()信号。槽:接收信号并执行逻辑的成员函数。可定义在类的任何部分(public、private、protected)连接:通过QObject::connect将信号与槽绑定。connect(sender,&Sender::signal,receiver,&Re
- C++中explicit类型转换运算符
水瓶丫头站住
C++关键字c++开发语言
在C++中,explicit类型转换运算符是用于防止隐式类型转换的关键特性。它主要应用于类的类型转换运算符(如operatortype()),确保类型转换必须通过显式调用来触发,从而提高代码安全性和可读性。以下是详细解析:核心概念基本语法classMyClass{public:explicitoperatorint()const{returnvalue;}private:intvalue;};ex
- 封装WPF绑定枚举用法
Now喔
WPFwpf
前言:在ComboBox绑定ItemsSource时候,在绑定枚举时候,我们通常是采用定义一个列表,然后一个显示和值进行分开,这样显得比较麻烦,下面进行对这部分进行封装。privateList>fruitList=new(){newTuple("苹果",FruitsEnum.Apple),newTuple("香蕉",FruitsEnum.Banana),newTuple("橙子",FruitsEn
- Unity 封装一个依赖于MonoBehaviour的计时器(上) 基本功能
咩咩-哈基米版
Unity案例实战全解析Unity框架学习unity游戏引擎c#
灵感来自下面这本书的协程部分,因此我就自己尝试写了一个我的新书Unity3D游戏开发(第3版)|雨松MOMO程序研究院如果你不知道什么是协程:unity保姆级教程之协同程序_unity协同-CSDN博客一句话概括:协程就是单线程的异步操作,其作用于Unity的主线程1.我写了如下几个功能(只展示无参数):基础校验privateboolCheckCount(intcount){if(countcal
- spring event发布及监听实例
weixin_33924220
java测试
序本文主要介绍下如何在spring中进行发布时间以及接收事件定义事件publicclassDemoEventextendsApplicationEvent{privateStringmessage;publicDemoEvent(Objectsource,Stringmessage){super(source);this.message=message;}publicStringgetMessag
- 16天 - 单例模式有哪几种实现?如何保证线程安全?什么是策略模式?一般用在什么场景?什么是模板方法模式?一般用在什么场景?
和道一文字yyds
单例模式安全策略模式
单例模式有哪几种实现?如何保证线程安全?单例模式是一种确保某个类在程序中只有一个实例,并提供全局访问点的设计模式。以下是几种常见的单例模式实现方式及其线程安全保证方法:饿汉式饿汉式单例在类加载时就创建好实例对象,因此在程序调用时直接返回该单例对象即可。由于类加载的过程是线程安全的,所以饿汉式单例不存在线程安全问题。publicclassEagerSingleton{privatestaticfin
- Swagger2 多环境安全配置
L烧鱼
学习笔记javaswagger
一、生产环境关闭Swagger我们该怎么做?1、在配置文件新增开关#swagger开关swagger2.enable=true2、修改SwaggerConfifig动态设置开关@Configuration@EnableSwagger2publicclassSwaggerConfig{ @Value("${swagger2.enable}") privatebooleanenable; @Be
- Java高级特性深度解析:构造方法、继承关系与动态代理
小志开发
java
一、构造方法的深度探索1.1反射调用私有构造方法//获取私有构造方法示例ClassuserClass=User.class;ConstructorprivateCons=userClass.getDeclaredConstructor();privateCons.setAccessible(true);//突破访问限制Useruser=privateCons.newInstance();代码解析:
- Spring上下文工具类
neo_Ggx23
工具类springjava后端
文章目录获取ip地址请求上下文相关Spring上下文获取Bean对象获取ip地址publicclassIpUtils{privateIpUtils(){}/***获取请求ip地址**@return{@linkString}*/publicstaticStringgetIpAddress(){HttpServletRequestrequest=RequestContextHolderUtils.ge
- 基于CATIA VBA与Python的自动化音乐生成技术对比研究
Python×CATIA工业智造
python开发语言CATIA二次开发
在工程软件二次开发领域,CATIA也可以许多另类的玩法。通过CATIA自带的VBA可以演奏歌曲,但实际效果往往差强人意。为了进一步优化实际演奏效果,本文以自动生成林宥嘉《说谎》钢琴前奏旋律为案例,探讨两种语言在多媒体控制领域的技术实现差异。一、CATIAVBA实现:极简音频方案1.1技术原理PrivateDeclarePtrSafeFunctionBeepLib"kernel32"(ByValdw
- 详细介绍c++中的友元函数和友元类
成风693
c++开发语言
在C++中,友元(Friend)是一种特殊的机制,允许某个函数或类访问另一个类的私有(private)和保护(protected)成员。友元打破了类的封装性,但在某些情况下非常有用,例如需要实现某些特殊功能或优化性能时。1.友元函数(FriendFunction)友元函数是一个非成员函数,但它可以访问类的私有和保护成员。友元函数需要在类内声明,并使用friend关键字。1.1声明友元函数在类中声明
- Kotlin字符串操作在Android开发中的应用示例
qhs1573
kotlin开发语言android
Kotlin字符串操作在Android开发中的应用示例引言在Android开发中,Kotlin已经成为主流的编程语言,它提供了许多便捷的字符串操作功能。本文将结合一个具体的Kotlin示例程序,详细介绍Kotlin中字符串的创建、格式化和使用方法。示例代码以下是示例代码:privatefunprintStr(){//多行字符串valstr:String="""你好这是换行的字符串""".trimI
- 【八股学习】ArrayList扩容机制总结
illus10n_CHOU
八股学习java算法
初始化/***默认初始容量大小*/privatestaticfinalintDEFAULT_CAPACITY=10;//默认的构造数组其实是没有容量的privatestaticfinalObject[]DEFAULTCAPACITY_EMPTY_ELEMENTDATA={};/***默认构造函数,使用初始容量10构造一个空列表(无参数构造)*/publicArrayList(){this.elem
- 【软件测试】- 公有云、私有云、混合云简介以及如何在公有云与私有云上分别搭建测试环境
阿寻寻
软件测试大厂软件测试面试题阿里云功能测试
在公有云与私有云上分别如何搭建测试环境一、公有云、私有云、混合云简介1.公有云(PublicCloud):2.私有云(PrivateCloud):3.混合云(HybridCloud):4.他们的区别与联系:5.应用实例:二、公有云上搭建测试环境1.创建云服务器实例阿里云腾讯云2.安装Docker和Kubernetes3.配置Kubernetes集群4.网络配置细节5.数据库配置6.部署测试应用7.
- 【从零开始学习JAVA 】This关键字详解
Cools0613
从0开始学Java学习
前言:相信大家在进入JAVA面向对象编程篇章以后,多多少少都见过This关键字,而他的指向很多人总是傻傻搞不清楚,今天我们将从This指针的本质出发,深度剖析This关键字的指向规则。This关键字:作用:1.引用当前对象:在类中的方法中,this用来引用当前对象。例如,通过this可以引用当前对象的成员变量,调用当前对象的方法。publicclassPerson{privateStringnam
- Unity--使用Line Renderer实现画图划线效果
liang_704959721
unity基础unityc#游戏引擎
usingUnityEngine;publicclassDraw:MonoBehaviour{publicGameObjectlinePrefab;//线条渲染器privateLineRendererline;//顶点下标privateinti;publicGameObjectobj_Parent;voidUpdate(){//鼠标左键按下瞬间if(Input.GetMouseButtonDown
- 用redis实现秒杀
jingweiben219
redis并发
今日在研究秒杀系统,用数据库的乐观锁可以实现,但是在高并发下可能并不好,所以就想到了缓存系统redis,因为redis本身也有锁机制,废话不多说,直接上代码,请大神指点不足的地方。classA{privateExecutorServiceexecutorService=Executors.newFixedThreadPool(8);privateRedisTemplateredisTemplate
- C++学习笔记(十八)——类之继承
奕天者
C++基础学习c++学习笔记
一、继承作用:继承(Inheritance)是面向对象编程(OOP)的核心特性之一,允许一个类(子类)从另一个类(基类)派生,并继承基类的属性和行为。继承的主要目的是代码复用,同时支持扩展和修改已有功能,提高程序的可维护性。特点:子类会自动继承基类的public和protected成员(不包括private成员)。子类可以增加新的成员或重写(覆盖)基类的方法。支持单继承和多继承(C++允许一个类继
- Android Service封装实战:基于Binder与接口的高效通信方案
tangweiguo03051987
androidbinderjava
通过封装Service,可以简化Service的使用和管理,提升代码的可维护性和复用性。无论是本地Service还是跨进程通信,封装都能让代码更加清晰和易于扩展。1.封装Service的步骤1.1创建基础Service类创建一个基础的Service类,封装通用的逻辑(如启动、停止、绑定等)。publicabstractclassBaseServiceextendsService{privatefi
- DUBBO源码分析八---服务调用过程
qq_51562781
DUBBO学习rpc网络协议网络
"2021SC@SDUSC"2.3.2.2调用服务本小节,我们从ChannelEventRunnable开始分析,该类的主要代码如下:publicclassChannelEventRunnableimplementsRunnable{privatefinalChannelHandlerhandler;privatefinalChannelchannel;privatefinalChannelSta
- java责任链模式
3213213333332132
java责任链模式村民告县长
责任链模式,通常就是一个请求从最低级开始往上层层的请求,当在某一层满足条件时,请求将被处理,当请求到最高层仍未满足时,则请求不会被处理。
就是一个请求在这个链条的责任范围内,会被相应的处理,如果超出链条的责任范围外,请求不会被相应的处理。
下面代码模拟这样的效果:
创建一个政府抽象类,方便所有的具体政府部门继承它。
package 责任链模式;
/**
*
- linux、mysql、nginx、tomcat 性能参数优化
ronin47
一、linux 系统内核参数
/etc/sysctl.conf文件常用参数 net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目
net.core.rmem_max = 8388608 #SOCKET读缓存区大小
net.core.wmem_max = 8388608 #SOCKET写缓存区大
- php命令行界面
dcj3sjt126com
PHPcli
常用选项
php -v
php -i PHP安装的有关信息
php -h 访问帮助文件
php -m 列出编译到当前PHP安装的所有模块
执行一段代码
php -r 'echo "hello, world!";'
php -r 'echo "Hello, World!\n";'
php -r '$ts = filemtime("
- Filter&Session
171815164
session
Filter
HttpServletRequest requ = (HttpServletRequest) req;
HttpSession session = requ.getSession();
if (session.getAttribute("admin") == null) {
PrintWriter out = res.ge
- 连接池与Spring,Hibernate结合
g21121
Hibernate
前几篇关于Java连接池的介绍都是基于Java应用的,而我们常用的场景是与Spring和ORM框架结合,下面就利用实例学习一下这方面的配置。
1.下载相关内容: &nb
- [简单]mybatis判断数字类型
53873039oycg
mybatis
昨天同事反馈mybatis保存不了int类型的属性,一直报错,错误信息如下:
Caused by: java.lang.NumberFormatException: For input string: "null"
at sun.mis
- 项目启动时或者启动后ava.lang.OutOfMemoryError: PermGen space
程序员是怎么炼成的
eclipsejvmtomcatcatalina.sheclipse.ini
在启动比较大的项目时,因为存在大量的jsp页面,所以在编译的时候会生成很多的.class文件,.class文件是都会被加载到jvm的方法区中,如果要加载的class文件很多,就会出现方法区溢出异常 java.lang.OutOfMemoryError: PermGen space.
解决办法是点击eclipse里的tomcat,在
- 我的crm小结
aijuans
crm
各种原因吧,crm今天才完了。主要是接触了几个新技术:
Struts2、poi、ibatis这几个都是以前的项目中用过的。
Jsf、tapestry是这次新接触的,都是界面层的框架,用起来也不难。思路和struts不太一样,传说比较简单方便。不过个人感觉还是struts用着顺手啊,当然springmvc也很顺手,不知道是因为习惯还是什么。jsf和tapestry应用的时候需要知道他们的标签、主
- spring里配置使用hibernate的二级缓存几步
antonyup_2006
javaspringHibernatexmlcache
.在spring的配置文件中 applicationContent.xml,hibernate部分加入
xml 代码
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hi
- JAVA基础面试题
百合不是茶
抽象实现接口String类接口继承抽象类继承实体类自定义异常
/* * 栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、 *int、long、 float、double、boolean)和对象的引用,数据可以共享,速度仅次于 * 寄存器(register),快于堆。堆(heap):用于存储对象。 */ &
- 让sqlmap文件 "继承" 起来
bijian1013
javaibatissqlmap
多个项目中使用ibatis , 和数据库表对应的 sqlmap文件(增删改查等基本语句),dao, pojo 都是由工具自动生成的, 现在将这些自动生成的文件放在一个单独的工程中,其它项目工程中通过jar包来引用 ,并通过"继承"为基础的sqlmap文件,dao,pojo 添加新的方法来满足项
- 精通Oracle10编程SQL(13)开发触发器
bijian1013
oracle数据库plsql
/*
*开发触发器
*/
--得到日期是周几
select to_char(sysdate+4,'DY','nls_date_language=AMERICAN') from dual;
select to_char(sysdate,'DY','nls_date_language=AMERICAN') from dual;
--建立BEFORE语句触发器
CREATE O
- 【EhCache三】EhCache查询
bit1129
ehcache
本文介绍EhCache查询缓存中数据,EhCache提供了类似Hibernate的查询API,可以按照给定的条件进行查询。
要对EhCache进行查询,需要在ehcache.xml中设定要查询的属性
数据准备
@Before
public void setUp() {
//加载EhCache配置文件
Inpu
- CXF框架入门实例
白糖_
springWeb框架webserviceservlet
CXF是apache旗下的开源框架,由Celtix + XFire这两门经典的框架合成,是一套非常流行的web service框架。
它提供了JAX-WS的全面支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用,同时它能与spring进行完美结合。
在apache cxf官网提供
- angular.equals
boyitech
AngularJSAngularJS APIAnguarJS 中文APIangular.equals
angular.equals
描述:
比较两个值或者两个对象是不是 相等。还支持值的类型,正则表达式和数组的比较。 两个值或对象被认为是 相等的前提条件是以下的情况至少能满足一项:
两个值或者对象能通过=== (恒等) 的比较
两个值或者对象是同样类型,并且他们的属性都能通过angular
- java-腾讯暑期实习生-输入一个数组A[1,2,...n],求输入B,使得数组B中的第i个数字B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]
bylijinnan
java
这道题的具体思路请参看 何海涛的微博:http://weibo.com/zhedahht
import java.math.BigInteger;
import java.util.Arrays;
public class CreateBFromATencent {
/**
* 题目:输入一个数组A[1,2,...n],求输入B,使得数组B中的第i个数字B[i]=A
- FastDFS 的安装和配置 修订版
Chen.H
linuxfastDFS分布式文件系统
FastDFS Home:http://code.google.com/p/fastdfs/
1. 安装
http://code.google.com/p/fastdfs/wiki/Setup http://hi.baidu.com/leolance/blog/item/3c273327978ae55f93580703.html
安装libevent (对libevent的版本要求为1.4.
- [强人工智能]拓扑扫描与自适应构造器
comsci
人工智能
当我们面对一个有限拓扑网络的时候,在对已知的拓扑结构进行分析之后,发现在连通点之后,还存在若干个子网络,且这些网络的结构是未知的,数据库中并未存在这些网络的拓扑结构数据....这个时候,我们该怎么办呢?
那么,现在我们必须设计新的模块和代码包来处理上面的问题
- oracle merge into的用法
daizj
oraclesqlmerget into
Oracle中merge into的使用
http://blog.csdn.net/yuzhic/article/details/1896878
http://blog.csdn.net/macle2010/article/details/5980965
该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSE
- 不适合使用Hadoop的场景
datamachine
hadoop
转自:http://dev.yesky.com/296/35381296.shtml。
Hadoop通常被认定是能够帮助你解决所有问题的唯一方案。 当人们提到“大数据”或是“数据分析”等相关问题的时候,会听到脱口而出的回答:Hadoop! 实际上Hadoop被设计和建造出来,是用来解决一系列特定问题的。对某些问题来说,Hadoop至多算是一个不好的选择,对另一些问题来说,选择Ha
- YII findAll的用法
dcj3sjt126com
yii
看文档比较糊涂,其实挺简单的:
$predictions=Prediction::model()->findAll("uid=:uid",array(":uid"=>10));
第一个参数是选择条件:”uid=10″。其中:uid是一个占位符,在后面的array(“:uid”=>10)对齐进行了赋值;
更完善的查询需要
- vim 常用 NERDTree 快捷键
dcj3sjt126com
vim
下面给大家整理了一些vim NERDTree的常用快捷键了,这里几乎包括了所有的快捷键了,希望文章对各位会带来帮助。
切换工作台和目录
ctrl + w + h 光标 focus 左侧树形目录ctrl + w + l 光标 focus 右侧文件显示窗口ctrl + w + w 光标自动在左右侧窗口切换ctrl + w + r 移动当前窗口的布局位置
o 在已有窗口中打开文件、目录或书签,并跳
- Java把目录下的文件打印出来
蕃薯耀
列出目录下的文件文件夹下面的文件目录下的文件
Java把目录下的文件打印出来
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 11:02:
- linux远程桌面----VNCServer与rdesktop
hanqunfeng
Desktop
windows远程桌面到linux,需要在linux上安装vncserver,并开启vnc服务,同时需要在windows下使用vnc-viewer访问Linux。vncserver同时支持linux远程桌面到linux。
linux远程桌面到windows,需要在linux上安装rdesktop,同时开启windows的远程桌面访问。
下面分别介绍,以windo
- guava中的join和split功能
jackyrong
java
guava库中,包含了很好的join和split的功能,例子如下:
1) 将LIST转换为使用字符串连接的字符串
List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom");
- Web开发技术十年发展历程
lampcy
androidWeb浏览器html5
回顾web开发技术这十年发展历程:
Ajax
03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。
彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a
- 架构师之mima-----------------mina的非NIO控制IOBuffer(说得比较好)
nannan408
buffer
1.前言。
如题。
2.代码。
IoService
IoService是一个接口,有两种实现:IoAcceptor和IoConnector;其中IoAcceptor是针对Server端的实现,IoConnector是针对Client端的实现;IoService的职责包括:
1、监听器管理
2、IoHandler
3、IoSession
- ORA-00054:resource busy and acquire with NOWAIT specified
Everyday都不同
oraclesessionLock
[Oracle]
今天对一个数据量很大的表进行操作时,出现如题所示的异常。此时表明数据库的事务处于“忙”的状态,而且被lock了,所以必须先关闭占用的session。
step1,查看被lock的session:
select t2.username, t2.sid, t2.serial#, t2.logon_time
from v$locked_obj
- javascript学习笔记
tntxia
JavaScript
javascript里面有6种基本类型的值:number、string、boolean、object、function和undefined。number:就是数字值,包括整数、小数、NaN、正负无穷。string:字符串类型、单双引号引起来的内容。boolean:true、false object:表示所有的javascript对象,不用多说function:我们熟悉的方法,也就是
- Java enum的用法详解
xieke90
enum枚举
Java中枚举实现的分析:
示例:
public static enum SEVERITY{
INFO,WARN,ERROR
}
enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类 (java.l