随笔分类 - Java
摘要:HashMap 类结构 继承AbstractMap<K,V> 实现Map<K,V> Map基本方法 实现Cloneable 浅克隆 实现Serializable 序列化 成员变量 // 默认初始化容量 static final int DEFAULT_INITIAL_CAPACITY = 1 <<
阅读全文
摘要:ArrayListy 类结构 继承AbstractList 实现List list基本方法 实现RandomAccess 支持随机访问(下标) for效率高于迭代器(对比LinkedList) 实现Cloneable 浅克隆 实现Serializable 序列化 成员变量 默认容量 private
阅读全文
摘要:Object类 Object 类的常见方法有哪些? Object 类是一个特殊的类,是所有类的父类。它主要提供了以下 11 个方法: /** * native 方法,用于返回当前运行时对象的 Class 对象,使用了 final 关键字修饰,故不允许子类重写。 */ public final nat
阅读全文
摘要:JAVA基础串讲 知识整体梳理 八种基本类型,byte的范围 基本类型、对象、数组 引用传递和值传递 equals和==的区别 equals()和hashcode()方法 String不可变的理解,String, StringBuilder和StringBuffer String.intern()方
阅读全文
摘要:泛型与反射 泛型 泛型说明 泛型,即“参数化类型”。简单的说 泛型就是函数的参数类型可以变化 接口、类和方法也都可以使用泛型去定义,以及相应的使用。在具体使用时,可以分为泛型接口、泛型类和泛型方法, 由于接收来自外部使用时候传入的类型实参。那么对于不同传入的类型实参,生成的相应对象实例的类型是不是一
阅读全文
摘要:序列化 简而言之:序列化的作用就是为了不同jvm之间共享实例对象的一种解决方案 什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JV
阅读全文
摘要:this的引用与类变量 示例: class caculate { static int staticVar = 0; //类变量、静态变量 static final float STATIC_CONSTANT = 1; //类变量、静态常量 int xPos, yPos; //实例变量 double
阅读全文
摘要:错误与异常 参照范例: String[] strs = {"123","456"}; System.out.println(strs[3]); //会下标越界,跑RuntimeException 整体说明 Throwable: 有两个重要的子类:Exception(异常)和 Error(错误) Er
阅读全文
摘要:final/finally/finalize 关键词描述 final. 用于声明属性,对象,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 final声明对象表示的是对应的引用不可变,但是对象的值可以变,参照如下范例: final StringBuffer buffer = new Str
阅读全文
摘要:现象对象特性 面向对象三大特性 封装、继承、多态是面向对象的三大特性。 封装就是将属性私有化,提供公有的方法访问私有属性。通过封装,可以实现对属性的数据访问限制,同时增加了程序的可维护性。封装并不仅仅限于属性,也包括方法 继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新
阅读全文
摘要:运算符 运算符优先级 () > 单目优先级 > 双目运算 > 三目运算 > = 表达式求值 表达式求值在Java内部是用两个栈来实现的,包括运算符栈+操作数栈,要从这个角度理解运算符的优先级,“表达式求值”问题,两个核心关键点: 双栈,一个操作数栈,一个运算符栈; 运算符优先级,栈顶运算符,和,即将
阅读全文
摘要:编码与字符集 编码与字符集的区别 我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。 什么是字符编码? 字符集只是一个规则集合的名字,对应到真实生活中
阅读全文
摘要:原码、反码和补码 原码、反码和补码 原码:所谓原码就是符号位加上数字的二进制表示,int为例,第一位表示符号 (0正数 1负数) 例如: +7的原码为: 00000111 -7的原码为: 10000111 对于原码来说,绝对值相等的正数和负数只有符号位不同 反码:一个数如果为正,则它的反码与原码相同
阅读全文
摘要:数组与集合 数组与集合区别 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中, JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。 数组与集合的区别(参考文章:
阅读全文
摘要:类型转换与基本类型包装类 基本数据类型转换 在实际应用中,经常需要在不同类型的值之间进行操作,这时就需要进行数据类型的转换。 数据类型转换有两种: 自动类型转换:编译器自动完成类型转换,不需要在程序中编写代码; 规则:从存储范围小的类型到存储范围大的类型。 具体规则:byte(8b)→short(c
阅读全文
摘要:基本类型与对象说明 基本类型又叫内置数据类型,对象又叫引用数据类型。 基本类型共8种,其他的都是对象类型 java基本类型 基本类型共8种,需要牢记: byte数据类型是8位、有符号的,以二进制补码表示的整数 short数据类型是16位、有符号的以二进制补码表示的整数 int数据类型是32位、有符号
阅读全文
摘要:背景介绍 在日常开发中免不了进行一些繁琐的代码自动生成,虽然 ide 的功能已然非常强大但是并不能够做到动态,lombok 可以非常好的解决这个问题。它会在生成 class 文件时将其进行编译成平常所写的代码,这里介绍一些我个人觉得比较好用的注解 lombok 先上官网地址。如果想了解更多注解可以去
阅读全文
摘要:方法返回多个对象 @Data @AllArgsConstructor @NoArgsConstructor @Builder public class Apple { private String name; private Integer price; } @Data @AllArgsConstr
阅读全文
摘要:List遍历方法 个人最常用的是增强for和stream流 简单for循环 List<Integer> list = Arrays.asList(1, 2, 3, 4); AtomicInteger sum3 = new AtomicInteger(); for (int i = 0; i < li
阅读全文