![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
HachiLin
so high so low,so many thing to know.
展开
-
Java使用for和迭代器Iterator中remove比较
1. Iterator介绍 对于java中的集合类(Collection),可以使用迭代器Iterator对集合中的元素进行遍历。迭代器是一种设计模式,它可以在不暴露集合中元素的情况下而去遍历集合中的所有元素。 Iterator为一个接口,只定义了三个方法,hasNext(),next(),和remove()。Collection接口继承Iterable接口,提供了一个iterator()方法,使得Collection子类通过iterator()方法获取Collection内部实现的Iterator原创 2021-04-10 11:27:22 · 582 阅读 · 0 评论 -
Java 8中的mapToInt
1. 介绍 Stream mapToInt(ToIntFunction mapper)返回一个IntStream,其中包括将给定函数应用于此流的元素的结果。既然有mapToInt,那么必定有mapToDouble,mapToLong等操作,不过学习了这个其它的就一目了然了。2. 例子import java.util.Arrays;import java.util.List;public class mapToIntTest { public static void main(Strin原创 2021-02-28 16:49:17 · 25705 阅读 · 1 评论 -
Java8中的IntStream,LongStream,DoubleStream
1. 简介 IntStream、LongStream 和 DoubleStream 分别表示原始 int 流、 原始 long 流 和 原始 double 流。 这三个原始流类提供了大量的方法用于操作流中的数据,同时提供了相应的静态方法来初始化它们自己。这三个原始流类都在 java.util.stream 命名空间下。 其他两个流操作其实是很类似的,所以下面就只举例IntStream。2. IntStream java.util.stream.IntStream 是一个原始整数值序列 (原创 2021-02-21 20:39:08 · 433 阅读 · 0 评论 -
Java8中的Collectors.toMap
Collectors.toMap会经常和流stream配合使用,可以将一个List转化为Map。在使用的过程中需要避免key冲突问题,通过以下例子就一目了然了。例子package com.company;import java.util.*;import java.util.function.Function;import java.util.stream.Collectors;public class collectorsToMapTest { public static cl原创 2021-02-16 18:28:20 · 735 阅读 · 0 评论 -
Java中AtomicInteger
1. 介绍 在Java语言中,++i和i++操作都不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。AtomicInteger,命名带有Atomic,很明显本身是原子性。这个类常是线程安全,多用于高并发对数据的修改。2. 使用例子import java.util.concurrent.atomic.AtomicInteger;@Testpublic void use AtomicInteger() { AtomicInteger integer = new A原创 2021-02-15 21:21:57 · 592 阅读 · 2 评论 -
java8四大基本函数式接口
java8中提供了四个内置的函数式接口,通过直接使用这四个接口,或者使用它们的扩展接口,可以让我们很方便的使用lambda表达式。1. Consumer<T> 消费型接口@FunctionalInterfacepublic interface Consumer<T> { /** * Performs this operation on the given argument. * * @param t the input argume原创 2021-02-14 17:22:02 · 896 阅读 · 0 评论 -
java中的thorw和throws
1. throws关键字 throws关键字通常应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。public class ThrowsTest { //定义方法并抛出NegativeArraySizeException异常 public static void testThrows() throws NegativeArraySizeException { int[] arr = n原创 2020-12-28 15:30:34 · 208 阅读 · 0 评论 -
java8新特性Optional用法
Java8引入Optional库来解决NullPointerException ,从而避免源码被各种null检查污染,以便开发者写出更加整洁的代码。引用import java.util.Optional;使用1Optional<String> test = Optional.ofNullable(null);System.out.println(test.isPresent());System.out.println(test.orElseGet(()->"[none原创 2020-12-27 09:57:25 · 167 阅读 · 0 评论 -
Java8 接口interface默认方法
在 java 8 之前,接口与其实现类之间的 耦合度 太高了(tightly coupled),当需要为一个接口添加方法时,所有的实现类都必须随之修改。默认方法解决了这个问题,它可以为接口添加新的方法,而不会破坏已有的接口的实现。接口默认方法有两种:1. 非静态默认方法定义package com.testpublic interface DefaultTest { default void print() { System.out.println("我是非静态方法!");原创 2020-12-13 10:08:29 · 497 阅读 · 0 评论 -
Java序列化和反序列化
1. 什么是序列化和反序列化序列化:把Java对象转化为字节序列的过程。反序列化:把字节序列恢复为Java对象的过程。2. 为什么需要序列化和反序列化把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中。在网络上传送对象的字节序列。3. 如何实现序列化与反序列化3.1 JDK类库中序列化API使用到JDK中关键类 ObjectOutputStream(对象输出流) 和ObjectInputStream(对象输入流)ObjectOutputStream 类:通过使用 writeO原创 2020-11-21 20:15:04 · 172 阅读 · 0 评论 -
String、StringBuffer、StringBuilder, StringJoiner 的区别
1. StringJava中的String对象是不可变对象,针对字符串对象的操作(例如subString、contact、replace)都会生成一个新的String对象,如果应用中有大量这样的操作,就会产生大量的临时String对象,然后将指针指向新的String对象,会影响Java应用运行的性能,所以经常改变内容的字符串最好不要用 String 。2. StringBufferJDK 1.0中提供了StringBuffer类,这个类的对象是可变对象,它的原理是申请一个缓冲区来存放字符串,可以避免产原创 2020-10-25 11:33:51 · 1490 阅读 · 0 评论 -
Java 读取Excel文件(xlsx/xls/csv)
1. 读取xlsxprivate static FormulaEvaluator evaluator;String static void readXlsx(String path) { try{ // 读取的时候可以使用流,也可以直接使用文件名 FileInputStream is = new FileInputStream(path); Workbook xwb = new XSSFWorkbook(is);原创 2020-09-13 15:30:07 · 4581 阅读 · 1 评论 -
Java8中的Stream
1. 什么是Stream Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等,Stream 会隐式地在内部进行遍历,做出相应的数据转换。 Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍原创 2020-09-13 15:28:49 · 180 阅读 · 0 评论 -
Java常用的时间操作
1. Date与String互换1.1 Date转Stringpublic static String Date2Str(Date date, String format) { // 自定义返回时间格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); return simpleDateFormat.format(date);}1.2 String转Datepublic static Str原创 2020-09-13 15:27:53 · 204 阅读 · 0 评论 -
JAVA中的变量
在学习JAVA中的变量时先学习JAVA中的基本数据类型。这些基本数据类型的区别在于:代码示例:int a=1;byte b=1;short c=1;long d=10L;//也可以为10l。double e=1.0;//也可以为1.0D或1.0d。float f=1.0f;//也可以为1.0F。然后根据变量的位置和用处又可分为局部变量,实例变量与类变量。**一.局部变量**1.局部变量只能原创 2017-03-09 00:02:39 · 299 阅读 · 0 评论