- 博客(202)
- 收藏
- 关注
原创 socket编程-QQ聊天系统
跟随韩顺平老师学的qq项目,这篇博客记录一下自己的学习过程。static{verification.put("至尊宝",new User("至尊宝","123456"));verification.put("张三",new User("张三","123456"));verification.put("李四",new User("李四","123456"));
2024-06-08 11:35:49
1261
4
原创 HashMap的底层原理
哈希表(Hash Table)是一种常见的数据结构,它可以在常数时间内完成插入、删除和查找操作。而在 Java 中,哈希表的具体实现就是 HashMap 类。本文详细介绍hash冲突链表解决方法,在阅读完本文之后,您将了解到 HashMap 的基本原理和应用场景。HashMap在Java中使用一个叫做“拉链法”的方式来解决哈希冲突,即将哈希值相同的数据放在同一个链表中。为了保证HashMap的良好性能,它需要较低的碰撞率和较好的分布性。HashMap的容量(capacity。
2024-05-23 08:30:54
1128
1
原创 Map的六大遍历方式
当我们需要对一个集合进行遍历时,通常情况下我们会选择使用 Java 集合框架中的Map接口或者其实现类。在 Java 中,Map是一个键值对的集合,它将键和值以映射的形式存储起来。通过遍历Map,我们可以获取到每一个键值对,并进行相应的操作。在 Java 中,Map集合的遍历方式有很多种,每种方式都有其独特的特点和适用场景。在这篇博客中,我们将介绍六种常见的Map使用for-each循环遍历Map的所有键值对。使用entrySet()方法获取Map的所有键值对,并使用增强型 for 循环进行遍历。
2024-05-22 17:05:03
1564
原创 包装类和String类互相转换
在Java编程中,字符串(String)和基本数据类型包装类(如IntegerDouble等)之间的转换是非常常见的需求。String类提供了丰富的字符串操作功能,而包装类则提供了基本数据类型的对象封装,使得它们能够拥有更多面向对象的方法和属性。在进行网络通信、文件读写、用户输入输出等操作时,我们常常需要将基本数据类型转换为字符串,以便于处理和传输。同时,在需要将字符串转换为基本数据类型时,我们也需要使用到包装类的parseXXX()方法。
2024-05-19 08:57:07
385
原创 单例模式懒汉式和饿汉式
1、所谓累的单例模式,就是采取一定的方法保证在整个的软件系统中,对某个类只存在一个对象实例,并且该类只提供一个取得其对象实例的方法。2、单例模式有两种方式:1.饿汉式2.懒汉式。(1)构造器私有化=》防止直接new。(3)向外暴露一个静态的公共方法。(2)类的内部创建对象。
2024-05-16 18:58:08
232
原创 房屋出租系统
实现基于文本界面的《房屋出租软件》。能够实现对房屋信息的添加、修改和删除(用数组实现),并能够打印房屋明细表分三层框架视图层业务逻辑层数据层。
2024-05-15 19:09:02
195
原创 猴子吃桃
猴子吃桃问题:有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第10天的时候想再吃时(还没吃),发现只有一个桃子了。问题:最初共多少个桃子?
2024-04-27 13:11:27
374
原创 【Spring】Spring的循环依赖及解决方案
在Spring框架中,循环依赖是一个非常常见的问题。当两个或多个bean之间相互依赖时,就会产生循环依赖。这种情况可能会导致程序无限循环,从而导致性能问题和程序崩溃。Spring框架通过检测循环依赖并采取相应措施来解决这个问题。例如,使用懒加载的方式来避免循环依赖。但是,有时候我们的代码中可能会有一些错误,导致循环依赖的产生。在这篇博客中,我们将深入探讨Spring循环依赖的问题。我们将讨论如何产生循环依赖,以及如何避免和解决循环依赖。我们还将深入探讨Spring框架如何检测和解决循环依赖。
2023-01-28 19:57:57
9329
32
原创 【Spring】Spring的Bean的生命周期
在Java中,Bean是一个重要的概念,它代表了应用程序中的一个对象。在开发中,我们经常使用Bean来管理对象的生命周期。本文将介绍Bean的生命周期,并详细讲解如何在Spring框架中管理Bean的生命周期。Spring其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的销毁等。所谓的生命周期就是:对象从创建开始到最终销毁的整个过程。Spring为每个Bean定义了若干个回调方法,使得开发人员可以在某个特定的时间点对Bean进行特定的操作。
2023-01-28 18:57:32
18752
80
原创 【Spring】Spring的IOC依赖注入的四种方式
这几天学了Spring6,感觉到了Spring的强大和便捷。写此篇文章是为了总结一下IOC的四种属性注入方式,也是为了以后可以翻看,每日温习一遍,孔子说过:“温故而知新,可以为师矣”。各位朋友们在浏览此篇博客时可以温习一下IOC的知识。
2023-01-28 15:30:18
9025
1
原创 Linux常用命令
如果itheima目录存在,将itcast目录移动到itheima目录上。将hi.txt移动到itheima目录中,并改名hello.txt。如果itheima目录不存在,将itcast目录改名为itheima。一、在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。二、vim在进行文本编辑时共分为三种模式,分别是命令模式,插入模式。将itcast目录和目录下所有文件复制到itheima目录下。包文件后缀为.tar表示只是完成了打包,并没有压缩。将itcast目录复制到itheima目录下。
2023-01-04 21:51:06
900
39
原创 java.lang.IllegalStateException: Failed to load ApplicationContext
今天在整合SSM测试service接口时出现了此处错误中文翻译过来就是加载应用配置失败这样的话就是有配置文件出错我总结有以下几处错误1、Spring配置的@PropertySource注解里少写了classpath:前缀2、Spring配置的@ComponentScan注解里设置的扫描包范围太大,把SpringMVC配置也扫了3、Spring的配置类导入注解@Import没写4、Mybatis的配置类比如MybatisConfig中的包扫描Bean的报名拼写错误我的错误就是第四个,把包名拼错了(itheim
2022-11-09 18:40:38
16955
3
原创 Mybatis
在mapper接口点击红色头绳的小鸟图标会自动跳转到对应的映射配置文件,在映射配置文件中点击蓝色头绳的小鸟图标会自动跳转到对应的mapper接口。可以看出报错了,因为映射配置文件是xml类型的问题,而 > < 等这些字符在xml中有特殊含义,所以此时我们需要将这些符号进行转义,可以使用以下两种方式进行转义。而上面的SQL语句中的字段列表书写麻烦,如果表中还有更多的字段,同时其他的功能也需要查询这些字段时就显得我们的代码不够精炼。如上的这种SQL语句就会根据传递的参数值进行动态的拼接。,将来自动设置参数值。
2022-10-20 12:30:37
897
3
原创 Maven基础
1、Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)3、搜索 Maven,选择第一个 Maven Helper,点击Install安装,弹出面板中点击Accept。groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
2022-10-18 17:12:11
7751
3
原创 AJAX异步请求(Asynchronous Javascript And Xml)
①直接在浏览器地址栏上输入URL。 ②点击超链接 ③提交form表单 ④使用JS代码发送请求 window.open(url) document.location.href = url window.location.href = url … 页面全部刷新导致了用户的体验较差。 传统的请求导致用户的体验有空白期。(用户的体验是不连贯的)(1)AJAX不能称为一种技术,它是多种技术的综合产物。(2)AJAX可以让浏览器发送一种特殊的请求,这种请求可以是:异步的。(3)AJ
2022-10-17 13:41:27
10148
6
原创 24种设计模式-责任链设计模式
在程序编译阶段不会确定调用顺序。因为Filter的调用顺序是配置到web.xml文件中的,只要修改web.xml配置文件中filter-mapping的顺序就可以调整Filter的执行顺序。显然Filter的执行顺序是在程序运行阶段动态组合的。那么这种设计模式被称为责任链设计模式。当我们需要调整代码的执行顺序时,必须修改代码,使用责任链设计模式不需修改代码就能调整代码的执行顺序。什么是责任链设计模式?
2022-10-13 13:08:36
426
原创 24种设计模式-模板方法设计模式
什么是模板方法设计模式?在模板类的模板方法当中定义核心算法骨架,具体的实现步骤可以延迟到子类当中完成。模板类通常是一个抽象类,模板类当中的模板方法定义核心算法,这个方法通常是final的(但也可以不是final的)使用final可以保证子类无法覆盖模板方法的核心算法模板类当中的抽象方法就是不确定实现的方法,这个不确定怎么实现的事儿交给子类去做。
2022-10-13 12:51:42
569
原创 24种设计模式-适配器设计模式
顾名思义,就是适配合适的东西到自己身上,不合适多余的东西不需要。一个类在实现一个接口时,必须要实现接口中所有的方法,但是这个类可能只需要接口中的一个方法,如果全部实现那将会造成代码不美观,太冗余。就像承包一个工程,一个人如果处理工程的所有事情和流程,很容易把他累趴下,所有我们可以找出他擅长干的事情交给他,其余的工作再找适合这些工作的人处理,这样就提高了工作的效率。
2022-10-13 11:50:27
300
4
原创 JDBC.
*** 工具类中的构造方法都是私有的* 因为工具类当中的方法都是静态的,不需要new对象,直接采用类名调用} //静态代码块在类加载时执行,并且只执行一次 static {try {} } /*** 获取数据库连接对象* @return 连接对象} /*** 关闭资源* @param conn 连接对象* @param ps 数据库操作对象* @param rt 结果集if(rt!
2022-10-05 15:42:24
7853
5
原创 jQuery
1、jQuery是js库,库:相当于java的工具类,库是存放东西的, jQuery是存放js代码的地方, 里面有很多function函数2、作用:使用jQuery简化对dom的操作,执行事件处理,动画,ajax请求。
2022-10-03 10:56:38
7834
2
原创 JSON-标准的数据交换格式
1、什么是JSON,有什么用?JSON是一种行业内的数据交换格式标准JSON在JS中以JS对象的形式存在JavaScript Object Notation(JavaScript对象标记),简称JSON。(数据交换格式)JSON主要的作用是:一种标准的数据交换格式。(目前非常流行,90%以上的系统,系统A与系统B交换数据的话,都是采用JSON。)2、JSON是一种标准的轻量级的数据交换格式。特点是:体积小,易解析。
2022-09-30 21:08:04
7764
原创 JavaScript-BOM编程
第四种方式:window.open(url,target) (了解)通过浏览器向服务器发送请求,通常是以上的五种方式。只有form可以动态的修改数据!2、window有open和close方法,可以开启窗口和关闭窗口。第一种方式:直接在浏览器地址栏上写URL。1、BOM编程中,window对象是顶级对象,代表浏览器窗口。跳转页面可以通过多种方式:(这些都是发送请求!第二种方式:可以点击超链接(重点)第三种方式:提交表单(重点)第五种方式:js代码(重点)
2022-09-30 20:35:52
7698
原创 JavaScript-DOM编程
那么邮箱地址的正则表达式和邮箱地址进行匹配,能匹配成功,表示合法,反之表示不合法。第三:要能够独立的从网络当中搜索到你想要的正则表达式(搜索能力要有)[a-zA-Z0-9]{3,} 前面这堆中的任意字符至少出现3个。注意:数量永远匹配的都是前面的那个字符出现的次数。\W 匹配任意不是字母,数字,下划线,汉字的字符。[a-z]{1} a到z所有的字符中的任意1个。正则表达式是有一堆特殊的符号组成的一个表达式。[1-9] 没有指定数量的时候,默认是1个。其实在JS中,字符串String也是支持正则表达式的。
2022-09-30 20:04:44
7381
原创 JavaScript-ECMAScript编程
1、JavaScript语言是一种脚本语言(解释型语言),JavaScript的“目标程序”是以普通文本的形式保存。2、JavaScript是一门编程语言,专门用来操作HTML页面中的节点,让网页产生动态效果的。JavaScript中也有变量、数据类型、运算符、if语句、for循环、标识符、关键字等。3、JavaScript和Java的区别?JavaScript运行在浏览器当中,浏览器中有执行JS代码的内核。Java运行在JVM当中。JavaScript和Java没有任何关系。
2022-09-30 19:15:31
8293
1
原创 MySQL-MVCC(多版本并发控制)
当创建了上面的这张表,我们在查看表结构的时候,就可以显式的看到这三个字段。隐藏字段含义DB_TRX_ID最近修改事务ID,记录插入这条记录或最后一次修改该记录的事务ID。回滚指针,指向这条记录的上一个版本,用于配合undo log,指向上一个版本。DB_ROW_ID隐藏主键,如果表结构没有指定主键,将会生成该隐藏字段。而上述的前两个字段是肯定会添加的, 是否添加最后一个字段DB_ROW_ID,得看当前表有没有主键, 如果有主键,则不会添加该隐藏字段。
2022-09-25 22:31:43
6285
2
原创 MySQL-InnoDB引擎-架构和事务原理
当我们在一个事务中,执行多个增删改的操作时,InnoDB引擎会先操作缓冲池中的数据,如果缓冲区没有对应的数据,会通过后台线程将磁盘中的数据加载出来,存放在缓冲区中,然后将缓冲池中的数据修改,修改后的数据页我们称为脏页。缓冲池 Buffer Pool,是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度。而持久性是通过数据库的锁, 加上MVCC来保证的。
2022-09-25 20:50:11
9804
1
原创 MySQL-锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、 RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。MySQL中的锁,按照锁的粒度分,分为以下三类: 全局锁:锁定数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。全局锁:锁定数据库中的所有表。
2022-09-25 16:04:52
7250
原创 MySQL-触发器
触发器是与表有关的数据库对象,指在之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性 , 日志记录 , 数据校验等操作。使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。
2022-09-25 12:27:45
6954
原创 MySQL-存储过程
存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。封装,复用-----------------------> 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。可以接收参数,也可以返回数据 –------> 再存储过程中,可以传递参数,也可以接收返回值。减少网络交互,效率提升 -
2022-09-25 12:08:11
7406
SpringBoot顾客点餐后台管理系统
2023-01-15
Java初级开发面试题
2023-01-15
SSM 框架开发的个人博客网站
2023-01-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人