摘要:
final在修饰类、方法、和变量时意义不通,但最终本质是一样的:不可改变的,最终的。 ## 变量 - final在修饰变量时表示常量,只能赋值一次,但是final所修饰局部变量和成员变量有所不同: 1. final修饰的局部变量在使用之前被赋值一次才能使用。 2. final修饰的成员变量在声明时没 阅读全文
摘要:
因为懒,记录下equal重写的简单模板。 ```java @Override public class Elem{ public boolean equals(Object obj){ if(obj==null){ return false; } if(this==obj){ return true 阅读全文
摘要:
先将对象进行序列化,再转成对象,以此进行深拷贝。 此方法有个缺陷:如果对象里有属性是不能序列化的,那么此属性就无法进行拷贝,属性值丢失,以下直接将此值进行了赋值。 ```java public static T deepCopyObject(T object, Class clazz) { try 阅读全文
摘要:
## 所需 java 类 ``` import java.text.SimpleDateFormat; import java.util.Date; ``` ## 方法 ``` SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyy 阅读全文
摘要:
## 一、基本操作 ### 1. 新建 git 仓库 ``` git init ``` [![img](https://img.iszy.xyz/1669185106451.png)](https://img.iszy.xyz/1669185106451.png) ``` git init -b m 阅读全文
摘要:
因为公司使用了gerrit,导致每次推送代码的指针从```refs/heads/*```变成了```refs/for/*```,而我一直用IDEA自带的提交(懒的敲命令),每次都往```refs/heads/*```提交,每次都不成功,所以记录下修改命令: ```bash git config re 阅读全文
摘要:
# 思路 1. 从最后的非叶子节点开始,从后向前构建一个堆(大顶堆/小顶堆);即最后的非叶子节点和其下的叶子节点构成一个大顶堆,然后再找前面一个非叶子节点继续 2. 此时根节点是最大的数据,然后将根节点和最后一位进行交换 3. 交换后,排除最后一位最大值,再从根节点开始构建大顶堆 4. 重复2,3步 阅读全文
摘要:
# 思路 问题描述:在采用顺序存储结构的有序数组中,查找目标元素,如果目标元素存在,返回对应的数组下标。 假设查找的有序数组为升序,二分查找采用以下的思路进行解决: 1. 将数组中间位置的元素与目标元素比较,如果二者相等,则查找成功;否则,从中间位置将数组分为前、后两个数组; 2. 如果中间位置的元 阅读全文
摘要:
# 思路 数组排序主要分为两个部分:划分数组和归并排序。 划分数组: 1. 将待排序的无序数组分为左右两个部分,如果无序数组的起始元素下标为first,最后一个元素的下标为last,那么左右两部分之间的临界点下标mid=(first+last)/2,这两部分分别是arr[first … mid]和a 阅读全文
摘要:
# 思路 通过一趟排序将无序数组划分成独立的两部分,其中一部分的所有元素比另外一部分的所有元素都要小,然后再按此方法对这两部分元素分别进行快速排序,整个排序过程可以递归进行,以此达到整个无序数组变成有序数组的目的。 快速排序主要分为以下步骤: 1. 从无序数组中取出一个元素作为基准元素; 2. 划分 阅读全文