随笔分类 - 编程基础 / Java 编程基础
摘要:Java8 新特性中有几个比较主要的特性,Lambda 表达式、函数式接口、方法引用和几个新增库 Stream API、Optional 类等。 Lambda 表达式简介 什么是 Lambda ? Lambda 表达式其实就是一种匿名函数,在这之前大家可能还接触过匿名内部类,虽然也是一种匿名函数,但
阅读全文
摘要:lombok 简介 lombok(官网)提供了简单的注解形式,以简化或消除一些必须要有但又显得臃肿的 Java 代码,尤其是针对 POJO 类。 配置安装 步骤一:导入依赖 <!--简化代码的工具包--> <dependency> <groupId>org.projectlombok</groupI
阅读全文
摘要:引言 对于 Java 程序员来说,空指针一直是恼人的问题,我们在开发中经常会受到 NullPointerException 的蹂躏和壁咚。Java 的发明者也承认这是一个巨大的设计错误。 那么关于 null,我们应该知道下面这几件事情来有效地了解 null,从而避免很多由 null 引起的错误。 大
阅读全文
摘要:网络编程简介 网络编程:指在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。 网络编程三要素: IP 地址:网络中设备的唯一标识。 端口号:设备上应用程序的唯一标识。(用两个字节表示的整数,它的取值范围是 065535。其中,01023 之间的端口号用于一些知名的网络服务和应用,普通的应用
阅读全文
摘要:YAML 简介 什么是 YAML ? YAML(YAML Ain't Markup Language,即 YAML 不是一种标记语言),也可以叫做 YML 。YAML 是一种直观的、能够被电脑识别的数据序列化格式,容易被人类阅读,容易和脚本语言交互,可以被支持 YAML 库的不同编程语言程序所导入(
阅读全文
摘要:String 类 String 概述 String 类在 java.lang 包下,所以使用的时候不需要导包。 String 类代表字符串,Java 程序中的所有字符串文字(例如"abc")都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。 字符串不可
阅读全文
摘要:JSON 序列化 API 序列化指把对象通过流的方式存储到文件中,反序列化则是指把文件中的字节内容读出来并还原成 Java 对象。 JSON 序列化是快速编写 Java 单元测试用例的技巧之一。这里以 Fastjson 为例,介绍一些 JSON 序列化技巧。 Fastjson 简介 Fastjson
阅读全文
摘要:Maven 介绍 什么是 Maven ? 在学习 Maven 之前,我们先来看一下,没使用 Maven 构建的项目都会有哪些问题。 假设你现在做了一个 CRM 的系统,项目中肯定要用到一些 jar 包,比如说 mybatis、log4j、JUnit 等。除了这些之外,还有可能用到我们同事开发的其他的
阅读全文
摘要:单例设计模式 什么是单例设计模式? 单例设计模式,即保证一个类在内存中只有一个对象。 单例设计模式有两种实现方式,分别是饿汉单例设计模式和懒汉单例设计模式 推荐使用饿汉单例设计模式,因为懒汉单例设计模式会存在线程安全问题,解决方案如下示例。 饿汉单例设计模式 设计步骤: 私有化构造函数。 声明本类中
阅读全文
摘要:什么是正则表达式? 正则表达式(regex):通常被用来检索、替换那些符合某个模式(规则)的文本。 格式: 字符串.matches(匹配规则); // 并且会返回 boolean 元字符 表示字符 元字符 匹配规则说明 . 匹配任何字符(与行结束符可能匹配也可能不匹配) \d 匹配数字,即 [0-9
阅读全文
摘要:包(Package)介绍 包:本质上就是文件夹。 包的作用 解决类名重复产生冲突的问题(后编译的类名会把前面的类名覆盖掉)。 便于软件版本的发布。 包的定义格式 都是小写字母。 多级包之间使用"."进行分割。 多级包的定义规范:公司的网站地址翻转(去掉 www)。 比如百度的网站址为 www.bai
阅读全文
摘要:Log4J 介绍 程序中的日志可以用来记录程序在运行时的所有信息,并可以进行持久化存储。 日志与输出语句的区别: 功能 输出语句 日志技术 取消输出 需要修改代码,灵活性比较差 不需要修改代码,灵活性比较好 输出位置 只能是控制台 可以将日志信息写入到文件或者数据库中 多线程 和业务代码处于一个线程
阅读全文
摘要:什么是注解? Java 注解(Annotation)又称为“元数据”,是指对程序进行标注和解释。它为我们在代码中添加信息提供了一种形式化的方法。 注解和注释的区别: 注释:给程序员看的。 注解:给编译器看的。 使用注解进行配置的优势:使得代码更加简洁、方便。 注意事项: 想用好注解,前提是熟悉 Ja
阅读全文
摘要:枚举介绍 什么是枚举? 某些方法所接收的数据必须在固定范围之内的,如方向、性别、季节、日期等。 枚举的定义格式: // // 注意: 定义枚举类需要用关键字enum public enum s { 枚举项1, 枚举项2, 枚举项3; } 示例:限制性别输入 /* JDK1.5 之前的解决方案:自定义
阅读全文
摘要:什么是反射? 反射是 Java 中一个非常重要的高级特性,基本上 Spring 等一系列框架都是基于反射的思想写成的。 什么是反射? 在程序的运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法; 这种动态获取类信息以及动态调用对象方法的功能
阅读全文
摘要:什么是类加载器? 类加载器:负责将 .class 文件(存储的物理文件)加载在到内存中。 类加载的过程 类加载时机 类进行加载的时机有如下场景: 创建类的实例(对象)。 调用类的类方法。 访问类或者接口的类变量,或者为该类变量赋值。 使用反射方式来强制创建某个类或接口对应的 java.lang.Cl
阅读全文
摘要:多线程介绍 什么是多线程? 多线程是指一个进程中包含的多个执行流(可执行的计算单元),即在一个进程中可以同时运行多个不同的线程,来执行不同的任务(注意,一个 CPU 同一时间只能执行一个线程)。 好处: 使用多线程的好处是可以提高 CPU 的利用率。在多线程程序中,当其中一个线程必须等待的时候,CP
阅读全文
摘要:File 类 File 类介绍 它是文件和目录的路径名的抽象表示。 文件和目录是可以通过 File 封装成对象的。 对于 File 而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是实际存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转换为具体的存在。 File
阅读全文
摘要:集合 集合简介 数组和集合的区别: 相同点: 都是容器,可以存储多个数据。 不同点: 存储长度:数组长度在初始化时指定,意味着只能保存定长的数据;而集合可以保存数量不确定的数据。 存储类型:数组可以存基本数据类型和引用数据类型;集合只能存引用数据类型(实际上只是保存对象的引用变量),而如果要存基本数
阅读全文
摘要:异常简介 异常概念 异常,就是程序出现了不正常的情况。 如果程序出现了问题,我们没有做任何处理,那么最终 JVM 会做默认的处理,其处理方式有如下两个步骤: 把异常的名称、错误原因及异常出现的位置等信息输出在了控制台。 程序停止执行。 控制台在打印异常信息时,会打印异常类名、异常出现的原因、异常出现
阅读全文