枚举类型

枚举常用的使用方式

你。 提交于 2019-11-29 09:56:53
枚举常用的使用方式: public class TestEmen { enum TestInfo{ ZHUANLI(1,"zhuanli"), LUNWEN(3,"lunwen"), CHENGJI(3,"chengji"); private int type; private String name; TestInfo(int type,String name){ this.type = type; this.name = name; } /** * 当拿到一个枚举成员之后通过调用其get方法获取该成员的type值 * @return */ public int getType() { return type; } /** * 当拿到一个枚举成员之后通过调用该方法获取成员的name值 * @return */ public String getName() { return name; } /** * 根据输入的type类型通过switch的方式获取所对应的枚举类型 * @param type * @return */ public static TestInfo getTestInf(int type){ switch (type){ case 1: return ZHUANLI; case 2: return LUNWEN; case 3: return CHENGJI;

枚举类型

天涯浪子 提交于 2019-11-29 09:39:14
用户自定义类型:枚举类型 描述方式特殊:将该类型所有取值都一一枚举出来。 1.定义一个枚举类型,要求列举出该类型数据的全部可取值。 enum 枚举类型名 {变量值列表}; 例:用枚举类型表示一个星期中的7天。 enum Weekday{SUN,MON,TUE,WED,THU,FRI} 2.对枚举元素按常量处理,不能对它们赋值。 例: SUN=0; 该语句非法。 3.枚举元素具有默认值,从零开始递增,依次为0,1,2......也可以在声明另时行指定枚举元素的值。 例: enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI} 注意:此处若未给MON赋值,则MON自动被赋值为8。 4.枚举变量的值可以直接赋值给整形。 例: enum GameResult{WIN,LOSE,TIE,CANCEL}; int count=WIN; 此处将枚举类型数据WIN隐含转换为整形,作为整形变量count的初值。 5.整数值不能直接赋给枚举变量,如需要将整数值赋给枚举变量,应进行强制类型转换。 该整数处于枚举常量定义的范围之内,强制转换才能成功。 例: GameResult result; result=GameResult(count); 此处为显式转换。 6.枚举值可以进行关系运算。如>、<、>=、<=、==、!= 但枚举类型不可以直接进行数学运算

枚举(JDK1.5之后)

柔情痞子 提交于 2019-11-29 06:44:25
1、枚举是一种类,是一种特殊的类,它的对象是固定的有限的几个。 虽然没有说枚举类的对象的属性不能修改,但是一般情况下,我们枚举类的对象的属性都不建议修改 2、如何声明枚举类 【修饰符】 enum 枚举类型{ 常量对象列表 } 【修饰符】 enum 枚举类型{ 常量对象列表; 其他成员 }    3、枚举类的特点 (1)构造器一定是私有的 (2)常量对象列表必须在首行 (3)枚举类的父类是java.lang.Enum类,不能是其他类 (4)它的toString()方法在父类中已经重写了,默认返回的常量对象名称,不建议重写了,但是你需要的话,需要手动重写toString 4、 枚举类型的一下常用方法: (1)int compareTo(Object obj):因为父类Enum类实现了java.lang.Comparable接口,这个方法按照常量对象的顺序比较大小 (2)String name():返回常量对象名称 (3)int oridinal():返回常量对象的序号 (4)枚举类型[] values():返回所有的常量对象 (5)枚举类型 valueOf(String name):根据常量对象名称获取某个常量对象 5、switch(表达式)的类型在JDK1.5之后增加了对枚举的支持。 来源: https://www.cnblogs.com/panyizuoshan/p

设计模式之单例模式

蓝咒 提交于 2019-11-29 01:54:04
单例模式   保证一个类只有一个实例,并提供一个访问它的全局访问点。单例模式是创建型模式。单例模式在显示生活中应用的非常广泛。很多职位都是只能有一个,比如:国家主席、公司CEO,在开发中使用的数据库连接池等等。 前言   谈到单例模式,相信很多小伙伴会感觉So easy!!!,这么简单的东西还有必要拿出来说?我一开始也是这么认为的,直到有一次面试,面试官让我写一个单例模式,当时心里还偷笑,啥玩意?我没听错吧,考我这么简单的问题,接着我就写出了下面的代码 public class HungrySingleton { private static HungrySingleton hungrySingleton = new HungrySingleton(); private HungrySingleton() { } public static HungrySingleton getInstance() { return hungrySingleton; } }   面试官看了看,貌似不太满意的样子,于是和我说,写一个懒汉式的单例,于是就有了下面的代码 public class LazySingleton { private static LazySingleton singleton = null; private LazySingleton() { } public static

c++11 强类型枚举

为君一笑 提交于 2019-11-29 00:13:48
1. 枚举:分本别类和数值的名字 程序中需要“数值的名字”时,有三种方式实现: (1)宏 #define Male 0 #define Female 1 (2)匿名的enum enum { Male, Female }; (3)静态常量 const static int Male = 0; const static int Female = 1; 2. 有缺陷的枚举 具名的enum类型的名字以及enum的成员的名字都是全局可见的。 以下会出错: #include <iostream> using namespace std; namespace T { enum TYPE { General, Light, Medium, Heavy }; } namespace { enum Category { General = 1, Pistol, MachineGun, Cannon }; } int main() { T::Type t = T::light; if (t == General) //忘记使用namespace cout << "General Weapon" << endl; return 0; } 另外,C++中枚举被设计为常量数值的“别名”的本性,所以枚举的成员总是可以被隐式地转换为整形。 枚举类型所占用的空间大小也是一个不确定量。 3. 强类型枚举以及c+

SQLMAP注入教程-11种常见SQLMAP使用方法详解

99封情书 提交于 2019-11-28 21:37:34
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了。今天把我一直以来整理的sqlmap笔记发布上来供大家参考。 一共有11种常见SQLmap使用方法: 一、SQLMAP用于Access数据库注入 (1) 猜解是否能注入 1 2 win : python sqlmap.py - u " http://www.xxx.com/en/CompHonorBig.asp?id=7 " Linux : .lmap.py - u " http://www.xxx.com/en/CompHonorBig.asp?id=7 " (2) 猜解表 1 2 win : python sqlmap.py - u " http://www.xxx.com/en/CompHonorBig.asp?id=7 " --tables Linux : .lmap.py - u " http://www.xxx.com/en/CompHonorBig.asp?id=7 " --tables (3) 根据猜解的表进行猜解表的字段(假如通过2得到了admin这个表) 1 2 win : python sqlmap.py - u " http://www.xxx.com/en

关于sqlmap的一些命令

岁酱吖の 提交于 2019-11-28 21:37:13
Options(选项): --version 显示程序的版本号并退出 -h, --help 显示此帮助消息并退出 -v VERBOSE 详细级别:0-6(默认为1) Target(目标):以下至少需要设置其中一个选项,设置目标URL。 -d DIRECT 直接连接到数据库。 -u URL, --url=URL 目标URL。 -l LIST 从Burp或WebScarab代理的日志中解析目标。 -r REQUESTFILE 从一个文件中载入HTTP请求。 -g GOOGLEDORK 处理Google dork的结果作为目标URL。 -c CONFIGFILE 从INI配置文件中加载选项。 Request(请求)::这些选项可以用来指定如何连接到目标URL。 --data=DATA 通过POST发送的数据字符串 --cookie=COOKIE HTTP Cookie头 --cookie-urlencode URL 编码生成的cookie注入 --drop-set-cookie 忽略响应的Set - Cookie头信息 --user-agent=AGENT 指定 HTTP User - Agent头 --random-agent 使用随机选定的HTTP User - Agent头 --referer=REFERER 指定 HTTP Referer头 --headers=HEADERS

学习Spring Boot:(十二)Mybatis 中自定义枚举转换器

梦想的初衷 提交于 2019-11-28 19:37:29
https://blog.wuwii.com/springboot-12.html 前言 在 Spring Boot 中使用 Mybatis 中遇到了字段为枚举类型,数据库存储的是枚举的值,发现它不能自动装载。 解决 内置枚举转换器 MyBatis内置了两个枚举转换器分别是: org.apache.ibatis.type.EnumTypeHandler 和 org.apache.ibatis.type.EnumOrdinalTypeHandler 。 EnumTypeHandler mybatis 中默认的枚举转换器,是获取枚举中的 name 属性。 EnumOrdinalTypeHandler 获取枚举中 ordinal 属性,就是例如索引一样的东西,不过是从 1 开始递增的。 因此上面提供的两种的转换器都不能满足我们的需求,我们需要自定义一个转换器。 自定义枚举转换器 MyBatis提供了 org.apache.ibatis.type.BaseTypeHandler 类用于我们自己扩展类型转换器,上面的 EnumTypeHandler和EnumOrdinalTypeHandler 也都实现了这个接口。 继承 BaseTypeHandler<T> 一共需要实现4个方法: void setNonNullParameter(PreparedStatement ps, int i, T

C#迭代器——由foreach说开去

痴心易碎 提交于 2019-11-28 19:27:14
原文链接: https://blog.csdn.net/u013477973/article/details/65635737 C#迭代器——由foreach说开去 foreach在数组集合的遍历时会被经常用到,例如: string[] strs = new string[] { "red", "green","blue" }; foreach (var item in strs) { Console.WriteLine(item); } 1 2 3 4 5 使用foreach做遍历确实很方便,然而并不是每一种类型都能使用foreach进行遍历操作,只有实现了IEnumerable接口的类(也叫做可枚举类型)才能进行foreach的遍历操作,集合和数组已经实现了这个接口,所以能进行foreach的遍历操作 IEnumerable和IEnumerator IEnumerable叫做可枚举接口,它的成员只有一个 GetEnumerator() 返回一个枚举器对象,即实现了IEnumerator接口的类的实例,实现IEnumerator接口的枚举器包含3个函数成员: Current属性 MoveNext()方法 Reset()方法 Current属性为只读属性,返回枚举序列中的当前位置,MoveNext()把枚举器的位置前进到下一项,返回布尔值,新的位置若是有效的,返回true

为什么用枚举类来实现单例模式越来越流行?

让人想犯罪 __ 提交于 2019-11-28 18:45:09
前言 单例模式是 Java 设计模式中最简单的一种,只需要一个类就能实现单例模式,但是,你可不能小看单例模式,虽然从设计上来说它比较简单,但是在实现当中你会遇到非常多的坑,所以,系好安全带,上车。 单例模式的定义 单例模式就是在程序运行中只实例化一次,创建一个全局唯一对象,有点像 Java 的静态变量,但是单例模式要由于静态变量,静态变量在程序启动的时候就要创建,会造成大量的资源浪费,好的单例模式不会有这个问题。开发中的很多工具类都应用了单例模式,线程池、缓存、日志对象等,它们都只需要创建一个对象,如果创建多份实例,可能会带来不可预知的问题,比如资源的浪费、结果处理不一致等问题。 单例的实现思路 静态化实例对象 私有化构造方法,禁止通过构造方法创建实例 提供一个公共的静态方法,用来返回唯一实例 单例的好处 只有一个对象,内存开支少、性能好(当一个对象的产生需要比较多的资源,如读取配置、产生其他依赖对象时,可以通过应用启动时直接产生一个单例对象,让其永驻内存的方式解决) 避免对资源的多重占用(一个写文件操作,只有一个实例存在内存中,避免对同一个资源文件同时写操作 ) 在系统设置全局访问点,优化和共享资源访问(如:设计一个单例类,负责所有数据表的映射处理) 单例模式的实现 单例模式的主流写法有饿汉模式、懒汉模式、双重检查锁模式、静态内部类单例模式、枚举类实现单例模式五种方式