- 博客(29)
- 收藏
- 关注
原创 正则表达式匹配
单个匹配,如果两个字符相同,或者模式串当前是万能字符.,则匹配成功,然后继续递归比较 s[i + 1:] 和p[i + 1:](1)如果s[i]和p[i]不等(比如aa和b这种情况),则将b忽略掉,也就是继续递归比较s和p[i + 2:](2)如果p[i]和s[i]相等(比如aa和a这种情况),我们可以选择忽略a,也就是执行(1),也可以将。字符串中的a忽略掉,继续递归比较s[i + 1:]和p。所以递归执行,需要注意当匹配时候,走的两条分支。,请你来实现一个支持。的,而不是部分字符串。
2024-08-01 17:36:30
335
原创 Z字形变换
假设行数为 3 ,故设置 3 个 List(res[0],res[1],res[2]),将每次遍历的值分别放入 0 1 2 1 0 1 2 依次类推。这样在 res[0] 中存放的都是 第一行的数据;将res[0],res[1],res[2] 依次打印,就得到结果;,以从上往下、从左到右进行 Z 字形排列。
2024-07-31 22:37:02
584
原创 Mybatis面试
1、读取MyBatis配置文件:mybatis-config.xml 加载运行环境 和 映射文件2、构造会话工厂 SqlSessionFactory (全局只有一个)3、会话工厂创建SqlSession对象(项目与数据库的会话,包含了执行SQL 语句的所有方法,每次操作都会创建一个会话)4、操作数据库接口,Executor 执行器,同时负责查询缓存的维护5、Executor 接口的执行方法中有一个 MappedStatement 类型的参数,封装了映射信息。
2024-07-31 18:14:09
545
原创 Spring面试题
AOP为面向切面编程(底层为动态代理),用于将那些与业务无关,但却对多个对象产生公告行为和逻辑,抽取并封装成一个可重用模块,这个模块被称为切面。减少重复代码,降低模块之间的耦合,同时提高了系统的可维护性。记录操作日志核心是:使用aop中的环绕通知+切点表达式(找到要记录日志的方法),通过环绕通知的参数获取请求方法的参数(类、方法、注解、请求方式等),获取到这些参数以后,保存到数据库。缓存记录Spring内置的事务处理(编程式事务,声明式事务)
2024-07-30 23:25:40
843
原创 注解和反射
:其实就是一个实现类对象,实现了该注解以及Annotation接口。注解本质就是一个接口,java中所有注解都继承 Annotation 接口;CLASS(默认值) 保留到字节码文件阶段,运行阶段不存在。SOURCE 只作用在源码阶段,字节码文件中不存在。@Target 作用:声明被修饰的注解只能在哪些位置使用。METHOD,成员方法PARAMETER,方法参数。@Retention作用:声明注解的保留周期。为了测试反射,编写一个 Cat 的测试类;加注解的方法执行,不加的不执行。
2024-07-26 17:47:51
400
2
原创 多线程实现
这里我们用3个生产者,负责生产(做包子);2个消费者,负责消费(吃包子);Runnable 为函数式接口,可以直接用 lambda写出简化形式;缺点此类已经继承Thread 类,无法继承其他类,不利于功能的扩展;这里测试ThreadPoolExecutor 实现类创建线程池对象;任务类只是实现接口。可以继续继承其他类,实现其他接口,扩展性强。只有一个包子,生产者在桌子上生产包子,消费者在桌子上消费包子;首先写一个实现Runnable接口的线程任务类,方便做测试;核心线程数量应该配置多少?
2024-07-24 22:28:47
465
原创 IO流体系
其读取数据一定要与DataOutputStream中的类型对应,在DataOutputStream中先存的什么就先读取什么类型的数据;把java对象进行序列化,将java中的对象输出到文件中;假如读取"12345我"数组大小为3,先输出123,45会强行拉"我"中的一个字节。打印流实现更方便,更高效的打印数据,实现打印什么出去就是什么;其readLine可以读取文件中的一行,若为空,返回null;若想读取汉字,可以将整个文件的大小算出,之间全部一次性读取;利用缓冲池,提高字节流读写数据的性能;
2024-07-23 18:39:22
761
原创 最长回文字串
举个例子str=acdbbdaa 我们需要寻找从第一个 b(位置为 3),首先往左寻找与当期位置相同的字符,直到遇到不相等为止。然后往右寻找与当期位置相同的字符,直到遇到不相等为止。设置双层循环,将第一层循环从头部开始,第二层循环从尾部开始并且与头部相比较,比较到相同的字符直接返回,同时考虑到字符串为单个字符,或者两个字符的情况;因为我们最后要返回的是具体子串,而不是长度,因此,还需要记录一下 maxLen 时的起始位置(maxStart),即此时还要 maxStart=len。,只有这样才为回文字串;
2024-07-19 22:17:58
235
原创 最长子串的长度
思路1:首先,建立一个标志位,利用循环下标,每次与标志位相比较,若两者所指相同,则标志位和下标都后移动,若不同,下标后移,标志位不动,长度加,直到下次相同;问题:例如 abcabcbb中,flag首先为a,i一直后移直到 第二个a,此时length为 3 ,flag将移动到 第一个b;思路:滑动窗口,要求这个子串(也就是窗口内)不含有重复的字符,所以说我们自然想到了。
2024-07-12 21:17:35
388
1
原创 JAVA基础
首先将程序的class文件提取进入方法区,然后将main方法压栈,接着在main方法中开辟arr1这个变量的空间,然后执行等号右边的操作,将其放在堆内存中开辟的空间,将其地址存入至arr1在栈中开辟的空间,这样arr1会指向堆内存中的数组对象。将arr1中存的地址拷贝一份,存入arr2中,这样arr2也会指向堆内存中的数组对象。在表达式中,小范围类型的变量,会自动转化成表达式中较大范围的类型,再参与运算。强行将类型范围大的变量、数据赋值给类型范围小的变量。类型范围小的变量,可以直接赋值给类型范围大的变量。
2024-07-12 11:49:22
518
原创 栈算法题详解412
hasNextLine() 方法会认为换行符\n是一个空行,符合行的匹配模式,则会返回一个true,但实际上由于之后再没有数据了,所以会在读取输入流的时候发生异常,从而导致整个运行报错.程序在处理完5之后,输入流中就只剩下一个换行符\n了,在处理完5之后while再去进行循环判断,此时hasNext()方法和hasNextLine()方法去判断得到的结果就产生了差异.push x:将 x 入栈,保证x 为 int 型整数。如果为另外两种,若栈为空,则输出 "error“pop:输出栈顶,并让栈顶出栈。
2024-04-13 14:13:56
368
1
原创 JavaScript学习
JavaScript1、简介JavaScript 是脚本语言ECMAScript 可以理解为JavaScript的一个标准2、入门2.1、引入内部标签<script> //.... </script>外部引入<script src="..."> </script>script标签必须成对出现2.2、基本语法与Java语法相同JavaScript严格区分大小写定义数据类型不区分浮点数和整数在浏览器控制台打印变量
2022-03-14 09:55:26
667
原创 MySQL学习
1、初始MySQL2、操作数据库2.1、操作数据库-- 创建数据库CREATE DATABASE [IF EXISTS] westos-- 删除数据库DROP DATABASE [IF EXISTS] westos-- 使用数据库-- 若表明或字段名是特殊字符就需要加 `USE `school`-- 查看所有的数据库SHOW DATABASES2.2、数据库列类型数值tinyint 十分小的数据 一个字节small
2021-10-26 19:06:47
249
原创 网络编程总结
网络编程1.1、概述TCP连接(打电话 连接—通话)UDP连接(发短信 发送就可以—接收)计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:传播交流信息,数据交换,通信达到的效果:准确定位网络上的一台主机 端口,定位到计算机的某个资源找到主机,传输数据javaweb:网页编程 B/S架构网络编程:
2021-10-03 10:05:44
133
原创 多线程总结
多线程总结继承Thread类(不建议使用:避免OOP单继承局限性)自定义线程继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start()方法启动线程class MyThread extends Thread{ @Override public void run() { System.out.println("MyThread1"); }}实现Runnable接口(推荐使用:避免单继承局限性,方便用一个线程被多个对象使
2021-10-03 09:51:51
105
原创 Lambda表达式
Lambda表达式函数式接口:任何接口若只包含一个抽象方法,便是函数式接口对于函数式接口,我们便可以通过Lambda表达式来创建接口对象public class TestLambda{ public static void main(String[] args) { ILike like = new Like(); like.lambda(); }}//定义一个函数式接口interface ILike{ void lambda();}
2021-10-02 22:10:49
83
原创 GUI实现简单贪吃蛇
4、贪吃蛇(帧,如果时间片足够小,就是动画,一秒30帧,60帧。)定时器 Timerpackage com.yang.snake;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;impor
2021-10-01 09:13:29
195
原创 GUI编程
GUI编程图形化界面编程组件窗口弹窗面板文本框列表框按钮图片监听事件鼠标键盘事件1、简介GUI的核心技术: Swing AWT2、AWT2.1、Awt介绍包含很多类和接口。Eeclipse:Java元素:窗口,按钮,文本框java.awt[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YbQKCnIz-1633050612726)(C:\Users\阳光就在天上\AppData\Roaming\Typo
2021-10-01 09:10:37
685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅