- 博客(13)
- 资源 (12)
- 收藏
- 关注
原创 java垃圾回收器
在实际应用中,选择合适的垃圾回收策略需要根据应用的具体需求来决定。例如,对于一个金融交易系统,可能需要选择CMS或ZGC以减少停顿时间;而对于一个后台批处理系统,Parallel GC可能是更好的选择,因为它可以最大化吞吐量。通过理解每种算法的特点,可以更好地优化应用的性能。Java的垃圾回收机制是自动管理内存的重要部分,它帮助开发者避免内存泄漏和手动内存管理的复杂性。Java中有几种主要的垃圾回收算法,每种都有其特定的应用场景和优缺点。文案由AI生成 仅供参考。
2025-05-29 17:46:32
314
原创 SpringBoot 和 SpringCloud 的区别是什么?
例如,在一个电商系统中,可以使用SpringBoot开发用户服务、订单服务和支付服务,然后通过SpringCloud的服务注册与发现(如Eureka)、配置中心(如Config Server)和断路器(如Hystrix)来协调这些服务之间的交互,确保系统的高可用性和可扩展性。它提供了一系列的工具来快速实现服务发现、配置管理、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态管理等。是一个用于简化新Spring应用初始搭建以及开发过程的框架。
2025-05-29 17:37:50
398
原创 面试,谈一谈CAS机制
否则,返回false,表示修改失败,而这个过程是原子的,所以呢,CompareAndSwap的底层实现中,在多核。嗯,像AtomicInteger 这个类中,就用到了。CAS是Java中Unsafe类里面的方法,它的全称。方法doSomething0,这个方法的逻辑是,判断。这个过程不管是在什么层面上实现,都会存在原子性问题。CAS主要用在并发场景中,比较典型的使用场景有两个。但是,加同步锁,会带来性能上的损耗,所以,对于这类。有一个成员变量state,默认值是0,定义了一个。
2025-05-29 17:27:15
310
原创 多线程情况下,怎么解决共用了同一个对象的问题,分布式系统中又是怎么解决的
在这种情况下,可以使用分布式锁服务,如Zookeeper或Redis,来确保只有一个节点可以更新缓存。然而,完全的一致性可能会牺牲系统的可用性和性能,因此在实际应用中,我们常常采用最终一致性模型,通过补偿事务(如Saga模式)来确保业务逻辑的正确性。例如,在一个电商系统中,订单创建和库存扣减可以分别在不同的服务中完成,通过消息队列和事件总线来异步处理,确保最终的一致性。此外,对于读多写少的场景,读写锁(Read-Write Lock)可以提高性能,允许多个读线程同时访问,但写线程需要独占锁。
2025-05-29 17:09:36
499
原创 锁?锁的自旋、公平锁非公平锁,CAS
自旋锁是一种忙等待锁,当线程尝试获取锁但锁被其他线程持有时,该线程不会进入阻塞状态,而是不断循环检查锁是否可用。锁有多种类型,包括自旋锁、公平锁和非公平锁,以及CAS(Compare and Swap)操作,这些都是面试中常见的考察点。公平锁:按照线程请求锁的顺序来获取锁,确保每个线程都能公平地获得锁。非公平锁:线程在获取锁时,可能会直接尝试获取,而不是排队等待,提高吞吐量但可能导致饥饿。描述自旋锁的工作原理,即在锁被占用时,线程不会进入阻塞状态,而是不断循环尝试获取锁。分析公平锁与非公平锁。
2025-05-29 17:02:01
512
原创 JDK 中常用的包有哪些?
用于输入输出操作,包括文件读写、网络通信等。在高并发场景下,这些类可以帮助开发者更好地管理线程和资源。几乎所有的Java程序都会自动导入这个包,无需显式声明。在开发需要与数据库交互的应用时,这个包是必不可少的。:非阻塞I/O操作,适用于高性能网络编程。在开发Web服务或客户端时,这些类非常有用。例如,在处理大量数据时,常用。:用于数据库操作,提供了JDBC接口,如。:包含Java语言的核心类,如。可以实现高效的异步I/O处理。:提供了网络编程的支持,如。:包含并发编程的工具类,如。:提供了集合框架(如。
2025-05-29 16:41:56
212
原创 springcloud有哪些组件
在项目中,我们利用Eureka来管理各个微服务的实例,确保服务之间的调用能够动态地找到目标服务。在项目中,我们结合Eureka使用Ribbon,实现了服务的智能路由。在项目中,我们使用了Hystrix来保护关键服务,确保即使某个服务不可用,也不会影响整体系统的稳定性。在项目中,我们使用Config Server来管理不同环境的配置,确保配置的一致性和灵活性。同时,我们也遇到了一些挑战,比如配置中心的高可用性和服务调用的性能优化,通过引入Redis缓存和异步处理机制,有效解决了这些问题。
2025-05-29 16:36:22
405
原创 mysql索引失效
2、当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效。3、组合索引,不是使用第一列索引,索引失效。4、数据类型出现隐式转化。8、当全表扫描速度比索引速度快时,mysql会使用全表扫描,此时索引失效。当查询条件中涉及的列没有索引,或者索引选择性不高时,MySQL可能会选择全表扫描而不是使用索引。当查询条件中的数据类型与索引列的数据类型不匹配时,会发生隐式类型转换,导致索引失效。5、,在索引列上使用 IS NULL 或 IS NOT NULL操作,索引是不索引空值的。
2025-05-29 16:19:47
298
原创 springboot有哪些优点
这个要从spring 发展历史谈起,从1代到2.5代为配置文件主流,有少量注解使用。所以很明显,springboot 目的就是简化繁琐配置,为了更加便于开发,spring boot 提前配置了很多组建,但是默认是不启用的,而是需要引入starter 激活一下,而这种自动选择最大功劳来自于@Conditional注解,由此就实现了自动装配。简言之,springboot是一个基于注解开发spring 框架,目的是简化原来spring 开发,快速构建,同时也是后续springcloud 的基础。
2025-05-29 16:00:00
130
原创 解决 POST 和 GET 请求中文乱码问题有哪几种方法?
解决POST请求乱码:我们可以在web.xml里边配置一个CharacterEncodingFilter过滤器。解决get请求的乱码有两种方法:①,修改tomcat配置文件添加编码与工程编码一致;②,另一种方法对参数进行重新编码String userName =String(Request.getParameter("userName").getBytes("ISO8859-1"),"utf-8");
2025-05-29 15:18:19
240
原创 JVM 调优的常用命令和参数是什么?
2、jmap:用来生成dump文件和查看堆相关的各类信息的命令。5、jinfo:查看jvm参数和动态修改部分jvm参数。7、- XX:MaxPermSize:设置永久代最大值。6、-XX:PermSize:设置永久代初始值。4、jstack:查看jvm线程快照的命令。3、jstat:查看jvm运行时的状态信。1、jps:查看进程及其相关去信息。3、-Xmn:新生代的内存空间大小。5、-Xss:每个线程的堆栈大小。1、-Xms:初始化堆大小。2、-Xmx:最大堆大小。
2025-05-28 22:28:52
127
经典SQL语句大全_主外键_约束.doc
2011-06-22
google浏览器.rargoogle浏览器.rargoogle浏览器.rar
2010-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅