随笔分类 - 学习i:技术学习分享
摘要:1. 使用Objects.equals比较对象 是JDK7提供的一种方法,可以快速实现对象的比较,有效避免烦人的空指针检查。但是这种方法很容易用错,例如: 1 Long longValue = 123L; 2 System.out.println(longValue==123); //true 3
阅读全文
摘要:什么是序列化 关于序列化相信大家都很了解,在 Java 中我们经常就可以看到很多实体类或者 POJO 都会实现 Serializable 接口,有了解过 Serializable 接口的小伙伴应该都知道,这个接口是一个空接口,只是用来标记的。所谓序列化简单来说就是在传输对象之前将对象转换成二进制字节
阅读全文
摘要:通过 entrySet 来遍历 1、通过 for 和 map.entrySet() 来遍历 第一种方式是采用 for 和 Map.Entry 的形式来遍历,通过遍历 map.entrySet() 获取每个 entry 的 key 和 value,代码如下。这种方式一般也是阿粉使用的比较多的一种方式,
阅读全文
摘要:本文讨论了四种主要的 API 架构风格,比较它们的优缺点,并重点介绍每种情况下最适合的 API 架构风格。 两个单独的应用程序需要中介程序才能相互通信。因此,开发人员经常需要搭建桥梁——也就是应用程序编程接口(API),来允许一个系统访问另一个系统的信息或功能。 为了快速、大规模地集成不同的应用程序
阅读全文
摘要:备份 scp 它是 Secure Copy 的缩写,表示安全拷贝。scp 可以使我们通过网络,把文件从一台电脑拷贝到另一台电脑。 scp 是基于 ssh 的原理来运作的, ssh 会在两台通过网络连接的电脑之间创建一条安全通信的管道, scp 就利用这条管道安全地拷贝文件。 scp source_f
阅读全文
摘要:查找文件 locate 搜索包含关键字的所有文件和目录。后接需要查找的文件名,也可以用正则表达式。 安装 locate yum -y install mlocate --> 安装包updatedb --> 更新数据库 [注意] locate 命令会去文件数据库中查找命令,而不是全磁盘查找,因此刚创建
阅读全文
摘要:Linux 基础 操作系统 操作系统 Operating System 简称 OS ,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。 操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序
阅读全文
摘要:27、资源释放写到 finally 比如在使用一个 api 类锁或者进行 IO 操作的时候,需要主动写代码需释放资源,为了能够保证资源能够被真正释放,那么就需要在 finally 中写代码保证资源释放。 如图所示,就是 CopyOnWriteArrayList 的 add 方法的实现,最终是在 fi
阅读全文
摘要:1、规范命名 命名是写代码中最频繁的操作,比如类、属性、方法、参数等。好的名字应当能遵循以下几点: 见名知意 比如需要定义一个变量需要来计数 int i = 0; 名称 i 没有任何的实际意义,没有体现出数量的意思,所以我们应当指明数量的名称 int count = 0; 能够读的出来 如下代码:
阅读全文
摘要:什么是序列化 关于序列化相信大家都很了解,在 Java 中我们经常就可以看到很多实体类或者 POJO 都会实现 Serializable 接口,有了解过 Serializable 接口的小伙伴应该都知道,这个接口是一个空接口,只是用来标记的。所谓序列化简单来说就是在传输对象之前将对象转换成二进制字节
阅读全文
摘要:目录 什么是Docker? Docker的应用场景有哪些? Docker的优点有哪些? Docker与虚拟机的区别是什么? Docker的三大核心是什么? 如何快速安装Docker? 如何修改Docker的存储位置? Docker镜像常用管理有哪些? 如何创建Docker容器? Docker在后台的
阅读全文
摘要:8. IOUtils IO流在我们日常工作中也用得比较多,尽管java已经给我们提供了丰富的API。 但我们不得不每次读取文件,或者写入文件之后,写一些重复的的代码。手动在finally代码块中关闭流,不然可能会造成内存溢出。 有个好消息是:如果你使用org.apache.commons.io包下的
阅读全文
摘要:5. BooleanUtils 在java中布尔值,随处可见。 如果你使用了布尔的包装类:Boolean,总感觉有点麻烦,因为它有三种值:null、true、false。我们在处理Boolean对象时,需要经常判空。 头疼!!! 但如果使用BooleanUtils类处理布尔值,心情一下子就愉悦起来了
阅读全文
摘要:前言 在java的庞大体系中,其实有很多不错的小工具,也就是我们平常说的:轮子。 如果在我们的日常工作当中,能够将这些轮子用户,再配合一下idea的快捷键,可以极大得提升我们的开发效率。 今天我决定把一些压箱底的小工具,分享给大家,希望对你有所帮助。 本文会分享17个我们日常工作中一定会用得到的小工
阅读全文
摘要:1. list转map 工作中,我们经常遇到list转map的案例。Collectors.toMap就可以把一个list数组转成一个Map。代码如下: 1 public class TestLambda { 2 3 public static void main(String[] args) { 4
阅读全文
摘要:1. 定义泛型方法 (1) 如果你定义了一个泛型(类、接口),那么Java规定,你不能在所有的静态方法、静态初块等所有静态内容中使用泛型的类型参数。例如: 1 public class A<T> { 2 public static void func(T t) { 3 //报错,编译不通过 4 }
阅读全文
摘要:函数式接口概念:一个接口中的抽象方法只有一个,那么这个接口就是一个函数式接口。 1、通过注解检测一个接口是否是一个函数式接口: @FunctionalInterface 在接口上直接加上注解,如果这个接口是一个函数式接口则不报错,否则编译报错 2、作用: (1)是Lambda表达式的使用前提 (2)
阅读全文
摘要:一、说明 Lambda表达式是什么 Lambda 表达式也称为闭包,是Java 8 发布的新特性 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中) 为什么要使用Lambda表达式 避免匿名内部类定义过多,可以让代码简洁紧凑,留下核心的逻辑 二、理解 语法格式 1 (parame
阅读全文
摘要:stream使用及原理 元素 Stream是一个来自数据源的元素队列,Stream本身并不存储元素。 数据源(即Stream的来源)包含集合、数组、I/O channel、generator(发生器)等。 聚合操作 类似SQL中的filter、map、find、match、sorted等操作 管道运
阅读全文
摘要:注解定义如下: 1 @Retention(RetentionPolicy.RUNTIME) 2 @Target(ElementType.METHOD) 3 @Documented 4 public @interface AliasFor { 5 6 @AliasFor("attribute") 7
阅读全文