随笔分类 - java se
java基础部分,多线程高并发,I/O流,网络编程
摘要:一个栗子 一个被举了无数次的例子: List arrayList = new ArrayList(); arrayList.add("aaaa"); arrayList.add(100); for(int i = 0; i< arrayList.size();i++){ String item =
阅读全文
摘要:Stream流引入 Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。(Lambda表达式详解在上篇博客内容) 现有一个需求: 将list集合中姓张的元素过滤到一个新的集合中 然后将过滤出来的姓张的元素中,再过滤出来长度为3的元素
阅读全文
摘要:Lamdba表达式 方法引用 先来看一下什么是方法引用: 方法引用其实是Lambda表达式的另一种写法,当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用; 注意: 实现抽象方法的参数列表,必须与方法引用方法的参数列表保持一致! 方法引用:使用操作符::将方法名和对象或类的名字分隔
阅读全文
摘要:JUC并发编程 多线程 四种创建方式 继承Thread(Thread实现了Runnable接口) 实现Runnable(这种方式需要将该实现类作为参数调用Thread对象) 实现Callable(需要FutureTask接收返回值) 使用线程池 线程的状态 线程方法 yield()方法会重新让线程回
阅读全文
摘要:对象序列化 一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。 一个静态变量不管是否被transient修饰,均不能被序列化。 第一点和第二点区别:transient修饰的变量是序列化到txt文件中之后无法被反序列化并打印出来,静态变量是根本无法序列
阅读全文
摘要:File 构造方法 public File(String pathname);//主要在Java EE的开发之中 public File(File parent, String child);//主要在Android开发之中 获取文件的基本信息 除了以上的常用的方法之外,在File类之中还可以通过以
阅读全文
摘要:先看hashMap的构造方法 public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial ca
阅读全文
摘要:自动装箱、拆箱 看完了包装类型的便捷性后,我们再来落实到自动装箱、自动拆箱上... 怎么就自动装箱,自动拆箱了呢? 上一段代码,看看哪是自动装箱跟自动拆箱: // 自动装箱 Integer a = 100; // 自动拆箱 int b = a; 自动装箱,相当于Java编译器替我们执行了 Integ
阅读全文
摘要:Java代码的三个阶段 注解与反射 注解 @Target({ElementType.TYPE,ElementType.METHOD})//表示注解的作用域@Retention(RetentionPolicy.RUNTIME)//什么时候生效@Documented//表示方法已经过时,但是还能用@In
阅读全文
摘要:Java当中的四种引用 强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)4 种,这 4 种引用的强度依次减弱。 一,强引用 Java中默认声明的就是强引用,比如: Object o
阅读全文
摘要:集合框架图 如何重写hashCode 整理出你判断对象相等的属性,然后取一个尽可能小的正整数(尽可能小时怕最终得到的结果超出了整型int的取数范围),这里我取了17,(好像在JDK源码中哪里看过用的是17),然后计算17*属性的hashcode+其他属性的hashcode,重复步骤。 @Overri
阅读全文