java面试题~
文章分类:Java编程
一、xml有哪些解析技术?区别是什么?
答:有DOM,SAX,STAX等
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问
STAX:Streaming API for XML (StAX)
二、 struts 的5个主要类
ActionServlet是系统维护的,你不能操作,它主要是根据传入的action路径在ActionMapping中查找相应的类,并调用它。
Action是控制器,主要是从ActionForm中接收页面传进来的数据,然后进行逻辑处理。
ActionForm是用来接收页面上表单中的数据。
ActionMapping是用来配置每个Action所对应的路径
ActionForward是用来实现跳转,在Action中最后一行语句通常是return mapping.forward()这里传入的值就在ActionForward中设置
三、ArrayList和Vector的区别,HashMap和Hashtable的区别
就ArrayList与Vector主要从二方面来说.
一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
就HashMap与HashTable主要从三方面来说。
一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为一个表的条目的key或value
四、JDK1.5新特性
1,泛型(Generic) 2, for-Each循环 3,自动
装包拆包 4,枚举类型(Enums) 5,静态导入(Static imports)
五、JDK1.6新特性
1,desktop类和systemtray类
2,使用JAXB2来实现对象与xml之间映射
3,理解STAX
4,使用compiler API
5,轻量级的HTTPServer API
6,插入式注解处理
7,用console开发控制台程序
8,对脚本语言的支持:ruby、groovy、javascript
9,common Annotations
Struts、spring、hibernate 工作机制,为什么用!
六、hiberante工作机制
1. 读取并解析配置文件
2. 读取并解析映射信息,创建SessionFactory
3. 打开Sesssion
4. 创建事务Transation
5. 持久化操作
6. 提交事务
7. 关闭Session
8. 关闭SesstionFactory
为什么使用
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
5. 可扩展,卡发者可以根据需求定义查询
struts1.2工作原理以及为什么使用
Struts的工作原理:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm 对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
为什么要用:
1、整合jsp、servlet、javaBean 是Web开发更加正规化。
2、由一个ActionServlet 做全局控制器,对action做统一的控制.
3、ActionForm使取得form的值更加方便.
spring工作机制及为什么要用?
1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
为什么用:
AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务 (比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。
IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,IOC 就像反 过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),每一个对象都是用 其协作对象构造的。因此是由容器管理协作对象(collaborator)。
Spring即使一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象.
七、EJB与JAVA BEAN的区别?
答:Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。
关于java public private protected friendly(缺省)作用域
public:类本身和任何包的任何类都访问
private 只有类本身可以访问,其他类想访问可以通过该类的成员方法访问如getter/setter
protected:保护的,这个和缺省的比较容易混淆,记住最主要区别是:protected可以在不同包的子类被访问,而friendly不可以。
protected可以在类本身、同包的子类,不同包的子类,同包的非子类 被访问
默认不写的时候是public
八、关于PreparedStatement和Statement具体区别
1:
我们先从这两个单词进行初步的讲解,Prepared(准备好的, 精制的),从这里可以知道PreparedStatement是预先编译的语句,而Statement则不是预先编译的,在DBMS中处理管理中Statement是要进行语法、语义的,而PreparedStatement则不要。
2:
PrepareStatement中执行的SQL语句中是可以带参数的,而Statement则不可以。
比如:
PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00);
pstmt.setInt(2, 110592);
pstmt. executeUpdate();
3:
当处理批量SQL语句时,这个时候就可以体现PrepareStatement的优势,由于采用Cache机制,则预先编译的语句,就会放在Cache中,下次执行相同SQL语句时,则可以直接从Cache中取出来。
九、JSP的内置对象与作用
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
十、jsp有哪些动作作用分别是什么
JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
十一、JSP中动态INCLUDE与静态INCLUDE的区别?
答:动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面
十二、jsp的两种跳转方式分别是什么,有什么区别?
1、带request参数的跳转
request.setAttribute("param", "value");
request.getRequestDispatcher("test.jsp").forward(request, response);
在目的页面可以获取参数
String Value = request.getAttribute("param")==null?:(String)request.getAttribute("param");
2、不带request参数的跳转
response.sendredirect("test.jsp");
十三、forward和redirect的区别
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。 forward 会将 request state , bean 等等信息带往下一个 jsp
redirect 是送到 client 端后再一次 request , 所以资料不被保留.
使用 forward 你就可以用 getAttribute() 来取的前一个 jsp 所放入的 bean 等等资料
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容
再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所
以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,
甚至是使用绝对URL重定向到其他站点的资源.
forward,方法只能在同一个Web应用程序内的资源之间转发请求.
forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.
所以,你可以说 redirect 是一种间接的请求, 但是你不能说"一个请求是属于forward还是redirect "
3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.
十五、描述JSP和Servlet的区别、共同点、各自应用的范围
JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet
来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页
因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.
答案2:
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
十六、列出Jsp中包含外部文件的2种方式,两者有何区别。
1:<jsp:include page="b.jsp" />)
2: <%@ include file="b.jsp">
区别:
1:<jsp:include page="b.jsp" />(先执行,后包含)
此标签表示法:能动态区别加进来的是动态页面还是静态页面对于静态页面则直接将资源包含(仅取其文本)。
<%@ include file="b.jsp">此指令表示:静态地包含页面,不管其内容如何,
不过是静态页面还是动态页面都首先将页面的内容先加进来。
区别2:<jsp:include page="b.jsp" />可以分开写成:<jsp:include page="b.jsp" >
<jsp:param name="参数名" value="参数值"/></jsp:include>这样就可以传递参数。
十七、struts1和struts2区别:
特性
Struts 1
Struts 2
Action类
Struts 1要求Action类要扩展自一个抽象基类。Struts 1的一个共有的问题是面向抽象类编程而不是面向接口编程。
Struts 2的Action类实现了一个Action接口,连同其他接口一起实现可选择和自定义的服务。Struts 2提供一个名叫ActionSupport的基类实现一般使用的接口。虽然,Action接口不是必须的。任何使用execute方法的POJO对象可以被当作Struts 2的Action对象使用。
程模型
Struts 1 Action类是单例类,因只有一个示例控制所有的请求。单例类策略造成了一定的限制且给开发带来了额外的烦恼。Action资源必须是程安全或者同步的。
Struts 2 Action对象每一个请求都实例化对象,所以没有程安全的问题。(实践中,servlet容器生许多丢的对象对于每一个请求,多于一个的对象并不影响垃圾收集)
Servlet 依赖
Struts 1的Action类依赖于servlet API以HttpServletRequest和HttpServletResponse作参数传给execute方法当Action被调用时。
Struts 2的Action不和容器有关。Servlet上下文被表现简单的Maps,允许Action被独立的测试。Struts 2的Action可以访问最初的请求和相应,如果需要的话。然而,其他的架构元素少或者排除直接访问HttpServletRequest或者HttpServletResponse的需要。
易测性
测试Struts 1的主要障碍是execute方法暴露了Servlet API。第三方的扩展,Struts测试用例,提供Struts 1的集合对象。
Struts 2的Action可以通过实例化Action测试,设置属性,然后调用方法。依赖注入的支持也是测试变得更简单。
接受输入
Struts 1使用ActionForm对象捕获输入。象Action一样,所有的ActionForm必须扩展基类。因其他的JavaBean不能作ActionForm使用,开发者经常创建多余的类捕获输入。DynaBeans可以被用来作替代ActionForm的类创建。但是开发者可以重新描述已经存在的JavaBean。
Struts 2 Action属性作输入属性,排除第二个输入对象的需要。输入属性可能有丰富的对象类型这些类型有他们自己的属性。Action的属性可以通过标签库访问。Struts 2也支持ActionForm形式。丰富的对象类型,包含业务或者域对象,可以被当作输入或者输出对象使用。馍型驱动特性简化标签对POJO输入对象的引用。
表达式语言
Struts 1整和JSTL,所以它使用JSTL的表达式语言。表达式语言有基本的图形对象移动,但是相对很弱的集合和被索引的属性支持。
Struts 2使用JSTL,但是框架也支持更大和更灵活的表达式,叫做“对象图形符号语言”(OGNL)。
将值绑定要视图上
Struts 1使用标准JSP机制来绑定对象到页面上下文。
Struts 2使用“ValueStack”技术了标签库可以不用链接你的视图到对象的表现类型访问值。ValueStack策略允许重用视图。
类型转换
Struts 1的ActionForm属性经常都是String的。Struts 1使用Commons-Beanutils类型转换。转换每一个类,不是每一个实例配置。
Struts 2使用OGNL类型转换。框架包含转换器基本的和共同的对象类型和原始类型。
验证
Struts 1支持手动验证凭借ActionForm的validate方法,或者通过扩展的公用验证器。类可以有不同的验证上下文未相同的类,但是不能不能包括验证子对象。
Struts 2支持手动验证凭借validate方法和XWork验证框架。Xwork验证框架支持一连串的验证子属性使用的验证了属性类的类型和严正上下文而定义。
Action执行的控制
Struts 1支持独立的请求处理器对于每一个模型,但是所有在模型中的Action必须共享同一个生命周期。
Struts 2支持在每一个Action基础上凭借拦截栈创建不同的生命周期。自定义栈可以被创建且使用不同的所需 的Action。
Jsp和Servlet中的请求转发分别如何实现。
servlet的转发方式有两种:response.sendRedirect(response.encodeURL(相对路径或绝对路径));
request.getRequestDispatcher(相对路径).forward();
jsp是servlet的扩展,除可用上面两种之外,还可以用标签:<jsp:forward page="相对路径" />
、如何现实servlet的单线程模式?
<%@ page isThreadSafe="false"%>
应用服务器与WEB SERVER的区别?
1。应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问。
2。应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。web服务器通常比应用服务器简单,如apache就是web服务器,Jboss就是EJB应用服务器。
应用服务器:Weblogic、Tomcat、Jboss
WEB SERVER:IIS、 Apache
应用服务器处理业务逻辑,web服务器则主要是让客户可以通过浏览器进行访问。
应用服务器处理业务逻辑,web服务器是用于处理HTML文件的。web服务器通常比应用服务器简单,如apache就是web服务器,Jboss就是EJB应用服务器
在B/S体系结构中,Web server是Application Server的前提和基础。Web Server接受来自Browse(http)的request。为了扩展Web的应用(如与后台DataBase打交道)早期如一些DLL可以来完成,后来各家公司有了Application server丰富了这方面的性能。使用户跟后台的数据库有了更好的接口。如:WebSphere Weblogic等等
web服务器只提供web服务功能,比喻说解释jsp,servlet等,而应用服务器提供整个企业级解决方案,比如说:应用服务器提供EJB包容器,可以提供用户控制,事务等居多功能,web服务器是应用服务器的一个子集
Web服务器与(Java)应用服务器是平行的概念,二者不存在相互包容关系。好像J2EE体系结构就是这么画的:客户端《——》Web服务器《——》应用服务器《——》数据库服务器
如果你访问的网页只有象HTML这种页面的,用WEB服务器就够了,但是如果是JSP,也就是含JAVA代码的HTML,则就需要JAVA应用服务器了,因为只有JAVA应用服务器才能解析JSP里的JAVA代码,并将解析结果以HTML的格式返回给你。
分享到:
相关推荐
# 基于Java Web的饮品销售管理系统 ## 项目简介 本项目是一个基于Java Web的饮品销售管理系统,主要用于学校实训课程的作业。系统涵盖了从用户管理、商品管理、订单管理到购物车管理的全套功能,旨在提供一个完整的在线饮品销售解决方案。 ## 项目的主要特性和功能 ### 用户管理 用户注册与登录支持用户注册新账号和登录系统。 用户信息管理包括用户信息的查询、修改和删除。 用户类型管理区分不同类型的用户(如管理员、普通用户)。 ### 商品管理 商品CRUD操作支持商品的添加、修改、删除和查询。 商品分类管理支持多级商品分类的查询和管理。 商品分页查询支持按页查询商品信息,提高查询效率。 ### 订单管理 订单CRUD操作支持订单的创建、修改、删除和查询。 订单明细管理支持订单明细的添加和管理。 订单状态管理支持订单状态的更新和查询。 ### 购物车管理
BitmapFunc
c++课程设计-产品入库管理操作系统
c语言火车票订票管理源码
仿新浪微博下拉刷新继承FrameLayout
浮动搜索框(SearchManager)
# 基于Particle Tracker框架的传感器浮标系统 ## 项目简介 本项目是一个基于Particle Tracker框架的传感器浮标系统,旨在通过集成多种传感器和通信模块,实现对环境参数的实时监测和数据传输。该系统主要应用于海洋监测、环境监测等领域,通过浮标上的传感器收集温度、湿度、位置等数据,并通过Particle Tracker平台进行数据处理和传输。 ## 项目的主要特性和功能 1. 传感器集成 集成BMI160传感器,用于检测三轴加速度和三轴陀螺仪数据。 集成Grove温度和湿度传感器,用于实时监测环境温度和湿度。 集成NTC热敏电阻,用于精确测量温度变化。 2. 位置追踪 使用UBLOX GPS模块,提供高精度的位置追踪功能。 支持地理围栏功能,能够检测浮标是否进入或离开预设区域。 3. 数据通信 通过CAN总线实现传感器数据的高效传输。
<项目介绍> - 树莓派使用OpenCV库实现人脸识别 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
PHP基于Linux的远程管理系统服务器端的实现(源代码+论文)
c语言课程设计-产品管理系统
一个智能问答系统,能够自动将用户的自然语言问题转换成 SQL 查询,并以可视化形式展示结果 用户使用自然语言查询数据。基于 Python、MySQL 和 Milvus 构建,将用户的问题转换为 SQL 查询,安全地执行,并产生符合echarts的数据可视化呈现结果。
医生健康科普问答咨询平台(前端+后台)源码带手机端 医生健康科普问答咨询平台,主要提供专业、及时的健康咨询服务,问题涵盖面广,包括内科、外科、 妇科、儿科、男科、中医、五官、等科室。可以通过视频,音频,文章,问答等方式进行科普。 前台首页:1、包含幻灯片 2、权威医生 3、医学视频 4、语音科普 5、科普文章。 6、健康问答 7、个人中心。 网站管理后台:各模块可以灵活管理和配置。 1、信息管理: (1)会员系统。(2)轮播系统。(3)权威医生。(4)医学视频。(5)语音科普。 (6)科普文章。(7)健康问答。(8)友情链接。(9)帮助中心。(10)栏目板块。 2、用户管理:(1)管理员管理。(2)部门管理。(数据权限)(3)用户组管理。(菜单权限) 3、页面管理:(1)高级标签(SQL)。(2)自定义静态标签。(3)静态页面生成。 4、系统管理:(1)网站参数管理。 (2)模型管理。(可以生成板块,对应字段后台展示不同控件,并有相应维护功能,可以根据模型 及模型下栏目创建标签,将标签放入html模板中,生
# 基于Python和OpenMV Camera的图像处理与通信系统 ## 项目简介 本项目基于OpenMV Camera,结合MicroPython,实现了图像捕获、处理与通信功能。通过UART和SPI协议,实现了与Arduino和ESP32等设备的通信,实现了图像数据的传输和接收。项目涵盖了图像捕获、处理、传输、反馈等多个环节,旨在实现机器视觉应用中的图像数据采集与通信。 ## 主要特性和功能 1. 图像捕获使用OpenMV Camera进行图像捕获,支持灰度图像和彩色图像。 2. 图像处理对捕获的图像进行二值化、灰度转换等处理,用于后续机器视觉任务。 3. UART通信通过UART接口,实现与Arduino、ESP32等设备的通信,发送和接收图像数据。 4. SPI通信作为SPI从设备,与Arduino主设备进行通信,实现数据的传输。 5. LED状态指示使用LED灯指示程序运行状态和图像捕获处理进度。
gee python 教程(西班牙语)
按钮点击WIN8 磁贴效果
动态ListView,支持异步更新列表,异步更新图片
PHP教材管理系统设计(源代码+论文)
将jar文件转换为exe
# 基于Spring Boot和MyBatis的宿舍管理系统 ## 项目简介 本项目是一个基于Spring Boot和MyBatis框架开发的宿舍管理系统,旨在为学生、宿管和后勤人员提供一个高效的管理平台。系统支持用户管理、房间管理、楼宇管理、维修申请等功能,并具备人性化的宿舍分配和可视化的账单管理。 ## 项目的主要特性和功能 1. 用户管理系统中的用户分为学生、宿管和后勤三类,每类用户拥有不同的操作权限。 2. 房间管理支持房间的创建、删除、更新和查询操作,以及房间容量的调整。 3. 楼宇管理支持楼宇的创建、删除、更新和查询操作,以及楼宇入住率和性别信息的统计。 4. 维修申请学生可以提交维修申请,宿管和后勤人员可以管理和处理这些申请。 5. 账单管理支持账单的创建、删除、更新和查询操作,以及Excel文件的上传和数据导入。 6. 宿舍分配系统提供人性化的宿舍分配功能,支持根据学生的意向进行分配。