自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 问答 (1)
  • 收藏
  • 关注

原创 数据库范式,一篇就够

在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

2024-05-28 12:16:38 2586 1

原创 Map详解

当hashmap中的元素个数超过数组大小*loadFactor时,就会进行数组扩容,loadFactor的默认值为0.75,也就是说,默认情况下,数组大小为16,那么当hashmap中元素个数超过16*0.75=12的时候,就把数组的大小扩展为2*16=32。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( log2 N),搜索的效率取决于搜索过程中元素的比较次数。对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功Value。

2024-05-27 10:59:20 397

原创 集合Set详解

Set 是 Java 集合框架中的一部分,它代表了一个不重复元素的集合。这意味着 Set 不允许包含重复的元素,每个元素在集合中都是唯一的。Set 集合通常用于存储无序的、不重复的对象,例如一组唯一的整数或字符串。

2024-05-25 15:04:46 307

原创 List详解

List接口继承自Collection接口,并添加了一些针对有序列表的操作。它允许元素的重复,并提供了根据索引访问、添加、删除和替换元素的方法。在Java中,List接口有几个常见的实现类,每个实现类都具有不同的性能和用途。ArrayList:基于动态数组实现,支持随机访问和快速遍历,适用于读取和修改操作较多的场景。LinkedList:基于双向链表实现,支持高效的插入和删除操作,适用于频繁的插入和删除操作。Vector:与ArrayList类似,但是线程安全,适用于多线程环境。选择。

2024-05-25 15:03:37 290

原创 ==和equals的区别

在Java中,== 和 .equals() 是用来比较两个变量的常用方法,但它们在用途和行为上有明显的区别。理解这些差异是非常重要的,特别是在处理对象(如字符串和自定义类对象)时。

2024-05-22 15:38:07 302

原创 Java锁的分类

偏向锁是一种优化单线程重入场景的锁机制。如果一个锁在某段时间内被一个线程多次获取,那么JVM会将这个锁标记为“偏向”于这个线程,从而避免每次获取锁时的同步操作。轻量级锁是当一个锁被多个线程短时间争用时,JVM通过使用CAS(Compare-and-Swap)操作来实现的锁机制,从而避免了重量级锁的阻塞和上下文切换开销。重量级锁是传统的基于操作系统的互斥量实现的锁机制。当锁的争用非常激烈时,JVM会使用重量级锁来保证线程安全。偏向锁:适用于单线程获取锁的场景,几乎没有锁操作的开销。轻量级锁。

2024-05-22 15:37:14 1026

原创 访问修饰符

在Java中,访问修饰符是用来定义类、变量、方法和构造器的可访问性的。这些修饰符决定了其他类或程序的成分能否访问某个类的字段和方法。privatedefault(无修饰符),protected,和public。

2024-05-22 15:35:20 222

原创 Lambda 表达式

/ 使用 Lambda 表达式实现加法操作// 使用 Lambda 表达式实现乘法操作// 调用操作Lambda 表达式是 Java 8 引入的重要特性,它通过简化匿名内部类的语法,使代码更加简洁和易读。它可以与函数式接口结合使用,广泛应用于各种场景,如实现RunnableComparator、自定义函数接口等。通过学习和使用 Lambda 表达式,可以有效提升代码的可维护性和开发效率。

2024-05-22 15:34:14 305

原创 Java访问修饰符

在Java中,访问修饰符是用来定义类、变量、方法和构造器的可访问性的。这些修饰符决定了其他类或程序的成分能否访问某个类的字段和方法。privatedefault(无修饰符),protected,和public。

2024-04-21 17:17:43 361

原创 动态规划问题

带你理解动态规划算法原理,手把手分析动态规划问题

2024-04-20 15:50:29 861

原创 神经网络一篇就够

人工神经网络(artificial neural network,缩写ANN),简称神经网络(neural network,缩写NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络主要由:输入层,隐藏层,输出层构成。当隐藏层只有一层时,该网络为两层神经网络,由于输入层未做任何变换,可以不看做单独的一层。

2024-04-18 17:34:37 1078

原创 神经网络全解析

人工神经网络(artificial neural network,缩写ANN),简称神经网络(neural network,缩写NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络主要由:输入层,隐藏层,输出层构成。当隐藏层只有一层时,该网络为两层神经网络,由于输入层未做任何变换,可以不看做单独的一层。

2024-03-09 10:41:52 2539

原创 python异常、模块与包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件从逻辑上看,包的本质依然是模块包的作用: 当我们的模块文件越来越多时,包可以帮助我们管理这些模块, 包的作用就是包含多个模块,但包的本质依然是模块。

2023-02-09 08:51:11 95

原创 Python容器

列表内的每一个数据,称之为元素以 [] 作为标识列表内每一个元素之间用, 逗号隔开定义形式://结果可以容纳多个元素(上限为2**63-1、9223372036854775807个)可以容纳不同类型的元素(混装)数据是有序存储的(有下标序号)允许重复数据存在可以修改(增加或删除元素等)元组同列表一样,都是可以封装多个、不同类型的元素在内。但最大的不同点在于: 元组一旦定义完成,就不可修改所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了。

2023-02-09 08:47:03 336

原创 RGB图像

在这种情况下,矩阵的形状将为24 x 16现在,让我们快速总结一下到目前为止我们已经学到的要点-图像以数字矩阵的形式存储在计算机中,其中这些数字称为像素值。其中N是整个高度上的像素数,M是整个宽度上的像素数,3表示通道数,在这种情况下,我们有3个通道R,G和B。在我们的示例中,彩色图像的形状将是 **6 x 5 x 3,**因为我们在高度上有6个像素,在宽度上有5个像素,并且存在3个通道。这实际上是什么意思?这些像素都具有从0到255的值,其中每个数字代表像素的强度,或者你可以说红色,绿色和蓝色的阴影。

2023-02-09 08:41:48 430

原创 20、泛型

泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。

2023-02-09 08:39:03 65

原创 19、反射

1) Reflection也就是反射, 是Java被视为动态(或准动态)语言的一个关键性质2)反射机制指的是程序在运行时能够获取任何类的内部所有信息1)只要给定类的全路径(类的全限定名),即可通过反射获取类的所有信息2)反射可以在程序运行时获取任意一个对象所属的类对象3)在运行时可以获取到类中所有属性对象,并对其操作(包括私有属性)4)在运行时可以获取到类中、父类中所有方法,并调用。

2023-02-08 10:48:17 56

原创 sql语句全解析!

根据SQL指令完成的数据库操作的不同,可以将SQL指令分为四类SQL指令不区分大小写每条SQL表达式结束之后都以;结束SQL关键字之间都以 空格进行分割SQL之间可以不限制换行(可以有空格的地方就可以有换行)数值类型类型大小(Bytes)范围tinyint1有符号 (-128,127)无符号 (0,255)smallint2有符号 (-32 768,32 767)无符号 (0,65 535)mediumint3有符号 (-8 388 608,8 388 607)无符号 (0,16 777 215)int/i

2023-02-08 10:47:00 3335

原创 18、Socket编程

如果说socket是一个多孔插座,插座是提供各种电器供电的地方,不同的电器工作时需要的电压和电流也不样,但各种电器都有各自的一个插口,这个称之为“端口”。在插座这边的是“客户端”,电线那边提供电的发电厂是“服务器”。(2)第二次握手: Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将 标志位SYN和ACK都置为1,ack=J+1, 随机产生-一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_ RCVD状态。(由底层网络定义协议)

2023-02-08 10:42:11 145

原创 17、多线程

/单个线程的线程池。进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程可能包含多个(至少-一个)线程。3)处于就绪状态的线程,只是说明该线程已经做好了准备,随时等待CPU调度执行,并不是说执行了start()该线程就会执行。线程是进程中可独立执行的最小的执行单元,-个进程中有多个线程,同一进程中的线程共享进程的资源(内存,空间,变量,方法)start() 方法的作用是:启动一个分支线程,在JVM中开辟一个新的栈空间,这段代码任务完成之后,瞬间就结束了。

2023-02-08 10:40:35 81

原创 16、IO

数据在两个设备间的传输称为流,流是一组有顺序的, 有起点和终点的字节集合;l是input的缩写,表示输入流;0是output的缩写,表示输出流;Java.io.*父类子类子类字节流输入流输出流字符流输入流ReaderFileReader。

2023-02-08 10:39:58 58

原创 15、异常

1) ClassNotFoundException:应用程序试图加载类时,找不到相应的类,抛出该异常。因为用户错误或者其他外在操作错误,导致的代码无法继续执行,引起的异常。运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。2) lllegalAccessException:访问一个类被拒绝的时候,抛出该异常。//无论是否发生异常, finally中的代码块都将在最后执行。//throws将异常抛出给上一级处理,最终将抛给jvm处理。//在本方法中, 抛出一个异常。

2023-02-08 10:34:28 47

原创 14、枚举

3、枚举类的构造方法只能使用private修饰符,如果构造方法省略修饰符,则默认使用private;4、枚举类的所有对象(实例)必须在枚举中显式列出,否则这个枚举类将永远不能创建实例对象;final的作用是内存地址不变,枚举类中对象的变量值可以通过get/set方法修改。5、枚举列出的对象,系统会自动添加public static final修饰符;2、枚举类默认继承了java.lang.Enum类,而不是Object类;1、用enum关键字定义枚举类;//输出结果为:MON。

2023-02-08 10:33:02 48

原创 13、集合

为了可以满足用户数据更多种的逻辑关系,而设计的一系列的不同 于数组的可变的聚合的抽象数据类型。这些接口和类在java.uti包中,因为类型很丰富,因此我们通常称为集合框架集。集合主要分为两大系列: Collection和Map, Collection 表示一组对象,Map表示一组映射关系或键值对。

2023-02-08 10:32:54 61

原创 12、String类

运行时实例创建的全局字符串常量池中有一个表,总是为池中每个唯一的字符串对象维护一个引用,这就意味着它们一直引用着字符串常量池中的对象,所以,在常量池中的这些字符串不会被垃圾收集器回收。//默认第一个,之前空的也算一个,但最后一个,之后的空的不算。字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价作为最基础的数据类型,大量频繁。字符串常量池,可以理解为一个String的数据集,它是在堆内存中开辟的一块特殊内存*/字符串常量池,可以理解为一个String的数据集,它是在堆内存中开辟的一块特殊内存*/

2023-02-08 10:31:56 63

原创 11、常用类

/转成int返回a.intvalue( )//转成long返回a.longvalue( )//四舍五入,返回一个最接近的float->int 或double->long类型的值。//时间戳―从1970-01-01 00:00:00到对应时间的毫秒数,long类型。//加,返回结果,并不会一直累加,需要创建一个对象来接收。//注意运算完原来参与运算的值不改,要接收运算的返回值得到结果。//获取随机数,结果为0到1之间的小数,包含0不包含110。d.getTime( )//获取d那个时间的时间戳。

2023-02-08 10:30:54 47

原创 10、final、static

静态方法不会在实例化创建对象时,为对象创建一个新的static方法,所有的对象公用一个static方法,即多个实例对象先后调用该静态方法,只保存最后一次的结果。3) 修饰方法,称为静态方法,静态方法只能调用其他静态资源,不能调用非静态变量,不能应用this和super,因为静态资源的加载先于实例化;static关键字,表述为“静态的,全局的”,被static修饰的资源(变量或方法),可以直接通过类名调用,而不需要实例化对象。(成员变量,成员方法)static修饰的成员变量 称之为静态变量或类变量。

2023-02-07 17:03:34 87

原创 9、抽象类和接口

5)接口可以实现多个,而父类只有一个(单亲继承),而且必须先继承(extends)父类再实现(implements)接口,重写接口所有方法;3)通过父类的引用无法调用子类特有的方法,即向上转型的子类对象只能调用继承自父类的方法,而不能调用子类独有的方法,方法数量缩小,安全。6)抽象类可以有父类,但是父类必须有一个无参的构造函数,否则,抽象类必须声明一个与父类相同的有参构造方法;2)通过父类的引用调用的方法,是子类重写或继承父类的方法,而不是父类原本的方法,更不是子类特有的方法;

2023-02-07 17:02:27 53

原创 8、面向对象

面向对象程序设计(object oriented programming简称OOP)对象是一个由信息(变量)及对信息进行处理(方法)的描述所组成的整体,是对现实世界的抽象其本质是对现实事物的特征和变化规律建立的模型现实世界里我们所面对的事物都是对象,如具体存在的电脑,桌子等而从具体对象中抽取出来的类型概念就是类。面向对象三大特征:封装:把自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏继承:让某个类型的对象获得另一个类型的对象的属性的方法。

2023-02-07 17:01:04 55

原创 7、数组

数组是用来存储固定数量的同类型元素的一种数据结构,它是引用类型;

2023-02-07 16:55:34 66

原创 6、java的装箱与拆箱

/会先触发自动拆箱过程,再触发自动装箱过程,也就是说a+b,会先各自调用intValue方法,得到了加法运算后的数值之后,便调用Integer.valueOf方法,再进行equals比较。在Java中,装箱指的是将基本类型转换为包装类的过程。上面的代码中i1和i2的数值为100,因此会直接从cache中取已经存在的对象,所以i1和i2指向的是同一个对象,而i3和i4则是分别指向不同的对象。方法默认比较的是两个对象的内存地址,也就是说,如果两个对象的内存地址相同,则它们的值也相同;int n = i;

2023-02-07 16:52:20 97

原创 5、程序结构

支持 byte,short,char,int,String (jdk1.7) ,枚举,还支持前边4个基本数据类型所对应的包装类。顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。顾名思义,就是代码按照从上往下的先后顺序执行;

2023-02-07 16:11:44 81

原创 4、运算符

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符主要是决定哪个值应该赋值给变量。表达式1&&表达式2如果表达式1为false,根据&&的规则,已经可以判断出整个表达式的结果,就不会继续判断表达式2;表达式1Ⅱ表达式2如果表达式1为true,根据ll的规则,已经可以判断出整个表达式的结果,就不会继续判断表达式2。a++︰变量a先参与程序的执行,然后变量a自加1。++a︰变量a自加1,再参与程序的执行。后面只能跟变量或者值,不能是逻辑式子。

2023-02-07 15:38:24 44

原创 3、数据类型

单精度和双精度精确的范围不一样,单精度,也即float,一般在计算机中存储占用4字节,也就是32位,有效位数为7位;数值的范围越大,表示该数据类型的精度越高,根据精度的由低到高排序为:byte -> short,char -> int -> long -> float ->double。包装器类型:Boolean,Character,Integer,Byte,Short,Long,Float,Double。栈中保存的是:s =对象的引用,即对象名和对象的内存地址堆中保存的是: new Student();

2023-02-07 15:37:26 136

原创 2、Java基础知识

1)JDK(Java Development Kit,java开发工具包)是整个JAVA的核心,包括了Java运行环境(JRE),基本组件(javac/java/jdb等)和Java基础的类库(即Java APl,如: rt.jar);true、false、null、byValue、cast、future、generic、inner、operator、outer、rest、var、goto(保留关键字)、const(保留关键字)4)源文件名必须和类名相同,后缀是.java,编译文件后缀是.class。

2023-02-07 15:30:06 78

原创 1、eclipse使用:

eclipse基本使用

2023-02-07 11:37:58 61

空空如也

空空如也

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

TA关注的人

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