- 博客(66)
- 收藏
- 关注
原创 高频java面试题
不同的消息队列系统有不同的特性,例如持久性、吞吐量、可靠性等,根据你的需求选择合适的系统。这可能涉及到消息的持久性,消费者接收消息后发送确认,以及处理消息处理失败的情况。实现监控和管理机制,以便能够追踪消息队列中的消息状态,监控生产者和消费者的性能,并在需要时进行扩展或调整。以上思路提供了一个制作消息队列的基本指导,具体的实现方式会依赖于具体的需求和选用的消息队列系统。在设计中引入容错和恢复机制,以处理可能的故障,例如消息队列的宕机、网络故障等。考虑在系统中处理可能的重复消息,以确保消息不会被重复处理。
2025-01-03 16:32:54
350
原创 sonar详细安装,maven使用
**Sonar**(通常指SonarQube和SonarCloud的统称)是一个用于自动化代码质量检测并提供详细报告的平台。它支持多种编程语言,包括Java、C#、JavaScript、TypeScript、C/C++、Python等,能够检测出代码中的错误、漏洞、代码异味以及不符合编码规范的地方。通过静态代码分析,Sonar帮助开发团队在代码提交前或构建过程中及时发现并修复问题,从而提高软件的整体质量。错误:指代码中存在的导致程序运行异常的缺陷。漏洞:指安全相关的问题,可能被恶意攻击者利用。
2024-12-17 09:55:51
1805
原创 SpringMVC
Spring MVC 是基于 Java 的 Web 框架,用于开发基于 Model-View-Controller(MVC)架构的 Web 应用程序。它提供了一种组织和管理 Web 应用程序的方式,将应用程序的逻辑分为模型(Model)、视图(View)和控制器(Controller),以提高代码的可维护性、可扩展性和可测试性。
2024-12-04 09:22:31
648
原创 Spring
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
2024-11-29 16:33:39
1415
原创 MyBatis框架
MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了[google code](https://baike.baidu.com/item/google code/2346604?fromModule=lemma_inlink),并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。
2024-11-28 16:01:34
994
原创 Spring 框架中AOP(面向切面编程)和 IoC(控制反转)
换句话说,Spring 框架负责对象的创建、初始化和管理,开发者只需要关心“菜单”(定义对象的功能),而不需要手动管理对象的生命周期。它的核心思想是将程序中的某些通用功能(如日志、事务管理、安全等)抽离出来,放在单独的“切面”中,而不是在每个类中重复编写相同的代码。它的核心思想是 控制权的转移,即从传统的程序员自己控制对象的创建和生命周期转移到框架(Spring)来控制。在 Spring 框架中,AOP(面向切面编程)和 IoC(控制反转)是两个核心概念,它们分别负责不同的功能。
2024-11-27 17:17:32
544
原创 Controller
在 Spring 或 Spring Boot 项目中,Controller 层有相似的作用,通常作为 Spring MVC 中的一部分。Spring MVC 是基于 Model-View-Controller(MVC) 设计模式的框架。在传统的 Web 项目中,比如使用 Java Servlets 或 JSP 技术,控制器的角色通常是一个 Servlet 或者是一个用于处理 HTTP 请求的类。
2024-11-27 15:17:56
278
原创 框架优缺点
机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。intercepter的实现机制:struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式。为filter是 servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别。导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,
2024-11-26 17:01:52
523
原创 mybatis步骤
/创建连接工厂 SqlSessionFactory SqlSession数据库连接。在resources下放入jdbc.properties,创建pojo实体类。在主配置文件mybatis.xml中添加代码。创建dao包,并编写BillDao接口。在BillDao.xml中添加实现方法。1.在pom.xml中引入jar文件。//获得连接 true事务自动提交。//读取mybatis.xml。
2024-11-26 09:03:42
599
原创 vue 目录结构
这些文件和文件夹构成了Vue项目的基础架构,使得项目的开发、构建和部署过程变得模块化和系统化。在Vue项目中,组件和其他文件的运行机制和顺序可以通过一个生动的比喻来理解:将Vue应用比作一部电影,其中的各个文件和组件就像电影的不同部分和角色。整个Vue应用的运行,就像一部精心策划和制作的电影,每个文件和组件都扮演着特定的角色,共同协作,呈现出一个连贯、互动的应用体验。:主组件,所有的子组件都在这个文件中引入和使用。:存放Vue组件文件,通常是可复用的UI元素。:存放与后端API通信的服务文件。
2024-11-22 12:02:58
705
原创 达梦数据库安装及简单使用
1.直接确定2,验证 Key 文件环节可跳过,如果没有 Key 文件,点击【下一步】即可。如有则点击【浏览】按钮,选取 Key 文件,安装程序将自动验证 Key 文件合法性,点击【下一步】继续安装,如下图所示:典型安装包括:服务器、客户端、驱动、用户手册、数据库服务。服务器安装包括:服务器、驱动、用户手册、数据库服务。客户端安装包括:客户端、驱动、用户手册。自定义安装包括:用户根据需求勾选组件,可以是服务器、客户端、驱动、用户手册、数据库服务中的任意组合。达梦数据文档。
2024-11-21 14:01:44
3783
原创 Servlet
Servlet是Server和Applet的缩写,是服务端小程序的意思。使用Java语言编写的服务程序,可以生成动态的web页面,Servlet主要运行在服务器端,由服务器调用执行,是一种按照Servlet标准开发的类。Servlet本质上也是java类,但要遵循Servlet规范进行编辑,没有main方法,它的创建、使用、销毁。都由Servlet容器进行管理(如Tomact服务器),写自己的类,不用写main方法,别人自动调用。,由服务器统一调用和执行。
2024-11-08 16:01:51
1023
原创 数据源及分层开发
任何一个系统中都有用户系统,最基本的接口是返回用户信息的接口,它调用逻辑层的 GetUser 方法,GetUser 方法又和 User DB 交互获取数据复杂架构中的分层设计是一种重要的软件架构策略,它在简化系统复杂性、实现专业职责分离、提升可复用性和可维护性、方便系统横向扩展以及实现职责划分等方面发挥着关键作用。然而,在实施过程中,需要注意清晰职责、灵活调整层次划分以及权衡利弊。通过合理运用分层设计,可以构建出更加稳定、可扩展和易于维护的软件系统。
2024-11-08 15:59:42
829
原创 JSP实现数据传递和保存
JSP代码:String userName = request.getParameter(“userName”);治标的方法:new String( s.getBytes(“iso-8859-1”), “utf-8” );(session的数据是在服务器端的,服务器保存的会话数据量会越来越大,从而导致性能问题)JSP中默认使用的字符编码方式:iso-8859-1,不支持中文。设置会话失效:session.invalidate();application可在整个项目中共享使用数据。
2024-11-01 10:25:41
1078
原创 初识JDBC
以后编写操作数据库的代码只需要面向JDBC(接口),操作哪儿个关系型数据库就需要导入该数据库的驱动包,如需要操作MySQL数据库,就需要再项目中导入MySQL数据库的驱动包。PreparedStatement由方法prepareStatement()创建,该对象用于发送带有一个或者多个输入参数的SQL语句。Statement由方法createStatement()创建,该对象用于发送简单的SQL语句。PreparedStatement—预编译。使用setXxx()方法设置数据。
2024-10-31 12:03:54
588
原创 DAO模式及单例模式
Data Access Object(数据存取对象)位于业务逻辑和持久化数据之间实现对持久化数据的访问注意: 在整个程序运行期间,有且仅有一个实例。若违背这一点,所设计的类就不是单例类单例模式懒汉模式饿汉模式概念在类加载时不创建实例,采用延迟加载的方式,在运行调用时创建实例在类加载的时候,就完成初始化特点类加载速度快,但是运行时获取对象的速度较慢。——“时间换空间”类加载较慢,但获取对象速度快。——“空间换时间”延迟加载(lazy loa ding)具备不具备线程安全。
2024-10-29 11:28:49
731
原创 vue使用element ui绘制界面
搭建 Vue 脚手架的过程主要依赖于 Vue CLI(命令行工具)。下面是一个简单的步骤指南,帮助你快速搭建一个 Vue 项目。根据你的需要选择相应的选项。使用 Vue CLI 创建一个新项目。确保你的系统上已安装 Node.js。或者如果觉得登录按钮太常规,页可以自行进行更换。可以选择自己选择的表格类型,粘贴到自己的项目下。推荐使用 npm 的方式安装,它能更好地和。再打开你的网页查看是否多了一个页面,则完成。其中layout是你的创建的vue文件名。运行此命令后,CLI 会询问你选择一些。
2024-10-29 09:27:02
2379
原创 搭建Web环境、初识JSP
运行在服务器端的Java页面使用HTML嵌套Java代码实现工作原理使用JSP实现输出需求说明创建新闻显示页面(newsDetail.jsp),正确显示新闻标题“谈北京精神”分析pageout小结<%@page%>用来设置一个JSP页面的属性%>或<%out.println();%>实现页面输出JSP可以添加的注释HTML注释:HTML注释JSP注释:<%–JSP注释–%>JSP脚本中注释:<%//单行注释%><%/多行注释/%>JSP执行过程。
2024-10-12 11:20:08
882
原创 MySQL
调整 MySQL 配置:根据服务器的硬件配置和应用需求调整 MySQL 的配置参数,例如 innodb_buffer_pool_size、query_cache_size 和 max_connections。使用外部缓存:如 Redis 或 Memcached,将频繁访问的数据存储在内存中,以减少对数据库的直接查询。**避免 SELECT ***:选择具体需要的列,而不是使用 SELECT *,可以减少数据传输量。定期重建和优化索引:随着数据的增加,索引可能会变得碎片化,定期重建索引以保持其效率。
2024-10-11 11:23:55
679
原创 数据库设计
如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)客人(客人编号,客人姓名、身份证号、入住日期、结账日期、押金、总金额、客房号)客房(客房号、客房描述、客房类型、客房状态、床位数、入住人数、价格)通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间。将各实体转换为对应的表,将各属性转换为各表对应的列。标识数据库要管理的关键对象或实体,实体一般是名词。
2024-09-27 14:49:11
661
原创 MySQL事务、索引、数据恢复和备份
path/是一个绝对路径,并且必须是mysql 运行用户有权限读取的文件。如:学生表(学号,姓名,班级,性别等) ,学号就是唯一标识的,可作为主键。使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间。如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行。将数据转移到另一个SQL服务器(不一定是MySQL服务器)可以加速表和表之间的连接,实现表与表之间的参照完整性。不宜添加太多常规索引,影响数据的插入、删除和修改操作。确定特定数据记录在数据库中的位置。输出的文件不能先存在,否则报错。
2024-09-26 12:06:56
957
原创 使用DQL命令查询数据(接上)
嵌套查询可由多个子查询组成,求解的方式是由里及外子查询返回的结果一般都是集合,故而建议使用 IN 关键字。m不指定则偏移量为0,从第一条开始返回前n条记录LIMIT 常用于分页显示。在查询语句中的WHERE条件子句中,又嵌套了另外一个查询语句。对SELECT语句查询得到的结果,按某些字段进行排序。与HAVING结合使用,进行分组后的数据筛选。使用GROUP BY关键字对查询结果分组。分组的依据字段可以有多个,并依次分组。m 制定第一个返回记录行的偏移量。n 制定返回记录行的最大数目。
2024-09-25 20:39:41
741
原创 使用DQL命令查询数据
去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条。从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行。从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行。连接查询: 如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询。ALL 关键字是默认的,返回所有的记录,与之相反。查询的字段x的值,至少与括号中的一个值相同。简单的单表查询或多表的复杂查询和嵌套查询。查询表中所有的数据列结果,采用“*”符号。
2024-09-25 20:38:49
1161
原创 MySQL数据管理
数据库意义数据存储数据管理管理数据库数据方法通过SQLyog等管理工具管理数据库数据通过DML语句管理数据库数据DML语言DML(数据操作语言)用于操作数据库对象中所包含的数据包括INSERT ( 添加数据语句 )UPDATE ( 更新数据语句 )DELETE ( 删除数据语句 )
2024-09-24 17:34:19
863
原创 初识MySQL
数据库(Database,简称DB)概念:长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”作用:保存、管理数据数据库总览关系型数据库(SQL)非关系型数据库(NOSQL)数据库管理系统(Database Management System)数据管理软件,科学组织和存储数据、高效地获取和维护数据概念:是现流行的开源、免费的关系型数据库特点:免费、开源数据库小巧、功能齐全使用便捷可运行于Windows或Linux操作系统可适用于中小型甚至大型网站应用。
2024-09-24 16:32:33
769
原创 使用jQuery处理Ajax
跨域,指的是浏览器不能执行其他网站的脚本例子:比如在网站中使用ajax请求其他网站的天气、快递或者其他数据接口产生跨域的原因由浏览器的同源策略造成的===>同域名,同端口,同协议。
2024-09-23 14:48:30
1693
1
原创 jQuery事件和特效
toggle( fn1,fn2…)实现单击事件的切换,无须额外绑定click事件toggle( )实现事件触发对象在显示和隐藏状态之间切换toggleClass( )实现事件触发对象在加载某个样式和移除某个样式之间切。
2024-09-21 17:47:05
944
原创 JQuery
toggleClass()模拟了addClass()与removeClass()实现样式切换的过程。jQuery中提供了find()、filter()等节点操作方法,请查阅相关手册进行学习。end( ):结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态。detach():删除整个节点,保留元素的绑定事件、附加的数据。children()方法可以用来获取元素的所有子元素。html( ) 和text( )方法的区别。parents():元素元素的祖先元素。jQuery提供了三种删除节点的方法。
2024-09-20 16:31:10
1425
原创 (史上最全)线程池
虽然线程给我们程序带来了更高的执行效率,但是线程不是创建的越多越好,那么线程创建的过多,会带来什么问题呢?首先线程的创建和销毁都是很耗时很浪费性能的操作(new三五个Thread还好,我需要一千个线程呢?线程之间频繁的进行上下文切换,增加系统的负载为了解决线程复用。也就是说线程用完后不销毁,放到池子里等着新任务的到来,反复利用N个线程来执行所有新老任务。这带来的开销只会是那N个线程的创建,而不是每来一个请求都带来一个线程的从生到死的过程。
2024-09-19 16:44:36
994
原创 1.什么是异常
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序Java编程语言使用异常处理机制为程序提供了错误处理的能力Java中如何进行异常处理Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws捕获异常try 执行可能产生异常代码catch 捕获异常finally 无论是否发生异常,代码总能执行声明异常throws 声明方法可能要抛出的各种异常抛出异常throw 手动抛出异常。
2024-09-18 17:10:32
997
原创 认识-反射
反射(Reflection)是一种Java程序运行期间的动态技术,可以在运行时(runtime)检査、修改其自身结构或行为。通过反射,程序可以访问、检测和修改它自己的类、对象、方法、属性等成员Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性, 既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。
2024-09-17 15:05:34
877
原创 JVM内存结构
JVM在执行程序的过程中会将内存划分为五个JVM五个区中虚拟机栈、本地方法栈、程序计数器为线程私有,方法区和堆为线程共享区。JVM不同区域的占用内存大小不同,一般情况下堆最大,用来存放”对象“,程序计数器较小。
2024-09-17 14:28:05
1513
原创 数据结构-队列
队列(Queue)是一种基本的线性数据结构,它遵循FIFO)的原则。这意味着最先被添加到队列中的元素将会是最先被移除的。如图所示。
2024-09-17 00:19:00
1390
原创 数据结构-链表
链表是一种常见的数据结构,由一系列节点构成,每个节点包含当前节点的数据和一个指针(单向链表)或者两个指针(双向链表),链表是一种动态的数据结构,可以动态的增删节点。它的特点是插入与删除数据十分方便,但寻找与读取数据的表现欠佳。
2024-09-16 23:40:33
1027
原创 数据结构-树(基础,分类,遍历)
在计算机科学中,树是一种常用的非线性数据结构,用于表示具有层次关系的数据。与线性数据结构(如数组和链表)不同,树结构以节点(Nodes)和边(Edges)组成,通过根节点(Root Node)进行组织。每个节点可以有零个或多个子节点,形成一系列层级结构。根节点(Root):树的最上层节点,没有父节点。节点(Node):树中的基本单元,包含数据和指向子节点的引用。子节点(Child):直接连接到某一节点的节点。父节点(Parent):直接连接到子节点的节点。叶节点(Leaf):没有子节点的节点。
2024-09-15 23:30:56
1455
原创 什么是异常111
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序Java编程语言使用异常处理机制为程序提供了错误处理的能力Java中如何进行异常处理Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws捕获异常try 执行可能产生异常代码catch 捕获异常finally 无论是否发生异常,代码总能执行声明异常throws 声明方法可能要抛出的各种异常抛出异常throw 手动抛出异常。
2024-09-15 23:00:04
888
原创 认识异常和处理
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序Java编程语言使用异常处理机制为程序提供了错误处理的能力Java中如何进行异常处理Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws捕获异常try 执行可能产生异常代码catch 捕获异常finally 无论是否发生异常,代码总能执行声明异常throws 声明方法可能要抛出的各种异常抛出异常throw 手动抛出异常。
2024-09-14 23:05:18
798
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人