- 博客(82)
- 收藏
- 关注
原创 报错问题Parameter index out of range(0 < 1) (1 > number of parameters,which is 0
报错Parameter index out of range(0 < 1)(1 > number of parameters,which is 0)
2022-06-21 16:46:46 2589
原创 为什么重写equals方法,为什么重写equals方法就要重写hashcode方法。(非常容易理解)
我们知道==判断的是,是不是同一个地址。可以说是判断是不是同一个。重写equals方法,是我们创建几个不同的对象,看看他们的属性值(自己规定哪些值)是不是一样。当重写后equals会返回true。但是为什么还要重写hashCode呢。当我们把对象放入HashSet集合中,发现,HashSet在加入时会根据hash值添加。hash值不同的话会被当成不同对象,然后加入,就不能去重了。当我们重写了hashcode方法后,这两个对象在加入hashset中就只能加一个了。这里补充 has...
2022-03-21 23:25:02 299
原创 linux常用基本命令
linux常用命令cd空格/ 回到根目录 进入根目录的bin cd /bincd usr 进入usr cd ~ 切换到主用户目录 cd - 切换到上一所在目录tab键 补全命令清屏 clear回到上层 cd ..ls 查看当前目录的文件和文件夹,只显示名字。ll 等价于ls -l 详细列出文件和文件夹pwd 查看当前目录的绝对路径touch空格加文件名 创建文件vim空格加文件名 编辑文件或创建文件 不推荐使用vi,没颜色退出编辑状态先按esc 然后 :wq 回车
2022-03-11 09:58:10 125
原创 String,StringBuffer,StringBuilder
我为了省时间,今天的代码就不敲了,直接用截图。方便我以后查看等。String和StringBuffer的相互转化。StringBuffer的一些api关于StringBuffer的题。上面 第二个会报异常。接下来是StringBuilder下面是关于String的一些题,可以不用看了,是为了方便我自己看的。有兴趣可以看一下。1.给出一个字符串如 Java hahaha Wohuile 返回 Wohui...
2022-02-28 22:21:27 176
原创 finalize方法
在java当中,当一个对象没有别人指向时,会成为一个垃圾对象。会被jvm回收(销毁)堆内存(或对象空间)。默认情况下一个类的finalize方法都是继承Object类的。对象调用finalize方法后即被回收。程序员可以重写一个类的finalize方法。但是因为jvm的垃圾回收机制可能不会马上回收。我们可以通过System.gc()进行主动触发垃圾回收机制。public class Finalize_ { public static void main(String[] args) {
2022-02-25 23:36:22 782
原创 TreeSet,TreeMap
TreeSet的底层是TreeMap.都是线程不安全的。可以排序。TreeSet是单列,TreeMap是双列。TreeSet,TreeMap的key不能为null,会报异常。TreeMap的value可以有重复,可以有多个null。TreeSet的key不能重复,再次添加会失败。TreeMap的key也不能重复,再次添加会替换value. //默认按照字典顺序排好了。 //可以传入一个比较器,匿名内部类。 //TreeSet treeSet = new
2022-02-25 21:48:51 1056
原创 Collections工具类
List list = new ArrayList(); list.add("1"); list.add("22"); list.add("333"); //reverse反转list Collections.reverse(list); System.out.println(list); //shuffle每次随机排序 Collections.shuffle(lis...
2022-02-25 17:04:08 169
原创 Map接口和常用方法,用hashmap实现。
clean是清除所有键值对。1.Map 与 Collection 并列存在,用于保存双列元素k-v2.Map中的k,v可以是任何引用类型的数据,会封装到节点中。HashMpa$Node3.Map的key不允许重复。4.value可以重复。5.k可以为null,v也可以为null,k只能有一个null,v可以有重复null。6.通过k可以找到v。Map map = new HashMap(); map.put("1","zuohaifeng"); ...
2022-02-25 16:42:54 681
原创 set接口和常用方法,hashset实现
这个可以看我的其他的博客。hashset,hashmap底层理解总结。@SuppressWarnings({"all"})//抑制警告。public class Set_ { public static void main(String[] args) { Set hashSet = new HashSet(); hashSet.add("john"); hashSet.add("lucy"); System.out....
2022-02-25 11:19:46 101
原创 hashset,hashmap底层理解总结
hashset的底层是hashmap,hashmap的底层是节点数组+链表+红黑树。首先每个节点有四个元素。第一个为hash值,相当于索引(放在数组的位置,或者理解为桶位置)。第二个为key,就是你要存的对象,第三个为共享对象(固定的一个对象)【只起到占位】,第四个为指针,指向下一个节点。首先刚new hashmap时创建一个空数组table,当放第一个元素时进行扩容,第一次扩容16个,扩容因子为0.75(固定)。每当添加的元素个数超过当前数组个数 * 扩容因子时触发扩容,扩容为之前的2倍。
2022-02-25 00:25:56 1082
原创 ArrayList 扩容底层源码使用无参构造分析
首先如果有人进不到源码可以改一下下面的设置。可以看到使用无参构造首先创建了一个空数组。然后开始执行add方法。先将1进行装箱。之后退出再进入add方法。先执行ensureCapacityInternal方法执行calculateCapacity方法,判断数组是否为空,也就意思是说是否是第一次扩容。默认第一次若是不超过10个,就返回将要进行扩容的数量10。执行ensureExplicitCapacity,判断,当前数组是否满足需要,若大于0...
2022-02-22 11:28:21 293
原创 Collection一些方法,迭代器遍历,增强for遍历
public class CollectionMethod { public static void main(String[] args) { //用ArrayList来展示Collection方法。 List list = new ArrayList(); //add:添加单个元素(object) list.add("jack"); list.add(10);//相当于list.add(new Integer(10.
2022-02-17 14:15:37 413
原创 java程序执行顺序。静态块,静态方法,初始化块,语句。总结。
第一段代码是我为了测试块与语句的执行顺序。package com.myjava;public class Test001 { public int c = test2(); { System.out.println("初始化块"); } public static int a = test1();//可以和static块换位置测试。 static { System.out.println("静态块"); } public static int b = 2;
2022-01-18 23:37:24 367
原创 Java字符串为什么不可变
1,因为String 类被final修饰。导致其他类不能继承。2,String 类内没有修改数组的方法。3,final 修饰char数组。三者缺一不可。比如public final class Main{ public final char[] data; public Main(char[] data){ this.data = data; } public void change(){ data[1] = 'd';
2022-01-17 22:11:20 295
原创 自动拆箱装箱,128陷阱源码分析
我们为什么要用Integer c 来接收结果呢。进行编译后如下。可以看到当执行Byte b = 2时,是Byte.valueof()即自动装箱。同理 a。当在运行加法时先将两个数拆箱Byte.byteValue()之后由于java中加法只有Int ,没有byte等运算。所以经过iadd方法后又自动装箱。最后由 c来接收。128陷阱以上结果分别为true,false;自动装箱时执行方法valueOf();发现,将传入的值进行比较,若大于low,小于等于high时...
2022-01-15 23:11:46 117
原创 idea,当你的项目没有maven并且java文件有一个橘黄色的j时
有的项目可能是因为没有maven导致的,有的项目本身就没有maven或pom文件。这时我们先点击file,然后点击project structure然后先查看一下project,看一下里边的sdk,然后选择1.8之后点击modules。一般情况下是在sources,先将右侧的root删了。之后重新添加直到成功。...
2022-01-15 21:10:26 1321
原创 贪心算法解决广播覆盖问题
介绍一个方法retainAll100,200就不包含了。package suanfa;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;//贪心算法解决广播地区覆盖public class Tanxin { public static void main(String[] args) { //创建广播电台放入到map HashMap<String,Has...
2022-01-11 21:48:05 469
原创 动态规划解决0-1背包
假设三个物品,背包重4.package suanfa;//动态规划0-1背包public class BeiBao { public static void main(String[] args) { int[] w = {1,4,3,2,6,5};//物品的重量 int[] val = {150,300,200,250,400,350};//物品的价值,val[i]表示公式里的v[i]。公式里只有一个v[i]。 int m = 6;//背包的重量 int n =.
2022-01-01 17:53:59 197
原创 spring boot 单点登录sso移植项目,以及一些小细节
首先你的项目是多模块的。一,以我的项目展开。我有两个模块。首先在两个模块里都加入两个依赖。
2021-12-30 21:06:21 1727
原创 分治算法==汉诺塔
package suanfa;//汉诺塔,分治算法public class Hannuota { public static void main(String[] args) { //ABC分别代表柱子。 hannuota(2,'A','B','C'); } public static void hannuota(int num,char a,char b,char c) { //如果只有一个盘 if(num == 1) { System.out.pr...
2021-12-28 23:03:12 79
原创 简单的非递归二分查找算法
package suanfa;public class ErFen { public static void main(String[] args) { int[] arr = {1,2,3,5,7,23,54,64,78}; System.out.println("index="+binarySearch(arr,54)); } public static int binarySearch(int[] arr,int target) { int left = 0; int r.
2021-12-27 23:20:03 78
原创 图的深度优先遍历,广度优先遍历
package graph;//图,用二维数组(邻接矩阵)表示图//本数组显示为红色,用的是打印System.err.println();//代码可能显示不一样,多运行几次。import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;public class Graph { private ArrayList<String> vertexList;//存储...
2021-12-27 18:16:51 259
原创 认识图,用矩阵表示图
package graph;//图,用二维数组(邻接矩阵)表示图//本数组显示为红色,用的是打印System.err.println();import java.util.ArrayList;import java.util.Arrays;public class Graph { private ArrayList<String> vertexList;//存储顶点(名字)集合 private int[][] edges;//存储图对应的矩阵 priv...
2021-12-26 21:56:48 930
原创 leetCode 101
class Solution { public boolean isSymmetric(TreeNode root) { if(root == null) return true; return equal(root.left,root.right); } private boolean equal(TreeNode A,TreeNode B){ if(A == null && B == null) return tr.
2021-12-26 21:53:10 187
原创 平衡二叉树,双旋转,树的高度
平衡二叉树是二叉排序树或二叉搜索树的优化旋转是为了平衡左旋转:右旋转:package tree;//平衡二叉树,是二叉排序树的优化public class AvlTreeDemo { public static void main(String[] args) { int[] arr = {4,3,6,5,7,8};// int[] arr = {10,7,6,8,9,11}; AvlTree avlTree = new AvlTree(); fo...
2021-12-24 22:02:47 358
原创 二叉排序树,二叉搜索树的添加,删除
删除思路代码选择先实现情况一package tree;//二叉搜索树,二叉排序树public class BinarySortTreeDemo { public static void main(String[] args) { int[] arr = {7,3,10,12,5,1,9}; BinarySortTree binarySortTree = new BinarySortTree(); //循环添加节点到树中 for(int i=0; i<ar...
2021-12-22 23:33:08 644 3
原创 leetCode.144二叉树的前序遍历
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { .
2021-12-21 12:03:10 279
原创 顺序存储二叉树
package tree;//顺序存储二叉树public class ArrBinaryTreeDemo { public static void main(String[] args) { int[] arr = {1,2,3,4,5,6,7}; ArrBinaryTree a = new ArrBinaryTree(); a.preOrder(0, arr);//1,2,4,5,3,6,7 } }class ArrBinaryTree{ //前序遍历数组 publ...
2021-12-20 21:21:56 313
原创 二叉树前中后序遍历查找
package tree;//二叉树public class BinaryTreeDemo { public static void main(String[] args) { //创建一颗二叉树 BinaryTree binaryTree = new BinaryTree(); //创建节点 HeroNode root = new HeroNode(1,"root号节点"); HeroNode node2 = new HeroNode(2,"2号节点"); HeroN...
2021-12-20 20:55:52 92
原创 二叉树的基本概念,二叉树的前中后序遍历
基本概念代码package tree;//二叉树public class BinaryTreeDemo { public static void main(String[] args) { //创建一颗二叉树 BinaryTree binaryTree = new BinaryTree(); //创建节点 HeroNode root = new HeroNode(1,"root号节点"); HeroNode node2 = new HeroN...
2021-12-20 20:12:12 544
原创 由二分查找演化的插值查找
package suanfa;//插值查找public class InsertValueSearch { public static void main(String[] args) { // TODO Auto-generated method stub //定义一个连续均匀的数组,这里从1到100 int[] arr = new int[100]; for(int i=0;i<arr.length;i++) { arr[i] = i...
2021-12-18 18:40:00 80
原创 八皇后代码
package suanfa; //8皇后问题public class Queen8 { //定义8个皇后 int max = 8; //由一维数组代替二维数组。索引代表行数也代表第几个皇后 //值代表位置在第几列 int[] arr = new int[max]; //count解法,judgeCount判断次数。 static int count = 0; static int judgeCount =0; public static void m..
2021-12-17 22:31:36 832
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人