自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Statement 和 PreparedStatement 有什么区别?

与Statement 相比,①PreparedStatement 接口代表预编译的语句,它主要的优势在于可以减少SQL的编译错误并 增加SQL的安全性(减少SQL注射攻击的可能性);②PreparedStatement中的SQL语句是可以带参数的,避免了用字 符串连接拼接SQL语句的麻烦和不安全;③当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性 能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句时就会很快。

2025-03-25 09:33:04 98

原创 【面试题】

SpringMvc是一个基于Mvc架构的用来简化web应用程序开发的应用开发框架,是Spring的一个模块,无需中间整合层来整合,它和strust2一样属于框架的表现层,在web模块当中,Mvc是一个很受欢迎的框架,它通过Model ,view,controller分离,把较为复杂的web应用分解成逻辑清晰的几个部分,简化代码,减少出错,方便组内开发人员的开发和协作。(1).当客户端发送请求以后,会被前端页面控制器DispatcherServlet所拦截,它负责调用系统的其他模块一起来处理用户的请求;

2025-03-13 09:59:15 329

原创 Mybatis的映射文件中,不同的映射文件,id是否可以重复

首先如果xml映射文件中配置了namespace,那么id可以重复,如果没有配置namespace,id不可以重复;原因是namespace+id是作为Map的key使用的,如果没有namespace,只有id,那么id重复会导致数据相互覆盖;有了namespace,id也就可以重复,namespace+id自然也就不同。

2025-03-07 10:00:15 250

原创 Mybatis的优缺点

灵活度高:基于sql编程,对现有数据库设计无侵入,sql语句写在xml文件当中,便于管理和维护,支持动态sql和代码重用。支持ORM映射:通过映射标签将数据库与java对象进行映射,简化了对象关系之间的维护。数据库移植性差:SQL 语句依赖于数据库,更换数据库时可能需要修改 SQL。手动编写sql语句:需要开发者手动编写sql语句,增加了开发和维护的成本。代码简洁:与jdbc相比,减少了大量冗余的代码,无序手动管理数据库。与数据库有很好的兼容:基于jdbc,支持所有jdbc所支持的数据库。

2025-03-06 10:16:43 311

原创 MyBatis 中使用#和$书写占位符有什么区别?

Mybatis 在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis 在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。区别:#{}是预编译处理,${}是字符串替换;

2025-03-06 08:42:55 263

原创 面试题常问

重写finalize()方法,用于释放资源,但是一般不建议使用这个来释放资源,因为不知道它何时被调用。是一个总是会执行的代码块,无论代码有无异常;:是Object类中的方法,用于在对象被垃圾回收器销毁之前进行清理工作;List:是一种线性结构,支持按索引访问元素,允许有重复的元素;Map是一个键值对映射容器,用于存储键和值的映射关系;修饰变量:变量变常量,且必须赋初始值,不能被修改;Set:用于存储不允许重复的元素。:可以用来修饰类,方法,变量;修饰方法:方法不能被重写;修饰类:类不能被继承;

2025-02-27 09:55:24 516

原创 运行时异常与受检异常的区别?

受检异常:与程序的运行环境有关,例如(网络错误,文件找不到等),即使程序设计正确也可能发生,java编译器需要显示的声明和捕获。运行时异常:通常与程序的逻辑错误有关,例如(数组越界异常,空指针异常等),java编译器需要显示的声明和捕获;:都是异常,表示程序的非正常状态;

2025-02-27 08:36:33 204

原创 return和finally同时存在时,finally会执行吗?

return会将返回值的结果记录下来,等待finally执行完毕之后,会将最终结果一并返回给调用者;如果在finally代码块当中有修改返回值的情况下,会将修改后的结果返回给调用者(一般情况下,不建议在finally当中修改返回值,这是不好的行为)如果代码中同时存在return和finally,finally是会执行的。

2025-02-26 17:02:48 112

原创 Error和Exception的区别

Error表示系统级别的错误和程序不必要处理的异常,不是不可能恢复,恢复起来是很困难的一种情况,例如:内存溢出;不可能指望程序去处理这样的异常;Exception表示需要捕获和程序需要处理的异常,是一种设计或实现问题:如果程序可以正常运行,那么不会发生这样的情况。

2025-02-26 16:52:01 167

原创 Java和JavaScript的比较

javascript:前身是由Netscape公司开发,前身是LiveScript语言;javascript:适用于前端开发,实现网页交互功能,也可用于后端开发;java:适合用于后端开发,Android应用开发,大型企业级应用开发;javascript:弱类型,变量类型可在运行时动态推断;java:代码比较严格,代码结构清晰,适合复杂系统的开发;java:必须编译成字节码文件,运行在java虚拟机上;java:前身是由sun公司开发,前身语言是Oak语言;java:是强类型,必须声明变量类型;

2025-02-26 15:00:05 418

原创 String 属于基础的数据类型吗?

String 不属于基础类型,基础类型有 8 种:byte、boolean、char、short、int、float、long、double,而 String 属于对象。

2025-02-21 10:29:14 441

原创 Error 和Exception 有什么区别?

Error表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存 溢出,不可能指望程序能处理这样的情况;Exception表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现 问题;也就是说,它表示如果程序运行正常,从不会发生的情况。

2025-02-18 16:25:10 427

原创 scope作用域的取值

系统范围依赖与 provided 类似,但是你必须显式的提供一个位于本地系统中 JAR 文件的路径,需要指定 systemPath 磁盘路径,system 依赖不推荐使用。如果我们要依赖一个本地的 jar 包的时候,通常都会使用 system 和来处理。: 表示被依赖项目仅仅参与测试相关的工作,在编译和运行时都不需要,只在编译测试代码或者运行测试代码的时候才能使用该依赖。:依赖在运行和测试的时候需要,但在编译的时候不需要。:provided 依赖在编译和测试时需要,在运行时不需要。

2025-02-13 19:43:14 491

原创 Maven的常用命令

在本地repository中安装jar并上传到本地仓库;

2025-02-13 19:31:20 170

原创 常见的运行时异常

算数异常类转换异常非法参数异常下标越界异常空指针异常安全异常。

2025-01-15 09:08:44 203

原创 事务的ACID是指的什么?

持久性:事务完成后所做的改动都会被持久化,即使发生灾难性的失败。通过日志和同步备份可以在故障发生后重建数据。原子性:事务中各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败;隔离性: 并发执行的事务彼此无法看到对方的中间状态。一致性:事务结束后系统状态是一致的。

2025-01-14 20:02:00 274

原创 使用标签库的好处

2.开发者可以创建自定义标签来封装业务逻辑和显示逻辑;1.分离JSP页面的内容和逻辑,简化了Web开发;3.标签具有很好的可移植性,可维护性和可重用性;4.避免了对小脚本的使用。

2025-01-06 09:06:29 319

原创 转发和重定向的区别

redirect就是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,因此浏览器的地址栏中可以看到跳转后的链接地址,很明显redirect无法访问到服务器保护起来的资源,但是可以从一个网站redirect到其他网站。在有些情况下,比如需要访问一下其他服务器上的资源,则必须使用重定向。,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容从哪里来就是的,所以它的地址栏中还是。

2025-01-03 19:27:14 397

原创 String和StringBuilder,StringBuffer的区别

StringBuilder是Java5中引入的,它和StringBuffer的方法完全相同,区别在于它是在。StringBuffer/StringBuilder类表示的是字符串对象可以直接进行修改。因为它的效率也比StringBuffer要高。Java平台提供了两种类型的:String和。其中String是只读字符串,也就意味着。String引用的字符串内容是不能被改变的。环境下使用的,是因为它的所有方面都没有被。

2024-12-30 09:17:22 319

原创 Error和Exception的区别

Error表示系统级别的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况;Exception表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题:也就是说,它表示如果程序运行正常,从不会发生的情况。

2024-12-28 19:46:52 246

原创 【线程】sleep()和yield()方法的区别

3.sleep()方法声明抛出InterruptedException,而yield()方法没有声明任何异常;4.sleep()方法比yield()方法(跟操作系统CPU调度相关)具有更好的。1.sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给。的线程可以运行的机会,yield()方法只会给。2.线程执行sleep()方法后转入。,而执行yield()方法后转入。的线程可以运行的机会;

2024-12-27 08:35:46 421

原创 Java中HashMap和Hashtable的区别

这意味着Hashtable是线程安全的,可以在多个线程之间共享,但HashMap不能在没有正确同步的情况下在多个线程之间共享,Java5引入了ConcurrentHashMap,它是Hashtable的一个替代方案,并提供比Java中的Hashtable更好的可伸缩性。接口,但它们之间有一些重要的区别,在决定是使用Java的HashMap还是Hashtable之前,需要记住一些重要的区别,其中一些是线程安全,同步和高速的。(HashMap允许空值作为键和值,而Hashtable不允许空值)。

2024-12-26 20:01:02 739

原创 【Servlet】的方法及生命周期

Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init()方法进行Servlet的初始化;请求到达时调用Servlet的service()方法,service()方法会根据需要调用与请求对应的doGet或doPost等方法;当服务器关闭或项目被卸载时服务器会将Servlet实例销毁,此时会调用Servlet的destroy()的方法。,当容器监测到一个servlet从服务中被移除时,容器调用该方法,,它是由servlet容器控制的,该方法只能被调用一次。

2024-12-26 14:48:05 566

原创 final关键字用法

表示变量只能赋一次值,不能进行二次赋值。:表示该类不能被继承;:表示方法不能被重写;

2024-12-26 14:29:17 176

原创 JSP中的作用域

一个请求可能跨越多个页面,涉及多个Web组件;需要在页面显示的临时数据可以置于此作用域。,它实质上是跨越整个Web应用程序,包括多个页面,请求和会话的一个全局作用域。跟某个用户相关的数据应该放在用户自己的session中。代表与某个用户与服务器建立的一次会话相关的对象和属性。代表与Web客户机发出的一个请求相关的对象和属性。代表与整个Web应用程序相关的对象和属性。代表与一个页面相关的对象和属性。JSP中的作用域包括。

2024-12-25 19:27:40 334

原创 静态变量和实例变量的区别。

它是属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。上下文类和工具类通常会有大量的静态成员。静态变量可以实现让多个对象共享内存。修饰符修饰的变量,也称为。

2024-12-25 09:23:13 246

原创 List Map Set三个接口存取元素的特点

Set和Map容器都有基于哈希存储和排序树的两种实现版本,基于哈希存储的版本理论存取时间复杂度为0(1),基于排序树版本的实现在插入或删除元素时会按照元素或元素的键构成排序树从而达到排序和去重的效果。由于链表实现,增加时只要让前一个元素记住自己就可以,删除时让前一个元素记住后一个元素,后一个元素记住前一个元素,这样的增删效率较高但查询时需要一个一个的遍历,所以效率低。来存取元素,可以有重复元素。---|HashTable:底层也是使用了哈希表维护的,存取的读取快,存储元素是无序的。,底层是以哈希表实现的。

2024-12-24 19:06:24 360

原创 Java中实现序列化的意义

序列化是为了解决对象流读写操作时可能引发的问题(如果不进行序列化可能会存在数据乱序的问题)。要实现序列化,需要让一个类实现。方法就可以将实现对象写出(即保存其状态);如果需要反序列化则可以用一个输入流建立对象输入流,然后通过。方法从流中读取对象。序列化除了能够实现对象的持久化之外,还能够用于对象的。的,然后使用一个输出流来构造一个对象输出流并通过。,该接口是一个标识性接口,标注该类对象是。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。,所谓对象流也就是将。

2024-12-24 08:44:36 231

原创 【线程池】

线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象的开销。如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60s不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线程来处理任务。要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚地情况下,因此在工具类Executors面提供了一些静态工厂方法,生成一些常用的线程池。创建一个大小无限的线程池。

2024-12-23 19:48:37 380

原创 Statement和PreparedStatement的区别

3.当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来,下次执行相同结构的语句时就会很快(不用再次编译和生成执行计划)语句,它主要的优势在于可以减少SQL的编译错误并增加SQL的安全性(减少SQL注射攻击的可能性);1.与Statement 相比,PreparedStatement 接口代表。2.PreparedStatement中的SQL语句是。的,避免了用字符串连接拼接SQL语句的麻烦和不安全;

2024-12-23 08:30:08 334

原创 抽象类和接口的说明及区别

抽象类中的成员可以是 private,默认,protected,public的,而接口中的成员全都是public修饰的,抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。5.抽象类中的抽象方法的访问类型可以是public protected,但接口中的抽象方法只能是public类型的,并且默认即为 public abstract类型;的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法;有抽象方法的类一定是抽象类,抽象类中的方法可以不是抽象的;抽象类可以实现代码的复用,

2024-12-22 19:43:10 519

原创 内存中的栈,堆和方法区的用法及区别

方法区和堆都是各个线程共享的内存区域,用于存储已经被JVM加载的类信息,常量,静态变量,JIT编译器编译后的代码等数据;,JVM为每个新创建的线程都分配一个堆栈,也就是说,对于一个Java程序来说,它的运行就是通过对堆栈的操作来完成的。栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间,栈和堆的大小都可以通过JVM的启动参数来进行调整,栈空间用光了会引。通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都是用JVM中的。1.堆内存用来存放由new创建的对象和数组。

2024-12-21 09:06:59 358

原创 面向对象的特征

面相对象的本质就是将现实世界描绘成一系列完全自治,封闭的对象。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。简单来说就是用同样的对象引用调用同样的方法但是做了不同的事情。:(用父类型引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。抽象是将一类对象的共同特征总结出来构造类的过程,包括。),而方法重写实现的是运行时的多态性(也称为。,并不关注这些行为的细节。

2024-12-20 19:48:20 236

原创 int和Integer的区别

Java为每个原始类提供了包装类型: --原始类型: boolean,char,byte,short,int,long,float,double --包装类型: Boolean,Character,Byte,Short,Integer,Long,Float,Double。

2024-12-20 09:05:28 428

原创 &和&&的区别?

逻辑与跟短路与的差别是非常巨大的,二者都要求运算符左右两端的布尔值都是true时,整个表达式的值才是true。&&之所以成为短路运算符是因为:如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算,很多时候我们可能都需要使用&&而不是&。username.equals(""),二者顺序本能交换,更不能使用&运算符,因为第一个条件不成立,根本不能进行字符串的比较,否则会产生。运算符( || )的差别也是如此。&运算符有两种用法:(1)

2024-12-19 08:37:00 614

原创 properties 属性文件

作用:存储一些有关系的键值对数据;properties 是用来代表属性文件的,通过properties 对象可以读写属性文件里的内容。特点:以键值对的形式保存数据;文件的后缀名一般是.properties;是一个Map集合(键值对集合),但是我们一般不会当键值对去使用;

2024-12-18 20:32:06 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除