Java
gerald2008
无
展开
-
Java日期与时间 LocalDate、LocalDateTime函数
java.util.Date 是从 JDK 1.0 开始提供,易用性差JDK 1.1 废弃了 Date 中很多方法,新增了并建议使用 java.util.Calendar 类为了解决 JDK 中时间与日期较难使用的问题,JDK 1.8 开始,吸收了 Joda-Time 很多功能,新增 java.time 包,加了新特性:LocalDate 本地日期LocalTime 本地时间LocalDateTime 本地日期+时间Instant 时间戳,适合机器时间计算Duration原创 2022-06-26 10:36:02 · 3702 阅读 · 1 评论 -
后缀数组模板
记录模板,直接用好了原创 2022-06-18 14:41:52 · 243 阅读 · 0 评论 -
JAVA 使用lambda内部修改外部局部变量的值
/*** 在lambda表达式内部,修改lambda表达式外部的局部变量的值*/private synchronized void updateLocalVariable() { List<String> list = new ArrayList<>(); list.add("444"); list.add("4444"); int count = 0; // 这样写会报错。Local variable result d...原创 2022-05-29 13:05:03 · 5137 阅读 · 0 评论 -
Java并发编程,你需要知道的
1.并发编程三要素原子性 原子,即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。 有序性 程序执行的顺序按照代码的先后顺序执行。(处理器可能会对指令进行重排序) 可见性 当多个线程访问同一个变量时,如果其中一个线程对其作了修改,其他线程能立即获取到最新的值。2. 线程的五大状态创建状态 当用 new 操作符创建一个线程的时候 就绪状态 调用 start 方法,处于就绪状态的线程并不一定马上就会执行 run 方法,还需要等待CPU..原创 2022-05-27 22:34:01 · 181 阅读 · 0 评论 -
阻塞多线程
列举了六种阻塞方案//BLOCKING Queuepublic class FooBar { private int n; private BlockingQueue<Integer> bar = new LinkedBlockingQueue<>(1); private BlockingQueue<Integer> foo = new LinkedBlockingQueue<>(1); public FooBar(in原创 2022-05-27 22:00:37 · 119 阅读 · 0 评论 -
Java 8 Stream 流重用
Java 8 Stream 流已被操作或关闭,在Java 8中,Stream不能重复使用,一旦被使用,流将被关闭。那有些时候我们需要重复使用流该怎么办呢?我们可以巧用java 8的Suppliers接口Supplier接口产生一个给定类型的结果。与Function不同的是,Supplier没有输入参数。package test;import java.util.function.Supplier;import java.util.stream.Stream;public class.原创 2022-05-24 09:14:32 · 962 阅读 · 0 评论 -
Java optional parameters(Java中的可选参数)
...该用法的意思是--可变长参数,就是说这个位置可以传入任意个该类型参数,简单来说就是个数组。package com.yzl.attachedtest;public class PointsTest {public static void testPoints(Integer... itgr){if(itgr.length == 0){System.out.println("没有integer参数传入");}else if(itgr.length == 1){System.out原创 2022-05-08 13:13:25 · 770 阅读 · 0 评论 -
用Optional处理 null
ofNullableOptional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。public static String getGender(Student student) { return Optional.o...原创 2022-05-02 08:38:15 · 1597 阅读 · 0 评论 -
重写hashcode、compareTo和equals的方法
// 重写hashcode方法 @Override public int hashCode() { int result = name.hashCode(); result = 17 * result + sex.hashCode(); result = 17 * result + age.hashCode(); return result; } // 重写equals方法 @Override public boolean equals(Object obj) { .原创 2022-04-23 13:42:06 · 375 阅读 · 0 评论 -
int[] 转 Map
int[] nums;Map<Integer,Integer> map=new HashMap<>(Stream.iterate(0,a->a+1).limit(nums.length).collect(Collectors.toMap(a->words[a],Function.identity())));原创 2020-03-28 20:37:13 · 1185 阅读 · 0 评论 -
Java HashMap 新增方法(merge,compute)
Java8 Map里新增了几个方法,很多同学不知道具体功能是啥。先从最简单的开始。putIfAbsent()HashMap<String, String> map = new HashMap<String, String>();map.putIfAbsent("k", "v");等价于:(功能等价,效率并不等价)HashMap<String, String> map = new HashMap<String, String>原创 2022-04-15 14:14:25 · 1282 阅读 · 0 评论 -
Java正则表达式查找字符串
想用java的正则表达式查找字符串,发现要调好几个方法,比较python麻烦好多,于是封装了个方法,第一个参数是正则表达式,第二个参数是被查找的文本public static List<String> regEx(String patten,String textArea) { String pattern = patten; Pattern compile = Pattern.compile(pattern); Matcher matche...原创 2021-07-18 13:35:59 · 1905 阅读 · 0 评论 -
JAVA 进制转换的几个方法
进制转化在JAVA中已经封装好了.无论是常规的10转2,8,16,还是相对应的2,8,16进制转化为10进制的方法,当然也包括10->n进制,n进制转10进制的常规方法.都被封装在Integer对象中.10进制转化其他进制 对应的方法,参数:n(原10进制数据),r(进制), 返回值10进制转2进制 Integer.toBinaryString(n); 一个二进制字符串.10进制转8进制 Integer.toOctalString(n); 一个八...原创 2021-07-03 10:26:57 · 503 阅读 · 0 评论 -
JDK 14的新特性:switch表达式
连写case先看一个老版本的例子: @Test public void useOldSwitch(){ switch (MONDAY) { case MONDAY: case FRIDAY: case SUNDAY: System.out.println(6); break; case TUESDAY: ...原创 2021-05-15 22:52:52 · 261 阅读 · 0 评论