- 博客(41)
- 收藏
- 关注
转载 卷积神经网络(CNN)结构详解
1.输入是一个图片样本。CNN模型的层数,所有隐藏层的参数和类型2.若为卷积层,给出卷积核的个数、维度、填充、步幅若为池化层,给出池化区域的大小k和池化标准对于全连接层,给出各层的神经元数和激活函数的类型3.根据填充,得到输入的张量a^1.并初始化所有隐藏层的参数w和b若为卷积层,输出若为池化层,输出若为全连接层,输出若为最后一层全连接层,即输出层最后补充一句:卷积层和全连接层表达式看似相同,实际有很大的区别:在卷积层中W是卷积核,星号(*)表示卷积,W卷积核矩阵是右乘的。
2024-10-18 18:53:57 95
原创 环形队列原理,全网最通俗易懂
队列是一种很常见的数据结构,满足先进先出的方式,如果我们设定队列的最大长度,那就意味着进队列和出队列的元素的数量实则满足一种动态平衡。如果我们把首次添加入队列的元素作为一个一维坐标的原点,那么随着队列中元素的添加,坐标原点到队尾元素的长度会无穷无尽的增大,随这之前添入的元素不断出列,对头对应的下标点也在不断增大。这样,进队列和出队列的元素的数量就对应到对头和队尾下标点的移动因此我们评判一个队列长度是否溢出原先约定的最大长度,实则就是在评判队尾坐标点与队头坐标点之间的差值,无论是出队列还是入队列,队头和队尾的
2022-06-08 00:20:47 8859 12
原创 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 939 1
原创 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 7273 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 978
原创 从字符串到常量池再到JVM
常量池 class常量池 class常量池是啥每个Class文件都会有一个单独的常量池。class常量池可以理解为class文件中的资源仓库,它是class文件结构中与其它项目关联最多的数据类型,主要用于存放编译器生成的各种字面量和符号引用。class文件Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。什么是字面量?在计
2022-05-22 13:57:33 262
原创 包装类/Integer细节/Integer--String转换
我们知道Integer m=1,这种形式是自动装箱,源码底层进行了装箱,调用了方法valueOfchar
2022-05-20 23:55:18 193
原创 自定义异常,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 609
原创 四大内部类详细解析(全网最细)
一.内部类的分类:定义在外部类局部位置上(比如方法体内)局部内部类(有类名)匿名内部类(无类名)定义在外部类的成员位置上(作为成员):非静态成员内部类静态成员内部类二.局部内部类定义在外部类的局部位置,比如方法中,并且有类名。1.局部内部类可以直接访问外部类的所有成员,包扩私有public class INNER { private int n1 = 100; private void m1() {} public void m2()
2022-05-18 14:27:04 1609
原创 接口和类的区别,定义了同名属性和方法子类该如何调用
1.接口种的属性只能是final的,而且是public static final 修饰2.接口不能继承其他类,但是可以继承多个别的接口
2022-05-18 11:35:59 329
原创 代码块/属性及方法/构造器/继承关系 优先级
基本原理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 237
原创 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 556
原创 JAVA重写hashcode和equals的重要性
引言本文不对重写hashcode和equals方法的具体实现做出解释,仅仅阐述重写俩种方法的必要性首先我们要清楚,一个对象在内存中存放的地址是唯一的其次我们要清楚,哈希码不同的对象肯定不是同一个对象!但不同对象的哈希码可能会一样,不同对象通过同一哈希码确定的在集合中存放的位置可能会一样,从而产生哈希冲突,也叫哈希碰撞再次我们要清楚,重写equals方法后可以判定出两个地址不同但内容相同的对象;重写hashcode方法后可以令两个地址不同但内容相同的对象的哈希码一致,进而使内容相同的对象隶属.
2022-05-15 14:36:34 932 1
原创 String类赋值原理/char[]赋值细节
String str = “abc”;可能建立1个或者0个对象,若是”abc”在字符串池中不存在,会在java字符串池中建立一个String对象(”abc”),而后str指向这个内存地址,
2022-05-15 11:27:03 2194
原创 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 355
原创 继承本质,继承中的super和This,方法重写
继承本质son类调用属性遵循就近原则,即使父类的age属性private,爷爷有public的age属性,son类自身没有age属性的情况下,也只会就近调用父类的age属性,但由于private,因此报错super-----------------------------------------------------------------------------------------------------------------------------------------..
2022-05-13 14:47:03 50
原创 Final and Static 区别和联系(全网最细)
Static1. 静态方法只能访问静态方法和静态成员变量,若一定需要访问动态方法和动态成员变量,需要先创建该类的对象,由对象调用成员方法和成员变量2. 静态方法和静态成员变量可以直接由 类名.静态方法(静态变量) 的方式调用3.静态方法可以被继承,但是,不能被覆盖,即重写。4.静态变量可以被重新赋值,这也意味着静态变量被声明时无需手动赋值,系统会自动匹配初始值(这和不被static修饰时一致),在创建对象后再重新赋值即可5. 如果父类中含有一个静态方法,且在子类中也含有一个返回类型、方
2022-05-12 19:39:53 551
原创 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 59
原创 原码反码和补码,一篇就够了,全网最详细解析
其实对于计算机来说,并不存在原码和反码,计算机存储的二进制数据都是以补码的形式存放的,自然对数据的运算也是直接用补码来运算(计算机中只有加法器没有减法器)我们都知道正整数(包括0)的补码是它本身,负整数的补码是它的原码非符号位取反再加一先来看个例子1:十进制整数 二进制原码 二进制补码 7 0111 0111 -5 1101 1011 所以我们当计算机要计算7-5=?,实际上计算机直接认为是7+(-5)=?, 所以计算机把存储的7和-5对应的补码拿
2022-05-10 11:00:24 17192 5
原创 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 83
原创 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 1508
原创 return返回值的含义
以前一直不知道为什么函数可以赋值于变量,其实定义函数时使用了return语句后,函数会计算结果作为返回值,代表函数值,这样就可以给其他变量赋值了,因为函数本身不是数据类型。如果不使用return语句,则默认返回None如下图所示:...
2022-02-28 16:44:19 2885
原创 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 612
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人