自定义博客皮肤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)
  • 收藏
  • 关注

原创 Integer与int

利用包装类的缓存机制,在-128到127这个范围期间的数,返回的是缓存(内存)中的对象引用,而不是创建一个新的对象。

2024-03-12 20:37:28 313 1

原创 gulimall接口详解

这个接口的功能是根据请求的分页请求和key(查询搜索框上用)来返回属性分组的信息(包括属性分组的id,name,和对应的catelogid),显示的界面就是点击到第三级分类时自动显示出该catelogid对应的所有属性分组信息,使用搜索框查询时能够查询出对应的attr_group id和name。这个接口的功能时根据第三级的catelogid能够得到它的所有父类的id,就好比第三级的catelogid是225,得到的就是[2,34,225],这个用于那个属性分组修改时catelogid这栏的信息回显。

2023-11-21 14:43:45 86

原创 java--多态和解耦

向上转型允许你以统一的方式处理不同类型的对象,这对于实现多态性和灵活性非常有用。通过父类引用可以调用子类中从父类继承的方法,但无法直接调用子类特有的方法。和Printer filePrinter = new FilePrinter();都使用Printer来指向子类的对象 ,这是一个向上转型的例子。在Java中,向上转型指的是将一个子类类型的实例赋值给一个父类类型的引用变量。在这个示例中,Printer。

2023-10-23 21:17:00 89

原创 java抽象方法

java抽象方法用abstract来进行声明,抽象类是一种介于普通类和接口之间的类,它可以包含抽象方法、非抽象方法、构造方法、静态方法和成员变量,抽象类可以包含具体实现的方法,这些方法可以提供通用的行为或默认的实现,供其子类直接使用。子类可以选择性地重写这些方法,以覆盖父类提供的默认实现;在java中接口是是一种抽象类型并不是一个类,可以从一个类可以实现多个接口而类只能继承一个可以看出,接口中方法都是抽象方法,如果一个类实现了一个接口,则必须实现该接口所有抽象方法,除非是抽象类,

2023-10-23 20:56:03 916

原创 Arraylist与Linklist区别

如果需要频繁进行插入和删除操作,特别是在列表的中间位置,那么 LinkedList 可能更适合。ArrayList 是基于数组实现的动态数组,它使用数组来存储元素,初始容量是10,然后会根据元素个数进行扩容调整大小。LinkedList 是基于双向链表实现的,它使用链表结构存储元素,每个元素都包含对前一个和后一个元素的引用。对于插入和删除操作,LinkedList的性能比较好,因为它不需要像数组一样移动元素。随机访问的话ArrayList的性能比较好,因为它可以直接访问元素的索引。

2023-10-23 20:38:29 61

原创 209. 长度最小的子数组

这道题用爽直针法一个是start(i),一个是end(j),需要注意的两给点是for循环中的变量是end指针,每次end往后移动确定满足要求的最大窗口,再移动start查找最小窗口,这种方法巧妙地没有把所有的情况列出来(像暴力解法那样)但是包含了所有满足要求的最短长度数组,虽然没有包含所有满足要求的数组,但不影响结果。如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。

2023-10-18 15:05:32 23

原创 977.有序数组的平方

这里用的的是双指针写法,从0作为比较数值平方大小的分界线,左指针和右指针的平方各自比较,取较小的数,这样的话左指针减减或者右指针加加。这是整体的思路,但是在书写代码上,我造成了nums指针越界,当左边到底或右边到底时无法处理,这里借鉴上述代码将while (i >= 0 || j < n)作为循环条件在这里里面进行情况的讨论。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]组成的新数组,要求也按。

2023-10-17 15:52:38 23

原创 27.移除元素

你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也。这里用到了双指针法,一个快指针,一个慢指针,快指针来筛选符合新数组的元素,慢指针来记录记录下新数组的元素,left代表了新数组的长度。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。不要使用额外的数组空间,你必须仅使用。的元素,并返回移除后数组的新长度。函数应该返回新的长度。

2023-10-17 14:51:34 20

原创 java中的列表

列表(List)是一种常用的数据结构,它可以存储一组有序的元素,允许元素重复,并且可以动态调整大小。Java中有多种列表的实现,其中最常见的是。

2023-10-17 14:15:26 166

原创 704. 二分查找

对应的while(left<right)加不加等号,和right=mid-1还是right = mid 上面这道题我们将它写成左闭右闭的形式,当然也可以写成左闭右开的形式即写成right=nums.length,左闭右闭时写成right=nums.length-1。二分查找 我们要注意的是区间开闭一般是有两种情况,[左闭右闭 ]和[左闭右开),如果目标值存在返回下标,否则返回。个元素有序的(升序)整型数组。下面我们来写下左闭右开的情况。

2023-10-09 10:10:18 17

原创 java 数组创建

【代码】java 数组创建。

2023-10-09 09:46:09 22

原创 MVCC的理解---多版本并发控制

根据版本链数据访问规则,事务4中第一次select查询可以读取事务1提交的数据,事务4第二次select查询可以读取事务2提交的事务,第一次读到张三,第二次读到张小三。所以读以提交隔离机制无法避免不可重复读问题。undo_log,又称回滚日志,在数据修改的时候,如果某些原因导致事务失败可以回滚,trx_id是事务编号,db_roll_ptr用来连接上一个事务,trx_id为null表示回滚到了原始的数据。RR:可重复读 RC:读已提交 两种隔离机制。

2023-09-03 17:25:41 24

原创 SpringMVC的工作流程

3. 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet。4. DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) --注,处理器适配器有多个。11. 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。

2023-09-02 10:05:18 33

原创 Redis的核心数据结构及使用场景

可以把Bitmaps想象成一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量.偏移量的值为0或1.一般用于签到功能或者是统计是否登录的功能上。,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择。Redis的Set是string类型的。,这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。对外提供的功能与list类似是一个列表的功能,特殊之处在于set。集合的成员是唯一的,但是评分可以是重复了。,所以添加,删除,查找的。

2023-09-01 21:02:42 39

原创 redis持久化

定期将redis内存快照(二进制文件)保存在磁盘中。:以日志文件形式追加保存每个写命令的操作记录。更高的数据安全性、数据一致性。接受较大的磁盘占用时。

2023-09-01 20:03:38 29

原创 redis的读取与写入数据

使得应用程序能够在需要快速访问数据时从 Redis 获取数据,而在需要持久性和复杂查询时从 MySQL 获取数据。Redis 可以轻松处理高并发的读取请求,因为它的响应时间非常短。这种分层的数据存储和缓存策略有助于提高应用程序的性能和可伸缩性。,可以显著减少从mysql中的读取次数,从而加快读取操作。因为redis的数据存在内存中,所以读取时速度快,通过。,这种架构将 Redis 和 MySQL 结合起来,可以提高用户体验,使用户感觉应用程序更加流畅和快速。通过减少数据库的读取负载,减轻了数据库的压力。

2023-09-01 19:44:26 726

原创 单例模式---设计模式

单例模式:单例类只能有一个实例,只能被自己创建,并给其他对象提供这一实例。缺点:必须加锁 synchronized 才能保证单例,但加锁会影响效率。主要解决:一个全局使用的类被频繁的创建与销毁。优点:第一次调用才初始化,避免内存浪费。何时使用:当想控制实例数目,节省资源时。缺点:类加载时就初始化,浪费内存。优点:没有加锁,执行效率会提高。关键代码:构造函数是私有的。2. 懒汉式 ,线程安全。1.懒汉式,线程不安全。

2023-09-01 16:37:12 33 1

原创 Java基础知识

而不是每个对象实例的堆内存中。这使得它们在整个应用程序的生命周期内都存在,并且可以被多个对象实例共享。因此,为了方便访问这些成员,Java设计了通过。private定义了类的成员(字段和方法)只能在类的内部(类的内部是指类的定义体内部)被使用,即使类实例化也不能调用。在Java中,通过类名访问静态成员(静态字段和静态方法)的原因是因为。static 成员是静态的,可以通过类名直接访问。,而不是特定的对象实例。,而不需要首先创建类的对象。,无需创建对象就可以使用。它们在类加载时就已经存在。

2023-09-01 14:43:39 31 1

原创 死锁的概念和例子

由于线程 girl1 持有口红的锁并等待获取镜子的锁,而线程 girl2 持有镜子的锁并等待获取口红的锁,它们互相等待对方释放资源,形成了死锁。字段都只有一份,被所有实例共享。这确保了在多个线程之间也只有一份资源,因为所有线程都可以访问相同的静态字段,从而达到资源共享的目的。关键字声明的字段属于类本身,而不是类的实例。这意味着无论创建了多少个类的实例,静态字段只有一份,被所有实例共享。关键字声明的方法也属于类本身,而不是类的实例。死锁:多个线程相互抱着对方需要的资源,然后形成僵持,都停止执行的情形。

2023-08-30 08:44:16 64

原创 Sychronized关键字与线程同步

线程并发会带来同一个对象被多个线程同时操作。这里我们需要知道每个对象都有一把锁,sleep并不会使对象解锁。1. 同步方法 在方法前加关键字 sychronized,这个方法是哪个对象的,就是锁的哪个对象。2. 同步代码块 记住锁的是增删改的对象。取到的票号有小于等于0的数出现。线程同步的形成需要 排队+锁。

2023-08-29 20:36:03 35 1

原创 innoDB存储引擎是啥 有哪些知识点

InnoDB是MySQL数据库管理系统中的一种存储引擎,它是MySQL默认的事务性存储引擎。这使得用户可以将多个操作组合成一个事务,并确保这些操作要么全部成功提交,要么全部回滚,从而保证数据的一致性。每个事务看到的数据版本是独立的,这使得事务可以读取一致的数据快照,而不会受到其他事务的影响。InnoDB支持崩溃恢复,它可以在数据库崩溃后将未提交的事务回滚,并将已提交的事务重新应用,从而确保数据的持久性。自MySQL 5.6.4版本起,InnoDB开始支持全文索引,使得可以在文本数据上进行高效的全文搜索。

2023-08-29 17:07:42 86 1

原创 事务的隔离级别有哪些

脏读(Dirty Read),不可重复读(Non-repeatable Read)和幻读(Phantom Read)是数据库中并发操作可能导致的问题,这些问题源于多个事务同时访问和修改数据库的数据。幻读是指在一个事务内,同一查询在不同时间点多次执行,但返回的结果却不同,因为其他事务在查询之间插入了新的数据。幻读与不可重复读的区别在于,幻读涉及到新增的数据行,而不仅仅是已存在的数据行的更新。不同的隔离级别提供了不同的并发控制方式,以保证事务之间的一致性、隔离性和可靠性。脏读可以破坏数据的一致性和准确性。

2023-08-29 17:02:53 779 1

原创 mysql事务

多个事务可以并发执行,但每个事务的操作似乎是在独立的环境中进行的,互不干扰。如果事务中的任何一部分操作失败,整个事务都会被回滚到事务开始前的状态,保证数据库不会处于不一致的状态。事务在执行前后,数据库的状态应保持一致。在数据库中,用户可以通过将一系列数据库操作封装在事务中,从而可以保证这些操作以一种可控的方式执行。如果一个操作失败,事务会被回滚,如果所有操作都成功,事务会被提交,从而将操作的结果永久保存在数据库中。一旦事务被提交,其所做的修改将永久保存在数据库中,即使系统崩溃或重新启动,修改也不会丢失。

2023-08-29 17:00:37 19 1

原创 MYSQL的优化

增加索引是一种简单高效的手段,但是需要选择合适的列,同时避免导致索引失效的操作,比如like,函数等。在单表数据量较大或者并发连接数过高的情况下,通过这种方式可以有效提高查询效率。3. 根据查询分析器适当的优化sql的结构,比如是否走全表扫描,避免子查询等。针对读多写少的场景,这样可以保证写操作的数据库承受更小的压力。2. 避免返回不必要的数据列,减少返回的数据列可以增加查询效率。

2023-08-29 16:31:57 27 1

原创 mysql覆盖索引

在传统的数据库查询中,如果某个查询涉及到的列不仅仅是索引列,还包括其他列,数据库引擎可能需要通过索引定位到数据行,然后再从数据行中检索其他列的值。2. 回表"(Table Lookup)是数据库查询操作中的一个术语,它指的是在通过索引定位到数据行后,由于所需的数据并没有在索引中完全涵盖,数据库引擎需要再次访问实际的数据表来获取缺失的数据。而覆盖索引则通过在索引中包含查询所需的所有列,使得查询操作可以直接从索引中获取所需数据,而无需再访问实际的数据行。找到满足年龄条件的索引项后,引擎会检查这些索引项的。

2023-08-29 15:58:25 105 1

原创 Lambda表达式

在创建线程的构造函数中,传递了一个Lambda表达式作为参数,这个Lambda表达式的参数和返回类型必须与目标上下文的类型匹配。Lambda表达式在Java中是通过上下文中的目标类型(Target Typing)来进行类型推断的。是 Java 中的关键字,用于表示一个类实现了一个接口的所有方法。当一个类实现了一个接口,它需要提供该接口中定义的所有抽象方法的具体实现。所以,当提供一个 Lambda 表达式作为参数时,根据 Lambda 表达式的实际内容,编译器会自动推断出。构造函数对参数类型的要求。

2023-08-29 09:09:35 43 2

原创 jdk,jre,jvm

2. JDK是用于Java应用程序开发的工具包,包含了编译器、调试器、开发工具等,适用于开发人员。而JRE是用于运行Java应用程序的环境,包含了Java虚拟机和运行时类库,适用于普通用户用于执行已编译的Java程序。JRE不包含编译器和开发工具,因此无法对Java代码进行编译,只能执行已编译的Java字节码。如果你想进行Java应用程序的开发,你需要安装JDK。如果只想运行Java程序,JRE足够了。1. jdk包含jre,jre包含jvm。

2023-08-28 19:51:23 23 1

原创 类的元数据是啥意思

这些元数据是在编译阶段生成并存储在类文件中,它们描述了类的结构和特性。当类被加载到JVM中并被实例化、调用或访问时,这些元数据被用于解释类的行为。在旧版本的Java中,这些类的元数据通常存储在永久代(PermGen)中。在现代的Java版本中,这些元数据存储在元空间(Metaspace)中。类的元数据是指描述类本身信息的数据。类的字节码指令,这些指令描述了类的具体实现,JVM可以根据字节码来执行类的方法。类中定义的常量和字符串等的信息,这些信息在运行时可以被使用。包括类的各个字段的名称、类型和修饰符等。

2023-08-28 19:15:01 415 1

原创 dropout的理解和笔记

1.drop是为了避免模型过拟合而提出来的,dropout的神经元对下游神经元不做贡献,反向传播史对应的权重也不更新。举个例子,自然界无性繁殖保留的大段的连续基因,有性繁殖将基因进行拆了又拆破坏了基因的联合适应性,但是自然界选择了有性繁殖说明其更强,同样的道理dropout一部分神经元后,破坏其联合适应性,迫使其他神经元去介入代替缺失的神经元的那部分特征。普遍认为这种网络模型会得到更多的内部特征因此提升了模型的泛化能力,不容易对训练数据过拟合。关键字:联合适应性 随机挑选 泛化能力 特定权重...

2022-03-15 21:46:55 300

原创 恶意代码.btye文件转化为灰度图以及rgb图像

恶意代码

2022-03-15 11:52:51 2061

原创 正则表达式笔记

1. [^-]+ 代表的是从开头吃字符到-为止2.贪婪匹配与非贪婪匹配3.findall 的表达式中如果有分组的话 那么匹配的结果就是分组4. findall 返回的是列表 sub是是进行替换 第一个参数是要被替换的部分(源),第二个参数是要替换成的参数,第三个参数是字符串5.?是0次或者1次6.\s 是分组 \.是任意字符 除了\n7. |这个是或 一般会加()分组8. [0123456789] [0-9] [0-89] [0-56-9]都是同一个意思...

2022-03-09 17:40:17 54

原创 array---java

1.声明数组:就是告诉计算机数组的类型是什么。有两种形式:dataType[] array; // 首选的方法或dataType array[]; // 效果相同,但不是首选方法2.分配空间:告诉计算机需要给该数组分配多少连续的空间,记住是连续的。array = new int[10];3.其实分配空间和赋值是一起进行的,也就是完成数组的初始化。有如下三种形式:int x[] = new int[9]; //默认为0,如果是引用数据类型就为nullint y[] = ne..

2022-01-15 02:14:50 103

原创 tf.data.dataset 的一些方法总结

tf.data.Dataset一些常见函数汇总

2021-11-29 18:01:58 1717

原创 reshape(1,-1)与reshape(-1,1)的理解

reshape(行,列)可以根据指定的数值将数据转换为特定的行数和列数,这个好理解,就是转换成矩阵。然而,在实际使用中,特别是在运用函数的时候,系统经常会提示是否需要对数据使用reshape(1,-1)或者reshape(-1,1)进行转换,那这两个转换是什么意思呢?难道还有-1行的数据?这里的-1被理解为unspecified value,意思是未指定为给定的。如果我只需要特定的行数,列数多少我无所谓,我只需要指定行数,那么列数直接用-1代替就行了,计算机帮我们算赢有多少列,反之亦然。所以-1

2021-11-28 19:42:31 8220

原创 tf.squeeze()与tf.expand_dims()

tf.squeeze()与tf.expand_dim()总结

2021-11-28 19:32:24 1271

原创 str(),repr(),eval()函数功能

str(),repr(),eval()函数功能

2021-11-28 16:44:25 470

linux基本命令vim文件等等

linux基本命令vim文件等等

2022-08-23

空空如也

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

TA关注的人

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