![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java编程
文章平均质量分 87
Java5658
这个作者很懒,什么都没留下…
展开
-
幸获内推,4面京东拿下offer(Java后台研发岗)地表最强
写在前头 在2019年时,就早早生了跳槽的念头,心想着拿完年终奖就要开始“跑路”,但万万没想到过完春节之后竟被疫情耽搁了这么久,导致很多互联网公司的招聘都往后一拖再拖。幸运的是,刚复工之后,就收到了朋友的消息,有京东内推的机会,问我要不要试一试,虽然说之前的目标是BAT,但根据自己目前情况来说,可能拿个京东也算是不错了,于是着手准备起来。 说说自己:实际上我的base并不是太好,本科毕业,没读研,也非985/211,毕业之后就进了一家电商公司做Java,这一呆就呆了整整三年,中途带了团队,也算做了一些事实,原创 2022-07-12 14:24:20 · 188 阅读 · 0 评论 -
多次的java面试,让我明白了这些道理
Java基础、多线程、IO与NIO、虚拟机、设计模式数据结构与算法(要有手写算法的能力)计算机网络(TCP三次握手和四次挥手)数据通信(RESTful、RPC、消息队列)操作系统(Linux的基本命令以及使用)主流框架(Spring底层原理与源码问的很多)数据存储(最常见的是MySQL、Redis)分布式...原创 2022-06-20 15:22:19 · 133 阅读 · 0 评论 -
2022年Java基础高频面试题汇总(1.4W字详细解析)
(1)简单易学、有丰富的类库(2)面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)(3)与平台无关性(JVM是Java跨平台使用的根本)(4)可靠安全(5)支持多线程原创 2022-06-20 15:04:06 · 207 阅读 · 0 评论 -
Java集合——2022最新Java面试八股文
集合是Java的基础,也是面试中必备的小菜,Java集合的底层原理,是我们需要必须掌握的。本文从多个维度来讲下Java场景的几种集合及面试考点。原创 2022-06-20 14:36:26 · 171 阅读 · 0 评论 -
图解 Kafka 网络层实现机制之上篇
在 MySQL 中,使用 truncate、delete 和 drop 都可以实现表删除,但它们 3 个的使用场景和执行效果完全不同,接下来我们来盘点一下。原创 2022-06-20 14:34:43 · 210 阅读 · 0 评论 -
简单的 redis get 为什么也会有秒级的延迟
公司内有多个 go-redis 的 client 和多种 redis cluster 版本,业务压测发现即使只访问 redis 的 API 接口也可能会延迟达到秒级,非常反直觉。我们用不同版本的 go-redis 和不同版本的 redis cluster 来简单做个压测,redis 命令用简单的 get,kv 大小都是一个字节,这里把数据先放出来:...原创 2022-06-20 14:33:38 · 808 阅读 · 0 评论 -
新来个技术总监,把DDD落地的那叫一个高级,服气!
1. 走进 DDD1.1 为什么要用 DDD ?面向对象设计,数据行为绑定,告别贫血模型;降低复杂度,分而治之;优先考虑领域模型,而不是切割数据和行为;准确传达业务规则,业务优先;代码即设计;它通过边界划分将复杂业务领域简单化,帮我们设计出清晰的领域和应用边界,可以很容易地实现业务和技术统一的架构演进;领域知识共享,提升协助效率;增加可维护性和可读性,延长软件生命周期;中台化的基石。...原创 2022-06-20 14:23:48 · 141 阅读 · 0 评论 -
真是绝了,做了这么多年程序员第一次搞懂微服务架构的数据一致性
微服务架构的数据一致性微服务架构下,最好的分布式数据一致性解决方案就是尽量避免分布式事务,然而,在很多场景下,分布式事务是难以避免的。在金融、电信领域中,很多业务场景要求数据的强一致性,同时要保证服务的可扩展性和可靠性。如何保证分布式事务下的数据一致性成为微服务架构的一个重要课题和难点。...原创 2022-06-18 15:55:21 · 178 阅读 · 0 评论 -
JDBC 在性能测试中的应用
我们能否绕开 http 协议,直接测试数据库的性能?是否觉得从数据库中导出 CSV 文件来构造压测数据很麻烦?怎样在压测结束后做数据清理?能不能通过数据库中的插入(删除)记录对压测请求做断言?使用阿里云性能测试工具 PTS 可以轻松解决上述问题。...原创 2022-06-18 15:42:11 · 149 阅读 · 0 评论 -
在 Pisa-Proxy 中,如何利用 Rust 实现 MySQL 代理
在 Database Mesh 中,Pisanix 是一套以数据库为中心的治理框架,为用户提供了诸多治理能力,例如:数据库流量治理,SQL 防火墙,负载均衡和审计等。在 Pisanix 中,Pisa-Proxy 是作为整个 Database Mesh 实现中数据平面的核心组件。Pisa-Proxy 服务本身需要具备 MySQL 协议感知,理解 SQL 语句,能对后端代理的数据库做一些特定的策略,SQL 并发控制和断路等功能。在这诸多特性当中,能够理解 MySQL 协议就尤为重要,本篇将主要介绍 MySQL原创 2022-06-18 15:11:58 · 207 阅读 · 0 评论 -
阿里出品Excel工具EasyExcel使用小结
笔者做小数据和零号提数工具人已经有一段时间,服务的对象是运营和商务的大佬,一般要求导出的数据是Excel文件,考虑到初创团队机器资源十分有限的前提下,选用了阿里出品的Excel工具EasyExcel。这里简单分享一下EasyExcel的使用心得。EasyExcel从其依赖树来看是对apache-poi的封装,笔者从开始接触Excel处理就选用了EasyExcel,避免了广泛流传的apache-poi导致的内存泄漏问题。...原创 2022-06-17 15:54:27 · 514 阅读 · 0 评论 -
真是绝了,做了这么多年程序员第一次搞懂微服务架构的数据一致性
微服务架构下,最好的分布式数据一致性解决方案就是尽量避免分布式事务,然而,在很多场景下,分布式事务是难以避免的。在金融、电信领域中,很多业务场景要求数据的强一致性,同时要保证服务的可扩展性和可靠性。如何保证分布式事务下的数据一致性成为微服务架构的一个重要课题和难点。...原创 2022-06-17 15:50:00 · 450 阅读 · 0 评论 -
程序员新人上午使用 isXxx 形式定义布尔类型,下午就被劝退?
关于这个”本次请求是否成功”的字段的定义,我见过很多不同的开发者,定义的方式都不同,尤其是在属性的命名上,有人用 success,有人用 isSuccess 表示。从语义上面来讲,两种命名方式都可以讲的通,并且也都没有歧义。...原创 2022-06-16 17:15:25 · 81 阅读 · 0 评论 -
SpringBoot 一个接口同时支持 form 表单、form-data、json 的优雅写法
最近重写个项目遇到个比较棘手的问题,老项目是 PHP 接口,这个接口同时兼容 POST json 和 form 表单,更骚的是连form-data也兼容。。。因为写 PHP 请求的对接方代码不严谨。而在 Java 中,一个接口只支持一种content-type,json 就用@RequestBody,form 表单就用@RequestParam或不写,form-data就用MultipartFile。...原创 2022-06-16 14:31:38 · 542 阅读 · 0 评论 -
阿里P8熬了一个月肝出这份32W字Java面试手册,在Github标星31K+
2022年的互联网行业竞争越来越严峻,面试也是越来越难,一直以来我都想整理一套完美的面试宝典,奈何难抽出时间,这套1000+道的Java面试手册我整理了整整1个月,上传到Git上目前star数达到了30K+...原创 2022-06-15 17:15:08 · 670 阅读 · 1 评论 -
2022进大厂最新Java开发面试题及答案
今天抽空来整理整理Java开发面试中的那点事儿吧,帮助那些正在找工作或想跳槽找工作的兄弟姐妹们!原创 2022-06-15 16:39:38 · 255 阅读 · 0 评论 -
精准面试突击55:delete、drop、truncate有什么区别?
数据恢复方面:delete 可以恢复删除的数据,而 truncate 和 drop 不能恢复删除的数据。执行速度方面:drop > truncate > delete。删除数据方面:drop 是删除整张表,包含行数据和字段、索引等数据,而 truncate 和 drop 只删除了行数据。添加条件方面:delete 可以使用 where 表达式添加查询条件,而 truncate 和 drop 不能添加 where 查询条件。重置自增列方面:在 InnoDB 引擎中,truncate 可以重置自增列,而原创 2022-06-15 14:46:55 · 233 阅读 · 0 评论 -
多年程序员总结下来的懒人必备脚本之进度条⚠️制作
最近正在制作一些脚本方便平时重复的工作。毕竟不能白瞎了自己的mac电脑。至于发现别人家的脚本可都是自带进度条的。说干就干我就准备研究下进度条怎么搞原创 2022-06-15 13:59:44 · 2643 阅读 · 0 评论 -
Redis 基础数据类型完整版
字符串类型是Redis的最基本数据结构。 字符串类型的值实际可以为字符串,数字,二进制,但是值最大不能超过512M。keyvaluehelloworldcounter1bits10000100json{"id":1,"name":"xiaocai","age":18}原创 2022-06-15 13:52:18 · 310 阅读 · 1 评论 -
一个注解搞定,记录项目日志
最近正在录制 TienChin 项目视频~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和我一起做一个完成率超 90% 的项目。前段时间做了一个支线任务,现在还是回到我们的主线上面来,继续完成 TienChin 项目。小伙伴们知道我最近在录制 TienChin 项目视频教程,这是一个基于 RuoYi-Vue 脚手架的项目,用过这个脚手架的小伙伴可能知道,这个脚手架有一个功能,就是如果你需要记录下来一个接口的操作信息,那么只需要在 Controller 接口中加原创 2022-06-15 13:47:38 · 1427 阅读 · 1 评论 -
Redis 中的原子操作(3)-使用Redis实现分布式锁
【Redis核心技术与实战】https://time.geekbang.org/column/intro/100056701【Redis设计与实现】https://book.douban.com/subject/25900156/【Redis 的学习笔记】https://github.com/boilingfrog/Go-POINT/tree/master/redis【Redis 分布式锁】https://redis.io/docs/reference/patterns/distribu原创 2022-06-15 13:33:44 · 533 阅读 · 0 评论 -
教妹学Java:聊聊并发编程的原子性、可见性、有序性,以及内存模型 JMM
今天讲解了 Java 并发编程的 3 个特性,然后基于里面的两个特性“可见性”和“有序性”引出几个重要的概念,分别为“内存模型 JMM”、“重排序”和“内存屏障”,这个对后续理解 volatile、synchronized、final,以及避免使用的各种坑,真的是非常非常重要!!!所以这块知识要必须!一定!!要!!!掌握。...原创 2022-06-15 13:26:15 · 101 阅读 · 0 评论 -
Java 近期新闻:结构化并发、Java 满 27 岁、Micronaut 3.5.0
本期 Java 近期新闻综述内容主要涉及 OpenJDK、JDK 19、虚拟线程、Java 满 27 岁、Jakarta EE 10、Spring Framework 点版本和里程碑版本、Micronaut 3.5.0、Quarkus 2.9.2.Final、Quarkus Tools for IntelliJ 1.11.0、Hibernate ORM 6.0.2.Final、Apache Tika 1.28.3 和 Spring I/O 大会。...原创 2022-06-14 13:48:06 · 213 阅读 · 0 评论 -
如何用 RabbitMQ 解决分布式事务?
要说哪种分布式事务处理方案效率高,必然绕不开消息中间件!基于消息中间件的两阶段提交方案,通常用在高并发场景下。这种方式通过牺牲数据的强一致性换取性能的大幅提升,不过实现这种方式的成本和复杂度是比较高的,使用时还要看实际业务情况。...原创 2022-06-14 13:24:09 · 1265 阅读 · 0 评论 -
spring 的 BeanFactory 和 ApplicationContext
HierarchicalBeanFactory:beanFactory 可以设置 ParentBeanFactory,这个接口的两个方法都是和 ParentBeanFactory 相关的,getParentBeanFactory 方法返回 ParentBeanFactory,containsLocalBean 方法是相对 containsBean 方法而言的,containsBean 方法找不到 bean 的时候会通过 ParentBeanFactory 去找,而 containsLocalBean 只在当原创 2022-06-14 13:21:39 · 321 阅读 · 0 评论 -
分布式架构的前世今生...
一、前言 随着社会的发展,技术的进步,以前的大型机架构很显然由于高成本、难维护等原因渐渐地变得不再那么主流了,替代它的就是当下最火的分布式架构,从大型机到分布式,经历了好几个阶段,我们弄明白各个阶段的架构,才能更好地理解和体会分布式架构的好处,那么本文我们就来聊聊分布式架构的演进过程,希望能给大家带来眼前一亮的感觉。二、背景说明 我们都知道一个成熟的大型网站的系统架构并非一开始就设计的非常完美,也没有一开始就具备高性能、高并发、高可用、安全性等特性,而是随着用户量的增加、业务功能的扩展逐步演变原创 2022-06-13 19:22:10 · 143 阅读 · 0 评论 -
SpringdataJpaMybatis读写锁@Lock
开启两条线程,一条先加上读锁,然后睡眠一会,另一条线程去修改这个对象的时候,需要阻塞到读事务提交以后才会成功原创 2022-06-13 19:15:49 · 278 阅读 · 0 评论 -
太震撼了,牛逼呀,我定义的,我没有调用它,最终他被执行了
如果没有,那你就非常有必要往下看了。如果猜到了,说明你很厉害,给你点个赞!原创 2022-06-13 16:49:06 · 571 阅读 · 0 评论 -
靠!我被项目经理和同事嘲笑了,因为不会远程debug调试...
由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况。一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取运行中的环境上下文,分析日志文件并尝试重现bug。这会带来的问题还是不少的,首先,日志的分析是一项比较耗时的工作;其次,现有的日志记录不一定能反映出问题,你可能需要多次重复这个过程(分析日志->猜测问题->加日志->部署->获取日志)来慢慢逼近问题。倘若是测试环境,我们还多了一项可供选择的手段——远程调试——将程序在测试环境中以debug原创 2022-06-13 16:44:18 · 83 阅读 · 0 评论 -
Java Swagger 的相关知识讲解
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务以及 集成Swagger自动生成API文档。原创 2022-06-13 16:39:29 · 328 阅读 · 0 评论 -
从GitHub火到了boss直聘!共计1658页的《Java岗面试核心MCA版》,拿走不谢
2019年我凭借一份《Java面试核心知识点》成功拿下了阿里、字节、小米等大厂的offer,两年的时间,为了完成我给自己立的flag(拿下一线互联网企业offer大满贯),即使在职也一直在不断的学习与备战面试中!...原创 2022-06-10 17:25:56 · 265 阅读 · 0 评论 -
2022年金三银四,Java后端开发最全面试攻略,吃透年后保送大厂
作用域 当前类 同一package 子孙类 其他packagepublic √ √ √ √protected √ √ √ ×friendly √ √ × ×private √ × × ×不写时默认为friendly原创 2022-06-10 17:21:55 · 145 阅读 · 0 评论 -
阿里P6到P9的技术栈有哪些?程序员该如何准备学习?如何进入大厂
相信每一个程序员应该都有一个大厂梦,但是不知道如何进入大厂,或者说是技术栈和项目经验达不到大厂的要求!那就有人问了,那怎么样才能进入大厂呢?进入大厂的话都有哪些要求呢?小编,就给大家简单介绍一下,要想进入大厂需要达到的要求!总结起来一共有四点:1.学历;2.技术栈+项目经验;3.心理素质+思维转变;4.面试技巧;...原创 2022-06-10 17:07:30 · 632 阅读 · 0 评论 -
太厉害了,终于有人能把TCP/IP 协议讲的明明白白了
从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。...原创 2022-06-10 16:50:28 · 131 阅读 · 0 评论 -
神器 SpringDoc 横空出世!最适合 SpringBoot 的API文档工具来了
SpringDoc是一款可以结合SpringBoot使用的API文档生成工具,基于OpenAPI 3,目前在Github上已有1.7K+Star,更新发版还是挺勤快的,是一款更好用的Swagger库!值得一提的是SpringDoc不仅支持Spring WebMvc项目,还可以支持Spring WebFlux项目,甚至Spring Rest和Spring Native项目,总之非常强大,下面是一张SpringDoc的架构图。...原创 2022-06-10 16:29:17 · 185 阅读 · 0 评论 -
好用到爆!IDEA 版 Postman 面世了,功能真心强大
RestfulFastRequest号称是IDEA版本的Postman。它是一个功能强大的Restful API工具包插件,可以根据已有的方法快速生成接口调试用例。它有一个漂亮的界面来完成请求、检查服务器响应、存储你的API请求和导出API请求,该插件能帮助你在IDEA内更快更高效地调试API!...原创 2022-06-10 16:17:58 · 3276 阅读 · 5 评论 -
分布式事务,原理简单,写起来全是坑!
今天我们就一起来看下另一种模式,XA 模式!其实我觉得 seata 中的四种不同的分布式事务模式,学完 AT、TCC 以及 XA 就够了,Saga 不好玩,而且长事务本身就有很多问题,也不推荐使用。Seata 中的 XA 模式实际上是基于 MySQL 的 XA 两阶段提交发展出来的,所以学习 XA 模式,需要小伙伴们先理解 MySQL 中的 XA 是怎么一回事,把 MySQL 中的 XA 搞清楚了,再来学习 Seata 中的 XA 模式就容易的多了。...原创 2022-06-10 14:59:50 · 470 阅读 · 0 评论 -
Presto on Apache Kafka 在 Uber 的大规模应用
Uber 的目的就是要让全世界变得更好,而大数据是一个非常重要的部分。Presto 和 Apache Kafka 在 Uber 的大数据栈中扮演了重要角色。Presto 是查询联盟的事实标准,它已经在交互查询、近实时数据分析以及大规模数据分析中得到应用。Kafka 是一个支持很多用例的数据流中枢,比如 pub/sub、流处理等。在这篇文章中,我们将探讨如何将这两个重要的服务结合起来,即在 Uber 的 Kafka 上,通过 Presto 实现轻量级的交互式 SQL 查询。...原创 2022-06-10 14:51:26 · 274 阅读 · 0 评论 -
SpringBoot 实现 Office 各种格式在线预览(详细教程,包教包会)
kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等。原创 2022-06-10 14:45:49 · 384 阅读 · 0 评论 -
AQS源码阅读与强软弱虚4种引用以及ThreadLocal原理与源码
AQS最核心的是它的一个共享的int类型值叫做state,这个state用来干什么,其实主要是看他的子类是怎么实现的,比如ReentrantLock这个state是用来干什么的?拿这个state来记录这个线程到底重入了多少次,比如说有一个线程拿到state这个把锁了,state的值就从0变成了1,这个线程又重入了一次,state就变成2了,又重入一次就变成3等等,什么时候释放了呢?从3变成2变成1变成0就释放了,这个就是AQS核心的东西,一个数,这个数代表了什么要看子类怎么去实现它,那么在这个state核心原创 2022-06-09 16:06:58 · 124 阅读 · 0 评论