自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDBC事务

是并发控制的单元,是用户定义的一个操作序列。这些操作要么都成功,要么都失败,是一个不可分割的工作单位。通过事务,SqlServer能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。事务通常是以begin transaction开始,以commit或rollback结束。Commit表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据的更新写到磁盘上的物理数据库中去,事务正常结束。

2025-03-05 15:02:43 936

原创 JDBC数据库连接

(Java Database Connectivity)是一种用于执行SQL语句的JavaAPI,是Java和数据库之间的桥梁。它提供了一种标准化的方式来连接不同的数据库驱动程序,并通过Java程序执行SQL操作。JDBC由一组用Java语言编写的类和接口组成,主要包括以下几个部分:驱动管理:负责加载和注册数据库驱动。Connection接口:用于代表数据库的连接,所有的数据库操作都通过这个接口完成。Statement接口:用于执行SQL语句。ResultSet接口:用于处理SQL查询的结果。

2025-03-05 13:31:24 649

原创 IDE集成开发环境MyEclipse中安装SVN

SVN的安装

2025-03-05 08:17:12 526

原创 二十三、Java的回调机制

回调函数,顾名思义,用于回调的函数。回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。回调函数是一个工作流的一部分,由工作流来决定函数的调用(回调)时机。回调函数包含下面几个特性:(1)属于工作流的一个部分(2)必须按照工作流指定的调用约定来申明(定义);(3)它的调用时机由工作流决定,回调函数的实现者不能直接调用回调函数来实现工作流的功能。

2025-03-04 19:12:49 156

原创 二十二、Java递归

递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。

2025-03-04 16:34:01 26

原创 阿里巴巴的数据库连接池Druid报Failed to look up JNDI DataSource with name ‘slaveDataSource‘

哈哈,这些其实都不是太大的问题,关键是我们要抓住关键点,从这些一大堆的内容中找出关键点,那就是Caused by: org.springframework.jdbc.datasource.lookup.DataSourceLookupFailureException: Failed to look up JNDI DataSource with name 'slaveDataSource';其实最开始我也是一头雾水,最后实在没有办法,进行了Debug模式调试,逐句代码排除,最后找到原因了。

2024-10-21 14:29:17 600 1

原创 项目启动过程中,项目加载并初始化bean时报空指针

一个类如何才能在项目启动过程中进行加载并初始化呢,那就是我们经常用到的注解@Componet,@Componet注解表明一个类会作为组件类,表示将此类标记为Spring容器中的一个bean。其实对于调试开发项目中的bug很简单,我们要一针见血地发现问题所在,上述就是问题所在BeanCreationException,java.lang.NullPointerException。找到问题所在,我们就使用Debug模式(俗称甲壳虫)去读源码,看看在项目启动并初始化的过程中哪个类文件的哪行代码出现了问题。

2024-10-18 14:35:38 302

原创 Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

项目启动时,一直报错Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.kangning.system.mapper.SysDictDataMapper.selectDictDataList,是Mybatis中的映射文件跟接口文件SysDictDataMapper绑定错误,我反复检查了很多遍关于Mapper与映射文件的细节之处,没有发现任何问题!

2024-10-16 14:15:14 1425

原创 Spring的依赖注入问题APPLICATION FAILED TO START

3、控制器层,大家有时称它为Controller层即控制器层,在该类上经常用到@RestController注解相当于@Controller和@ResponseBody注解的组合,表示该类是一个控制器,使得控制器方法返回的对象会自动通过消息转换器(如Jackson)转换为JSON或XML格式,并写入HTTP响应体中。1、在业务逻辑层中,类的实例化需要在实现类上添加@Service实例化该类,代码如下。总结,对于上述我描述的问题,直接使用业务逻辑层中的@Service即可解决。

2024-10-15 13:38:58 503

原创 method ‘sqlSessionFactory‘ threw exception; nested exception is java.lang.NullPointerException

2024年10月14日下午15:15分,今天调试了kangning框架,该框架基于开源框架ruoyi,遇到了一些问题,这个问题目前说是sqlSessionFactory为空,报了空指针。

2024-10-14 15:17:26 431 1

原创 手写MySQL笔记

mysql> insert into temp(id,gender) values(id,'男');(1)使用DDL(Database Difinion Language)语言将非空约束建立。alter table temp drop index(关键字) name(约束名称);foreign key(外键字段) references 主表名称(主表中的。第一种:采用默认约束名称建立外键约束。第二种:通过指定约束名建立外键约束名。(1)建立默认约束名称的外键。(2)建立指定约束名称的外键。

2024-06-07 08:07:31 1020

原创 MySQL(五)编写基本SQL语句

【代码】MySQL(五)编写基本SQL语句。

2024-06-07 08:03:34 229

原创 MySQL(四)查询

当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on delete cascade 或 on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列,假定引用的主表列不是唯一的记录,那么从表引用的数据就不确定记录的位置。

2024-06-07 08:00:03 229

原创 MySQL(三)查询

查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。WHERE 子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。select e.ename,(select d.dname from dept d where d.deptno = e.deptno) 部门名称 from emp e;where型子查询把内层查询结果当作外层查询的比较条件。from子查询 把内层的查询结果供外层再次查询。3)where子查询。

2024-05-28 16:10:05 259

原创 MySQL常用函数

【代码】MySQL常用函数。

2024-05-28 14:25:07 65

原创 MySQL字符串函数

【代码】MySQL字符串函数。

2024-05-28 14:24:06 83

原创 MySQL(二)基本SQL语句以及基本函数应用

EXP(x) 返回e(自然对数的底)的x次方(数学中的e, e 约等于 2.71828 59045 23536 02874 71352 66249 77572)。下面的表显示了需要的每个整数类型的存储和范围。——数学函数、聚合函数(常用于GROUP BY从句的SELECT查询中)、字符串函数、日期和时间函数、格式化函数、类型转换函数、系统信息函数。3)字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

2024-05-27 20:05:23 908

原创 MySQL(一)

1、记在心里2、写在纸上3、使用内存4、使用磁盘1)数据库就是存放数据的仓库,是按照数据结构来组织、存储和管理数据的仓库,是数据持久化的工具。2)使用数据库的优点存储大量数据保持数据信息的完整、一致性数据的共享和安全3)数据库与应用程序的关系4)数据库发展历史萌芽阶段------文件系统数据库- 使用磁盘等载体记录数据初始阶段-----网状,层次型数据库-DBMS的诞生,IBM的IDS,IMS数据库。现级阶段----关系对象型数据库-SQL的诞生、加强了数据存储的依赖性。

2024-05-23 17:00:46 833

原创 mysql工具中表结构没有乱码,而cmd命令行插入数据有乱码怎么解决?

2、设置编码,此时输入 set character_set_client = gbk;3、再输入 set character_set_results = gbk;1、cmd命令行默认的是gbk,而mySQL一般是utf8;

2024-05-23 16:28:08 153

原创 Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

its。

2024-05-21 18:07:03 463

原创 MySQL如何创建用户?

(3)修改密码:update mysql.user set password=password('lining') where user='li';(2)删除用户:delete from mysql.user where user='li' and host='localhost';(1)登陆数据库:mysql -u root -p;输入密码:a123 或者这样: mysql -u;(1)以Root身份登陆:mysql -u root -p;(1)以root身份登陆:mysql -u root -p;

2024-05-21 18:00:07 740

原创 MySQL的管理员用户名为root,密码默认为空,如何修改root密码?

当前user和priviligeS表中的用户信息/权限设置从mysql库(MySQL数据库的内置。MYSQL配置好后,启动成功,默认密码是空,但是为了安全,设置密码(mysql有。出现 Enter password: 这个,还是按enter键,这样成功进入。怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,MySQL的管理员用户名为root,密码默认为空。一个默认的用户名为root,密码自己定。

2024-05-21 17:58:16 888

原创 TCP和UDP的区别是什么?

TCP(传输控制协议)和UDP(用户数据报协议)是互联网协议族中的两个重要传输层协议。本文将从工作原理、特点、优缺点以及适用的应用场景,帮助读者更好地理解和应用者两种协议。

2024-05-13 15:35:04 513

原创 JDK动态代理与CGLIB动态代理的有什么区别?

了解了JDK动态代理和CGLIB动态代理的原理后,现在来比较下两者的区别,这也是面试时几乎必问的一道面试题。JDK动态代理生成的代理继承了java.lang.reflect.Proxy,因为Java是单继承的,如果不通过实现接口的形式,无法对类进行扩展。CGLIB动态代理生成的代理类实际上是被代理的子类,所以被代理类可以不实现接口。

2024-05-13 09:38:02 1128

原创 二十一、JDK代理和Java注解

代理类和委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。假如我们的程序中某个方法已有更好的方法可以替代,我们已经不需要此方法了,而为了防止其他调用此方法的类不至于崩溃,我们没有必要删除它,而只需在其前面加上此@Deprecated注解,就表示此方法已经过时,以后那个程序调用它,编译时便会显示过时信息。注解@Retention可以用来修饰注解,是注解的注解,称为元注解。

2024-05-08 08:30:36 209

原创 二十、Java的反射机制

反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

2024-05-08 07:30:08 247

原创 ReflectionMethod can not access a member of class com.ruoyi.web.controller.test.bean.Student

因此,我将Student类中的方法,改为public,再次运行代码正常执行。首先声明我的方法sayHello,在Student这个类中是私有的方法。获取类中声明的方法代码如下,这时就报上面的错误。

2024-05-07 14:14:26 405

原创 java.lang.NoSuchMethodException: com.ruoyi.web.controller.test.bean.HeadTeacher

反复分析给出的错误提示,发现实例化HeadTeacher对象时,该类中并不存在带参构造器,因此。软件开发过程中使用Java反射机制时遇到了下面的问题。bean对象中添加如下代码。

2024-05-07 13:20:12 540

原创 Activity工作流基本知识点

Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。

2024-05-06 09:54:01 899

原创 Springboot整合Activity的完整示例

{activityDemoServiceImpl.updateBizStatus(execution,"tj")} 表示将使用activityDemoServiceImpl服务的updateBizStatus方法,里面有两个参数,execution是当前流程节点对象,可获取流程信息及业务key等,"tj"字符串参数。功能包括:退回/通过(节点条件)、指定办理人、生成流程图、高亮显示已办节点、查询任务列表(办理人)等。四、增加2、3设置的服务方法(ActivityDemoServiceImpl)

2024-05-06 09:42:38 1613

原创 十九、XML Extensible Markup Language

如果XML内容写错了怎么办?如何校验XML语法的正确与否?DTD(文档类型定义)可以定义合法的XML文档结构,它使用一系列合法元素来定义文档的结构。DTD分别为内部DTD和外部DTD,所谓内部DTD是指该DTD在某个文档的内部,只被该文档使用。外部DTD是指该DTD不在文档内部,可以被其他所有的文档来共享。DTD文档与XML文档实例的关系可以看成是类和对象的关系。根元素的声明每个XML文档都只有一个根元素,其它的子元素都包含在该根元素中。因此在DTD中对根元素的声明是必不可少的。

2024-04-29 15:39:53 702

原创 十八、Java解析XML文件

XML即可扩展的标记语言,可以定义语义标记(标签),是元标记语言。XML不像超文本标记语言HTML,HTML只能使用规定的标记,对于XML,用户可以定义自己需要的标记。XML(Extensible Markup Language)和HTML(Hyper Text Markup Language)师出同门,都是从SGML(Standard Generalized Markup Language)延伸而出的标记语言。

2024-04-29 14:22:37 335

原创 在MySQL中isnull()函数不能作为替代null值!

如下:首先有个名字为business的表:SELECTASbus_isnullFROMbusinessWHEREid=2直接运行就会报错:错误代码:1582tonativefunction'isnull'如下:使用ifnull()函数:SELECTASbus_ifnullFROMbusinessWHEREid=2运行结果:当查询的值不为null时:SELECTASbus_ifnullFROMbusinessWHEREid=

2024-04-27 18:16:28 471 1

原创 MySQL数据库中Delete语句和Truncate table 语句的区别

如果delete不加where 子句,那么它和truncate table是一样的,但他们有点不同,那就是delete可以返回被删除的记录数,而truncate table返回的是0。在内存中,用delete删除数据,表空间中其被删除数据的表占用的空间还在,便于以后得使用,另外它是“假象”的删除,相当于windows中用delete删除数据是把数据放到回收站中,还可以恢复,当然如果这个时候重新启动系统,它也就不能恢复了。7、truncate和delete只删除数据,而drop则删除整个表(结构和数据)。

2024-04-27 10:10:56 609

原创 URLConnection程序报java.net.ConnectException: Connection refused: connect

java.nect.ConnectionException:Connection refused:connect 是指客户端与服务端连接失败,可能是服务端没有启动,或者服务器端的端口号与客户端的不一致,或者服务器的防火墙拦截了客户端的请求。我这边是忘记的启动服务端。

2024-04-26 17:01:24 629 1

原创 十七、Java网络编程(一)

1、Java网络编程的基本概念2、两类传输协议TCP、UDP3、基于URL的网络编程4、基于Socket(套接字的基本步骤)、初步知识

2024-04-25 16:28:26 391 1

原创 十六、Java多线程

一个进程在运行态时调用sleep(),进入等待态,睡眠结束后,并不是直接回到运行态,而是进入就绪队列,要等到其他进程放弃时间片后才能重新进入运行态。这就只能有一个线程可以访问这个方法,在当前线程调用这个方法时,此方法是被锁状态,同步监视器是this。当线程被启动后,它不可能一直使用CPU独自运行,还有更多的线程需要使用到CPU,所以CPU会在多条线程之间切换执行命令,于是线程状态也会多次在运行,阻塞之间切换。当线程获得到JVM中线程调度器的调度时,线程就会处于运行状态,开始执行run()方法的线程执行体。

2024-04-25 14:54:58 364 1

原创 十五、Java中I/O流

转换流(InputStreamReader和OutputStreamWriter)是Java中用于在字节流和字符流之间进行转换的桥梁。它们可以将字节流转换为字符流,并提供了字符编码的功能。转换流的主要作用是将字节流解析成字符流,在读取字节数据或写入字符数据时完成字符编码和解码的过程。这样可以处理特定编码格式的文本数据,例如将字节流转换为字符流以支持UTF-8或GBK编码。BufferedReader是Java中的一个输入流类,用于从字符流中读取文本。

2024-04-24 16:44:18 528 1

原创 十四、集合框架和枚举

但是调用方法可以直接通过类名调用Collections类的方法,因为Collections类中的方法都是被static修饰了,可以直接用类名调用。Collections类提供了一系列的静态方法,可以实现对集合元素的排序,添加一些元素,随机排序,替换操作等。在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素成了四季的“数据集”。在以前的学习中使用什么来记录多个相同类型的数据?

2024-04-24 14:20:39 391

原创 税务签到接口调用成功返回JSON格式数据

【代码】税务签到接口调用成功返回JSON格式数据。

2024-04-23 14:43:27 149

Servlet+JSP+Struts+SpringMVC+考试题+练习题

1.get()与load()的区别 2.hibernate的工作原理 3.struts2的工作原理 4.struts2配置文件的加载顺序 5.strut2中有哪几种结果集类型,他们间的区别是什么? 6.实现Servlet的几种方式 7.实现action的几种方式 8.SessionFactory与session的特点 9.九大内置对象 10.四大作用域以及使用范围

2025-03-05

二分查找算法代码高级版本+二分查找算法思想

二分算法,也称为二分查找或折半查找,是一种在有序数据集中查找特定元素的算法。其基本思想是: 起始时,将数据集视为一个区间,区间包含所有待搜索的元素。 计算区间的中间元素,并将待查找的元素与中间元素进行比较。 如果中间元素等于待查找元素,则查找成功。 如果待查找元素小于中间元素,则在数据集的左半部分继续搜索。 如果待查找元素大于中间元素,则在数据集的右半部分继续搜索。 重复以上步骤,直到找到元素或区间缩小到空集。 二分算法的时间复杂度为O(logN),其中N是数据集的大小,这使得它在处理大规模数据时非常高效。然而,它要求输入数据是有序的,这可能需要在应用二分查找之前对数据进行排序。 此外,二分算法在处理某些问题时可能不是最优解,特别是在数据非单调或具有特定模式时。因此,理解二分算法的适用性和限制是很重要的。

2024-05-13

二分查找算法代码+二分查找算法思想

二分算法,也称为二分查找或折半查找,是一种在有序数据集中查找特定元素的算法。其基本思想是: 起始时,将数据集视为一个区间,区间包含所有待搜索的元素。 计算区间的中间元素,并将待查找的元素与中间元素进行比较。 如果中间元素等于待查找元素,则查找成功。 如果待查找元素小于中间元素,则在数据集的左半部分继续搜索。 如果待查找元素大于中间元素,则在数据集的右半部分继续搜索。 重复以上步骤,直到找到元素或区间缩小到空集。 二分算法的时间复杂度为O(logN),其中N是数据集的大小,这使得它在处理大规模数据时非常高效。然而,它要求输入数据是有序的,这可能需要在应用二分查找之前对数据进行排序。 此外,二分算法在处理某些问题时可能不是最优解,特别是在数据非单调或具有特定模式时。因此,理解二分算法的适用性和限制是很重要的。

2024-05-13

CGLIB动态代理+CGLIB动态代理完整代码

CGLIB是一个基于ASM的字节码生成库,它允许我们在运行时对字节码进行修改和动态生成。cglib通过继承方式实现代理,也就是基于类,在子类中采用方法拦截的技术拦截所有父类方法的调用并顺势织入横切逻辑。 我们最终是通过一个代理对象去调用方法的,那我们就要获取一个代理对象,cglib代理,是通过Enhancer这个类里面对应的一个create()方法,去生成一个代理对象的。 Enhancer创建一个被代理对象的子类并且拦截所有的方法调用(包括Object中继承的toString和hashCode方法)。Enhancer不能够拦截final方法。Enhancer也不能对final类进行代理操作。 CGLIB体现的是继承思想,所以我们需要把代理类作为我们目标类的一个子类,也就是把目标类设置为父类,代理类去继承它。

2024-05-13

JDK动态代理+JDK动态代理完整代码+JDK动态代理代码实现逻辑

动态代理::在程序运行时,运用反射机制动态创建而成。 动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java反射机制可以生成任意类型的动态代理类。 java.lang.reflect 包中的Proxy类和InvocationHandler接口提供了生成动态代理类的能力。

2024-05-13

Java基础核心+File对象相关操作方法

1、Java中的文件创建 2、File.separator文件目录结构分隔的使用 3、在磁盘上创建文件夹 4、在磁盘文件夹下创建一个文件 5、删除一个文件 6、判断指定的文件是否存在,如果存在返回true,否则返回false 7、获取文件的绝对路径 8、判断指定的File对象表示一个文件还是表示一个文件夹 9、判断File对象所指向的文件是否是目录 10、文件重命名

2024-04-24

Java基础核心+文件输入流+文件输出流

使用最简单的输入流和输出流实现 文件复制粘贴功能。这是第二种方式,与第一种方式的不同在于我们使用byte[]数组盛放从myFile读取到字节。比第一种方式,速度会快一些。

2024-04-23

Java基础核心+InputStream输入流+OutputStream输出流

使用最简单的InputStream输入流和OutputStream输出流,制作了文件之间的粘贴复制功能。程序已测试,可以把一个word文件中的内容完整复制到另一个word文件中。

2024-04-23

报文响应+获取会话公钥(SessionKey)+RAS加密+AES加密+MD5加密

1、接入申请:在接入单位应先向税务局申请,经过审批备案后,将生成的唯一的接入方编号(appCode)和通过使用OpenSSL生成的一对私钥和公钥。其中,私钥由税务局保留,接入方编号(appCode)和公钥分配给申请接入单位,接入单位应妥善保管公钥。 2、会话公钥申请 接入申请通过后,将分配得到的接入方编号(appCode)按“请求参数结构”中的规范调用“申请会话公钥”接口,调用接口成功后得到的会话公钥(publicKey),可调用其他业务接口使用。接入方单位应妥善管理会话公钥,注意保密。 3、接口调用 调用非会话公钥申请接口时,取得的会话公钥可对请求报文进行AES加密,加签;也可对返回报文进行解密,验签。 4、调用申请会话公钥接口时,用分配的公钥对requestData明文进行RSA加密,sigin为空即可。调用非申请会话公钥接口时,用会话公钥对requestData明文进行AES加密;再对(requestData密文+会话公钥明文)进行MD5加密作为sign值。

2024-04-23

Java核心基础+Java中的数据在内存中的存储

1、内存中的堆(stack)与栈(heap) 2、Java中数据在内存中的存储 基本数据类型的存储 对象的内存模型 包装类数据的存储 String类型数据的存储 数组的内存分配 内存空间的释放 3、Java内存分配中的栈 Java内存分配中的堆 4、String.intern() 5、关于equasl()与== 6、关于String是不可变的

2024-04-23

Java面向对象编程+可授课使用+没有答案

【练习题】 1、类的成员变量练习题 2、类的成员变量练习题 3、类的成员变量与方法、构造方法练习题 4、构造方法练习题 5、构造方法与重载练习题 6、构造方法的重载练习题 7、构造方法与重载、包的练习题 8、构造方法与重载练习题 9、构造方法与重载练习题 10、static关键字与普通变量的区别练习题 11、继承练习题 12、包、继承、构造函数练习题 13、继承练习题 14、覆盖、继承练习题

2024-04-10

《Java练习题》面向对象

一、判断正误 二、填空题 三、选择题 面向对象是相对于面向过程来说的,面向过程是一种以“过程”为中心的编程思想,分析出解决问题所需的步骤,然后用函数把这些步骤一步步的实现,使用的时候一个个依次调用就好。而面向对象,是一种以“对象”为中心的编程思想,把问题看成一个个对象,通过对象的属性和行为,将问题解决的。面向过程强调的是模块化,而面向对象强调的是把事物对象化。 复杂来说面向对象是以“对象”为基本单元构建系统,对象是把数据和数据操作方法放在一起,作为一个相互依存的整体。把同类的对象抽象出其共性,形成类。所以说类是对象的抽象,对象是类具体化的体现(类是大范围的,一个类可以有多个对象),类中的大多数数据只能通过本类的方法实现,类包含说明和实现,说明部分被外界所看到,通过简单的外部接口与外界进行联系;实现部分不被外界所看到,在内部通过不同方法的构建,实现不同的功能。对象与对象之间通过消息进行沟通,程序流程由用户在使用中决定。 面向对象用以解决越来越复杂的需求,提高了软件的重用性,灵活性和拓展性。

2024-04-10

快速排序基本思想+排序过程

基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点(该基准点的选取可能影响快速排序的效率,后面讲解选取的方法),然后分别从数组的两端扫描数组,设两个指示标志(lo指向起始位置,hi指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫秒,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置。一次排序就完成了。以后采用递归的方式分别对前半部分和后半部分排序,当前半部分和后半部分均有序时该数组就自然有序了。

2024-04-08

冒泡排序原理过程解析图

冒泡排序的基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 算法原理: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2024-04-08

增强for(part1:part2)part3; 

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。   foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。   foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。   foreach的语句遍历的多种方式,文档中都有详细介绍

2024-04-08

Java初级学习课程练习题

do-while循环 for循环 相关练习题 可以作为教案使用

2024-04-03

Scratch - 全球少儿图形化编程工具(语言)

这个作品是由小朋友结合图像界面完成的石头剪刀布的游戏

2024-04-03

Java初级学习流程控制练习题

可以通过该练习题建立对应Java文件,进行代码实战演练和模拟,可以训练逻辑思维能力、思考能力、代码编写和理解能力。

2024-04-02

Java基础编程100道题

Java核心编程,从第一个程序HelloWord到ifelse条件判断、for循环、数组等等,应有尽有的简单Java程序,既可以锻炼Java初级学习者的逻辑思维能力,也可以锻炼手脑并用的学习能力。学会了这些简单的编程能力,那么你就可以是Java初级编程人员了,你已经具备了丰富的逻辑思维能力。

2024-03-29

Java实例变量、类变量、局部变量

类变量是类中的静态变量,是用static修饰的变量;实例变量就是类中的成员变量,没有用static修饰的。 类变量是所有对象公用的,实例变量是对象私有的;当一个对象将类变量进行修改后,这个类的其他所有对象访问这个类变量都是修改之后的值。当实例变量修改后,只有当前对象的值被修改了,其他对象的依然不变,变的只是当前对象的实例变量的值。 局部变量,即定义在方法内部的变量。

2024-03-29

二、Java语言语法基础

那些数据类型隐式转换为int

2024-03-26

Mysql数据库+多表之间的数据同步SQL语句+多字段排序语句

Mysql数据库+多表之间的数据同步SQL语句+多字段排序语句

2024-03-26

使用Java技术来开发Web应用程序的技术框架,使用该技术实现用户登录验证码功能,后台功能代码+前端JSP页面代码

Java Web是一种使用Java技术来开发Web应用程序的技术框架。验证码生成逻辑 1、前端调用API接口,向后端发起一个[获取验证码]请求。 2、后端得到请求,创建验证码ID(通常利用UUID直接创建),然后以各种方式生成一串随机内容(常见的包括英文、数字、中文、数学公式) 3、根据随机内容分配出Key(返回给前端显示的内容)和value(验证码的唯一标准答案) 4、将验证码ID和value存放到Redis中,同时可以利用Redis的缓存过期时间功能同步设置本次验证码的实际有效时间。 5、将String格式的验证码内容Key通过一系列方式转换成图片pic 6、将UUID与pic返回给前端进行展示即可。 7、前端获取验证码后填写业务表单(username, password, captchaID, captchaCode),调用提交相关API 8、后端根据验证码的ID再次向Redis发起查询,进行验证码匹配。 9、若Redis返回空值,则表明该ID对应的验证码已经过期失效。若Redis不返回空值,则获取到该值,并与前端传来的code进行比对,若一致则比对成功,不一致则验证码错误。

2024-03-26

Spring下的子框架SpringMVC实现多文件上传完整代码

文件上传客户端表单需要满足: 1、表单项type=“file” 2、表单的提交方式是post 3、表单的enctype属性是:enctype=“multipart/form-data” 选择了一个文件,点击上传,我们会把这个请求提交,选择了文件,把所有的内容封装到request域对象中,点击提交,后台会先经过前端控制器。dispatcher 前端控制器实现了一个中转的作用。前端控制器可以调用很多组件。假如今天配置新的一个组件,称之为文件解析器,再点上传的时候,控制器会调用文件解析器,文件解析器可以帮助我们解析请求,解析request,解析完request,可以拿到上传文件项,就可以返回一个upload。后面继续执行controller中的方法, fileupload2()。执行这个方法的话,upload会通过参数绑定的方式传给文件上传的方法,在方法中定义一个参数,我们需要一个固定的对象,MutipartFile upload. 它通过参数绑定的方式,把解析后的文件传给我们这个方法,这个upload就指的是文件上传项,我们就可以调用upload中的方法最终完成文件的上传。

2024-03-25

Spring下的子框架SpringMVC实现单个文件上传功能

实现文件上传的思路: 1、创建form表单,enctype=“multipart/form-data(二进制)”,method=“post”,type=“file”。 2、开发控制器controller,控制器方法中的参数用:MultipartFile,进行文件的接收。 3、在SpringMVC配置文件中加入文件上传的解析器配置:CommonsMultipartReslover,id要严格写死:multipartReslover。 4、引入文件上传的相关依赖:commons-fileupload

2024-03-25

一、Java开发环境搭建

一、java开发环境搭建代码实战

2024-03-25

web服务器nginx+部署前端vue项目

1. 什么是 nginx 和可以做什么事情 Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 2.Nginx 作为 web 服务器 Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高 达 50,000 个并发连接数。 https://lnmp.org/nginx.html

2024-03-22

ASCII码表即美国信息互换标准代码

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。 ASCII码表是一系列用于表示文本的字符编码系统,它基于英文字母和一些常用符号。以下是ASCII码表的相关介绍: 控制字符。0到31号,共32个,用于控制外围设备如打印机。1234 可显示字符。32到126号,共95个,包括空格、数字0到9、大小写英文字母。12345 扩展ASCII码。128到255号,共128个,用于表示更多特殊符号、外来语字母和图形符号。1235 此外,在ASCII码表中,一些特定的字符,如换行符、回车符等,用于文本的排版和格式控制。

2024-03-22

DBCP( Database Connection Pool )数据库连接池

DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP; 使用连接池的第一项工作就是导包,这里需要的两个jar包分别是: commons-dbcp-1.4.jar commons-pool-1.6.jar 在使用写连接池工具类的时候,可以通过配置文件来连接数据库,配置文件中记录了连接数据库的驱动、URL、用户名和密码等信息;但要注意这里的文件后缀为:“.properties”。 把通过配置文件连接数据库的部分写在静态代码块中,随着类的加载只加载一次。出了连接数据库,还要提供一个获得数据源的方法和一个获取连接的方法;

2024-03-22

Spring框架+SpringAOP动态代理

SpringAOP动态代理 Spring AOP 使用的动态代理主要有两种方式:JDK 动态代理和 CGLIB 代理。 JDK 动态代理:用于代理实现了接口的类。Spring 会使用 java.lang.reflect.Proxy 类来创建代理对象。 CGLIB 代理:用于代理没有实现接口的类或final类。CGLIB(Code Generation Library)是一个代码生成的类库,可以在运行时动态生成一个目标类的子类,并覆盖其中的方法来实现代理。

2024-03-22

Spring框架+Spring中的事务

什么是Spring事务传播机制 Spring事务传播机制是指在多个事务操作发生时,如何管理这些操作之间的事务关系。Spring事务传播机制可以通过Propagation枚举类中的不同值来指定,共包括七种不同的传播行为。具体来说,Spring事务传播机制包括以下七种: REQUIRED:如果当前没有事务,则创建一个新的事务;如果当前已经存在事务,则加入该事务。这是默认的传播行为。 SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式执行。 MANDATORY:必须在一个已存在的事务中执行,否则就抛出TransactionRequiredException异常。 REQUIRES_NEW:创建一个新的事务,并在该事务中执行;如果当前存在事务,则将当前事务挂起。 NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,则将当前事务挂起。 NEVER:以非事务方式执行操作,如果当前存在事务,则抛出IllegalTransactionStateException异常。NESTED:如果当前存在事务,则在嵌套事务中执行;如果当前没有事务,则创建一个新事务

2024-03-22

Java基础核心理解+什么是回调即回调机制讲解

模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口,这句话可能有点绕,等文章后面举例说明;异步调用是一种类似消息或事件的机制,解决了同步阻塞的问题,举例来讲:A通知B后,他们各走各的路,互不影响,不用像同步调用那样,A通知B后,非得等到B走完后,A才继续走。回调是异步的基本,因此下面着重说回调机制。

2024-03-21

SSH框架整合开发项目详情步骤

集成框架 SSH框架是一个由Struts、Spring和Hibernate三个开源框架组成的集成框架。 这个框架主要用于构建灵活、易于扩展的多层Web应用程序。SSH框架包含表示层、业务逻辑层、数据持久层和域模块层,它帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。Struts作为系统的整体基础架构,负责MVC的分离,Hibernate框架对持久层提供支持,而Spring则贯穿整个生命周期,管理Struts和Hibernate。这种框架组合简化了开发过程,提高了开发效率。

2024-03-21

Mybatis框架+Mapper代理

1.使用Mapper代理方式 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下 设置SQL映射文件的namespace属性为Mapper接口全限定名 在 Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致 编码 通过 SqlSession 的 getMapper方法获取 Mapper接口的代理对象 调用对应方法完成sql的执行

2024-03-21

Java核心算法+插入排序+冒泡排序+选择排序+快速排序

1直接插入排序 * 基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序 2冒泡排序 * 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数, 自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 3简单选择排序 * 基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换; 然后在剩下的数当中再找最小的与第二个位置的数交换, 如此循环到倒数第二个数和最后一个数比较为止。 4快速排序 * 基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

2024-03-13

Spring框架+Spring工作原理+AOP面向切面编程+JDK代理+Cglib代理

Spring框架是一个开放源代码的J2EE应用程序框架,是对bean的生命周期进行管理的轻量级容器。 适用:中高级开发 Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork等众多Web框架组合使用,并且可以与Swing等桌面英语程序AP组合。Spring不仅能应用于J2EE应用程序中,也可以用于桌面应用程序以及小应用程序之中。 Spring框架主要由七部分组成,分别是Spring Core,Spring AOP,Spring ORM,Spring DAO,Spring Context,Spring Web和Spring Web MVC。

2024-03-13

开发工具+接口测试工具Postman+一款功能超级强大用于HTTP请求的测试工具

postman是一个接口测试工具,在做接口测试的时候,Postman就相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配;确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要用来模拟各种HTTP请求(如get/post/delete/put...等),Postman与浏览器的区别在于有的浏览器不能输出Json格式数据,而Postman更直观接口返回的结果。

2024-03-13

空空如也

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

TA关注的人

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