
Java
文章平均质量分 79
Next2you
Sunshine salesman.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java的列表、集合、数组的添加一个元素各自用的什么方法?
Java 中除了列表(List)、集合(Set)和数组(Array)之外,还有其他多种数据结构支持元素的添加操作。如果需要更具体的实现细节或线程安全方案,可进一步查看相关类的官方文档或源码实现。Java 标准库未直接提供树结构,但可通过。数组是固定长度的数据结构,添加元素通常需要。双端队列支持从两端添加元素,实现类为。如需动态处理大量元素,推荐优先使用。向量是线程安全的动态数组,使用。映射存储键值对,常用实现类为。原创 2025-05-22 22:03:28 · 1549 阅读 · 0 评论 -
【JAVA基础】什么情况下可以直接使用类名.方法名调用方法?
在Java中,直接通过。原创 2025-05-22 21:11:45 · 405 阅读 · 0 评论 -
【JAVA】什么时候需要把类或者变量必须设置为public?
某些框架(如 Spring MVC 的 Controller 类)要求公开类以实现依赖注入或路由映射。例如,模型类(Model)通常需声明为。,以便通过反射直接映射数据库字段,避免生成 getter/setter 的冗余代码。未显式声明访问修饰符的类默认为包级私有(仅同包内可见)。在需要极致性能的代码中(如高频调用的游戏引擎),直接访问。变量可减少方法调用的开销,但需权衡封装性与效率。当一个类需要被其他包中的类引用时,必须声明为。,否则 JVM 无法识别为程序入口。,因此在实现类中必须显式声明为。原创 2025-05-19 10:41:50 · 677 阅读 · 0 评论 -
【JAVA】什么时候方法必须声明为abstract?
什么时候方法必须声明为抽象的?原创 2025-05-19 09:17:03 · 479 阅读 · 0 评论 -
【this】学Java这么久了,你真的会用this吗?
Java里什么时候用this?原创 2025-05-13 23:05:25 · 464 阅读 · 0 评论 -
JAVA100道面试题,不会答的GCK!
这篇文章涵盖了Java编程中的基础与进阶知识点,主要涉及静态方法、接口与抽象类、字符串处理、泛型、异常处理、多线程、内存管理、集合框架、JVM原理以及Java新特性等内容。基础部分包括静态方法不能直接调用非静态成员、接口默认方法必须被重写、String对象不可变但引用可变等核心概念。进阶部分则深入探讨了ArrayList与LinkedList性能差异、Checked Exception处理、Java8接口静态方法、ConcurrentHashMap分段锁机制等高级话题。原创 2025-05-09 09:12:28 · 662 阅读 · 0 评论 -
从源码解释为什么执行MyBatis接口就可以执行SQL
在我们使用SpringBoot+MyBatis的时候,我们一般是先引入依赖,然后配置当然还要在启动类上加上一个注解这时候,就可以编写一个接口,然后调用这个方法就可以执行配置文件中对应的SQL语句了那么底层原理到底是怎么实现的呢??原创 2025-01-02 19:56:31 · 1298 阅读 · 0 评论 -
四步改造一套完美的 Controller 代码层,帅呆了!
原来的代码中可以看到有几个问题抛出的异常不够具体,只是简单地把错误信息放到了 Exception 中抛出异常后,Controller 不能具体地根据异常做出反馈虽然做了参数自动校验,但是异常返回结构和正常返回结构不一致自定义异常是为了后面统一拦截异常时,对业务中的异常有更加细颗粒度的区分,拦截时针对不同的异常作出不同的响应。原创 2024-12-30 11:38:23 · 1154 阅读 · 0 评论 -
小米正式官宣开源!杀疯了!
但是这里面仍然有一个问题需要注意,项目官方也说得很明确:虽说 Home Assistant 米家集成提供了 OAuth 的登录方式,但由于 Home Assistant 平台的限制,登录成功后,用户的小米用户信息(包括设备信息、证书、 token 等)会明文保存在 Home Assistant 的配置文件中。其实在这次小米官方推出 Home Assistant 米家集成之前,市面上也有一些第三方的米家设备集成,但是多多少少会有一些不完美的地方,典型的比如设备状态响应延时,所以导致体验并不是最佳。原创 2024-12-29 23:16:45 · 550 阅读 · 0 评论 -
面试官:Sentinel是如何实现限流的?
限流是一种通过控制系统对外提供的资源、服务或接口的访问数量或速率,以保护系统免受过载的一种策略。它的目的是确保系统能够在承受范围内提供稳定和可靠的服务,避免因过多的请求而导致系统崩溃、资源耗尽或响应延迟过高的情况发生。在 Sentinel 中,实现限流的方法有以下两种:通过代码方法实现限流。通过 Sentinel 控制台设置实现限流。原创 2024-12-28 11:24:38 · 1810 阅读 · 0 评论 -
场景题:实际工作中哪里用到了自定义注解?如何实现自定义注解?
下面我们先使用 AOP 的方式来实现一个打印日志的自定义注解,它的实现步骤如下:添加 Spring AOP 依赖。创建自定义注解。编写 AOP 拦截(自定义注解)的逻辑代码。使用自定义注解。具体实现如下。① 添加 Spring AOP 依赖在 pom.xml 中添加如下依赖:原创 2024-12-28 11:08:31 · 622 阅读 · 0 评论 -
如何保证本地缓存数据一致性?
有人可能看到“本地缓存”这四个字就会觉得不屑,“哼,现在谁还用本地缓存?直接用分布式缓存不就完了嘛”。然而,这就像你有一辆超级豪华的房车一样,虽然它空间很大,设备很全,但你去市中心的时候,依然会开小轿车一样,为啥?好停车啊!所以,不同的缓存类型是有不同得使用场景的。因为分布式缓存可能会失效、可能会挂掉,所以为了系统的稳定性,多级缓存策略使用的非常广泛。那么,问题来了,怎么保证本地缓存的一致性?原创 2024-12-27 20:00:07 · 595 阅读 · 0 评论 -
Java程序中的潜在危机: 深入探讨NullPointerException
在深入了解虚拟机如何处理NullPointerException之后,我们可以发现,表面上看似简单的异常处理背后,实际上蕴藏着大量复杂的逻辑思考和设计上的平衡。这不仅涉及到如何有效捕获和报告错误,还包括在性能、内存管理和用户体验之间进行权衡。Java虚拟机在设计时需要考虑到多种因素,例如如何迅速反馈给开发者,同时又不影响程序的整体性能和稳定性。通过深入分析这一过程,我们能够更好地理解异常处理机制的内在原理,这不仅提升了我们的编程技能,也为我们在开发过程中处理类似问题提供了更深刻的视角和解决方案。原创 2024-12-25 15:05:07 · 693 阅读 · 0 评论 -
聊聊volatile的实现原理?
在 Java 并发编程中,有 3 个最常用的关键字:synchronized、ReentrantLock 和 volatile。虽然 volatile 并不像其他两个关键字一样,能保证线程安全,但 volatile 也是并发编程中最常见的关键字之一。例如,单例模式、CopyOnWriteArrayList 和 ConcurrentHashMap 中都离不开 volatile。原创 2024-12-23 20:41:01 · 1106 阅读 · 0 评论 -
【全文背诵!面试必知必会】阿里面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
这几项指标是高并发系统的核心指标,每一个程序员都应该理解它们的含义和重要性。在编写 Java 代码时,你会经常接触到这些指标,了解它们并能在实际项目中灵活应用,才能做出高效、可扩展的系统。原创 2024-12-19 17:29:14 · 786 阅读 · 0 评论 -
SpringBoot如何实现缓存预热?
在 Spring Boot 启动之后,可以通过以下手段实现缓存预热:1、使用启动监听事件实现缓存预热。2、使用 @PostConstruct 注解实现缓存预热。3、使用 CommandLineRunner 或 ApplicationRunner 实现缓存预热。4、通过实现 InitializingBean 接口,并重写 afterPropertiesSet 方法实现缓存预热。原创 2024-12-18 19:51:10 · 987 阅读 · 0 评论 -
使用Redis如何实现延迟任务?
延迟任务(Delayed Task)是指在未来的某个时间点,执行相应的任务。也就是说,延迟任务是一种计划任务,它被安排在特定的时间后执行,而不是立即执行。延迟任务的常见使用场景有以下几个:1、定时发送通知或消息:发送定时短信、邮件或应用内消息,如注册确认、订单状态更新、促销活动通知等。定时推送新闻、天气预报、股票价格等实时信息。2、异步处理和后台任务:将耗时的操作安排为延迟任务,避免阻塞主线程或用户界面,提高系统的响应性能。执行批量数据处理,如日志分析、数据报表生成等。原创 2024-12-17 23:16:42 · 1108 阅读 · 0 评论 -
程序员能做的最好的副业是什么?
其最残酷的是扼杀了程序员其他的可能性,就是要让你只埋头干活,不要去思考选择其他事情。我觉得程序员先多尝试一些低成本的可行的副业,然后找到适合自己的,能长期坚持下去的。总之在目前的大环境下,每个程序员都应该为自己考虑一份被动收入,其重要性不言而喻。摆摊,跑滴滴,送外卖,接私活,当培训讲师,教少儿编程,做独立开发等。很多人都说中国的程序员是没有积累的职业,不像医生,律师,教师这些。做自媒体,打造个人的品牌IP,能让你有更多的机会,认识更多的人。比如可以通过广告变现,还可以卖课,不是都说程序员的终点是卖课么。原创 2024-12-16 17:42:04 · 312 阅读 · 0 评论 -
奇淫巧技,CompletableFuture 异步多线程是真的优雅
一个示例回顾Future通过CompletableFuture实现上面示例CompletableFuture创建方式异步回调方法异常回调多任务组合回调CompletableFuture使用有哪些注意点。原创 2024-12-13 08:02:26 · 952 阅读 · 0 评论 -
做了个Java打包工具,可以双击启动了!
我日常工作主要使用Java进行开发,业余时间也热衷于技术研究,喜欢用Java的GUI库Swing开发一些实用的小工具。但是用Swing开发软件相比C/C++的一个很大的劣势就是,Java打包出来的文件不能直接运行,需要使用JRE(Java runtime environment)才能运行,如果使用软件的人没有JRE,也不能运行软件,所以基本上没有人会考虑使用Java来开发桌面应用。将其打包成胖JAR后,导出精简JRE,然后使用打包工具打包,将JAR文件于JRE打包成exe文件。之后就可以双击运行了。原创 2024-12-12 10:48:06 · 847 阅读 · 0 评论 -
今日大厂员工事
996是福报口牙原创 2024-12-10 10:35:23 · 678 阅读 · 0 评论 -
男生看见雷军路过,简历直接送过去面试!结果……
最近,雷军在成都,大家都在拍照、欢呼。人群中突然杀出一个程咬金,额,不对,是一个面试的小伙伴,然后三下五除二拿出自己的简历,开始疯狂的介绍自己。工作人员也很给力,没有拒绝,也没有拦下。雷总也仔细倾听了小伙伴的自我介绍。对于这种行为,很多人觉得雷总会拒绝,其实你不试一试,压根不知道是什么结果!只要胆子大,一切皆有希望,毕竟世界就是个巨大的草台班子,大家都一样,只不过所在的级别不一样而已!我每天基本5点半起床,晚上11点睡觉,基本天天如此,大年三十也一样。当你迷茫的时候,先手手头该干的工作干好。原创 2024-12-10 10:32:18 · 2208 阅读 · 0 评论 -
二十万分之一几率:if语句变do-while卡死问题分析
这类多线程引起的字节码异常问题潜伏期可达到数年之久,例如本文遇到的问题在App的页面量级较低时几乎不会触发,但随着App的业务规模增长,又或是打包机器的一次升级换代,问题就会悄然出现,而他极低的复现概率和随机性又很容易使其被忽视。字节码异常问题在互联网鲜有参考资料,倘若字节码损坏直接崩溃还则罢了,遇到这种恰巧能被当成其他语句继续执行的情况分析起来着实麻烦。因此开发插桩这类涉及代码编辑操作的plugin,针对"写”操作务必要慎重开发,重点测试下极端并发的场景。原创 2024-12-09 20:04:08 · 928 阅读 · 0 评论 -
公司来的新人把 MyBatis 替换成 MyBatis-Plus,上线后被组长怒怼了...
文件分为主文件和附属文件,主文件生成之后再生成附属文件附属文件生成的时候,会校验其依赖的主文件是否都生成了,如果有任意一个主文件未生成,依赖文件不能生成并抛出异常这个业务还是比较简单吧但在附属文件校验的优化上,我背上了生产事故关于对组件的升级,或者对旧代码的调整,都有可能牵一发动全身,影响甚大我的观点是:能不动就不要动,改好没绩效,改出问题要背锅,吃力不讨好,又不是不能跑。如果到了不得不改的地步了,那就需要全面的测试。原创 2024-12-06 15:57:31 · 784 阅读 · 0 评论 -
不服不行,这才是后端API接口应该有的样子!
人中黄,始载于《日华子本草》,为甘草末置竹筒内,于人粪坑中浸渍后的制成品。原创 2024-12-05 11:46:12 · 1024 阅读 · 0 评论 -
王炸级更新!Spring Boot 3.4 正式发布,新特性真香!
Spring Boot 3.4 带来了显著的性能提升、可观察性增强和开发体验改进。但在升级过程中,某些变更需要特别注意,以确保应用程序继续正常运行。本指南将深入介绍最重要的变更,并提供代码示例以帮助您顺利完成过渡。原创 2024-12-04 12:05:40 · 2130 阅读 · 0 评论 -
手撕单例的 5 种写法!
单例模式是一种常见的设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。当然,它也是面试中的常客,尤其是某手面试中经常要求应聘者手撕,所以今天咱们就来盘盘它。单例模式的实现方式有很多,如下图所示:具体实现如下。原创 2024-12-03 17:28:58 · 532 阅读 · 0 评论 -
一个Arrays.asList() 数组转换成集合酿成的线上事故,差点被辞退!
Arrays.asList(arr)返回的是一个固定长度的List集合,没有add和remove具体实现方法,不能进行增删操作,否则会报错UnsupportedException。如果需要进行增删操作,可以使用java.util.ArrayList进行封装,如:new希望本文能够帮助大家避免类似的线上事故,提高代码的健壮性和可靠性。在实际开发中,务必注意**Arrays.asList()**的使用场景,确保代码的正确性和稳定性。原创 2024-12-01 21:05:38 · 1095 阅读 · 0 评论 -
Java真的现在不好找工作了吗?
昨天有个朋友给我分享了一个知乎链接。我点进去一看,是一个小伙子提出的这个问题:Java 真的现在不好找工作了吗?我觉得这个问题很好回答啊。“是的,没错,不好找。回答完毕。这个问题下面有一个高赞回答,看完之后怎么说呢?个人感受是:难怪人家敢开口要 70w 的年薪,人家是有货的啊。如果是我的话…这篇文章分享一下这个问题下面的这个高赞回答。在正式分享之前,先放个防杠声明:同样的事情,由于每个人的经历和认知不同,就能发掘出截然不同的观察角度。原创 2024-11-30 16:00:00 · 1023 阅读 · 0 评论 -
【Java面试/24春招】技术面试题的准备
基于技术的理解层次来提高技术思维CPU的迭代发展的目标,提高计算机处理程序的性能1.多核CPU2.CPU缓存行,减少内存IO的耗时,带来缓存一致性问题3.MESI协议,缓存一致性协议,解决缓存一致性问题4.再优化,引入空间局部性原理(指令预加载)带来伪共享问题5.采用缓存行填充来解决,@Contend、或者变量的填充,64个字节核心:提高CPU利用率,增加CPU性能价值思考:(技术的设计思想)原创 2024-03-06 21:38:24 · 605 阅读 · 0 评论 -
【春招/Java】不会微服务,还敢写在简历里吗?程序员如何清晰定位未来职业规划发展,来看看大纲
就业两个方面的焦虑 :1.不知道方向怎么选;2.入不了行如果有时间(大龄问题 主业 副业)大龄,不要轻易换赛道,宁肯用副业做补偿方向(按目前2024.3就业形势)二本以上:java go c++ 大数据 嵌入式(AIoT)AI算法(卡学历,研究生),AI掉包的(API)二本以下:运维 测试(车载) 安全 前端(拥挤) 运营 python(数据分析/爬虫/全栈)中级:阿里P5级别,分布式微服务焦虑怎么办,焦虑是这个世界上最没用的负面情绪,从心灵到身体,影响是巨大的。原创 2024-03-13 22:43:10 · 554 阅读 · 0 评论 -
【24春招/Java】Java的市场情况介绍及Spring Boot基础
需求减少人员增加面试难度增加1、Java高级开发,100份简历,筛选了20份,邀约20个人面试面试机会:录取人数=20:1 = 充分准备通过面试的前提不要裸面!!!背葵花宝典(八股文) 面试机会多,录取的人数也比较多!周期(一个月左右)3月份4月份,面试比年前要多了。原创 2024-03-11 21:29:59 · 929 阅读 · 0 评论 -
使用try-catch捕获异常到底会不会影响性能?尤其是try-catch还比较多的情况下?
3、虽然知道try-catch会有性能影响,但是业务上不需要避讳其使用,业务实现优先(只要不是书中举例的那种逆天代码就行),非特殊情况下性能都是其次,有意识地避免大范围的try-catch,只 catch 需要的部分即可(没把握全 catch 也行,代码安全执行第一)。1、try-catch 相比较没 try-catch,确实有一定的性能影响,但是旨在不推荐我们用 try-catch 来代替正常能不用 try-catch 的实现,而不是不让用 try-catch。原创 2024-06-11 12:24:08 · 487 阅读 · 0 评论 -
低学历科班 / 跨考计算机哥们儿如何成为编程高手
【代码】低学历科班 / 跨考计算机哥们儿如何成为编程高手。原创 2024-03-15 00:54:56 · 422 阅读 · 0 评论 -
【Java入门】day0:jdk安装
JAVA初学者原创 2024-01-21 09:23:15 · 357 阅读 · 0 评论