自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(157)
  • 问答 (4)
  • 收藏
  • 关注

原创 编程实用工具大全(二)(前后端皆可用,不来看看?)

从事:Python,前端,Java,C,C++, R ,Javascript,C#, Matlab , Swift , Go ,数据库等领域的都适合。

2022-04-24 17:34:27 16232 140

原创 编程实用工具大全(前后端皆可用,不来瞅瞅?)

从事:Python,前端,Java,C,C++, R ,Javascript,C#, Matlab , Swift , Go ,数据库等领域的都适合。目录1.Snipaste2.命名神器codelf3.渐变色神器4.CSS阴影效果神器5.数据结构可视化6.Buttons7.CSS在线设计按钮8.颜色码转换工具9.HTML颜色代码10.HTTP 状态代码11.Iconfont 矢量图标库12.JSON字符串格式化13.数据库大全个人主页:...

2022-04-19 17:31:39 32402 227

原创 Ubuntu搭建web站点并发布公网访问【内网穿透】

网:我们通常说的是互联网;站:可以理解成在互联网上的一个房子。把互联网看做一个城市,城市里面的每一个房子就是一个站点,房子里面放着你的资源,那如果有人想要访问你房子里面的东西怎么办?在现实生活中,去别人家首先要知道别人的地址,某某区某某街道,几号,在互联网中也有地址的概念,就是ip。通过ip我们就能找到在互联网上面的站点,端口可以看做是这个房子的入口,不同的入口所看到的东西也就不一样,如从大门(80端口)进是客厅,从窗户(8080端口)进是书房。

2023-03-28 07:45:00 1226 58

原创 【蓝桥杯-筑基篇】贪心

假如整数n表示当前奖池中已经有的钱的总数,给你一个一夜暴富的机会:请你从n中删除m个数字,余下的数值对应的金额就是你能够拿走的钱,我们知道人性都是贪婪的,那么请编程帮小明使得余下的数字按原次序组成的新数最大,比如当n=92081346718538. m=10时,则新的最大数是9888。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。

2023-03-24 22:40:16 1172 128

原创 【蓝桥杯-筑基篇】搜索

初始时,我们调用DFS函数,初始深度为0,初始答案为空字符串,n为3。否则,我们遍历所有可能的下一位数,如果该数未被使用,则将其加入到答案中,并递归调用DFS函数,深度加1。这个递归树表示的是一个将一个大小为 n 的问题分成两个大小为 n/2 的子问题的递归算法。在DFS函数中,我们使用了一个for循环来遍历每个深度的可能性,即0或1,然后将其存储在数组中,并递归调用DFS函数,直到深度达到4。递归树的叶子节点表示递归算法的基本操作,而递归树的深度表示递归算法的递归深度。4 {四种分法为:1,1,5;

2023-03-24 09:53:22 1926 276

原创 【蓝桥杯-筑基篇】分治算法

如果用直接用 Math.pow()调用 ,f(x)=a^x , 随着x单位长度的递增,f(x)会呈“爆炸性”增长。导致数很大,大到没有任何类型可以承载。一张纸对折一次,厚度变成原来的2倍。再对折第二次,变为原来的2的2次方倍即4倍。以此类推,假设纸的厚度为0.1mm,则对折24次以后,长度超过1千米;对折39次达55000千米,超过地球赤道长度;对折42次达44万千米,超过地球至月球的距离;对折51次达22亿千米,超过地球至太阳的距离;对折82次为51113光年,超过银河系半径的长度。

2023-03-21 22:40:10 448 3

原创 【蓝桥杯-筑基篇】递归-递推

指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)否则,我们递归地计算 fibonacci(n-1) 和 fibonacci(n-2),并将它们相加返回。规模较小的问题又变成规模更小的问题,并且小到一定程度可以直接得出它的解,从而得到原来问题的解。这个方法会一直调用自己,直到 i 等于 1,然后返回 1。来计算,当n=1或n=0时n!

2023-03-18 21:52:32 525 5

原创 【蓝桥杯-筑基篇】排序算法

因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。我们可以在每一轮排序后, 记录下来最后一次元素交换的位置,该位置即为无序数列的边界,再往后就是有序区了。选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。

2023-03-16 21:59:50 1517 146

原创 【蓝桥杯-筑基篇】字符串基础

例如:abcd 是 “困难的串”,abcabc 是“容易的串”, a 是 “困难的串”,cabacab 是 “困难的串”返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”。第一个参数int为开始的索引,对应String数字中的开始位置,

2023-03-14 23:24:13 604 6

原创 【蓝桥杯-筑基篇】基础数学思维与技巧(2)

把0到10的阶乘都算出来 然后用数组存取,从10的阶乘开始,一直的比较然后不断的相减,看最后number 是否等于0,为0则是可以的,否则就不行。,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数,否则称为合数(规定1既不是素数也不是合数)因为:1*36=36,2*18=36,3*12=36,4*9=36,6*6=36。遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数。故36的约数为:1,36,2,18,3,12,4,9,6。例如:求36 的约数。

2023-03-11 17:25:06 445 2

原创 【蓝桥杯-筑基篇】基础数学思维与技巧(1)

公约数与公倍数相反,就是既是A的约数同时也是B的约数的数,12和15的公约数有1,3,最大公约数就是3。再举个例子,30和40,它们的公约数有1,2,5,10,最大公约数是10。数,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,把这样的一个四位数命名为天空数,任给一个四位数判断它是否为天空数。将这个二进制-1,然后和其原来的数&运算,如果是2的次方数,其结果应该为0,否则不是2的次方数。公约数,亦称“公因数”。

2023-01-25 17:39:07 913 1

原创 【蓝桥杯-筑基篇】基础入门

首先我们得出前17位的乘积和是189,然后用189除以11得出的结果是17+2/11,也就是说其余数是2。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。计算过程,给定一个数字,从大到小排列后减去从小到大排列,经过若干次运算后终得到一个固定的整数,三位数的黑洞495,四位数的黑洞6174等等。

2023-01-09 19:31:25 2092 6

原创 【JAVA进阶】集合

数组的特点集合的特点1、数组和集合的元素存储的个数问题。数组定义后类型确定,长度固定 集合类型可以不固定,大小是可变的。2、数组和集合存储元素的类型问题。数组可以存储基本类型和引用类型的数据。集合只能存储引用数据类型的数据。3、数组和集合适合的场景 数组适合做数据个数和类型确定的场景。集合适合做数据个数不确定,且要做增删元素的场景,集合种类更多,功能更强大。1.集合的体系特点集合类体系结构Collection集合体系Collection集合特点List系列集合:添加的元素是。

2023-01-04 19:50:23 218 1

原创 【JAVA进阶】常用API

这些方法返回的是一个新的实例引用,因为LocalDateTime 、LocalDate 、LocalTime 都是不可变的。一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息!开发中输出对象变量,更多的时候是希望看到对象的内容数据而不是对象的地址信息。他们 分别表示日期,时间,日期时间对象,他们的类的实例是不可变的对象。

2023-01-03 13:24:26 1491 2

原创 【Spring篇】代理模式

就拿日志功能来说,将来其他地方也需要附加日志,那还得再声明更多个静态代理类,那就产生了大量重复的代码,日志功能还是分散的,没有统一管理。它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类。调用目标方法时先调用代理对象的方法,减少对目标方法的调用和打扰,同时让附加功能能够集中在一起也有利于统一维护。解决问题的困难:要抽取的代码在方法内部,靠以前把子类中的重复代码抽取到父类的方式没法解决。代理:将非核心逻辑剥离出来以后,封装这些非核心逻辑的类、对象、方法。

2023-01-02 21:24:48 485 5

原创 【JAVA进阶】包装类,Arrays类,Lambda表达式

public static void sort​(类型[] a, Comparator

2023-01-01 18:26:20 335 1

原创 【Spring篇】基于注解管理bean

配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框架检测到注解标记的位置,然后针对这个位置按照注解标记的功能来执行具体操作。墙上的标记相当于我们在代码中使用的注解,后面同学们做的工作,相当于框架的具体操作。举例:元旦联欢会要布置教室,蓝色的地方贴上元旦快乐四个字,红色的地方贴上拉花,黄色的地方贴上气球。为了知道程序员在哪些地方标记了什么注解,就需要通过扫描的方式,来进行检测。但是实际开发时,基本上所有需要装配组件的地方都是必须装配的,用不上这个属性。注解的基础上起了三个新的名字。

2022-12-21 23:51:52 97 2

原创 【Spring篇】基于xml的自动装配

④使用bean标签的autowire属性设置自动装配效果。能够为属性赋值,则该属性不装配,即值为默认值。:将自动装配的属性的属性名,作为。自动装配方式:byType。能够为属性赋值,则抛出异常。自动装配方式:byName。中所依赖的类类型或接口类。中,没有任何一个兼容类型的。容器中的某个兼容类型的。中,有多个兼容类型的。

2022-12-20 18:56:23 696 4

原创 【SSM框架】bean的作用域,生命周期

可以帮我们把复杂组件创建的详细过程和繁琐细节都屏蔽起来,只把最简洁的使用界面展示给我们。属性中配置的这个类的对象,而是 getObject()方法的返回值。的后置处理器会在生命周期的初始化前后添加额外的操作,需要实现。提供的一种整合第三方框架的常用机制。对象创建(调用无参构造器)后置处理器不是单独针对某一个。①具体的生命周期过程。对象初始化之前操作(由。对象初始化之后操作(由。容器中,需要注意的是,1.bean的作用域。在一个请求范围内有效。在一个会话范围内有效。对象初始化(需在配置。

2022-12-19 14:11:07 116 3

原创 【JAVA进阶】多态,内部类

格式:外部类名.内部类名 对象名 = new 外部类构造器.new 内部类构造器();变量名 instanceof 真实类型 判断关键字左边的变量指向的对象的真实类型,是否是右边的类型或者是其子类类型,是则返回true,反之。可以的,因为必须先有外部类对象,才能有成员内部类对象,所以可以直接访问外部类对象的实例成员。内部类就是定义在一个类里面的类,里面的类可以理解成(寄生),外部类可以理解成(宿主)。格式:外部类名.内部类名 对象名 = new 外部类名.内部类构造器;本质上是一个没有名字的局部内部类。

2022-12-18 18:33:38 216 2

原创 【MySQL进阶】索引的结构及分类

备注: 这里我们只是假设索引的结构是二叉树,介绍一下索引的大概原理,只是一个示意图,并不是索引的真实结构,索引的真实结构,后面会详细介绍。此时大家可能会想到,我们可以选择红黑树,红黑树是一颗自平衡二叉树,那这样即使是顺序插入数据,最终形成的数据结构也是一颗平衡的二叉树,回表查询: 这种先到二级索引中查找数据,找到主键值,然后再到聚集索引中根据主键值,获取数据的方式,就称之为回表查询。因为A语句直接走聚集索引,直接返回数据。中所支持的所有的索引结构,接下来,我们再来看看不同的存储引擎对于索引结构的支持情况。

2022-12-16 23:21:22 132 5

原创 【JAVA进阶】包、权限修饰符、抽象类、接口

答:模板方法是给子类直接使用的,不是让子类重写的, 一旦子类重写了模板方法,则模板方法就失效了,因此,加上final后可以防止子类重写了模板方法,这样更安全、专业。模板方法已经定义了通用结构,模板方法不能确定的部分定义成抽象方法,交给子类实现,因此,使用者只需要关心自己需要实现的功能即可。5、一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。4、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。修饰方法,这个方法就是抽象方法。

2022-12-15 13:05:42 108 4

原创 【SSM框架】为集合类型属性赋值

方法2:配置一个集合类型的bean,需要使用util 的约束-集合类型属性赋值,只需要将其中的。命名空间后,可以通过以下方式为。方法1:配置bean。方法2:配置bean。

2022-12-14 14:43:50 203 2

原创 【MySQL进阶篇】存储引擎

而我们在选择引擎的时候,需要在合适的场景,选择合适的存储引擎,就像在直升机上,我们不能选择舰载机的引擎一样。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定表的查询的顺序,是否利用索引等,最后生成相应的执行操作。主要体现在存储引擎上,插件式的存储引擎架构,将查询处理和其他的系统任务以及数据的存储提取分离。我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。

2022-12-10 20:16:20 1848 43

原创 【SSM框架】依赖注入

只把这个属性看做一个普通的字符串,不会认为这是一个bean。所以字面量没有引申含义,就是我们看到的这个数据本身。了,而是作为一个变量的名字。,那么它现在不是一个变量,它就是代表。属性:指定参数所在位置的索引(从。1.依赖注入之setter注入。的时候,我们实际上拿到的值是。这个字母本身,这就是字面。③方式一:引用外部已声明的。③方式三:级联属性赋值。,更不会根据它去找到。

2022-12-01 22:56:50 471 7

原创 【SSM框架】获取bean的三种方式和注意事项

底层默认通过反射技术调用组件类的无参构造器来创建组件对象,这一点需要注意。属性可以精确获取到一个组件对象。上个实验中我们使用的就是这种方式。如果一个接口有多个实现类,这些实现类都配置了。如果组件类实现了接口,根据接口类型可以获取。就可以认定为和类型匹配,能够获取到。唯一性的前提下,其实只是看:『对象。型』的返回结果,只要返回的是。②方式二:根据类型获取。,根据接口类型可以获取。的唯一标识,所以根据。

2022-11-28 21:34:14 208 5

原创 【SSM框架】Spring和IOC简介

反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的。DI 是 IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如:setter 方法)接受来自于容器的资源注入。的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。

2022-11-24 10:00:05 337 45

原创 【SSM框架】mybatis分页插件

在MyBatis的核心配置文件中配置插件。

2022-11-23 13:04:28 206 6

原创 【SSM框架】MyBatis的逆向工程

⑦添加 SqlSessionUtils 工具类。MBG插件的generate目标。④创建逆向工程的配置文件。⑤创建log4j.xml。

2022-11-17 13:17:35 1063 21

原创 高并发帐户查询怎么做?

高并发帐户查询的应用场景有很多,例如:手机银行查流水、电商系统查购物订单、手游帐户查充值记录等等。这些场景一般会涉及众多帐户,数据总量非常大,需要外存。每个帐户的数据量通常不大(几条到几千条),而且就是简单查询,几乎没有什么运算。不过,众多的帐户自然也会有大量、高频率的查询,并发访问量会很大,要达到秒级甚至更高的响应速度也是一个不小的挑战。在SQL数据库或数据仓库中,用索引查找单个帐户数据的速度很快,几乎感觉不到耗时,但并发很多时就会有明显延迟了。

2022-11-16 08:45:00 2411 43

原创 【SSM框架】MyBatis的缓存

因此这些对象不能被修改。查询的数据会被缓存,下次查询相同的数据,就 会从缓存中直接获取,不会从数据库重新访问。先查询二级缓存,因为二级缓存中可能会有其他程序已经查出来的数据,可以拿来直接使用。查询的结果会被 缓存;此后若再次执行相同的查询语句,结果就会从缓存中获取。两次查询之间执行了任意的增删改,会使一级和二级缓存同时失效。查询的数据所转换的实体类类型必须实现序列化的接口。最近最少使用的:移除最长时间不被使用的对象。不同的SqlSession对应不同的一级缓存。关闭之后,一级缓存中的数据会写入二级缓存。

2022-11-12 07:30:00 952 73

原创 #入坑keychron#你还没一起入坑吗?

经济和科技飞速发展的今天,我们早已不在像从前那样有电脑玩就行,现在的我们追求的是更高的配置、更好的体验,就像从前一碗泡面就是最高的理想,而现在最少都得有根泡面搭档才能勉强接受,连泡面都有搭档,电脑自然不能服输。作为陪伴电脑最久的键盘,自然便是电脑最好的搭档,没有一个好的键盘,你有再好的电脑也白搭,作为一个小小的程序员,一个好的键盘,无疑是对灵魂的救赎,对仅剩头发的保护。从“HelloWorld!

2022-11-09 21:17:32 2057 9

原创 【JAVA进阶】继承

如果子父类中,出现了重名的成员,会优先使用子类的,此时如果一定要在子类中使用父类的怎么办?在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。@Override是放在重写后的方法上,作为重写是否正确的校验注解。),手动调用父类的有参数构造器。当子类需要父类的功能,但父类的该功能不完全满足自己的需求时。如果父类中没有无参数构造器,只有有参构造器,会出现什么现象呢?因为子类默认是调用父类无参构造器的。旧手机的功能只能是基本的打电话,发信息。1.子类是否可以继承父类的构造器?

2022-11-06 22:07:51 669 11

原创 IVX低代码平台——微信小程序获取用户信息

iVX是一款为新一代零代码开发人员设计的全栈编程工具,或者说iVX的出现创造了这一与传统代码工程师所对应的iVX开发工程师职业。IVXivx公号:ivx_cn。

2022-11-02 12:52:13 4927 83

原创 【JAVA基础—刷题(6)】继承

1.补全构造方法1.补全构造方法。

2022-10-30 19:38:26 829 5

原创 多维分析预汇总应该怎样做才管用?

多维分析(OLAP)通常要求极高的响应效率,当涉及的数据量很大时,每次都基于明细数据汇总效率就会很低,人们会考虑采用预汇总的方式加快查询速度,即事先将要查询的结果计算好,使用时直接读取预汇总结果就可以获得实时响应,从而满足交互分析的需要。不过,将可能的维度组合全部预汇总不太现实,按中间CUBE大小仅1KB计算50个维度的全量预汇总需要的存储空间高达1MT,需要100百万块1T的硬盘,即使只汇总其中20个维度也要占用470000T的空间(),显然都不能接受。

2022-10-24 08:21:28 4763 63

原创 【JAVA基础—刷题(5)】封装

现有一个Data类,内部定义了属性x和y,在main方法中实例化了Data类,并计算了data对象中x和y的和。但是,Data类的定义存在错误,请你将这些错误修正过来,使得main方法中的求和逻辑可以正常执行。两个整数两个整数的和 采用封装的思想,为Person类定义年龄属性,要求:修改年龄时判断其范围,若年龄小于0则按0输出,若年龄大于200则按200输出。年龄整数值1. 若年龄小于0则输出0;2. 若年龄大于200则输出200;3. 若年龄介于[0,200]之间则直接输出。

2022-10-23 21:14:23 798 8

原创 【JAVA基础—刷题(4)】数组

💬👉1.数组遍历。

2022-10-16 19:07:33 759 11

原创 【MyBatis】动态SQL

若where标签中的if条件满足,则where标签会自动添加where关键字,并将条件最前方多余的and去掉。若where标签中的if条件满足,则where标签会自动添加where关键字,并将条件最前方多余的and去掉。若where标签中的if条件都不满足,则where标签没有任何功能,即不会添加where关键字。prefixOverrides:在trim标签中的内容的前面去掉某些内容。prefix:在trim标签中的内容的前面添加某些内容。suffix:在trim标签中的内容的后面添加某些内容。

2022-10-07 09:48:35 798 11

转载 【JAVA进阶】static关键字详解

开发中经常遇到一些问题,一个问题通常有n种解法的,但其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。由于工具里面都是静态方法,直接用类名即可访问,因此,工具类无需创建对象,建议将工具类的构造器进行私有。特点:每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行。代码块是类的5大成分之一(成员变量、构造器,方法,代码块,内部类),定义在类中方法外。之前我们定义的方法有的有static修饰,有的是没有的,有什么不同?2.static修饰的成员变量是什么?

2022-10-06 17:13:00 715 7

空空如也

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

TA关注的人

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