随笔分类 -  Java基础

摘要:@Test public void testChangeStudents() { List<Student> students = new ArrayList<Student>() {{ add(Student.builder().age(50).build()); add(Student.buil 阅读全文
posted @ 2022-06-15 17:04 lllunaticer 阅读(88) 评论(0) 推荐(0)
摘要:综述 下面以一个常见的需求为例,分析Java 8的函数式编程与常规的面向对象式编程的不同之处。函数式编程和面向对象式编程最根本的不同之处在于,在面向对象的世界,函数功能不能独立于数据而存在,一个函数功能必须存在于一个包含数据的对象中,服务于特定的数据。也就是说,在面向对象时,对象是编程的最小单元,而 阅读全文
posted @ 2020-01-14 12:59 lllunaticer 阅读(913) 评论(1) 推荐(1)
摘要:这几个接口都在 包下的,分别是 (消费型)、 (供给型)、 (谓词型)、 (功能性) 下面从具体的应用场景来讲讲这个接口的用法。 Consumer接口 源码: Consumer.java 使用Consumer接口的示例 输出: 说明: 1. 是一个接口,并且只要实现一个 方法,就可以作为一个 “消费 阅读全文
posted @ 2019-12-03 15:03 lllunaticer 阅读(1702) 评论(0) 推荐(1)
摘要:节译自 "GeeksforGeeks" Java 中的Stream 从`Java 8 stream`对象使得可以使用流水线的方式对这些对象施加各种处理从而得到想要的结果。 的特点有: + 不是一种数据结构,它以各种集合类、数组或者IO流作为输入; + 不改变原有的数据结构,它为各个流水线方法提供输入 阅读全文
posted @ 2019-12-02 20:03 lllunaticer 阅读(239) 评论(0) 推荐(0)
摘要:问题陈述 在编程的时候,有时候我们遇到有些 类有很多的 ,于是在构造该 的时候我们可能要提供一个入参很长的构造方法。例如下面的 类: Person.java 在构造 类的时候,我们不得不new 一个带有极长参数列表的构造函数: 这么写从逻辑和功能上来说没有错,但是客户端在调用的时候很容易传错参数。如 阅读全文
posted @ 2019-12-02 13:18 lllunaticer 阅读(341) 评论(0) 推荐(0)
摘要:Overview 和`AutoCloseable close()`方法。 : 定义于 包中,于 添加; : 定义于 包中, 于 添加; AutoCloseable.java 从 开始, 扩展了 Closeable.java 因此从 开始, 和`AutoCloseable AutoCloseable` 阅读全文
posted @ 2019-11-28 17:49 lllunaticer 阅读(2274) 评论(1) 推荐(2)
摘要:本文节译自 GeeksForGeeks Java 8 函数式接口 “函数式接口(Functional Interface)”这个名称来源于"函数式编程(Functional Programming)", 我们最常用的面向对象编程(Java)属于命令式编程(Imperative Programming 阅读全文
posted @ 2019-11-13 17:37 lllunaticer 阅读(374) 评论(0) 推荐(0)
摘要:双重检查锁定与延迟初始化 在Java多线程程序中,有时候需要采用延迟初始化来降低初始化类和创建对象的开销。双重检查锁定是常见的延迟初始化技术,但它是一个错误的用法。 非线程安全的延迟初始化对象 package 双重检查锁定与延迟初始化; //非线程安全的延迟初始化对象 public class Un 阅读全文
posted @ 2019-08-19 18:12 lllunaticer 阅读(287) 评论(0) 推荐(0)
摘要:常见数据类型的取值范围 记住 int的取值范围大约是21亿左右 JAVA修饰符 JAVA关键字 JAVA命名规则 阅读全文
posted @ 2019-06-10 14:03 lllunaticer 阅读(250) 评论(0) 推荐(0)
摘要:1. Map按值排序 我们都知道TreeMap可以按key自动排序,有时候我们也会遇到需要按value排序的情况。首先需要明确的一点是, TreeMap无法完成按value排序的功能,因此遇到按值排序的需求没有必要使用TreeMap, 因为强行使用TreeMap将会按key排序,这个排序过程对我们的 阅读全文
posted @ 2019-05-10 11:16 lllunaticer 阅读(4005) 评论(0) 推荐(0)
摘要:先给出一道题,测试平台是Acwing, 这道题是腾讯2019年春招提前批笔试第二题。题目不难,但是如果不注意细节,很容易TLE(超时) https://www.acwing.com/problem/content/570/ 下面的做法是用JAVA scanner依次读入输入数据,但这样做的效率较低, 阅读全文
posted @ 2019-04-05 11:25 lllunaticer 阅读(1077) 评论(0) 推荐(0)
摘要:下面的代码用于取4和2的中点,但结果不是我们预期中的3,原因是位移运算符优先级低于加减: 1 public class test { 2 public static void main(String[] args) { 3 System.out.println(2+(4-2)>>1); 4 } 5 阅读全文
posted @ 2019-03-15 21:25 lllunaticer 阅读(1049) 评论(0) 推荐(0)