自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 经典排序算法之归并排序

归并排序

2022-06-18 09:22:14 201 1

原创 数据结构之排序集合

冒泡排序

2022-06-15 13:52:24 152

原创 八皇后问题

八皇后问题

2022-06-14 13:23:45 164

原创 中缀转后缀表达式

中缀转后缀表达式

2022-06-12 15:30:23 157

原创 环形链表之约瑟夫问题

环形链表之约瑟夫问题

2022-06-10 20:59:58 137

原创 环形队列原理,全网最通俗易懂

队列是一种很常见的数据结构,满足先进先出的方式,如果我们设定队列的最大长度,那就意味着进队列和出队列的元素的数量实则满足一种动态平衡。如果我们把首次添加入队列的元素作为一个一维坐标的原点,那么随着队列中元素的添加,坐标原点到队尾元素的长度会无穷无尽的增大,随这之前添入的元素不断出列,对头对应的下标点也在不断增大。这样,进队列和出队列的元素的数量就对应到对头和队尾下标点的移动因此我们评判一个队列长度是否溢出原先约定的最大长度,实则就是在评判队尾坐标点与队头坐标点之间的差值,无论是出队列还是入队列,队头和队尾的

2022-06-08 00:20:47 8774 12

原创 Collection实现的单列集合

Collection实现的单列集合

2022-06-06 10:10:58 77

原创 Map实现的双列集合

Map实现的双列集合

2022-06-06 10:06:56 163

原创 HashMap resize()方法源码详解

要想理清resize方法,必须先熟悉这几个hashMap类中的几个属性 整段代码如下:分段讲解首先得到扩容之前的table数组oldTab的最大容量oldCap和阈值oldThr接着初始化newCap和newThr 如果oldCap大于0,进入另一个if -else if分支 如果oldCap已经达到了最大容量,那么直接返回oldTab不做处理 如果oldCap的2倍容量仍然比最大容量小,那就说明可以继续扩容,newCap设置为oldCap的2倍 同时将newThr设置为oldThr的2倍

2022-06-04 21:28:16 884 1

原创 稀疏数组和二维数组

稀疏数组和二维数组

2022-06-03 19:49:46 96

原创 JDK1.8和JDK8是同一个版本吗?

JDK1.8和JDK8是同一个版本 ,最开始 命名为 JDK1、JDK2....后来就 命名为 JDK1.7、JDK1.8....Java Development Kit (JDK) 是Sun公司(已被Oracle收购)针对Java开发员的软件开发工具包。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。EE(J

2022-06-01 13:42:34 7159 1

原创 (h = key.hashCode()) ^ (h >>> 16)

1. 为什么hashcode要使用异或计算?^异或运算:相同置0,不同置10^1 = 1 ,1^1 = 0,1^0 = 1,0^0 = 0可以看到0和1的概率都为1/2& 与运算:两个同时为1,结果为1,否则为01&1 = 1,1&0 = 0,0&0 = 0,0&1= 0可以看到结果偏向0| 或运算: 只要有1 结果就为11|1 = 1,1|0 = 1,0|0 = 0,0|1 = 1可以看到结果偏向12....

2022-05-31 01:12:18 963

原创 HashSet/HashMap/add()/put()源码详解

先码这

2022-05-30 01:06:18 1340

原创 从字符串到常量池再到JVM

常量池 class常量池 class常量池是啥每个Class文件都会有一个单独的常量池。class常量池可以理解为class文件中的资源仓库,它是class文件结构中与其它项目关联最多的数据类型,主要用于存放编译器生成的各种字面量和符号引用。class文件Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。什么是字面量?在计

2022-05-22 13:57:33 247

原创 包装类/Integer细节/Integer--String转换

我们知道Integer m=1,这种形式是自动装箱,源码底层进行了装箱,调用了方法valueOfchar

2022-05-20 23:55:18 180

原创 自定义异常,RuntimeException ,Exception

public class Demo { public static void main(String[] args) { AGE.checkAge(17); }}//创建自定义的ageExceptionclass ageException extends RuntimeException{ public ageException(String message) { super(message); }}//可以创建一个年龄类fina.

2022-05-20 16:20:08 595

原创 枚举Enum类

2022-05-19 23:36:01 87

原创 四大内部类详细解析(全网最细)

一.内部类的分类:定义在外部类局部位置上(比如方法体内)局部内部类(有类名)匿名内部类(无类名)定义在外部类的成员位置上(作为成员):非静态成员内部类静态成员内部类二.局部内部类定义在外部类的局部位置,比如方法中,并且有类名。1.局部内部类可以直接访问外部类的所有成员,包扩私有public class INNER { private int n1 = 100; private void m1() {} public void m2()

2022-05-18 14:27:04 1588

原创 接口和类的区别,定义了同名属性和方法子类该如何调用

1.接口种的属性只能是final的,而且是public static final 修饰2.接口不能继承其他类,但是可以继承多个别的接口

2022-05-18 11:35:59 306

原创 单例设计模式

2022-05-17 16:53:25 64

原创 代码块/属性及方法/构造器/继承关系 优先级

基本原理1代码实现1public class Demo { public static void main(String[] args) { A a1=new A();//A中静态代码块被调用(A类首次加载) A中普通代码块被调用 A a2=new A();//A中普通代码块被调用 System.out.println("------------------"); B b=new B();//B中静态代码块...

2022-05-16 21:41:05 226

原创 main方法

2022-05-16 20:45:24 61

原创 JAVA项目之房屋出租系统

目录架构设计House类HouseView类HouseService类HouseRentApp类架构设计House类public class House { //编号,房主,电话,地址,月租,出租状态(已出租/未出租) private int id; private String name; private int phone; private String address; private int r...

2022-05-16 17:24:29 547

原创 JAVA重写hashcode和equals的重要性

引言本文不对重写hashcode和equals方法的具体实现做出解释,仅仅阐述重写俩种方法的必要性首先我们要清楚,一个对象在内存中存放的地址是唯一的其次我们要清楚,哈希码不同的对象肯定不是同一个对象!但不同对象的哈希码可能会一样,不同对象通过同一哈希码确定的在集合中存放的位置可能会一样,从而产生哈希冲突,也叫哈希碰撞再次我们要清楚,重写equals方法后可以判定出两个地址不同但内容相同的对象;重写hashcode方法后可以令两个地址不同但内容相同的对象的哈希码一致,进而使内容相同的对象隶属.

2022-05-15 14:36:34 911 1

原创 String类赋值原理/char[]赋值细节

String str = “abc”;可能建立1个或者0个对象,若是”abc”在字符串池中不存在,会在java字符串池中建立一个String对象(”abc”),而后str指向这个内存地址,

2022-05-15 11:27:03 2153

原创 JAVA多态----动态绑定机制

1.正常情形2.方法的动态绑定机制--------如果运行类有方法可调用,仍然优先调用运行类中的方法我们把B类中的sum01() 注释掉,a调用sum01()时候发现运行类型B类中没有sum01(),然后向上查找到父类A中的sum01()方法,里面有一个getI()方法。由于方法的动态绑定机制,调用的getI()方法仍然为B类中的getI方法,B类中的getI()方法返回属性i,注意这次返回的属性i是B类中的属性i,因为调用的getI()方法就再B类中,所以就直接返回的也是B类中的方法..

2022-05-14 13:23:10 329

原创 instanceof 的用法详细说明

a instanceof B 比较的是对象a的运行类型是否是类B或者类B的子类型四个输出都为true

2022-05-14 11:35:17 125

原创 继承本质,继承中的super和This,方法重写

继承本质son类调用属性遵循就近原则,即使父类的age属性private,爷爷有public的age属性,son类自身没有age属性的情况下,也只会就近调用父类的age属性,但由于private,因此报错super-----------------------------------------------------------------------------------------------------------------------------------------..

2022-05-13 14:47:03 45

原创 Final and Static 区别和联系(全网最细)

Static1. 静态方法只能访问静态方法和静态成员变量,若一定需要访问动态方法和动态成员变量,需要先创建该类的对象,由对象调用成员方法和成员变量2. 静态方法和静态成员变量可以直接由 类名.静态方法(静态变量) 的方式调用3.静态方法可以被继承,但是,不能被覆盖,即重写。4.静态变量可以被重新赋值,这也意味着静态变量被声明时无需手动赋值,系统会自动匹配初始值(这和不被static修饰时一致),在创建对象后再重新赋值即可5. 如果父类中含有一个静态方法,且在子类中也含有一个返回类型、方

2022-05-12 19:39:53 536

原创 对象内存布局 ,方法调用机制,This

对象内存布局方法调用机制

2022-05-11 16:27:43 87

原创 break,continue(label) return

2022-05-10 21:05:11 100

原创 switch....case

int[] arr={'a',98,'e'}; Random rand=new Random(); int i = arr[rand.nextInt(arr.length)]; switch(i){ case 97: System.out.println("hh"); break; case 'e': System..

2022-05-10 15:14:26 55

原创 原码反码和补码,一篇就够了,全网最详细解析

其实对于计算机来说,并不存在原码和反码,计算机存储的二进制数据都是以补码的形式存放的,自然对数据的运算也是直接用补码来运算(计算机中只有加法器没有减法器)我们都知道正整数(包括0)的补码是它本身,负整数的补码是它的原码非符号位取反再加一先来看个例子1:十进制整数 二进制原码 二进制补码 7 0111 0111 -5 1101 1011 所以我们当计算机要计算7-5=?,实际上计算机直接认为是7+(-5)=?, 所以计算机把存储的7和-5对应的补码拿

2022-05-10 11:00:24 11910 2

原创 boolean char byte short int long float double

System.out.println("niHao"+100+56);//niHao10056 char ch='a';System.out.println(ch+3);//97+3=100 byte a=1; short b=2;char c='a'+3;int g=30;double h=86.0;//wrong char x=a; char y=b;//(byte,short)和char之间不会相互自动转换 short z=a; /..

2022-05-09 10:19:53 79

原创 Unicode,ASCII和UTF-8 编码区别与联系(通俗易懂)

Unicode我们知道unicode编码解决了ASCII码只支持英文数字等字符的单一问题;unicode编码目前普遍采用USC-2格式,该格式采用两个字节来编码一个汉字字符,所以两个字节最多可以表示2^16=65536个字符(一个字节为8位)但是两个字节的容量要表示的是各国语言,而汉字字符----简体加繁体字就共有约7w个!,显然2个字节根本无法囊括所有汉字。因此也有采用USC-4格式,即4个字节来编码字符的情况,但目前为止普遍仍采用USC-2格式,毕竟常用几千个汉字足以满足所需!同时字符编

2022-05-09 00:27:52 1480

原创 python :seek()与read()使用方法,文本有汉字时

.txt文件内容如下:代码测试如下:

2022-03-01 22:06:47 598

原创 return返回值的含义

以前一直不知道为什么函数可以赋值于变量,其实定义函数时使用了return语句后,函数会计算结果作为返回值,代表函数值,这样就可以给其他变量赋值了,因为函数本身不是数据类型。如果不使用return语句,则默认返回None如下图所示:...

2022-02-28 16:44:19 2843

原创 yield用法, stopiteration异常

使用yield函数解决''斐波那契数''列内存空间占用和简洁性问题: 简单地讲,yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 generator,调用 fab(5) 不会执行 fab 函数,而是返回一个 iterable 对象!在 for 循环执行时,每次循环都会执行 fab 函数内部的代码,执行到 yield b 时,fab 函数就返回一个迭代值,下次迭代时,代码从 yield b 的...

2022-02-27 23:30:22 593

原创 input函数由字符串返回整型(py3.0+)

如此操作即可否则会出现如下错误:

2022-02-26 23:21:59 1347

原创 python b=a[:] 和b=a区别 理解无压力

说明一下 该函数将列表a的内容复制到b中,但是a和b指向地址不同的对象;但是当指定b=a之后,a,b不仅内容一样,而且指向同一个对象的地址,因此修改a和b中的任何一个,a和b都会一起改变...

2022-02-25 18:53:26 1143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除