![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java技术
文章平均质量分 68
主要包括Java基础知识,Spring,SpringMVC,Spring Boot,Spring Cloud,MyBatis,并发编程,Socket编程,多线程,JVM性能调优等技术
简学云资源平台
这个作者很懒,什么都没留下…
展开
-
Java实现按高度或宽度等比压缩图片尺寸
的Java方法,你需要先计算图片的原始宽高比,然后根据目标尺寸(宽度或高度)计算出等比缩放后的另一个维度。要实现一个能够按高度或宽度等比压缩图片并返回。原创 2024-06-30 16:13:49 · 188 阅读 · 0 评论 -
Java18新特性总结
Java 18作为Java编程语言的一个重要更新,引入了一系列新特性和改进,旨在提高开发者的生产力和程序的性能。原创 2024-06-10 19:43:21 · 1230 阅读 · 0 评论 -
利用Redis队列,如果需要处理大量的消息并且希望避免轮询的开销,使用BLPOP或BRPOP,Java代码实现
consumeMessage方法会阻塞地等待队列中的消息,直到有消息到来或者连接被关闭。当使用Redis来处理大量的消息并希望避免轮询的开销时,确实可以使用BLPOP或BRPOP命令。注意:在实际应用中,你可能需要考虑使用连接池来管理Redis连接,以避免频繁地创建和关闭连接。// result的第一个元素是被弹出消息的key(在这里是队列名),第二个元素是消息本身。// 关闭Jedis连接(通常在实际应用中会放在更合适的地方,如finally块或资源管理器中)// 如果没有消息,阻塞直到有消息到来。原创 2024-06-08 10:33:19 · 341 阅读 · 0 评论 -
利用Redis的队列模式实现消息的发送和订阅,适合分布式场景,Java实现代码
要使用Redis的队列模式实现消息的消费,我们可以使用Jedis库(Java的Redis客户端)来与Redis进行交互。以下是一个简单的Java实现,展示了如何使用Redis的List数据结构(通常使用LPUSH和BRPOP命令)来实现消息的发布和消费。但是,如果你的系统需要更复杂的路由和消息确认机制,那么使用分布式任务队列系统可能更合适。使用更高级的分布式任务队列系统(如Celery、RabbitMQ、Kafka等),这些系统通常提供了更复杂的路由和消息确认机制,可以确保消息只被一台机器消费。原创 2024-06-08 10:14:50 · 786 阅读 · 0 评论 -
类加载到内存分析
即使在可达性分析法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑阶段”,要真正宣告一个对象死亡,至少要经历两次标记过程;方法区主要回收的是无用的类,那么如何判断一个类是无用的类的呢?因此出于性能的考虑,读写频繁的场合可能会考虑使用直接内存。被判定为需要执行的对象将会被放在一个队列中进行第二次标记,除非这个对象与引用链上的任何一个对象建立关联,否则就会被真的回收。虚拟机可以对满足上述 3 个条件的无用类进行回收,这里说的仅仅是“可以”,而并不是和对象一样不使用了就会必然被回收。原创 2024-06-06 11:21:45 · 246 阅读 · 0 评论 -
【Java基础-注解】Java中注解的分类有哪些,如何自定义一个注解,并使用举例
自定义一个注解需要使用@interface关键字,而不是interface。// 自定义一个注解@Retention(RetentionPolicy.RUNTIME) // 注解的生命周期@Target(ElementType.METHOD) // 注解可以应用的Java元素类型// 定义注解的元素// 定义一个名为value的元素,类型为String,默认值为""// 定义一个名为order的元素,类型为int,默认值为0使用注解的举例。原创 2024-06-02 21:56:13 · 288 阅读 · 0 评论 -
【架构设计】Java如何利用AOP实现幂等操作,防止客户端重复操作
首先,定义一个自定义注解,用于标记需要进行幂等控制的方法。原创 2024-06-02 21:46:54 · 1154 阅读 · 0 评论 -
Java后端代码框架包设计-什么是Domain,BO,VO?我们该如何区分和定义?
它可能包含与界面展示相关的数据,比如下拉列表的选项、需要显示在页面上的信息等。可能需要进行一些简单的数据校验,比如非空校验、格式校验等,以确保传递给业务逻辑层的数据是有效的。)不完全一致,它可能只包含实体类的一部分字段,或者包含一些与业务逻辑无关但界面需要展示的数据。可能只包含实体类的一部分字段,或者包含一些额外的、与业务逻辑无关但界面需要展示的数据。通常包含实体类的全部字段,并且可能会根据业务逻辑的需要添加一些额外的字段或属性。通常包含更复杂的业务逻辑校验,比如数据的唯一性校验、关联数据的校验等。原创 2024-06-01 23:05:07 · 1158 阅读 · 0 评论 -
Session+Redis,Token+Redis,JWT+Redis,用户身份认证,到底选择哪种更合适?
在选择用户身份认证方案时,需要根据具体的应用场景和需求进行评估和选择。如果应用需要长时间保持用户登录状态,且对性能要求不是特别高,可以选择Session+Redis方案。如果应用需要频繁验证用户身份,且对性能要求较高,可以选择Token+Redis方案。如果应用是分布式系统或微服务架构,需要实现无状态的身份验证和授权,可以选择JWT+Redis方案。需要注意的是,以上方案并不是孤立的,可以根据实际情况进行组合和优化,以满足特定的业务需求。同时,无论选择哪种方案,都需要确保系统的安全性和稳定性。原创 2024-05-31 21:13:06 · 939 阅读 · 0 评论 -
利用Java多线程技术实现一次性处理多张图片的上传保存
在Java中,使用多线程技术来处理多个图片的上传保存是一个常见的做法,这样可以提高程序的效率,允许同时处理多个任务。以下是一个基本的步骤指南和示例代码,展示如何使用Java的ExecutorService和Callable(或Runnable,但Callable可以返回结果)来实现这一功能。提交任务到线程池:使用ExecutorService的submit方法提交你的任务。关闭线程池:在所有任务都完成后,使用ExecutorService.shutdown()方法来关闭线程池。// 提交任务到线程池。原创 2024-05-30 06:46:34 · 411 阅读 · 0 评论 -
spring session+redis存储session,实现用户登录功能,并在拦截器里面判断用户session是否过期,过期就跳转到登录页面
在Spring应用中,使用Redis存储Session是一种常见的方式,可以实现分布式环境下的Session管理。:在Spring配置文件中配置Redis连接信息,以便Spring Session能够正确地将Session存储在Redis中。:在你的项目中添加Spring Session和Spring Data Redis的依赖。:首先,确保你的项目中包含Spring Session和Spring Data Redis的相关依赖。:将拦截器配置到Spring MVC中,以便它能够拦截请求并执行相关逻辑。原创 2024-05-29 22:23:44 · 2274 阅读 · 7 评论 -
Java 8的Stream API的使用说明,轻松实现集合的各种转换
终止操作:产生一个结果或副作用,如匹配与查找(anyMatch、allMatch、noneMatch、findFirst、findAny)、归约(reduce)、收集(collect)等。中间操作:返回一个新的Stream,如filter、map、sorted等。中间操作:对流中的元素进行转换或过滤等操作,如筛选与切片(filter)、映射(map)、排序(sorted)等。终止操作:触发Stream管道的执行,并产生一个结果或副作用,如collect、forEach、reduce等。原创 2024-05-27 23:25:00 · 355 阅读 · 0 评论 -
Java中集合中对象的某一个属性转为set集合
在Java中,如果你想要将一个集合(比如List<YourObject>)中对象的某个属性(假设为String类型)提取出来并放入一个Set<String>集合中,以确保去重,你可以通过Java 8的Stream API来轻松地完成这个任务。在这个示例中,我们使用了Stream的map方法来将Person对象转换为它们的name属性,然后使用Collectors.toSet()来收集这些name到一个Set中,自动去除了重复的元素。// 使用Stream API提取name属性并放入Set中。原创 2024-05-27 23:14:16 · 251 阅读 · 0 评论 -
java 获取文本内容信息图片
获取文本内容图片链接地址,并将图片保存到本地 public static String saveContentFile( String contentInfo ) { InputStream fis = null; FileOutputStream fos = null; String oldFileUrl = null;//原文件名称原创 2012-03-30 16:27:27 · 2623 阅读 · 0 评论 -
java中将一个obj对象转化为json对象
commonVO为一个自定义的obj对象。JSONObject.fromObject( commonVO ).toString()不建议采用:JsonUtil.getJson( commonVO )来转化为json对象,如果对象内容为空,则会将空转化为null,在页面就显示null;引用的类import net.sf.json.JSONObject;原创 2012-03-14 11:56:21 · 1253 阅读 · 0 评论 -
Java里的重写和重载说明
重写方法的规则: 1.参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 2.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载. 3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private) 4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更翻译 2012-01-31 10:11:45 · 248 阅读 · 0 评论