- React项目开发过程中需要注意避免re-render——React性能优化方案
winne雪
React前端性能优化React性能优化useMemomemoreacthook
前言下面相关测试例子我都写在了仓库中,可以直接拿来调试。首先我们要知道哪些方法会触发react组件的重新渲染(默认情况下)?1、setState方法被调用(hook中是useState中的setXXXX方法被调用)组件就会触发render,除了设置state为null的情况不会触发render。注意注意!!上面说的是方法被调用就会re-render,而不指的是state数据发生改变才会re-ren
- 【wp】hgame2023 week3 Re&&Pwn
woodwhale
ctf与君共勉pwnctfpwnrehgame
【wp】hgame2023week3Re&&PwnRecpp那个chacha20加密不会。kunmusic用dnspy逆dll,在Program的Main方法中找到了初始化的数据下断点执行,拷贝出data写一份脚本进行data与104的异或defstep_one():withopen("./data",encoding="u8")asf:lines=f.readlines()data=[]forl
- C++ 链表 增删查改
再路上1216
C++链表c++数据结构
#if1#include#include#includeusingnamespacestd;structListNode{intdata;ListNode*next;//结构体指针};voidListprintf(ListNode*phead){ListNode*cur=phead;while(cur!=NULL){coutdata"next;}coutnext!=NULL){tail=tail-
- 9.4 指针
️Carrie爱学习
程序员教程-读书笔记指针指针常量常量指针函数指针
文章目录指针定义指针与数组指针与函数指针与链表指针定义指针对象是内存单元地址,是被明确命名的指针变量。指针指向的对象可以用*运算符获取。指针可以指向已经有地址的变量,如例子中pa=&pb,其中pb是已经被分配地址的int型变量。也可以用NULL给指针赋值,表示不指向任何内存单元。或者使用malloc申请一个地址,用指针指向这个地址,malloc的地址不再使用后,要记得free,否则会造成内存泄漏。
- 【hot100】200岛屿数量
鱼力舟
HOT100深度优先算法
一、思路最外层两层遍历,目的是访问图中所有点位,然后在碰到为1的点位,即是陆地的点位采用dfs上下左右进行搜索,将整个岛屿全部置为0,然后搜索下一个点位。二、记忆注意深搜的终止条件判断if(r=nr||c=nc||grid[r][c]=='0')return;三、代码publicintnumIslands(char[][]grid){if(grid==null||grid.length==0)re
- LeetCode Hot100 二叉树的层序遍历
m0_67582670
leetcodeleetcode算法职场和发展
给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]思路先入先出,用队列保存每层的节点,用保存的节点访问下一层。代码vector>levelOrder(TreeNod
- 关于exe文件、dll文件和msi文件的一些理解
zl0_00_0
windows
参考:深入解析DLL:真相与应用-CSDN博客DLL与EXE的区别-CSDN博客以及网上的一些资料exe文件又称可移植可执行文件,可以加载在内存中,也可以供用户安装执行,作为程序的入口直接在系统上执行。与其相似的还有.com文件也是可执行文件。可执行文件内部是二进制,计算机通过读取二进制执行相应的命令。例如我们想要打开一个文本,但是这个文本里面只有字符串,我们无法直接打开,那么就需要一个可供计算机
- Qt中txt文件输出为PDF格式
T风呤
qtpdf
main.cppPdfReportGeneratorpdfReportGenerator;//加载中文字体if(QFontDatabase::addApplicationFont(":/new/prefix1/simsun.ttf")==-1){QMessageBox::warning(nullptr,"警告","无法加载中文字体");}//解析日志文件QVectorentries;if(!pdf
- 【Java】数组的定义和使用
牵熊掌卖鱼
Java数据结构算法
目录1.数组的基本概念1.1什么是数组1.2数组的创建及初始化1.2.1数组的创建1.2.2数组的初始化1.3数组的基本使用1.3.1数组的基本使用1.3.2遍历数组2.数组是引用类型2.1基本类型变量与引用类型变量的区别2.2认识null3.数组的应用场景3.1保存数据3.2作为函数的参数3.3作为函数的返回值4.操作数据工具类Arrays与数组练习4.1数组转字符串4.2数组拷贝4.3查找数组
- Spring Boot 接口 JSON 序列化优化:忽略 Null 值的九种解决方案详解
坎布里奇
SpringBootspringbootjsonpython
一、针对特定接口null的处理:方法一:使用@JsonInclude注解1.1类级别:在接口返回的DTO类或字段上添加@JsonInclude注解,强制忽略null值:类级别:所有字段为null时不返回@JsonInclude(JsonInclude.Include.NON_NULL)publicclassMyResponseDTO{privateStringfield1;1.2字段级别:在具
- 鸿蒙开发 Timer (定时器) 实现详情
AaVictory.
鸿蒙ui
目录关键点说明注意事项代码实现1代码实现2关键点说明timeoutID的初始化:在类中定义一个成员变量timeoutID,并初始化为null。timeoutID的类型为number|null,因为setTimeout返回的是一个数字类型的ID,而初始状态下没有定时器,因此可以为null。启动定时器:在startTimer方法中,调用setTimeout并将返回的ID赋值给this.timeoutI
- 【数据结构】二叉树总结篇
GISer_Jinger
数据结构javascript
遍历递归递归三部曲:1.参数和返回值2.终止条件3.单层逻辑(遍历顺序)varpreorderTraversal=function(root){//第一种letres=[];constdfs=function(root){if(root===null)return;//先序遍历所以从父节点开始res.push(root.val);//递归左子树dfs(root.left);//递归右子树dfs(r
- 测试类中无法注入(找不到此bean)
一个想打代码的yebadi_
错误点单元测试springboot
今天打开了一个项目进行方法测试的时候出现了一个错误。java.lang.NullPointerExceptionattest.example.Test1.test2(Test1.java:29)atjava.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atjava.base/jdk.internal
- C语言基于ssl的https通信,利用OpenSSL建立SSL安全通信(C/S)
宝之大者
/*******************************************************************************************SSL/TLS客户端程序WIN32版(以demos/cli.cpp为基础)*需要用到动态连接库libeay32.dll,ssleay.dll,*同时在setting中加入ws2_32.liblibeay32.libs
- Hive--桶表
XK&RM
Hivehive
目录1.为什么要使用桶表???2.桶表分桶规则3.桶表的创建3.1DLL3.2数据3.3DML3.4查看桶表里面的数据3.5临时表创建并加载数据3.6把临时表的数据加载到桶表里面4.桶表的查询4.1桶表查询全表的数据4.2桶表查看第一个桶里面的数据4.3查看第二个桶里面的数据4.4查看第三个桶里面的数据4.5查看桶表固定行数据4.6桶表查询语法4.7其他查询5桶表、分区表的区别6两个桶表之间的Jo
- hive alter table add columns 是否使用 cascade 的方案
houzhizhen
hivehive
结论altertablexxxaddcolumns时加上cascade时,会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段,旧的分区没有此字段,即便数据文件里有对应的数据,也不能显示内容。如果分区都是insertoverwrite生成的,并且旧分区的数据不再重新生成,可以在addcolumns不用cascade,这样旧的分区对应的列显示null。新的分区正常显示新增的列。如果分区都是
- openssl下SM4算法OFB模式加解密运算实例
李洛克07
opensslgmssl算法接口的使用算法opensslofb
SM4算法ofb接口加密intopenssl_sm4_encrypt_ofb(unsignedchar*key,unsignedchar*iv,unsignedchar*in_buf,intin_len,unsignedchar*out_buf,int*out_len){EVP_CIPHER_CTX*ctx=NULL;ctx=EVP_CIPHER_CTX_new();printf("%s%d\n"
- openssl下SM4算法cbc模式加解密运算实例
李洛克07
opensslgmssl算法接口的使用算法opensslcbc
SM4算法cbc接口加密intopenssl_sm4_encrypt_cbc(unsignedchar*key,unsignedchar*iv,unsignedchar*in_buf,intin_len,unsignedchar*out_buf,int*out_len){EVP_CIPHER_CTX*ctx=NULL;ctx=EVP_CIPHER_CTX_new();printf("%s%d\n"
- java excel 导入 加校验_Java通过POI为Excel添加数据验证
夏至未至
javaexcel导入加校验
Stringpath="d:\\success.xlsx";StringsheetName="sheetlist";XSSFWorkbookwb=null;XSSFSheetsheetlist=null;FileinputFile=newFile(path);if(inputFile.exists()){wb=newXSSFWorkbook(newFileInputStream(path));}e
- 已完成生成项目“xxx.vcxproj”的操作 - 失败。
小羊byte
前端算法javascript
原因:对在类外对某个的拷贝构造函数或者赋值运算符函数进行实现,但是在类中没有进行声明。如下:test.h:classData{public:Data(Data*other=nullptr);~Data();private:Data*m_pdate;};test.cpp:#include"test.h"#includeData::Data(Data*other):m_pdate(other){}Da
- 【LeetCode 热题 100】160. 相交链表 | python
一只小白跳起来
leetcodeleetcode算法职场和发展python笔记经验分享链表
边练习边更新,加油!!!题目:160.相交链表给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构注意点:用集合储存,减少遍历时间和判断时间(集合里的元素只能唯一,在这里不影响)将b指针直接代入集合搜索,减少储存
- django app中的models迁移问题根治方法
kunkun_1230
djangodjango数据库
今天想给某个app里添加一张表,但是忽略了主键冲突问题,再想改的时候就一直提示Youaretryingtoaddanon-nullablefield‘id’tosensorconfigalllogwithoutadefault;wecan’tdothat(thedatabaseneedssomethingtopopulateexistingrows).Pleaseselectafix:Provid
- 力扣第 105 题「从前序和中序遍历序列构造二叉树
冰火同学
力扣leetcodejava算法
题目给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例1:输入:preorder=[3,9,20,15,7],inorder=[9,3,15,20,7]输出:[3,9,20,null,null,15,7]示例2:输入:preorder=[-1],inorder=[-1]输出:[-1]提示:1
- (001)mysql全接触
我思故我在6789
数据库封神之路mysql
1.MySQL如何优化SQL查询语句?正确回答通过率:73.0%[详情]推荐指数:★★★★试题难度:中级建议性操作方案如下:1:避免全表扫描考虑在where和orderby涉及的列上建立索引,in和notin也要慎用,尽量用between取代。2:优化COUNT查询count可以统计列的数量,统计列值时要求列非空;COUNT还可以统计行数,当MySQL确定括号内的表达式不可能为NULL时,实际上就
- C++ 树源代码
qq_43355454
c++深度优先开发语言
树代码,见下#includeusingnamespacestd;templatestructListNode{Tdata;ListNode*next;ListNode(Td):data(d),next(NULL){}};templatestructTreeNode{Tdata;ListNode*>*childrenHead;voidAddChild(TreeNode*node){ListNode*
- opencv进行视频读取和调用摄像头以及对采集到的图像进行闭环处理_libtorch和opencv读取一段视频并进行处理
2401_86984695
opencv音视频人工智能
控制帧数waitKey(delay);delay是控制图像显示的帧数摄像头在开始的时候一直是处于调用状态就是不显示图像,这个可能是系统问题,经过查阅资料表明是dll文件没有粘贴到system文件中;所对应的程序为:#include#includeusingnamespacecv;intmain(){VideoCapturecapture(0);(0);while(1){Matframe;captu
- C++ 二叉树代码
qq_43355454
c++开发语言
二叉树代码,见下#includeusingnamespacestd;templatestructTreeNode{Tval;TreeNode*left;TreeNode*right;TreeNode():val(0),left(NULL),right(NULL)TreeNode(Tx):val(x),left(NULL),right(NULL){}};templateclassTree(){pri
- 记录微信小程序中的遇到的问题,ios不支持gif,ios下语音播放
kay三石
工具的使用微信小程序ios
最近是在做一些微信小程序的工作,在后台中的代码没有什么问题的时候然而在小程序中我去一次次的踩了很多的坑,就比如这gif图片不支持在ios端播放,ios中的语音的播放的问题{{isactive==item_id?audiotime:''}}-->{{note.voiceTime!=null?note.voiceTime:'0'}}s-->{{domain.abbreviation}}:{{domai
- Tp5 获取IPV6地址
君子……如玉
ThinkPHP5phpthinkphp
修改Request类ip()方法publicfunctionip($type=0,$adv=true){$type=$type?1:0;static$ip=null;if(null!==$ip){return$ip[$type];}$httpAgentIp=Config::get('http_agent_ip');if($httpAgentIp&&isset($_SERVER[$httpAgent
- 递归遍历目录 和 普通文件的复制 [Java EE]
猿周LV
JavaEEJavajava-eejava
递归遍历目录首先先列出当前目录所包含的内容File[]files=currentDir.listFiles();if(files==null||files.length==0){//若是空目录或非法目录,则直接返回return;}然后遍历列出的文件,分情况两种讨论for(Filef:files){//加个日志,方便查看程序执行情况System.out.println(f.getAbsolutePa
- 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