笔记
文章平均质量分 87
AI小艾
这个人很懒,什么都写了。
展开
-
this和super关键字的区别
this:this关键字只能用于方法的方法体内,表示对“调用方法的那个对象”的引用。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态代码块中绝对不能出现this。super:super关键字和this的作用类似,将被隐藏的父类的成员变量和成员方法变为可见,或者说用来引用被隐藏的父类的成员成员变量和成员方法。使用场景:1.使用super和this调用成员变量和方法有时会遇到子类中的成员原创 2021-01-06 15:22:07 · 2354 阅读 · 2 评论 -
哈希表中为什么要重写hashCode与equals方法
文章目录一、为什么要覆写hashCode和equals?二、原因分析1.hashCode介绍:2.为什么要有HashCode总结一、为什么要覆写hashCode和equals?我们新建一个person类:public class Person { String name; int age; public Person(String name,int age){ this.age=age; this.name=name; }}new原创 2020-11-12 13:39:03 · 1092 阅读 · 8 评论 -
面试必问:手撕哈希表
一、手撕哈希表?哈希表包括插入,删除,包含操作以插入操作为例,其手撕的过程主要分为以下几步:1.把插入的对象转为int类型,调用hashCode()函数就可以了;2.转为合法的下标(哈希函数:hash(key)=key%capacity),如:int index=hashValue%array.length;3.遍历index位置处的链表,确定key在不在元素中4.把key装进结点中,并插入到对应的链表中5.维护元素的个数6…通过维护负载因子,进而维护较低的负载因子这六个步骤缺一不可,在面原创 2020-11-12 13:37:55 · 466 阅读 · 0 评论 -
[Java数据结构]之哈希表如何避免冲突
文章目录前言一、哈希表是what?二、什么是哈希冲突1.什么时候会出现哈希冲突2.为什么会出现哈希冲突三、如何解决哈希冲突1.线性探测2.拉链法总结前言一、哈希表是what?这是百度上给出的回答:简而言之,为什么要有这种数据结构呢?因为我们想不经过任何比较,一次从表中得到想要搜索的元素。所以就构造出来了哈希表,通过某种函数(哈希函数)使元素的存储位置与它的关键码之间能够建立一一映射的关系,方便我们在查找的时候可以更加快速的查找出来我们想要查找的元素。在下面的代码演示中,底层就使用了哈希表,原创 2020-11-12 13:36:26 · 789 阅读 · 3 评论 -
java如何清晰区分String, StringBuilder和StringBuffer的应用场景
字符串类String是final限定类型,String str=“abc”+“bcs”;这句代码看似简单,但是代码运行时,实际上创建了3个字符串对象,分别是:“abs”,“bcs”,和“abcbcs”,如果这样的拼接数量不断增加,会是程序系统产生极大的性能消耗,因此要避免使用这样的方式修改字符串的内容。StringBuilder和StringBuffer区别:StringBuffer的每个方法多了一个Synchronized关键字,所以它是线程安全的,StringBuilder是线程不安全的。多..原创 2020-11-09 23:58:28 · 270 阅读 · 1 评论 -
MySQL的约束条件
文章目录前言一、MySQL的约束条件有哪些?二、约束条件举例1.NOT NULL2.UNIQUE3.DEFAULT4.PRIMARY KEY5.FOREIGN KEY6.CHECK总结前言一、MySQL的约束条件有哪些?1 . not null — 指示某列不能存储 NULL 值。2.unique — 保证某列的每行必须有唯一的值。3.default — 规定没有给列赋值时的默认值。4.primary key(主键) —是 not null 和 unique 的结合。确保某列(或两个列多个列.原创 2020-11-09 14:39:17 · 1201 阅读 · 0 评论 -
List和数组之间快速转换的简捷方法
文章目录前言一、List怎么转数组?1.简捷的方法2.list转int数组二、数组怎么转List?1.简捷的方法2.int数组转为list总结前言今天在刷题的时候,发现自己不会将数组转化成为一个list,所以查了一些资料,总结了一些List如何转成数组,数组又是如何转化成为List的方法,希望帮助到需要的人。一、List怎么转数组?1.简捷的方法最直接的方法就是调用list自带的方法list.toArray(),可以直接把list转为数组,代码如下: public static void m.原创 2020-11-06 00:27:49 · 1569 阅读 · 2 评论 -
程序员必备知识:Map的常用方法使用
一、Map的说明二、Map的常用方法说明1.Map.Entry<k,v>的说明2.常用方法3.TreeMap和HashMap的区别4.注意的一些小概念5.代码三、总结原创 2020-11-05 00:33:03 · 1124 阅读 · 2 评论 -
MySQL表的增删查改(适合初阶学习)
系列文章目录上一篇博客主要介绍MySQL的基本操作,以及数据类型,详情内览:https://blog.csdn.net/m0_46551861/article/details/109322722文章目录系列文章目录前言一、 CRUD?二、MySQL的增删查改1.新增(Create)2.删除(Delecte)3.查询(Retrieve)4. 修改(Update)总结前言一、 CRUD?CRUD : Create, Retrieve,Update,Delete其实就是增删查改的简写,但是为了原创 2020-10-31 17:21:52 · 5106 阅读 · 12 评论 -
二叉搜索树的删除操作详解,图文并茂,化繁为简
档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimpo原创 2020-10-31 00:57:39 · 6141 阅读 · 2 评论 -
[java数据结构]归并排序,超详细
文章目录前言一、归并排序是什么?二、归并排序的实现1.归并排序2.合并两个有序序列3.将合并后的序列元素搬回去三、性能分析四、海量数据的排序问题总结前言一、归并排序是什么?归并排序的思路:不断对数组进行二分,直到分组后序列的长度小于等于1,然后将两个子序列合并,得到一个有序的序列。2-路归并实现的步骤:1.先将数组分段,对每一段元素进行排序2.创建一个新的数组,对两组排好序的序列进行合并3.把元素从新的数组搬回原数组中二、归并排序的实现1.归并排序代码如下:public cla.原创 2020-10-26 00:06:19 · 416 阅读 · 1 评论 -
[java数据结构]快速排序实现
欢迎各位小可爱~我们一起学习,共同进步吧~java实现快速排序有三种方法:1 Hoare法2.挖坑法3.前后遍历法快排的原理:1.从待排序区间选择一个数,作为基准值2.Partition:遍历整个待排序区间,将比基准值小的(可以包含相等的)放到基准值的左边,将比基准值大的放到(可以包含相等的)放到基准值的右边。3.采用分治思想,对左右两个小区间按照同样的方式处理,知道小区间的长度<=1,则退出比较。快速排序的代码实现部分:(三种方法)public class Hoare { .原创 2020-10-22 22:19:20 · 543 阅读 · 7 评论 -
java中常用的排序方法总结
七大基于比较的排序方法1.插入排序:直接插入排序;希尔排序2.选择排序:选择排序;堆排序3.交换排序:冒泡排序;快速排序4.归并排序:归并排序时间复杂度,空间复杂度,稳定性总结:| |时间复杂度 |空间复杂度 |稳定性|-冒泡排序-|O(n^2)-|O(1)|稳定| 插入排序 | O(n)|O(1)|稳定|希尔排序 | O(n)O(n^2)平均O(n ^1.3) |O(1)|稳定|-堆排序-|-O(n*log(n)-|O(1)|不稳定| 选择排序| O(n^2) |原创 2020-10-21 00:00:41 · 289 阅读 · 0 评论 -
字符数字转10进制代码实现
思路:在计算机中将16进制数字转换成10进制数字,例如:AF38=A16^ 3+F16^2+316 ^1+816 ^0;1.将字符数字转换成16进制的数字;2.根据16进制转10进制的计算方法进行代码设计;import java.util.Scanner;public class Main { private static long 转10进制(String hexString){ long r=0; char[] chars=hexString.toC原创 2020-10-19 00:07:27 · 1289 阅读 · 0 评论 -
[Java数据结构]堆排序
一、堆(Heap)概念堆逻辑上是一棵完全二叉树;堆物理上是保存在数组中;满足任意结点的值都大于其子树中结点的值,叫做大堆,或者大根堆,或者最大堆;反之,则是小堆,或者小根堆,或者最小堆堆的基本作用是用来查找最值的,堆顶元素。操作-向下调整前提:左右子树必须已经是一个堆了,才能调整调整过程(以小堆为例):index:代表要调整位置的下标array:代表存储堆的数组size:代表数组中被视为堆元素的个数left:代表index左孩子的下标right:代表index右孩子的下标原创 2020-10-18 10:34:44 · 912 阅读 · 0 评论 -
JAVA初识2---方法的使用
一、方法的基本用法二、方法的重载三、方法的递归一、方法的基本用法什么是方法方法就是一个代码片段. 类似于 C 语言中的 “函数”.但是在java中不存在“函数声明”这样的概念。方法存在的意义:是能够模块化的组织代码(当代码规模比较复杂的时候).做到代码被重复使用, 一份代码可以在多个位置使用.让代码更好理解更简单.直接调用现有方法开发代码示例: 实现一个方法实现两个整数相加二、方法的重载有些时候我们需要用一个函数同时兼容多种参数的情况,这时候就需要用到方法的重载。2.1 .原创 2020-09-27 00:14:57 · 231 阅读 · 0 评论 -
java自定义实现链表LinkedList与顺序表ArrayList
一、ArrayList和LinkedList简介ArrayList(类)是顺序表,实现了List(接口)–线性表,所以ArrayList实现List,表达了ArrayList既是顺序表也是一种线性表。LinkedList二、ArrayList类中的主要属性和内部类1.实现ArrayList的相关接口Listpublic interface List extends Iterable{ boolean add(Integer e); void add(int index,Intege原创 2020-09-23 23:10:42 · 587 阅读 · 4 评论 -
Java实现简单扑克牌游戏
扑克牌小游戏:游戏玩法简介:定义五个People在玩扑克牌游戏,玩法是5个人从一副没有大小王的扑克牌中各抽取4张,牌的类型有四种:♥,♣,♠,♦。牌的大小为从1~13。(此处为了简单,只取1 -5).1.黑桃♠A在哪名玩家手中,哪名玩家就获胜。package poker;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;import jav原创 2020-09-17 20:11:41 · 3318 阅读 · 0 评论 -
JAVA中怎样交换两个整型的内容?
在C语言中我们学过交换两个整数用指针,但是java中没有指针,所以会传引用来交换。class MyValue{ public int val;}public class TestDemo { public static void swap(MyValue a,MyValue b){ int tmp=a.val; a.val=b.val; b.val=tmp; } public static void main(St原创 2020-07-27 07:45:42 · 297 阅读 · 0 评论 -
Java初识1——变量和运算符.
在C语言中,我们学习了如何创建变量,在java中创建变量和C语言是否一样呢?我们一起来复习一下。一、变量1、整型变量一般的格式为 int 变量名=赋值; int类型占4个字节,但是java中不分操作系统是32位还是64位,只要是整型,都是分配四个字节,4字节表示的数据范围为-2^31~ 2 ^31-1个,大约为-21亿~+21亿。(下图举例说明)2、长整型变量一般格式为 long 变量名=初始值;比如(long a=10;或者long a=10L;)long占8个字节,总共有-原创 2020-07-17 16:19:05 · 304 阅读 · 0 评论