自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 面试题:什么是 Java 的线程?如何创建和管理线程?

以上是 Java中 创建和管理线程的基本方法和技巧,通过合理地设计和管理线程,可以实现多任务并发执行,提高程序的性能和响应速度。在多线程编程中,需要注意线程安全和同步问题,以及合理地处理线程的生命周期和状态转换,确保程序的稳定性和可靠性。Java 中的线程可以设置优先级,用来告诉线程调度器哪些线程更重要。以上是创建线程的两种常见方法,两种方法都可以达到创建线程的目的,但推荐使用实现 Runnable 接口的方式,因为 Java 支持单继承而多实现,通过实现接口可以更灵活地组织代码结构。

2024-04-06 21:40:45 310 1

原创 面试题:谈一谈对 JVM 调优和垃圾回收的理解

垃圾回收器首先标记所有被引用的对象,即根据一组称为"GC Roots"的引用对象,逐步遍历所有可达对象,并对其进行标记。在这个阶段,垃圾回收器会将存活的对象移动到内存的一端,以便整理内存空间,从而减少内存碎片化。这些未被标记的对象被认为是不可达的,可以被安全地回收释放内存。在上面的示例中,我们创建了大量的String对象,但在循环结束后,由于没有任何引用指向这些对象,它们将成为垃圾对象,等待垃圾回收器的回收。:标记未使用的对象,然后将存活的对象向堆的一端移动,清理掉边界外的内存空间,以解决内存碎片问题。

2024-04-04 23:18:36 658

原创 面试题:什么是 JWT ,为什么使用 JWT

JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种简洁的、自包含的方法用于通信双方之间以 JSON 对象的形式安全地传输信息。在实际应用中,JWT 作为一种无状态的认证机制,因其简单易用和灵活性而广受欢迎。

2024-04-04 16:19:23 508

原创 Mysql 和 Redis 数据怎么保持一致性,怎么实现

由于篇幅限制,我无法在这里提供完整的源码解析,但我可以为您简要介绍在 Java 中如何使用 Jedis(Redis 的 Java 客户端)和 JDBC(Java 数据库连接)来更新 MySQL 和 Redis。在实际项目中,您需要根据具体的业务逻辑和一致性要求来选择合适的策略,并确保在更新操作中正确地处理异常和错误。我是武铭,目前在银行做开发,现在聚焦于 Java 开发和面试分享,感兴趣的小伙伴可以在下面加个关注,大家一起共同学习和进步。消费消息:消息队列的消费者接收到消息后,更新 Redis 中的数据。

2024-04-02 22:03:59 377

原创 米哈游排名首超腾讯,登顶榜首 !!!

现在是三月份,正是金三银四跳槽的好机会,銘哥给大家准备了面试最常见的 210 道面试题 和 100 套简历模板,需要的小伙伴可以关注公众号:銘聊技术, 回复210获取面试题,回复100获取简历模板。

2024-03-06 19:45:20 523

原创 拿到年终奖马上离职,厚道吗?

最后,如果想离职,年后这段时间就是跳槽的最佳时机,“金三银四”虽然含金量和含银量不如当年,但仍然是最好的时机,不少公司都要在年后招兵买马,年前把位置已经腾出来了,銘哥为大家贴心准备了最常问的210道面试题,有兴趣的小伙伴可以领取。你来上班,不是来充当好人的,是来挣钱的,是你的钱你就要拿着,不要怕伤了和气,你想想,你迟到的时候,扣你钱的时候,公司不也理直气壮吗,也没见公司心存愧疚啊。其实能提出这个问题就能看出,这个提问者内心非常善良,觉得拿了年终奖再离职心有愧疚,觉得对不住公司,甚至还会觉得坑了公司。

2024-03-05 12:06:45 356

原创 国产最强的 AI 代码生成插件:CodeGeeX

首先,我们来看一下官方对它的介绍CodeGeeX 是一款基于大模型的智能编程助手,它可以实现代码的生成与补全,自动为代码添加注释,不同编程语言的代码间实现互译以及针对技术和代码问题的智能问答功能。帮助开发者显著提高工作效率,CodeGeeX 支持 100+ 种编程语言,适配多种主流 IDE 平台,包括 VSCode,JetBrains IDEs,Vim,HBuilderX,DeepIn-IDE等。

2024-03-05 09:01:32 1245

原创 专科生去华为面试,后续来了。。。

我们的CAS虽然解决了原子性,避免了锁的不必要开销。但是还是存在三个问题。**第一个问题就是自旋时间长开销大!**有时候自旋时间过长,消耗CPU资源,如果资源竞争激烈,多线程自旋长时间消耗资源。所以我们通过具体场景来选择加锁还是通过CAS来解决,CAS是适用于多读的环境的,如果是大量读写的操作的话,还是加锁吧!**第二个问题就是我们的ABA问题!**在上面已经具体介绍了,以及给上了解决方法。**第三个问题就是我们的CAS只能保证一个共享变量的原子操作。

2024-03-05 09:00:59 1015

原创 为什么 Mysql 不建议用 select *

这一点详细说说,看我上面的图,当没有缓存的时候,最终会走到执行器,执行器后面就是引擎层,引擎层里面其实包括了各种日志(undo、redo、binlog 等)的记录, 还有就是在内存里找数据。那如果写成了 select * , 变成查多了其他字段, 那其他字段不是索引,肯定无法触发索引覆盖使用场景了,也就是需要额外的回表查询操作了,那这样就慢了。如果本来只查询某 1,2 个比较常用的字段的,可以给这些字段建单个索引或者组合索引 ,这时候查询就避免 使用 SELECT *,尽量能触发索引覆盖。

2024-02-04 00:13:14 983 1

原创 为什么 ArrayList 线程不安全?

Vector 是一个线程安全的动态数组,它的方法都是同步的,可以保证在多线程环境下的安全性。例如,当一个线程正在向 ArrayList 中添加元素,而另一个线程同时在删除元素,就有可能导致索引越界或者元素丢失的问题。在上述代码中,我们创建了一个 ArrayLis t实例,并创建了两个线程,一个线程用于向 ArrayList 中添加元素,另一个线程用于删除元素。总之,ArrayList 线程不安全是因为其内部结构不支持并发修改,而如果需要在多线程环境下使用动态数组,可以考虑使用线程安全的替代类。

2024-01-31 21:07:37 458

原创 为什么不推荐用 UUID 作为 Mysql 的主键

在分库分表的情况下,插入的 id 都是专门的 id 服务生成的,如果要严格按照自增的话,那么一般就会通过 redis 来生成,按批次去获得,比如一次性获取几百个,用完了再去获取,但是如果 redis 服务挂了,功能就完全没法用了,那有么有不依赖与第三方组件的方法呢?,那么它产生的 id 每次都比前次要大,所以每次都会将数据家在 B+ 树的尾部,B+ 树的叶子节点本质是双向链表,查找它的首部和尾部,**时间复杂度 O(1)**,如果此时最末尾的数据也满了,那创建个新的页就好。大家好,我是銘,全栈开发程序员。

2024-01-27 20:22:52 386 1

原创 try catch 应该在for循环里面还是外面?

今天,上班的时候发现一个小问题,try catch 捕获异常的时候,代码放在 for 循环里面和外面是不一样的,现在闲下来了,就好好研究一下它俩到底有啥区别。try catch 是放在 for 循环里面还是外面,就看业务的需求,如果需要出现异常就终止循环的,就放在外面,不需要终止循环的,就放在里面。从性能上分析,当代码无异常时,时间相差并不大,内存消耗差距也不大,但是,当代码发生异常时,差距就会很明显。的时候, 如果 for循环过程中出现了异常,异常被catch抓掉,不影响。首先从使用场景来看,

2024-01-25 23:54:53 416

原创 当使用 Mybatis 的时候,返回类型为 list 时,为什么不用判断非空

人品大爆发了,还是返回参数设定为 List 集合时,mybatis 会自动将返回值变成非 null 类型,其他类型集合如 set、map、类类型如 String、Long 返回在查询不到数据的情况下返回值是 null 吗?最近在使用 Mybatis 与数据库交互的时候,需要将返回的结果进行遍历,写完之后, 想起来要是数据库里没有对应的值,那遍历的时候会不会出现空指针异常?此时无需对返回结果进行任何校验,因为返回的结果是一个空集合,遍历空集合时,遍历内逻辑将不会执行。大家好,我是銘,全栈开发程序员。

2024-01-24 23:50:33 407 1

原创 为什么计算机收入这么高,随便都能二三十万

在程序员这个群体中,确实有不少拿高薪的小伙伴,大厂的好多新员工入职月薪都能 3w+ ,年薪 40w+,但是,想要去大厂,那要求也是很高的,门槛高,学历要有优势,比如 985,211 等高校毕业的,除此之外,技术实力也要过硬,Java 后端四大件要掌握吧,微服务分布式要了解吧,数据结构与算法要扎实吧,甚至操作系统和计算机网络也要背一手吧。每个人出身不同,学习能力不同,家庭背景不同,挣多挣少都是由很多因素决定的,而不只是由“计算机”决定的,不是说所有人学了计算机都能找到高薪的工作,很多人还找不到呢?

2024-01-21 16:23:45 382 1

原创 如何提升编程技术

21 年我刚工作那会,公司里用的前后端分离,前端用的是 VUE ,后端用的 SpringBoot, SpringBoot 我用过,但是 VUE 是没接触过的,那段时间,每天回去就是看 VUE 的视频,VUE 的生命周期,各种钩子函数等等,学了差不多一周,总算是入门了,入门之后,那后面的时就简单了,就开始看使用的一个框架,是一些前辈,一些大牛封装的,写得非常的好,非常的优雅。大家好,我是銘,全栈开发程序员,今天在逛知乎的时候,看到一个话题,程序员的编程能力如何进阶。,这句话与各位共勉!

2024-01-18 22:14:40 331 1

原创 大学C语言、Java、数据结构、离散数学答案+几十本编程电子书 ,免费分享

链接:https://pan.baidu.com/s/1ES7FZxY-Gi_ZvEUE1-qgLg。大学C语言、Java、数据结构、离散数学答案+几十本编程电子书 ,免费分享。

2024-01-18 00:03:22 359 1

原创 国产最强的 AI 代码生成插件:CodeGeeX

首先,我们来看一下官方对它的介绍CodeGeeX 是一款基于大模型的智能编程助手,它可以实现代码的生成与补全,自动为代码添加注释,不同编程语言的代码间实现互译以及针对技术和代码问题的智能问答功能。帮助开发者显著提高工作效率,CodeGeeX 支持 100+ 种编程语言,适配多种主流 IDE 平台,包括 VSCode,JetBrains IDEs,Vim,HBuilderX,DeepIn-IDE等。

2024-01-17 22:18:43 1111

原创 SpringBoot 集成支付宝支付

使用的Post接口,因为官方建议处理付款成功后的操作在异步调用方法中,异步调用为post请求,异步回调方法必须为公网IP,因为支付宝是基于公网访问,访问不了localhost,需要代理,设置公网IP有两种方案,1、内网穿透,2、将项目部署到服务器,我们项目使用的是内网穿透,使用的是natapp,配置一条免费的隧道,在idea中配置notifyurl接口。大家好,我是銘,支付宝是用的最多的支付工具了,那我们开发的时候如何把支付宝集成到 SpringBoot 框架里呢,今天就来分享一下。

2024-01-16 22:04:00 922 1

原创 大学C语言、Java、数据结构、离散数学答案+几十本编程电子书 ,免费分享

链接:https://pan.baidu.com/s/18xrECcIotuRRr7ZmMM5EfQ。大学C语言、Java、数据结构、离散数学答案+几十本编程电子书 ,免费分享。

2024-01-16 21:38:32 346 1

原创 为什么很多公司 SpringBoot 项目禁止使用 Tomcat

在 SpringBoot 框架中,我们使用最多的是 Tomcat,这是 SpringBoot 默认的容器技术,而且是内嵌式的 Tomcat。同时,SpringBoot 也支持 Undertow 容器,我们可以很方便的用 Undertow 替换Tomcat,而 Undertow 的性能和内存使用方面都优于 Tomcat,那我们如何使用 Undertow 技术呢?本文将为大家细细讲解。SpingBoot 中我们既可以使用 Tomcat 作为 Http 服务,也可以用 Undertow 来代替。

2024-01-15 23:20:09 881

原创 干掉过多的 if else,让你的代码更优雅

学习改变命运,技术铸就辉煌。大家好,我是銘,全栈开发程序员。写代码时候,有时候条件过多,会有很多 if else ,代码看起来很乱,不够优雅,那如何让代码更优雅呢,如何让代码可读性更强呢,那銘哥就来教你怎么做。注意啊,是过的 if-else ,如果只是三四个,那就没必要优化了。写这篇文章之前,我看网上很多说用 switch case 啊,首先不比较 if else 与 switch case 效率问题的,只从代码整洁度来看二者没啥区别啊!我们这里更重要的是代码整洁度问题,为什么呢?来看下文的比较。

2024-01-14 23:12:51 798 1

原创 大学计算机课后答案+几十本编程电子书 ,免费分享

链接:https://pan.baidu.com/s/1_G8wZcRSGrb-u4h3TJK7-Q。大学计算机课后答案+几十本编程电子书 ,免费分享。

2024-01-14 22:05:48 314 2

原创 如何处理Mysql死锁

当事务同时更新多个表并且使用了不同的顺序,就可能会导致死锁的发生,比如,事务 1 先更新 A 表,然后获取锁,并且在未释放锁的情况下去更新表 B;而事务 2 先更新 B 表,然后获取锁,并在未释放锁的情况下去更新表 A,那么这种情况下,两个事务会互相等待对方的锁释放,从而形成死锁。当多个事务同时更新相同的索引时,就可能会导致死锁,这是因为事务在更新索引时会获取对应的锁,并在未释放锁的情况下尝试更新其他数据,从而形成死锁。减少锁的粒度:将大事务拆分为多个小事务,可以减少锁的粒度,从而减少死锁的机会。

2024-01-13 13:30:22 382 1

原创 什么?Mysql不设置主键竟然这么多问题

不创建主键时,使用不了主键索引,查询会进行全表扫描,影响性能插入数据需要生成ROW_ID,而生成的ROW_ID是全局共享的,并发会导致锁竞争,影响性能所以在建表的时候还是要设置主键,无论表设计有无合适的唯一字段,都需要设置一个主键,提高性能的同时也是一种好的习惯,对于后续的拓展以及表之间关联都有一定的拓展性。否则,数据量大了,坑的可就是自己了。

2024-01-13 00:08:05 1035 1

原创 什么是中间件?

是一种基于 Java 技术的中间件,主要用于实现异步通信和解耦,使得应用程序能够通过发送和接收消息来实现分布式的交互,常见的消息中间件有:ActiveMQ、提供 HTTP 服务和 Web 应用程序部署支持,常见的Web 中间件有 :Apache Tomcat、Jetty、GlassFish、JBOSS 等。在Java中,中间件是一种基于 Java 技术的中间件,是一种基于 Java 技术的中间件,主要用于保证分布式环境下的事务一致性和可靠性。是一种基于 Java 技术的中间件,主要用于提供分布式缓存服务。

2024-01-09 21:24:22 530

原创 java 数组字符串转数组,list集合(带泛型),二维数组,或者二维数组集合(带泛型)

今天前端传递过来一个二维数组类型的字符串,我需要把它每个字段导出到excel表中,那我就需要给他转换成二维数组或者list集合。

2024-01-07 18:56:33 483

原创 CSDN如何去掉广告

CSDN如何屏蔽广告1.下载油猴插件下载地址:https://chrome.zzzmh.cn/info?token=dhdgffkkebhmkfjojejmpbldmpobfkfo下载之后安装到 谷歌浏览器中2. 在油猴插件里安装脚本搜索下面的脚本,安装到油猴里面即可。https://greasyfork.org/zh-CN/scripts/373457-csdn-%E5%8E%BB%E5%B9%BF%E5%91%8A%E6%B2%89%E6%B5%B8%E9%98%85%E8%AF%BB%E

2021-11-05 17:49:00 415 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除