JAVA开发常用类库UUID、可选的,ThreadLocal, TimerTask, Base64使用方法与实例详解

  

1, UUID类库

  

UUID根据时间戳实现自动无重复字符串定义

     //获取UUID   公共静态UUID randomUUID ()//根据字符串获取UUID   公共静态UUID fromString(字符串名称)      

应用:对文件进行自动命名处理

        进口java.util.UUID;      课堂演示{      公共静态void main (String [] args) {   System.out.println (UUID.randomUUID ());//85 a8ccb1 - 88 - f8 - 4 - b3c - 833 d d45b58e0204e      System.out.println (UUID.fromString (“85 a8ccb1 - 88 - f8 - 4 - b3c - 833 d d45b58e0204e "));//85 a8ccb1 - 88 - f8 - 4 - b3c - 833 d d45b58e0204e   }   }      

2,可选类库

  

可选的主要功能是进行零空指针处理

  

JDK祝辞=1.8

  

示例:单独处理空参数

        类消息{   私人字符串消息;      公共消息(字符串消息){   这一点。消息=消息;   }      公共字符串getMessage () {   返回this.message;   }   }      课堂演示{   公共静态孔隙showMessage(消息消息){   如果(消息!=null) {   System.out.println (message.getMessage ());   }   }      公共静态void main (String [] args) {   消息消息=新消息(“这是消息”);   showMessage(消息);      showMessage(空);   }   }      

几个方法

        最后公共类Optional{      公共staticOptional空(){   @SuppressWarnings(“unchecked”)   Optionalt=(OptionalOptional(T值){   返回新Optional<祝辞(价值);   }      公共静态& lt; T>OptionalofNullable (T值){   返回值=https://www.yisu.com/zixun/=零?空():(价值);   }      公共T get () {   如果(值==null) {   把新NoSuchElementException(“没有价值”);   }   返回值;   }      公共T orElse (T) {   返回值!=null & # 63;价值:其他;   }   }      

使用示例

        进口java.util.Optional;/* *   *存入   */OptionaloptOf=Optional.of(“信息”);//OptionaloptOfNull=Optional.of(空);//java.lang.NullPointerException      OptionaloptOfNullable=Optional.ofNullable(“信息”);   OptionaloptOfNullableNull=Optional.ofNullable(空);/* *   *取出   */System.out.println (optOf.get ());//消息      System.out.println (optOfNullable.get ());//消息//System.out.println (optOfNullableNull.get ());//java.util。NoSuchElementException:没有价值      System.out.println (optOf.orElse(“违约”));//消息      System.out.println (optOfNullable.orElse(“违约”));//消息      System.out.println (optOfNullableNull.orElse(“违约”));//默认      

自定义函数实现

        课堂演示{   getDefault公共静态字符串(字符串对象、字符串defaultValue) {   返回对象!=null & # 63;对象:defaultValue;   }      公共静态void main (String [] args) {   system . out。println (getDefault(“信息”、“默认”));//消息      system . out。println (getDefault (null,“默认”));//默认   }   }      

3, ThreadLocal类库

  

ThreadLocal解决线程同步问题

        公共T get ()   公共空集(T值)   公共空间remove ()      

定义发送消息类

        类消息{   私人字符串消息;      公共消息(字符串消息){   这一点。消息=消息;   }      公共字符串getMessage () {   返回this.message;   }   }      类频道{   私有静态消息消息;      公共静态孔隙setMessage(消息味精){   消息=味精;   }      公共静态无效发送(){   System.out.println (message.getMessage ());   }      }      

单线程下运行

        课堂演示{   公共静态void main (String [] args) {   消息消息=新消息(“你”好);   Chanel.setMessage(消息);   Chanel.send ();//你好   }   }      

多线程下运行,出现数据覆盖现象

        课堂演示{   公共静态void main (String [] args) {   新线程(()→{   通道。setMessage(新消息(“你好1 "));   Channel.send ();   },"线程1”).start ();      新线程(()→{   通道。setMessage(新消息(“你好2 "));   Channel.send ();   },"线程2”).start ();      新线程(()→{   通道。setMessage(新消息(“你好3 "));   Channel.send ();   },"线程3”).start ();/* *   *线程2你好3   *线程1你好1   *线程3你好3   */}   }

JAVA开发常用类库UUID、可选的,ThreadLocal, TimerTask, Base64使用方法与实例详解