
java
文章平均质量分 64
awonw
我不生产数据,我只是代码的搬运工!
展开
-
[java][基础] 悲观锁 vs 乐观锁
乐观锁的代表是 AtomicInteger,使用 cas 来保证原子性。悲观锁的代表是 synchronized 和 Lock 锁。原创 2025-03-07 17:27:56 · 946 阅读 · 0 评论 -
[java][基础]线程状态
线程状态六种状态及转换原创 2025-03-07 17:25:16 · 930 阅读 · 0 评论 -
[java][基础]冒泡排序
【代码】[java][基础]冒泡排序。原创 2025-03-07 17:22:59 · 901 阅读 · 0 评论 -
[java][基础]二分查找
有一个有序表为 1,5,8,11,19,22,31,35,40,45,48,49,50 当二分查找值为 48 的结点时,查找成功需要比较的次数。使用二分法在序列 1,4,6,7,15,33,39,50,64,78,75,81,89,96 中查找元素 81 时,需要经过( )次比较。③ A[M] < T,中间值左侧的其它元素都小于 T,无需比较,中间索引右边去找, M + 1 设置为左边界,重新查找。对于前两个题目,记得一个简要判断口诀:奇数二分取中间,偶数二分取中间靠左。当 l 和 r 都较大时,原创 2025-03-07 17:21:57 · 939 阅读 · 0 评论 -
[java][OAuth2.0]OAuth2.0建表语句
OAuth2.0建表语句用于在数据库中创建实现OAuth2.0协议所需的表结构,主要包括客户端表(存储客户端信息)、用户表(存储用户信息)、授权码表(存储授权码)、访问令牌表(存储访问令牌)和刷新令牌表(存储刷新令牌)等。这些表用于支持OAuth2.0的认证授权流程,确保客户端能够安全地获取用户的授权并访问受保护资源。原创 2025-03-07 17:20:36 · 950 阅读 · 0 评论 -
[java][RsaUtils]RSA工具类
是一个RSA工具类,提供生成密钥对、读取和写入公钥/私钥文件的功能。它支持从文件中加载密钥,并将密钥转换为对应的对象,适用于加密解密和身份认证场景。原创 2025-03-07 17:14:43 · 934 阅读 · 0 评论 -
[java][JwtUtils ]生成token以及校验token相关方法
生成Token时,使用私钥对Token进行签名,确保Token的安全性和不可篡改性。方法,使用公钥验证Token的合法性,并从中提取出载荷信息(如用户信息)。支持提取泛型类型的用户信息,便于处理不同类型的数据。适用于需要通过JWT进行身份验证或数据传输的系统,尤其适用于分布式系统中的跨服务认证。方法,一种用于提取完整载荷信息,另一种用于提取用户信息和过期时间。自动生成唯一的JWT ID(JTI),确保Token的唯一性。工具类进行JSON序列化和反序列化,处理载荷中的复杂对象。工具类构建和解析Token。原创 2025-03-07 17:11:58 · 1377 阅读 · 0 评论 -
[java][JsonUtils]基于Jackson库的JSON工具类
这是一个基于Jackson库的JSON工具类,主要用于将Java对象转换为JSON字符串,以及将JSON字符串解析为Java对象、列表、映射。原创 2025-03-07 17:08:49 · 1056 阅读 · 0 评论 -
[java][jdk]JDK各个版本的核心特性
对try-with-resources语句进行了增强,允许使用final或等效于final的变量,而无需在try-with-resources语句中声明一个新变量。通过JEP 285引入了旋转等待提示,提供了一种机制,通过标准化的方法向底层处理器传达线程处于自旋等待状态。通过JEP 254引入了Compact Strings,优化了字符串存储,减少了内存占用。通过JEP 264引入了平台日志API和服务,提供了一个统一的日志接口。提供了新的集合工厂方法,简化了集合的创建。提升了安装程序的用户体验和功能性。原创 2024-11-10 22:48:33 · 4977 阅读 · 0 评论 -
[java][JDK]JDK8新特性
当需要启动一个线程去完成任务时,通常会通过 Runnable 接口来定义任务内容,并使用 Thread 类来启动该线程。由于面向对象的语法要求,首先创建一个 Runnable 接口的匿名内部类对象来指定线程要执行的任务内容,再将其交给一个线程来启动。代码分析:对于 Runnable 的匿名内部类用法,可以分析出几点内容:Thread 类需要 Runnable 接口作为参数,其中的抽象 run 方法是用来指定线程任务内容的核心为了指定 run 的方法体,不得不需要 Runnable 接口的实现类。原创 2024-11-09 23:50:28 · 4226 阅读 · 0 评论 -
[java][高级]Cron表达式详解
天是周二,那么就在触发器这天触发。注意一点:这个用法只会在当前月计算值,不会越过当前月。表达式实际上是由七个子表达式组成,至少由六个子表达式组成。当两个子表达式其中一个被指定了值以后,为了避免冲突,需要将另外一个的值设为。来指定这个月的最后一个工作日,即最后一个星期五。参数时,不要指定列表或者范围,这样会出现问题。如果指定的日期不存在,触发器就不会触发。它在两个子表达式中的含义是不同的。前有具体内容,它就有其他的含义了。指明一天,不能是一个范围或列表。表示这个月的最后一个星期五。:代表所有可能的值。原创 2024-11-09 22:43:05 · 4779 阅读 · 0 评论 -
[java][高级]MyBatisPlus
MyBatisPlus环境搭建的步骤?BaseMapper@Mapper通过入门案例制作,MyBatisPlus的优点有哪些?MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率https有什么简单的办法可以自动生成实体类的GET、SET方法?Lombok,一个Java类库,提供了一组注解,简化POJO实体类开发。原创 2024-11-03 21:12:09 · 4867 阅读 · 0 评论 -
[java][高级]Maven
--定义具体的环境:生产环境-->--定义环境对应的唯一名称-->--定义环境中专用的属性值-->--设置默认启动-->--定义具体的环境:开发环境-->……原创 2024-11-03 21:05:10 · 5085 阅读 · 0 评论 -
[java][高级]SpringBoot
SpringMVC的HelloWord程序大家还记得吗?SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程原生开发SpringMVC程序过程学习了SpringBoot入门案例之后,感觉对比SpringMVC哪一个更加方便简洁?SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程Spring程序缺点配置繁琐依赖设置繁琐SpringBoot程序优点自动配置。原创 2024-11-03 20:59:36 · 5141 阅读 · 0 评论 -
[java][框架]springMVC(2/2)
请描述“SSM整合流程”中各个配置类的作用?创建工程SSM整合SpringSpringConfigMyBatisMybatisConfigJdbcConfigjdbc.propertiesSpringMVCServletConfigSpringMvcConfig功能模块表与实体类dao(接口+自动代理)service(接口+实现类)业务层接口测试(整合JUnit)controller表现层接口测试(PostMan)<dependencies> <depende原创 2024-11-03 20:51:18 · 4732 阅读 · 0 评论 -
[java][框架]springMVC(1/2)
SpringMVC框架有什么优点?SpringMVC是一种基于Java实现MVC模型的轻量级Web框架优点使用简单,开发便捷(相比于Servlet)灵活性强//定义表现层控制器bean//设置映射路径为/save,即外部访问路径//设置当前操作返回结果为指定json数据(本质上是一个字符串信息)==注意事项:==对于SpringMVC而言,Controller方法返回值默认表示要跳转的页面,没有对应的页面就会报错。原创 2024-11-03 20:47:13 · 4901 阅读 · 0 评论 -
[java][框架]spring(3/3)
问题1:AOP的作用是什么?问题2:连接点和切入点有什么区别,二者谁的范围大?问题3:请描述什么是切面?AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构OOP(Object Oriented Programming)面向对象编程作用:在不惊动原始设计的基础上为其进行功能增强。简单的说就是在不改变方法源代码的基础上对方法进行功能增强。Spring理念:无入侵式/无侵入式。原创 2024-11-02 17:31:05 · 5005 阅读 · 0 评论 -
[java][框架]spring(2/3)
问题:按照Bean名称获取Bean有什么弊端,按照Bean类型获取Bean有什么弊端?BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能ApplicationContext接口常用初始化类。原创 2024-11-02 17:01:33 · 4774 阅读 · 0 评论 -
[java][框架]spring(1/3)
我们为什么要学习Spring框架?生命周期:从创建到消亡的完整过程bean生命周期:bean从创建到销毁的整体过程bean生命周期控制:在bean创建后到销毁前做一些事情。原创 2024-11-02 16:49:38 · 4806 阅读 · 0 评论 -
[java][高级]Filter&Listener&Ajax
Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。Servlet 我们之前都已经学习过了,Filter和Listener 我们今天都会进行学习。过滤器可以把对资源的请求==拦截==下来,从而实现一些特殊的功能。如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等)而在访问到这些资源之前可以使过滤器拦截来下,也就是说在访问资源之前会先经过 Filter,如下图拦截器拦截到后可以做什么功能呢?原创 2024-10-31 23:38:32 · 4934 阅读 · 0 评论 -
[Java][高级]网页会话技术
对于会话跟踪这四个词,我们需要拆开来进行解释,首先要理解什么是会话,然后再去理解什么是会话跟踪会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含==多次==请求和响应。从浏览器发出请求到服务端响应数据给前端之后,一次会话(在浏览器和服务器之间)就被建立了会话被建立后,如果浏览器或服务端都没有被关闭,则会话就会持续建立着浏览器和服务器就可以继续使用该会话进行请求发送和响应,上述的整个过程就被称之为==会话==。原创 2024-10-31 23:27:23 · 5126 阅读 · 0 评论 -
[java][基础]JSP
<head></head><body><%%></body>原创 2024-10-31 23:14:08 · 5298 阅读 · 0 评论 -
[java][高级]Request&Response
=Request是请求对象,Response是响应对象。==这两个对象在我们使用Servlet的时候有看到:此时,我们就需要思考一个问题request和response这两个参数的作用是什么?request:==获取==请求数据浏览器会发送HTTP请求到后台服务器[Tomcat]HTTP的请求中会包含很多请求数据[请求行+请求头+请求体]后台服务器[Tomcat]会对HTTP请求中的数据进行解析并把解析结果存入到一个对象中。原创 2024-10-31 23:06:23 · 5003 阅读 · 0 评论 -
[java][基础]HTTP&Tomcat&Servlet
=Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。== 在我们日常的生活中,经常会使用浏览器去访问百度京东传智官网等这些网站,这些网站统称为Web网站。如下就是通过浏览器访问传智官网的界面:我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义==JavaWeb就是用Java技术来解决相关web互联网领域的技术栈。== 等学习完JavaWeb之后,同学们就可以使用Java语言开发我们上述所说的网站。而国内很多大型网站公司也是首选Java语言来解决web互联网相关的问题。原创 2024-10-31 22:28:11 · 4952 阅读 · 0 评论 -
[java][高级]Mybatis
在mapper接口点击红色头绳的小鸟图标会自动跳转到对应的映射配置文件,在映射配置文件中点击蓝色头绳的小鸟图标会自动跳转到对应的mapper接口。可以看出报错了,因为映射配置文件是xml类型的问题,而 > < 等这些字符在xml中有特殊含义,所以此时我们需要将这些符号进行转义,可以使用以下两种方式进行转义。而上面的SQL语句中的字段列表书写麻烦,如果表中还有更多的字段,同时其他的功能也需要查询这些字段时就显得我们的代码不够精炼。以后我们只会写上面的第3步的代码,其他的都不需要我们来完成。原创 2024-10-26 21:41:31 · 4420 阅读 · 0 评论 -
[java][基础]单元测试
JUnit是一个 Java 编程语言的单元测试工具。JUnit 是一个非常重要的测试工具。原创 2024-10-13 22:35:55 · 4633 阅读 · 0 评论 -
[java][基础]注解
概述对我们的程序进行标注和解释注解和注释的区别注释: 给程序员看的注解: 给编译器看的使用注解进行配置配置的优势代码更加简洁,方便格式public @interface 注解名称 { public 属性类型 属性名() default 默认值;属性类型基本数据类型StringClass注解枚举以上类型的一维数组代码演示//定义一个基本类型的属性//定义一个String类型的属性//定义一个Class类型的属性//定义一个注解类型的属性。原创 2024-10-13 22:35:13 · 5212 阅读 · 0 评论 -
[java][基础]XML
万维网联盟(W3C)万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。建立者: Tim Berners-Lee (蒂姆·伯纳斯·李)。是Web技术领域最具权威和影响力的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南,如广为业界采用的超文本标记语言HTML(标准通用标记语言下的一个应用)、可扩展标记语言XML(标准通用标记语言下的一个子集)原创 2024-10-13 22:32:54 · 5343 阅读 · 0 评论 -
[java][高级]反射
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。原创 2024-10-13 22:28:14 · 5558 阅读 · 0 评论 -
[java][基础]类加载器
如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式。负责为类的类变量(被static修饰的变量)分配内存,并设置默认初始化值。根据程序员通过程序制定的主观计划去初始化类变量和其他资源。(本类中如果用到了其他类,此时就需要找到对应的类)原创 2024-10-13 22:26:29 · 5168 阅读 · 0 评论 -
[java][基础]枚举
为了间接的表示一些固定的值,Java就给我们提供了枚举 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内格式枚举项1,枚举项2,枚举项3;注意: 定义枚举类要用关键字enum示例代码// 定义一个枚举类,用来表示春,夏,秋,冬这四个固定值。原创 2024-10-13 22:16:04 · 5008 阅读 · 0 评论 -
[java][基础]网络编程入门
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。原创 2024-10-13 21:56:24 · 4852 阅读 · 0 评论 -
[java][基础]多线程
概述生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产者消费者问题,实际上主要是包含了两类线程: 一类是生产者线程用于生产数据 一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为消费者只需要从共享数据区中去获取数据,并不需要关心生产者的行为Object类的等待和唤醒方法方法名说明。原创 2024-10-13 21:46:06 · 5048 阅读 · 0 评论 -
[java][基础]IO流(二)
它使用一至四个字节为每个字符编码。BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。BufferedReader:从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取,可以指定缓冲区大小,或者可以使用默认大小。用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢? 是从字符流到字节流的桥梁,使用指定的编码将写入的字符编码为字节。原创 2024-10-09 22:23:26 · 5408 阅读 · 0 评论 -
[java][基础]IO流(一)
IO流介绍IO:输入/输出(Input/Output)流:是一种抽象概念,是对数据传输的总称.也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的.常见的应用: 文件复制;文件上传;文件下载IO流的分类按照数据的流向输入流:读数据输出流:写数据按照数据类型来分字节流字节输入流字节输出流字符流字符输入流字符输出流IO流的使用场景如果操作的是纯文本文件,优先使用字符流。原创 2024-10-09 22:22:17 · 5482 阅读 · 0 评论 -
[Java][基础]Stream流和File文件
File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的File类的构造方法方法名说明通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例从父路径名字符串和子路径名字符串创建新的 File实例从父抽象路径名和子路径名字符串创建新的 File实例示例代码。原创 2024-10-09 22:05:10 · 4991 阅读 · 0 评论 -
[java][基础]集合(二)
底层数据结构是哈希表存取无序不可以存储重复元素没有索引,不能使用普通for循环遍历Map集合概述interface Map K:键的类型;V:值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复Map集合的基本使用//创建集合对象//V put(K key, V value) 将指定的值与该映射中的指定键相关联map.put("itheima001","林青霞");map.put("itheima002","张曼玉");原创 2024-10-09 21:56:34 · 4973 阅读 · 0 评论 -
[java][基础]集合(一)
Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayListCollection集合常用方法方法名说明添加元素从集合中移除指定的元素根据条件进行移除清空集合中的元素判断集合中是否存在指定的元素判断集合是否为空int size()集合的长度,也就是集合中元素的个数。原创 2024-10-03 23:59:15 · 5467 阅读 · 0 评论 -
[java][代码]时间日期类
秒杀开始时间是2020年11月11日 00:00:00,结束时间是2020年11月11日 00:10:00,用户小贾下单时间是2020年11月11日 00:03:47,用户小皮下单时间是2020年11月11日 00:10:11,判断用户有没有成功参与秒杀活动。 SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。SimpleDateFormat类的常用方法。SimpleDateFormat类构造方法。SimpleDateFormat类概述。1秒 = 1000毫秒。原创 2024-10-03 23:56:39 · 5073 阅读 · 0 评论 -
[java][基础]多态
什么是多态 同一个对象,在不同时刻表现出来的不同形态多态的前提要有继承或实现关系要有方法的重写要有父类引用指向子类对象代码演示System.out.println("吃饭");@OverrideSystem.out.println("猫吃鱼");/*多态的前提:1. 要有(继承 \ 实现)关系2. 要有方法重写3. 要有父类引用, 指向子类对象*/// 当前事物, 是一只猫// 当前事物, 是一只动物a.eat();原创 2024-10-02 22:08:17 · 5461 阅读 · 0 评论