Java
文章平均质量分 85
苹果苹果开花吧
努力做头发最多的程序猿
经验分享/避坑指南/岗位咨询/专业知识
因为自己淋过雨,所以想给别人撑把伞~
展开
-
掌握模型性能:使用 GridSearchCV 调整超参数
Hyper参数是在学习机的学习过程之前设置的参数,在模型训练的学习过程中不会直接从数据中学习。与模型参数不同,这些参数不是从数据中学习的,超参数是由数据科学家或机器学习专家根据他们的知识和直觉确定的。正确选择超参数可以提高机器学习模型的性能。通过调整超参数,您可以确定可提高准确性、精度或其他性能度量的区域,从而提高速度和建模精度。调优良好的模型更加健壮和稳定,因为它们对输入的微小变化和训练集的微小变化不太敏感。原创 2023-07-25 11:44:04 · 294 阅读 · 0 评论 -
2023年金三银四Java面试宝典,横扫春招+社招+秋招
早前给大家整理了今年来最经典的面试真题100道,每道题目都有详细的解析,收集了JAVA基础、微服务、JVM,Redis、设计模式,Mybatis、Spring、Spring Boot、Spring IOC、 Spring MVCRabbitMQ、MySQL数据库、Java并发编程,等专题的经典面试真题,和详细解析。原创 2023-07-25 10:48:10 · 416 阅读 · 0 评论 -
拆解雪花算法生成规则 | 京东物流技术团队
雪花算法(Snowflake)是一种生成分布式全局唯一ID的算法,生成的ID称为Snowflake IDs或snowflakes。这种算法由Twitter创建,并用于推文的ID。目前仓储平台生成ID是用的雪花算法修改后的版本。雪花算法几个特性。原创 2023-07-25 10:39:23 · 120 阅读 · 0 评论 -
看了我项目中的商品功能设计,同事也开始悄悄模仿了...
这里还是简单介绍下mall项目吧,mall项目是一套基于 SpringBoot + Vue + uni-app 的电商系统,目前在Github已有60K的Star,包括前台商城项目和后台管理系统,能支持完整的订单流程!涵盖商品、订单、购物车、权限、优惠券、会员等功能,功能很强大!原创 2023-07-25 10:17:02 · 42 阅读 · 0 评论 -
如何设计一套可控的定时任务系统
上面的代码仅仅是关于asynq的简单的一个介绍。在生产环境下,如何使用呢,一般情况下,我们会提供一个provider.provider来提供配置的源,源可以是文件,也可以是Mysql还可以是其他存储源,最重要的是需要实现对应的方法。现在的系统设计中,有许多规律性的功能特征需要用到定时任务来完成,比如每分钟需要执行一次清理数据的任务,每个月的第一天,需要处理一项什么任务等等这种,还有一种规律性的任务不是以时间间隔为第一维度切割的,而是如果任务执行完成,不管成功与否,都间隔一段时间执行一次任务等等。原创 2023-07-25 09:45:34 · 241 阅读 · 0 评论 -
HashMap如何确定key的存储位置
将传入的参数 key 调用自身的方法 hashCode() 得到哈希值 h。根据哈希值 h 调用扰动函数 hash() 计算 h ^ (h >>> 16) 得到扰动后的哈希值 hash。根据哈希值 hash 取模操作 hash & (n - 1) 从而确定 key 的存储位置。以上就是本篇文章的全部内容了。原创 2023-07-24 10:41:42 · 244 阅读 · 0 评论 -
Spring AOP切面编程实现原理
基于以上全部就是今天要讲解的Spring AOP相关知识点啦,AOP作为Spring框架的核心模块,在很多场景都有应用到,如Spring的事务控制就是通过aop实现的。采用横向抽取机制,取代了传统纵向继承体系重复性代码,将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码,从而做到保证开发者在不修改源代码。原创 2023-07-24 10:27:29 · 134 阅读 · 0 评论 -
你的Spring应用启动很慢?不妨试试这个工具!
从项目名称中就大概能猜到,这是一个分析Spring应用启动过程的工具。Spring Startup Analyzer通过采集Spring应用启动过程的数据,进而生成一个交互式的分析报告,帮助用户发现Spring应用启动慢的位置。同时,Spring Startup Analyzer还提供了Spring Bean异步初始化的工具,来帮助开发者加快Spring应用的启动时间。下面一起来看看其提供的强大功能。原创 2023-07-24 09:59:10 · 72 阅读 · 0 评论 -
架构演变:微服务架构的四种常见模型
微服务的几种模型见证了微服务架构的演进历史,每种架构都有其使用场景和一定的时代意义;四种架构都是分离关注点,将变与不变进行分离;四种架构模型表现形式不一样,但设计思想都体现了微服务架构高内聚低耦合原则,正所谓神同行异;四种架构的核心层都是领域层,它保持领域模型和业务逻辑的稳定,对外提供稳定的细粒度的领域服务;原创 2023-07-24 09:46:39 · 168 阅读 · 0 评论 -
金九银十!15K-35K,我直接吃透了这篇Java快速面试指南,决战秋招!
最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面试只不过是一种验证而已(注意,是验证,而不是走过场),除非你面试过程中犯错误,或者你不想来,否则,那个offer一定是可以拿下的。那些拿下offer的人,基本上都有这么一些特征1. 学校不错,一般都是985,211,如果学校一般,那么你下面的2和3满足的话,问题也不大。原创 2023-07-24 09:42:43 · 77 阅读 · 0 评论 -
单行数据查询之谜:为什么慢?细解查询长时间不返回和查询慢
单行数据查询速度缓慢,你有没有想过其中的原因是什么?本文深入分析了单行数据查询为何会变慢的两大类原因:查询长时间不返回和查询慢。我们将揭开这个谜团,并探索其中的细致原因。首先来看一下这张思维导图,对本文内容有个直观的认识。接下来进入正文。一般情况下,如果我跟你说查询性能优化,你首先会想到一些复杂的语句,想到查询需要返回大量的数据。但有些情况下,“查一行”,也会执行得特别慢。原创 2023-07-24 09:19:24 · 108 阅读 · 0 评论 -
JAVA8新特性(Stream API,LocalDate,LocalDateTime)
【代码】JAVA8新特性(Stream API,LocalDate,LocalDateTime)原创 2023-07-22 11:31:19 · 137 阅读 · 0 评论 -
MySQL写缓冲Change Buffer原理解读
我们知道MySQL在查询的时候有一种预读机制, 为了提高同样数据的查询效率,会将磁盘中的数据加载到内存中,Buffer Pool(缓冲池)就承担了这么一个角色。如果每次写操作,数据库都直接更新磁盘中的数据,会很占磁盘IO,那么MySQL是怎么优化的呢?当用户执行SQL对非唯一索引进行更改时,如果索引对应的数据页不在缓存中时,InnoDB不会直接加载磁盘数据到缓存数据页中,而是缓存对这些更改操作(buffer changes)。原创 2023-07-22 10:42:08 · 36 阅读 · 0 评论 -
千呼万唤始出来:Java终于发布了“协程“--虚拟线程!
Virtual Thread将会在性能上带来的巨大提高,不过,目前业界80~90%的代码还跑在 Java 8上,等 JDK19投入实际生产环境,可能需要一个漫长的过程;虚拟线程高度复用了现有的 Thread线程的功能,方便现有方式平滑迁移到虚拟线程;虚拟线程是将 Thread作为载体线程,它并没有改变原来的线程模型;虚拟线程是 JVM调度的,而不是操作系统调度;使用虚拟线程可以显著提高程序吞吐量;原创 2023-07-22 10:00:36 · 310 阅读 · 0 评论 -
一文读懂ThreadLocal的原理及使用场景
本文主要讲解了ThreadLocal的作用及基本用法,以及ThreadLocal的实现原理和基础方法。线上环境中,ThreadLocal还有可能引起内存泄漏,这方面内容我们后续接着讲。原创 2023-07-22 09:29:50 · 98 阅读 · 0 评论 -
从源码上聊聊Redis-String、List的结构实现
本文的数据类型只讲底层结构和部分机制,不讲具体的使用,使用的话自行bing,但是会提一些应用场景。原创 2023-07-21 11:54:02 · 73 阅读 · 0 评论 -
如何理解redis的内存回收与内存淘汰策略?
我们知道,对于redis这样的内存型数据库而言,如何删除已过期的数据以及如何在内存满时回收内存是一项很重要的工作。原创 2023-07-21 11:06:16 · 30 阅读 · 0 评论 -
SpringBoot核心特性——ApplicationRunner && CommandLineRunner使用
如果想在SpringApplication启动后做一些操作,那么除了可以监听ApplicationReadyEvent事件外,还可以实现ApplicationRunner或CommandLineRunner接口.原创 2023-07-21 10:50:35 · 271 阅读 · 0 评论 -
MySQL 中的 count 你用对了吗?性能对比一览
在不同的存储引擎中,count(*)函数的实现方式不同。我们之前讨论过使用缓存系统来存储计数值存在的问题。现在,我来简洁地解释一下为什么将计数值存储在Redis中不能保证与MySQL表中的数据精确一致。Redis和MySQL是不同的存储系统,它们不支持分布式事务,因此无法提供精确一致的视图。这就是为什么将计数值存储在Redis中无法确保与MySQL表中数据的一致性。相比之下,将计数值存储在MySQL中可以解决一致性视图的问题。原创 2023-07-21 10:34:02 · 521 阅读 · 0 评论 -
Java岗秋招最全面试攻略,就看这份Java架构面试核心手册
有大佬整理了完整的Java完整的架构面试核心知识体系。按照这样的一个脉络,我觉得能够掌握这里面的绝大部分内容,并且有过相应的一些实践,那么可以去面试自己心仪的工作了。这些这份笔记总结都是作者近几年结合牛客大家的面经分享总结和整理出来的,非常实用,对于学习Java后端的朋友来说应该是最全面最完整的面试文档。先给大家展示一个完整的目录:头条篇幅限制,所以小编下面给大家展示部分内容,完整版有需要的小伙伴可以见文末。原创 2023-07-21 10:08:33 · 108 阅读 · 0 评论 -
浅析本地缓存技术-Guava Cache | 京东物流技术团队
本文简要叙述了guava cache的应用场景以及简单的使用方式,通过源码对于guava cache的存储原理以及简单的读写方法进行了介绍。相信通过阅读本文,能够对于常见的guava cache有一个大致的认知。原创 2023-07-20 11:39:26 · 79 阅读 · 0 评论 -
2023年金九银十最新版Java面试必背八股文详解(含答案)
为大家分享的这份Java八股文总分为14个技术专题小编在社区里看见不少小伙伴都在背Java八股文,为此在这里统一的做一次总结归类,也算是给粉丝们划重点了。原创 2023-07-20 11:32:47 · 3775 阅读 · 5 评论 -
堪称全网最详细的Java八股面试文,秋招面试必备(附答案)
老规矩,在代码实践之前,先对基础知识做一个普及。1、面向对象中的多态(Polymorphism)是指一个对象可以具有多种不同的形态或表现方式。简单来说,就是同一个类型的对象,在不同的上下文中表现出不同的行为。多态性是面向对象的三大特性之一(封装、继承、多态)。2、在多态中,父类的引用可以指向子类的对象,通过父类的引用调用子类的方法。这样可以实现代码的灵活性和扩展性,可以根据具体的对象类型调用相应的方法,无需关心对象的具体类型。原创 2023-07-20 10:57:47 · 147 阅读 · 0 评论 -
Java程序员必须要会的124道面试题(含答案)
Java程序员必备面经,掌握谈薪酬至少高3000!原创 2023-07-20 10:53:58 · 6318 阅读 · 1 评论 -
数据迁移卷不动了?Squids DBMotion新增多种数据库迁移能力
本次版本更新,DBMotion新增了三种数据库迁移同步的场景。目前,DBMotion已经支持8种不同的数据库迁移同步场景(5款同构数据库和3款异构数据库)原创 2023-07-20 10:37:48 · 56 阅读 · 0 评论 -
整理多家公司常见Java开发岗面试题350道(附答案)
最近收到很多小伙伴需要面试干货资料,看来大家都在为即将到来的秋招做准备。是的,想要得到一份好的工作,还是要有所准备的。今天,我整理了一份多家大厂常见的Java开发岗面试题350道,免费分享给大家。希望看过文章的朋友也能顺手点个在看或转发一下,毕竟整理不易,给个支持会让我更开心的,哈哈好了,废话不多说,说下我今天整理的这份面试干货呗!原创 2023-07-20 10:26:22 · 48 阅读 · 0 评论 -
MySQL玩转指南:探秘Server层组件及权限校验实践
本文将带你揭开MySQL Server层的神秘面纱,逐一剖析连接器、查询缓存、分析器、优化器、执行器等关键组件的功能和作用。同时,还将重点介绍这些组件在权限校验方面的精彩表现。原创 2023-07-20 10:10:02 · 155 阅读 · 0 评论 -
208道最常见的Java面试题已整理好(面试必备)
适宜阅读人群需要面试的初/中/高级 java 程序员想要查漏补缺的人想要不断完善和扩充自己 java 技术栈的人java 面试官原创 2023-07-20 10:04:47 · 321 阅读 · 1 评论 -
操作日志数据治理实战
这是 LeetCode 上的,难度为。Tag : 「模拟」、「队列」、「排序」、「构造」牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。返回能以递增顺序显示卡牌的牌组顺序。答案中的第一张牌被认为处于牌堆顶部。原创 2023-07-20 09:16:59 · 38 阅读 · 0 评论 -
MacBook Java开发环境搭建记录
以上便是本次在MacBook上对Java环境变量的搭建,至于ide我使用的是Jetbrans Idea。后续若有安装其他Java环境将在本文后进行追加,如Redis、Docker、mysql等。原创 2023-07-19 10:21:27 · 44 阅读 · 0 评论 -
Java全网最全面试手册(性能优化+微服务架构+并发编程+开源框架)
Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生 命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。原创 2023-07-19 10:06:43 · 70 阅读 · 0 评论 -
CountDownLatch原理深度解析
在高并发编程中,AbstractQueuedSynchronizer(简称AQS)抽象的队列同步器是我们必须掌握的,AQS底层提供了二种锁模式接下来我们通过CountDownLatch底层实现原理来了解AQS共享锁模式的实现原理。原创 2023-07-19 09:36:34 · 48 阅读 · 0 评论 -
Docker容器编排工具
Docker Swarm提供了一种简单易用的方式来管理Docker容器,可以轻松地实现容器的自动化部署、扩展和管理。本文将介绍两个最常用的Docker容器编排工具:Kubernetes和Docker Swarm,并探讨如何使用它们来提高应用程序的可靠性和可扩展性。通过使用容器编排工具、持久化存储、自动化部署、监控工具、负载均衡等方法,可以有效地提高应用程序的可靠性和可扩展性,并为企业带来更高的效益。通过使用负载均衡工具,可以将流量分配到多个容器中,并提高应用程序的可靠性和可扩展性。一、使用容器编排工具。原创 2023-07-18 11:15:36 · 229 阅读 · 0 评论 -
万字梳理,带你拿下 Java 大厂offer!
Unicode 统一了所有字符的编码,是一个 Character Set,也就是字符集,字符集只是给所有的字符一个唯一编号,但是却没有规定如何存储,不同的字符其存储空间不一样,有的需要一个字节就能存储,有的则需要2、3、4个字节。String 类是一种对象,它是独立于 Java 基本数据类型而存在的,String 你可以把它理解为字符串的集合,String 被设计为 final 的,表示 String 对象一经创建后,它的值就不能再被修改,任何对 String 值进行修改的方法就是重新创建一个字符串。原创 2023-07-18 11:12:09 · 54 阅读 · 0 评论 -
一道经典面试题:BeanFactory 和 FactoryBean 有何区别?
这也是 Spring 面试时一道经典的面试问题,今天我们来聊一聊这个话题。区别在于,BeanFactory 是 Spring 框架的核心接口,用于管理和提供 Bean 实例,而 FactoryBean 是一个特殊的 Bean,用于创建和管理其他 Bean 的实例。FactoryBean 在 Bean 的创建过程中提供更多的自定义能力,允许进行额外的逻辑处理。可能有的小伙伴看的还不是很清楚,我们再来详细看下。原创 2023-07-18 10:58:39 · 84 阅读 · 0 评论 -
史上最全Java面试题(带全部答案)2023年最新版
今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次。对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦。在跳槽季来临之前,特地做这个系列的文章,一方面帮助自己巩固下基础,另一方面也希望帮助想要换工作的朋友。原创 2023-07-18 10:50:27 · 13803 阅读 · 0 评论 -
Alibaba的这份528页2023最新版Java工程师进阶知识全扫盲(PDF版)真的鲨疯了!
今天给大家分享一份由阿里巴巴内部大佬分享给我的《Java工程师进阶知识全扫盲(PDF版)》就是来帮助大家逃离苦海的!原创 2023-07-18 10:33:54 · 75 阅读 · 0 评论 -
1000道 Java面试题及答案整理(2023最新版)
整理了 2023年最新、最全的 Java 面试题,题目涉及 Java 基础、集合、多线程、IO、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…...原创 2023-07-18 10:15:31 · 1564 阅读 · 19 评论 -
2023Java面试题大全(整理版)1000+面试题附答案详解,全网最全面详细,看完offer稳了!
对于Java后端的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer, 也已经帮助了很多的Java学习者,希望也能帮助到你。进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、原创 2023-07-18 09:52:02 · 4792 阅读 · 58 评论 -
InnoDB的Buffer Pool是如何管理数据页的?
DBMS 中 MVCC 的目标是允许多个查询同时读取和写入数据库,而不会在可能的情况下相互干扰。MVCC 的基本思想是 DBMS 永远不会覆盖现有的行。相反,对于每个(逻辑)行,DBMS 维护多个(物理)版本。当应用程序执行查询时,DBMS 根据某些版本号排序(例如创建时间戳)确定要检索哪个版本来满足请求。这种方法的好处是多个查询可以读取旧版本的行,而不会被另一个更新它的操作阻止。当 DBMS 启动该查询的事务时,查询会观察数据库的快照(快照隔离)。这种方法消除了显式。原创 2023-07-18 10:18:40 · 25 阅读 · 0 评论