enum

架构师内功心法,经典高频面试的单例模式详解

回眸只為那壹抹淺笑 提交于 2020-02-27 08:15:51
一、单例模式应用场景 单例模式(Single Pattern)是指 确保一个类在任何情况下绝对只是一个实例,并提供一个全局的访问点。 单例模式在现实生活中的应用也很广泛。例如国家总统、公司CEO、部门经理等。在java标准中,ServletContext、ServletContextConfig等;在Spring框架中ApplicationCotext;数据库对应的连接池也都是单例形势的。 二、单例模式分类 2.1 饿汉式单例 饿汉式单例是在类加载的时候就立即初始化了,并且创建了单例对象。绝对的线程安全,在线程还没出现以前就实例化了,不可能存在访问安全问题。 优点:没有加任何的锁,执行效率高,在用户体验上,比懒汉式更好。 缺点:类加载的时候就初始化了,不管用与不用都占空间,浪费了内存,有可能占着茅坑不拉屎。 Spring中的IOC容器ApplicationContext 本身就是典型的饿汉式单例。案例代码: public class HungrySingleton { /** * 先静态后动态 * 先属性后方法 * 先上后下 */ private static final HungrySingleton hungrySingleton = new HungrySingleton(); private HungrySingleton() { } public static

java enum 枚举用法

落花浮王杯 提交于 2020-02-27 07:05:27
public enum Platform { DOUYIN("DOUYIN", "抖音"), KUAISHOU("KUAISHOU", "快手"); private String code; private String name; Platform(String code, String name) { this.code = code; this.name = name; } public static String getNameByCode(String code) { Platform[] Platforms = values(); for (Platform Platform : Platforms) { if (Platform.getCode().equals(code)) { return Platform.name(); } } return null; } public String getCode() { return code; } public String getName() { return name; } } 来源: CSDN 作者: 滑翔路路 链接: https://blog.csdn.net/wanglu0102/article/details/104340488

Java枚举类使用

梦想与她 提交于 2020-02-23 16:02:07
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。 enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } } 用法三:向枚举中添加新方法 如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。 public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK

Java:枚举类也就这么回事

倾然丶 夕夏残阳落幕 提交于 2020-02-22 21:29:53
目录 一、前言 二、源自一道面试题 三、枚举的由来 四、枚举的定义形式 五、Enum类里有啥? 1、唯一的构造器 2、重要的方法们 3、凭空出现的values()方法 六、反编译枚举类 七、枚举类实现单例 八、参考资料 一、前言 本篇博客是对 JDK1.5的新特性枚举 的一波小小的总结,主要是昨天在看一部分面试题的时候,遇到了枚举类型的题目,发现自己有许多细节还需要加强,做起来都模棱两可,是时候总结一波了。 二、源自一道面试题 不多bb,直接开门见山,我遇到这样一道也许很简单的题目: enum AccountType { SAVING, FIXED, CURRENT; private AccountType() { System.out.println(“It is a account type”); } } class EnumOne { public static void main(String[]args) { System.out.println(AccountType.FIXED); } } 问打印的结果是啥?正确答案如下: It is a account type It is a account type It is a account type FIXED 至于结果为啥是这个,且看我慢慢总结。 三、枚举的由来 存在即合理。 我贼喜欢这句圣经

nmap的script参数列表

て烟熏妆下的殇ゞ 提交于 2020-02-22 15:19:15
在新的nmap版本中,添加了script功能的使用。在nmap的安装目录的share/nmap/scripts中,已经有将61个写好的脚本提供。 具体的用法可以参考:http://nmap.org/book/nse-usage.html 在这儿举几个具体的例子: nmap --script=smb-enum-users 192.168.199.9 对192.168.199.9这台机器进行扫描,同时对smb的用户进行枚举。 nmap --script=smb-enum-shares 192.168.199.9 对192.168.199.9所开启的smb共享进行枚举 nmap --script=smb-brute 192.168.199.9 对192.168.199.9的用户名和密码进行暴力猜测 或者还能根据script的类别进行自动扫描,如: nmap --script auth 192.168.199.9 对192.168.199.9的用户验证方面进行测试,包括 snmp-brute , http-auth , 和 ftp-anon三类脚本 nmap --script all 192.168.199.9 使用所有脚本进行扫描 将SAM文件Dump出来: nmap --script=smb-pwdump --script-args=smbuser=epp,smbpass

enum与int、String之间的转换

◇◆丶佛笑我妖孽 提交于 2020-02-20 11:43:33
enum<->int enum -> int: int i = enumType.value.ordinal(); int -> enum: enumType b= enumType.values()[i]; enum<->String enum -> String: enumType.name() String -> enum: enumType.valueOf(name); -------------------------------------------------------------------------- http://stackoverflow.com/questions/604424/java-enum-converting-string-to-enum 有时间整理测试一下这个帖子中的内容,同事参考《Effective Java中文版第2版》第30条内容,更新本帖。 --------------------------------------------------------------------------- 下面是Enum和字符串类型转化的例子。 第一个例子: 字符串和枚举值不相同 ,注意覆盖toString方法。 import java.util.HashMap; import java.util.Map; /* * * * @author

enum与int、String之间的转换

雨燕双飞 提交于 2020-02-20 11:42:42
转自: http://www.cnblogs.com/cuizhf/archive/2011/08/22/2150046.html enum与int、String之间的转换 enum<->int enum -> int: int i = enumType.value.ordinal(); int -> enum: enumType b= enumType.values()[i]; enum<->String enum -> String: enumType.name() String -> enum: enumType.valueOf(name); -------------------------------------------------------------------------- http://stackoverflow.com/questions/604424/java-enum-converting-string-to-enum 有时间整理测试一下这个帖子中的内容,同事参考《Effective Java中文版第2版》第30条内容,更新本帖。 --------------------------------------------------------------------------- 下面是Enum和字符串类型转化的例子。 第一个例子:

Python3标准库:enum枚举

瘦欲@ 提交于 2020-02-19 17:46:10
1. enum枚举 枚举是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的、不可变的。在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的。 1.1 创建枚举 可以使用class语法派生Enum并增加描述值的类属性来定义一个新枚举。 import enum class BugStatus(enum.Enum): new = 7 incomplete = 6 invalid = 5 wont_fix = 4 in_progress = 3 fix_committed = 2 fix_released = 1 print('\nMember name: {}'.format(BugStatus.wont_fix.name)) print('Member value: {}'.format(BugStatus.wont_fix.value)) 解析这个类时,Enum的成员会被转换为实例。每个实例有一个对应成员名的name属性,另外有一个value属性,对应为类定义中的名所赋的值。 1.2 迭代 迭代处理enum类会产生枚举的各个成员。 import enum class BugStatus(enum.Enum): new = 7 incomplete = 6 invalid = 5 wont_fix = 4 in_progress = 3 fix_committed = 2

细说枚举

做~自己de王妃 提交于 2020-02-18 14:20:22
枚举是 C# 中最有意思的一部分,大部分开发人员只了解其中的一小部分,甚至网上绝大多数的教程也只讲解了枚举的一部分。那么,我将通过这篇文章向大家具体讲解一下枚举的知识。我将从大家都了解的部分开始讲解,然后再讲解大家所不知道的或者了解很少的部分。 零、基础知识 枚举是由开发人员声明的一种 值类型 ,它在编译时就声明了一种 具名常量值 。使用枚举可以使我们的代码简单易读,我们先来看一下两个代码段: // 代码段 1 void Method(int country) { switch (country) { case 0: // more code break; case 1: // more code break; case 2: // more code break; case 3: // more code break; default: // more code break; } } // 代码段 2 void Method(Country country) { switch (country) { case Country.CN: // more code break; case Country.JP: // more code break; case Country.UK: // more code break; case Country.USA: // more code

enum枚举类型

青春壹個敷衍的年華 提交于 2020-02-15 05:37:48
enum 单选: 格式:字段名 enum (值1,值2,值N) 仅能选择一个值 字段值必须在列表里选择 案例加格式如下: create table 库名.表名( 字段名1 enum(“值1”,“值2”,“值3”); set 多选: 格式:字段名 set (值1,值2,值N) 选择一个或多个值字段值必须在列表里选择 案列加格式如下: create table 库名.表名 ( 字段名1 set(值1,值2,值N)); 来源: CSDN 作者: nbnbnb_ 链接: https://blog.csdn.net/nbnbnb_/article/details/104310976