- 博客(55)
- 收藏
- 关注
原创 一招帮你搞懂数据结构的插入、删除
在三、的基础上:删除一项时,可以直接从前向后遍历数组去寻找这一项数据,但是这种方法只适合删除一项的情况,因为从后向前覆盖和从前向后查找很容易产生盲区,导致删除不干净的现象,为此统一-->查找时也从后向前查找。而且String类型是不可变的,所以一旦满数组后,需要进行扩容,为了解决String类型不可变的问题,可以采用其他类型,详细可见。完成上述过程后,就可以进行后移动操作(将插入位置后的数据全部后移一个位置,为插入数据留位置),防止数据产生覆盖而丢失的现象。首先,时刻了解Java运行的内存图,参见。
2024-11-05 00:15:42 111
原创 eclipse软件路径报错重启后,项目都不见了!(解决办法)
找到左上角的File-->Switch Workspace进行更改workplace操作即可,修改到之前的workplace即可解决问题,找回之前的项目。出现上述原因是因为在Choose过程中修改了eclipse的工作环境,此刻处在一个新的workplace中,自然不会有以前写的项目。误触Choose后,发现eclipse可以正常打开了,但是打开后项目栏都空了,软件被初始化了。“某天我开开心心打开eclipse写项目,打开后天塌了!“遇见问题不要慌,看这篇帖子帮你解决!
2024-11-03 20:34:38 230
原创 Java基础05
currentTimeMillis()是Java中的一个静态方法,属于System类;该方法返回自1970年1月1日午夜(协调世界时)以来经过的毫秒数(注意返回类型是long类型的)。时间戳:currentTimeMillis()返回的时间戳常用于生成时间相关的数据,例如记录日志时间、生成时间戳等。性能测试:通过在代码执行前后调用currentTimeMillis(),可以测量代码段的执行时间。
2024-11-02 22:55:23 947
原创 一招帮你搞定验证码设置
自定义纯数字的验证码(随机4位数字,可重复)// 重新生成code自定义验证码内容为四则运算方式// 重新生成code(点击图片刷新功能)元素身上可以绑属性,并不限于onclick等动作属性,懂得这个道理后,可以直接在元素身上绑定实现点击更新验证码
2024-11-01 15:06:18 1154
原创 一篇帮你搞懂Java输入
a.nextInt():该方法用于读取一个整数(int类型)。它只会读取有效的整数部分,不会读取空格、Tab键和回车键,当在输入有效字符前碰到这些无效字符时会自动跳过,在输入有效字符后碰到时便结束读取,并把没能读取的字符留在缓冲区。与nextInt()和nextFloat()不同,nextLine()会读取直到遇到回车键为止的所有字符,包括空格、Tab键和回车键,并且不会把回车键留在缓冲区。nextInt()和nextFloat()适用于需要输入具体数值的情况,如年龄、分数等。
2024-10-27 23:33:39 187
原创 一篇帮你搞懂Java常量池
例如,当你在代码中多次使用相同的字符串时,JVM会在常量池中保存这个字符串,之后当再次需要这个字符串时,就直接引用常量池中的内容,而不是重新创建一个新的字符串对象。b.符号引用:包括类、接口、字段和方法的引用信息。例如,CONSTANT_Class 7表示对一个类或接口的符号引用,CONSTANT_Methodref 10表示对一个类中方法的符号引用。a.编译期常量:包括字符串常量、整数常量、浮点数常量等。例如,String s = "hello"中的"hello"字符串就会被存放在常量池中。
2024-10-27 23:26:23 287
原创 UEditor富文本编辑器
众所周知,界面、信息、数据库...底层都是基于代码的,但是开发语言的最终目的是应用与便利客户,所以对于上传图片、字体格式...与一些其他功能的实现一定是通过代码实现后,客户能够直接操作的简易window版本,毕竟不能让客户进行内容编辑时也要熟知底层代码逻辑。UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。当然,上述代码的关键部分是(其中的src部分取决于解压缩文件对应这个前端创建位置;
2024-10-23 21:52:01 279
原创 会话管理-帮你搞懂cookie(Html版本)
[substring(int beginIndex, int endIndex): 返回一个新的字符串,该字符串从指定的开始索引处到结束索引前一位(留头去尾)。负索引:如果开始索引或结束索引为负数,则从字符串的末尾向前计数,负数绝对值加1为正索引位置。[substring(index): 返回一个新的字符串,该字符串从指定的开始索引index处直到原字符串的末尾。lastindexOf()判断有没有字符串,如果有,会返回匹配的最后一个字符串的位置,如果没有,返回-1。
2024-10-23 13:25:54 762
原创 会话管理-帮你搞懂cookie&session(Java版本)
1.创建session(由流程图也可见,创建session过程中和发出jsessionid的请求中都需要通过判断有无获取到session来进行,所以不同于cookie,创建session的第一步是getSession()而不是new对象。【注意:流程图中也可见,创建session对象后返回的jsessionid是需要存储在cookie中的,所以cookie被禁用时,就需要处理SetSession文件做出补救措施:详细原理参见-->在人机交互,会话管理是保持用户的整个会话活动的互动与计算机系统跟踪过程。
2024-10-23 12:35:56 1101
原创 请求转发和重定向
【重定向是一种服务器指导的客户端行为,客户端发起第一个请求,请求被服务器接收,服务器会返回给客户一个新的地址,客户端接收到新的地址后会根据新地址去发起新的请求。2、重定向之后地址栏上的地址会发生变化,变化成第二次请求的地址,转发之后地址栏上的地址不会变化,还是第一次请求的地址(参见流程图)【请求转发是一种服务器行为,只能转发本项目内的资源,唯独外部的可以请求到WEB-INF内的文件】4、重定向时的网址可以是任何网址,转发的网址必须是本站点的网址(注意WEB-INF的特殊情况)二. 重定向和请求转发的区别。
2024-10-23 12:29:41 311
原创 6句话帮你搞清楚C语言(上)
由于回车、字符也是char类型的数值,所以“scanf("%c",&c);e.g.2设函数g(x,y),其中x,y均属于z,g(x,y)={f(x)-y,x>=0;【首先需要搞清楚-C语言中的参数类型: int,short,long,float,double,char】e.g 斐波那契数列(一个标准的递归函数):1、1、2、3、5、8、13、21、34......设整数k3=f(f(k2)-k1)+f(k1-k2),e.g.1设整数x=2,设整数y=2x-7,设函数f(x)=3x-4,x属于z。
2024-10-21 11:19:23 656
原创 9句话帮你搞清楚C语言(下)
即64位机可容纳32位或64位的操作系统,64位的操作系统可以容纳32位或64位的程序,但是反过来就32位兼容64位不行;每个程序运行时都会申请一段内存空间,但是每个程序都会在自己指定的一块地址申请,互不干扰,所以当某个程序发生程序内存泄露时,并不会对操作系统造成永久性干扰,只需要将程序关闭即可。申请空间时,可能存在原数据,但不论原数据是符号、数字、音频.....都是二进制数据,计算机都可以读取更改。(被扩展成有效空间)arr结构如下图::【即arr并非一个数组指针,只是一个存储了三个指针的数组】
2024-10-21 08:20:45 403
原创 Java基础 03
int:32 -->所以图中int到float的虚线,意为int转成float(float容纳int)会损失精度,就是说容纳不下。2. Unicode对应16位编码-->所有字符都是16进制(也就是16进制)Java中所有应用的变量都要声明且赋值(初始化),否则数据就是违法的。开根号公式-->每次余数商下来两位:(余数*20+x)*x。【⭐延伸:final--通常和static一块使用⭐】【⭐注:“c=c++”这种自身++的情况是无效的】final修饰的引用类型不可以被第二次改变指向;
2024-10-15 23:01:46 689
原创 Java基础 02
-> float的有效位是6-7位,所以当数据超出6-7位后,超出位的精度不能保证;-123=1000000001111011(原)-->1111111110000100(反)-->1111111110000101(补)-->负数的这种存储模式导致浪费了一位0。【总结:int和float的精度哪个更优取决于存储数据的大小:大-->int更优点;x范围-指数: (0-255) y 取值范围-数值:(0-2^23-1)N进制的情况下,1后面有M个0,-->=N的M次方。
2024-10-14 19:01:28 520
原创 八大排序--08快速排序
7.以基准数为起始点,分为左右两部分,重复上述1-6步骤,直至数据都被拆分开结束。6.基准数和相遇位置的数据进行交换,交换完后的基准数到达正确位置;2.定义j游标,从后向前移动找到第一个比基准数小的值停下;3.定义i游标,从后向前移动找到第一个比基准数大的值停下;1.定义待排序数组中的第一个值为基准数;5.重复2-4步骤直到i和j相遇;4.i和j数值交换;
2024-10-12 23:04:22 636
原创 八大排序--07归并排序
拆分:从待排序列中间位置拆开,数据分成左右两部分,继续进行拆分,直至数据拆分成一个一个的时候停止。方法:先拆分,再合并,并在合并过程中结束临时空间进行排序;
2024-10-08 19:49:45 405
原创 八大排序--05堆排序
4.parent和child指向的值进行比较,若parent值更大,则符合大顶堆;若parent的值更小,则父子节点进行交换,parent指向child,child指向其左右孩子中的最大值,继续进行比较,直到child为空或是parent指向值最大,则停止。3.判断有没有右孩子,如果有右孩子,左右孩子进行比较,让child指向左右孩子中的最大值。②对顶元素和堆底元素进行交换,除堆底元素之外其余元素继续构造大顶堆;【大顶堆--父结点的值大于或等于左右孩子结点的值】【完全二叉树--数据从上到下,从左到右排列】
2024-10-08 18:57:47 389
原创 八大排序--04希尔排序(缩小增量排序)
重复上述步骤,直到无法继续分组(步长为1时),整个数组视为一组,组内进行插入排序,此刻只需要进行微调就可以得到最终结果。方法:将数组按照数组长度的一半为间隔进行分组,组内进行插入排序,小的数据在前面,大的数据在后面;将数据按照数组长度一半的一半为间隔进行分组,组内进行插入排序;
2024-10-08 18:22:55 423
原创 八大排序--03插入排序
【实现插入的方式:】定义游标指向为j,以及游标的下一个位置j+1,将二者进行比较,,如果j+1的数值大,则到达正确位置;若是j+1数值小 ,那么将j和j+1指向数值替换位置,j--,继续向前(也就是在已排序序列中)比较交换,直到j+1的值大,或者越界(也就是移动到队首位置)。方法:插入排序默认待排数组中的第一个是已经排好序的数值;定义游标从第二个数据开始不断向后方进行遍历,并将游标指向的数据不断插入到排好序的数组中。【注:越小的数组再后面交换的次数越多--即在已排序列中向前遍历的数目越多】
2024-10-08 17:58:07 422
原创 八大排序--02选择排序
方法:选择排序默认数组中第一位为最小值,找待排序数组当中真正的最小值;和待排序列中的第一个进行交换,让最小值到达正确的位置。
2024-10-05 23:04:29 279
原创 八大排序--01冒泡排序
方法:开辟两个指针,指向如图,前后两两进行比较,大数据向后冒泡传递,小数据换到前面。假设有一组数据 arr[]={2,0,3,4,5,7}一次冒泡后,数组中最大的数据将到达正确位置。
2024-10-05 22:45:01 449
原创 后端(实例)08
删除模块所对应的Java文件内部:(此处只给出关键部分,也就是dopost部分)2.开始第一步:查数据--即在数据库中调出所需表格放入前端界面中。【注:此处只给出了一个简单的css样式,详细可见style部分】对应Java(此处只给出关键部分,也就是doget部分)5.修改部分较为特殊(增加了一步查找并返回原数据的操作)对应Java部分(同样只给出关键的dopost部分)1.首先写一个前端样式(空壳)对应Java代码(回显)对应Java代码(修改)【注:空格的书写规范】
2024-09-25 18:06:13 589
原创 Navicat中一些查找操作 笔记07
- count(*)表示取得当前查询表的所有记录,count(字段名称)不会统计null。④单独创建一个表格存储关系(虽然无冗余,但是额外创建了资源,相比于②的处理方式,稍逊一筹)-- limit a,b a表示开始的索引值,b表示查询的个数。-- 排序(where子语句之后,limit子语句之前)③单独创建一张表,存关系×(不推荐,耗费更多空间和精力)①合并成一张表√(在一对一的连接处理中,最优)-- not非(主要用在in和is中使用)二、多表查询(一对一,一对多,多对多)
2024-09-21 12:44:03 709
原创 Java调用数据库 笔记06 (修改篇)
3.驱动管理类调用方法进行连接,得到连接对象。强制类型转换【子类 对象名=(子类)父类】1.创建Java的普通class类。4.创建执行sql的对象。
2024-09-20 12:36:19 671
原创 Java调用数据库 笔记05(查询篇)
(应用程序通过接口控制的各种数据库驱动来调用数据库-->jdbc方法)3.驱动管理类调用方法进行连接,得到连接对象。强制类型转换【子类 对象名=(子类)父类】1.创建Java的普通class类。4.创建执行sql的对象。(结果对应数据库中的:)
2024-09-17 14:29:19 391 1
原创 Navicat使用 笔记04
1.创建一个自己的链接(文件-->新建连接-->MySQL)(设置id值为自动递增,且不能是null,勾选键)【注意:密码是下载登录软件时设定过的】3.新建一个表格(设置基础表头信息)创建一个连接完成(通过双击激活)。数据库创建完毕(通过双击激活)。2.在创建好的连接中创建数据库。(保存后重新点开输入数据)Navicat调用数据库。
2024-09-17 01:08:08 517
原创 前后端数据交互 笔记03(get和post方法)
post:通过jquery+ajax方式发起(或from发起);但是post可用于数据的增、删、改(因为get请求的写地址就能访问的特性,所以get请求不具有随意增删改的作用)get:只要能写地址的地方都能发起get请求,e.g.浏览器地址栏a location.href=' '【注意:使用上述格式时,Java文件中一定要有符合json,可返回的数据结构】post-->增上改。
2024-09-17 00:22:33 721
原创 后端入门 (JQuery基础) 01
只支持Javascript原生的方法 -- hover (这种jQuery独有的,则只能用事件绑定函数)jdom--->dom :jdom[0] 【随便一个数字,都可以将jdom转换为dom】JavaScript中找到的是---->dom。jquery中找到的是------>jdom。5. Ajax (服务器交换数据的技术)--> 数据交互。2. 用on函数绑定事件 on(事件类型,事件函数)可以同时绑定多个事件 用空格隔开。事件类型以参数的形式传递。3.用on函数给未来函数绑定事件。
2024-09-15 19:50:10 965
原创 Javascript应用(旋转圆)
1. setInterval(function,time) 周期函数-指定时间后,重复执行指定函数(其中time的单是毫秒,1000毫秒=1s)2. setTimeout(function,time) 延时定时器-指定时间后,执行一次函数(其中time的单是毫秒,1000毫秒=1s)5.将setTimeout() 定时器无限进行。4.同时调用两种方式。
2024-09-11 16:53:56 314
原创 Javascript应用 (转账小界面)
其中转账数目包含小数部分或是完全整数,只需要更改parseInt() 与perseFloat() 即可。
2024-09-11 10:09:06 482
原创 Javascript应用(时钟)
getTime() //时间戳-单位是毫秒(从1970.1.1 0时0分0秒来算).getDay() //获取周几(其中周日显示0).toLocaleString() //获取日期+时间。.toLocaleDateString() //获取日期。.toLocaleTimeString() //获取时间。.getFullYear() //获取年份。.getDate() //获取日。
2024-09-10 19:28:48 414
原创 Javascript(基础) 笔记16
3. getElementsByTagName() 根据元素名称获取元素,返回符合元素组成的数组。1. getElementById() 根据id值获取元素,返回符合的第一个元素(只会返回第一个)③replaceChild(替换元素,去除元素) 用'替换元素'取代'去除元素'②insertBefore(插入元素,位置) 将'插入元素'插入到'位置'之前。【true时为深复制(复制所有), false时为浅复制(只复制外壳)】二、 修改(修改内容、属性、样式)三、 添加(创建元素+添加元素)
2024-09-04 17:08:08 506
原创 Javascript(基础) 笔记 15
2.字符串 var a='aaaaaa' var b='a'var 声明变量的关键字(涵盖int、float...等等)1. 数字类型 var a=10 var b=10.5。4.undefined类型 声明了一个变量,但是没有赋值。【注:同数字类型相加为加法,不同类型相加为拼接 】5.null涉及到一个量,但是这个量本身不存在。3.布尔类型(真假) true false。(定义不区分类型,但是最后使用时有类型)引入格式(内嵌&外引)
2024-08-29 21:45:39 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人