Java
-
Java Stream API 1
你可能没意识到Java对函数式编程的重视程度,看看Java 8加入函数式编程扩充多少功能就清楚了。Java 8之所以费这么大功夫引入函数式编程,原因有二: 代码简洁,函数式编程写出…
-
默认标签解析 一
spring标签分为默认标签和自定义标签,两种标签的解析方式有很大不同。默认标签的解析是在parseDefaultElement函数中进行的,调用逻辑还是比较清晰的,分别对四种标签…
-
并发编程之线程池的使用
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低…
-
谈谈Java中的几种引用类型
Java 中的几种引用类型及其区别是什么? JDK 1.2 开始 Java 提供了四种引用类型,分别是强引用、软引用、弱引用、虚引用,其主要不同点体现在 GC 和使用上面。 强引用…
-
Java中的clone是什么?
为什么需要克隆? 因为在编程中会遇到一种情况,有一个 DemoBean 的对象实例 demo1 在某一时刻已经包含了一些有效值,此时可能会需要一个和 demo1 完全相同的新对象 …
-
Java中的枚举类型
枚举类比较用 == 还是 equals,有啥区别? java 枚举值比较用 == 和 equals 方法没啥区别,两个随便用都是一样的效果。因为枚举 Enum 类的 equals …
-
谈一谈Java中的内部类
Java 常见的内部类有哪几种,有哪些特征? 静态内部类、成员内部类、方法内部类(局部内部类)、匿名内部类。 静态内部类是定义在另一个类里面用 static 修饰 class 的类…
-
Java 8中处理集合的优雅姿势—Stream
在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增、删、改、查、聚合、统计、过滤等操作。相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和…
-
为什么不能在foreach循环里对元素进行remove/add操作
我们使用的增强for循环,其实是Java提供的语法糖,其实现原理是借助Iterator进行元素的遍历。 但是如果在遍历过程中,不通过Iterator,而是通过集合类自身的方法对集合…
-
什么是Java中的代码块
Java 代码块是什么?代码块的分类有哪些?作用是什么? 所谓代码块就是用大括号 {} 将多行代码封装在一起形成一个独立的数据体,用于实现特定的需求,一般来说代码块是不能单独运行的…
-
源码分析之LinkedList
注:本文所有方法和示例基于jdk1.8 概述 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的,是线程不安全的,允许元素为null…
-
ArrayList源码分析&自己动手写ArrayList
注:本文所有方法和示例基于jdk1.8 简介 ArrayList是我们开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是…
-
源码分析之HashMap
简介 HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,是非线程安全类,在多线程环境下可能会存在问题。 1.8版本的…
-
吃货眼中的那些和微服务关键词
对于搞架构的技术人来说 一起吃个火锅,喝个酒,聊个天 技术上的很多解决思路就出来了 一家5口人围着一张大桌子吃饭, 这叫单体架构 不想在家吃饭,去河底捞下馆子, 这叫需求多样性 厨…
-
Java中自增自减的坑
下面程序的运行结果是什么? 运行结果是 count = 0。首先 count++ 是一个有返回值的表达式,返回值是 count 自加前的值,Java 对自加处理的流程是先把 cou…
