自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (1)
  • 收藏
  • 关注

原创 JUC并发编程与源码分析学习笔记(三)

ThreadLocal 该类提供线程局部变量1、ThreadLocal简介①、大厂面试题②、是什么?③、能干嘛?④、方法摘要。

2024-08-09 13:09:32 263

原创 Python学习01

1、学习目标2、学习成果python程序员python的创始python语言的优点t=N7T8。

2024-06-27 12:53:08 311

原创 JVM学习笔记02

三十九、运行时数据区内部数据

2024-06-10 14:02:34 133

原创 Java学习笔记

Java学习笔记,可从百度网盘快速获取MD文档

2024-06-01 10:17:38 99

原创 Java大厂面试题第2季

高频最多的常见笔试面试题目。

2024-05-31 11:29:59 455

原创 SpringSecurity+OAuth2权限管理实战一

SpringSecurity+OAuth2.0场景化实战精讲。

2024-05-06 10:45:08 258

原创 Kafka学习笔记01【2024最新版】

为什么分布式系统之间它需要使用一个软件来完成数据交换的这个过程?那说到我们数据交换啊,在java开发的这个普通场景中,主要指的就是线程和线程之间的数据交换以及呢进程和进程之间的数据交换。我们线程和线程之间是如何做数据交换的,其实呢我们主要是用内存来完成这个操作的。首先我们的java虚拟机当中,每个线程呢其实是有它独立的这个栈内存空间的,每个线程是独立的,那么这两个我们的线程它们是如何交互的呢?

2024-04-24 18:00:45 1299 4

原创 JavaWeb学习笔记01

③ 前沿前端框架(Vue3 router4 axios pinia)5 属性必须有值,值必须加引号,H5中属性名和值相同时可以省略属性值。7 HTML标签不严格区分大小写,但是不能大小写混用。8 HTML中不允许自定义标签名,强行自定义则无效。-- --> ,注意不能嵌套。④ 丰富组件库(element- plus)6 HTML中不严格区分字符串使用单双引号。① 视图三大件(HTML、CSS、JS)一套更适合后端工程师学习的WEB教程。③ 模型训练、向量检索、智能数字客服。

2024-03-27 11:09:34 405

原创 JavaEE面试题

因此,主要区别在于s1指向的是字符串常量池中的"123"字符串常量,而s2指向的是堆内存中通过new关键字创建的新的String对象。在一般情况下,推荐使用字符串常量的方式,即使用双引号括起来的字符串字面值,因为这样可以利用字符串常量池的优势,提高性能和节省内存。在Java中,"String s1 = "123";"和"String s2 = new String("123");

2024-03-04 14:54:52 742

原创 Java里面静态方法里面为什么无法调用非静态方法【Java面试题】

在Java中,静态方法无法直接调用非静态方法的原因是因为静态方法是属于类的,而非静态方法是属于类的实例(对象)的。在静态方法中,没有this关键字,因为this代表当前对象的引用,而静态方法在调用时可能并没有创建对象实例,因此无法使用this引用来调用非静态方法。如果在静态方法中需要调用非静态方法,一种常见的解决方法是通过创建对象实例来调用非静态方法,或者将非静态方法也设置为静态方法。另外,非静态方法依赖于对象的状态,需要通过对象实例来调用,而静态方法不依赖于对象的状态,可以直接通过类名调用。

2024-03-01 13:56:00 396

原创 可变个数形参的方法【Java】

【代码】可变个数形参的方法【Java】

2024-02-29 10:18:59 320

原创 金三银四招聘季-面试流程

③、问技术:可以看看Java八股文面试题,有时间的情况下还是多看看技术官网,彻底搞明白,否则面试容易出问题。②、问项目:需要能够准确描述出自己做过的项目(不熟悉的项目不要说出来),突出难点。1、写简历(可以参考BOSS直聘上招聘要求,写自己会的,不在于多,而在于精)7、谈薪资(往高了要,因为他们会压薪资的,留有余地)3、现场面试(视频面试、电话面试),携带简历。①、自我介绍(需要时间短,突出个人价值)4、面试1:填写个人基本信息,做题。2、BOSS直聘投递简历,约面试。5、面试2:技术面试。

2024-02-18 17:58:13 150

原创 金三银四招聘季-简历

⑦、个人优势:需要能够举出以往工作经历的真实案例,切忌虚的(吹牛谁都会,关键面试官不相信)⑤、个人技能:可以按照BOSS直聘的招聘要求填写,也可以添加个人的突出技能。④、工作经历:空窗期比较大的情况下,需要按情况修改一下。⑥、项目经历:突出项目中的难点,以及解决的方案。1、可以使用QQ邮箱自带的简历模板。②、求职意向:Java开发。①、个人基本信息:真实。

2024-02-18 17:53:09 116

原创 Docker实战01

docker-compose容器编排(你的容器实例太多了,你如何管理,容器之间涉及到启动的顺序,容器之间涉及到网络通信的调用1、是什么?Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Compse是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compse|.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器2、能干嘛。

2024-02-07 11:22:08 781

原创 JUC并发编程与源码分析学习笔记(三)

Java内存模型Java Memory ModelJMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定和规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的写入何时以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性、可见性和有序性展开的。原则:JMM的关键技术点都是围绕多线程的原子性、可见性和有序性展开的能干嘛?1、通过JMM来实现线程和主内存之间的抽象关系。

2024-01-26 16:30:43 1059

原创 JUC并发编程与源码分析学习笔记(二)

悲观锁:认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改synchronized关键字和Lock的实现类都是悲观锁。

2024-01-20 17:32:04 535

原创 Git学习笔记01

分布式版本控制工具软件git,工具软件就是实现指定功能的应用软件git用于管理软件开发项目中的源代码文件1、学习方式图形演示 + 操作2、常用功能仓库管理、文件管理、分支管理、标签管理、远程操作3、进阶功能使用开发工具来集成Git软件和访问GitHub,Gitee这样的第三方代码托管平台4、功能指令。

2023-11-26 15:35:37 398

原创 Java面试题

背景:在分布式系统中是如何处理高并发的。由于在高并发的环境下,来不及同步处理用户发送的请求,则会导致请求发生阻塞。比如说,大量的insert,update之类的请求同时到达数据库MYSQL,直接导致无数的行锁表锁,甚至会导致请求堆积很多。从而触发 too many connections 错误。使用消息队列可以解决【异步通信】1、异步2、并行3、排队消息队列的弊端;消息的不确定性:延迟队列,轮询技术来解决该问题即可!

2023-11-10 08:36:06 260

原创 Spring6学习笔记01

Spring是一款主流的Java EE轻量级开源框架框架:可以理解为是一个程序的半成品,也就是说它帮我们实现了一部分功能,用这个框架我们可以减少代码实现功能的开发开源:也就是说它开放源代码,通过源代码可以看到它的底层是怎么做到的轻量级:我们从两个方面去理解,一个方面是它的体积很小,第二个方面用Spring不需要依赖于其它的组件就能进行使用看md文件看md文件Spring项目:Java对象的创建和销毁都是由IOC容器来进行管理的。

2023-11-10 07:39:06 160

原创 Redis7学习笔记01

一百零七、redis高级篇之缓存双写一致性面试题概览

2023-11-09 15:02:04 124

原创 SpringBoot3学习笔记01

SpringBoot3全栈指南:①、SpringBoot3-快速入门②、SpringBoot3-Web开发③、SpringBoot3-数据访问④、SpringBoot3-基础特性⑤、SpringBoot3-核心原理https://www.yuque.com/leifengyang/springboot3/vznmdeb4kgn90vrxhttps://www.yuque.com/leifengyang/springboot3/vznmdeb4kgn90vrxhttps://www.yuque.com/lei

2023-11-06 09:48:05 197

原创 Nginx学习笔记01

Nginx开源版 http://nginx.org/Nginx plus商业版 https://www.nginx.com。

2023-10-26 00:03:22 421

原创 Elasticsearch学习笔记01

elasticsearch分布式免费开源的搜索分析引擎,elastic指可伸缩、灵活的意思,search表示查询的意思。核心就是查询,互联网当中我们查询的信息包括:文章、视频、图片、网站信息等等,根据数据的格式,我们会将数据分为三个大类:结构化数据、非结构化数据、半结构化数据。

2023-10-11 16:42:40 59

原创 前端框架Vue2.0+Vue3.0学习笔记01

一套用于构建用户界面(把你拿到手里的数据,通过某种办法变成用户可以看见的界面)的渐进式(Vue可以自底向上逐层的应用:①、简单应用:只需一个轻量小巧的核心库 ②、复杂应用:可以引入各式各样的Vue插件。从一个轻量小巧的核心库逐渐递进到使用各式各样的Vue插件JavaScript框架。

2023-10-07 18:25:17 595

原创 Zookeeper学习笔记01

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目开源的:免费的分布式的:比如说有100T的资料,自己的电脑只有1T的存储空间,需要购买多台服务器,来存储对应的资料,这么多台服务器来共同完成一件事情,存储100T的资料,这个就可以理解为分布式Zookeeper工作机制。

2023-09-27 18:14:30 62

原创 Kafka学习笔记01

前端埋点,然后将数据发送到对应的日志服务器当中,发送的形式呢?是使用接口这种方式怎么将日志文件导入到Hadoop集群呢?可以使用Flume,它可以时刻监控文件里面数据的变化,每产生一条日志,我都能监控得到,然后呢?并把这些数据传到Hadoop集群。Kafka可以帮我们进行缓冲,它的处理数据量的能力非常强大,你可以把海量的数据先灌倒Kafka集群当中,然后呢?由这个Hadoop集群慢慢的从Kafka集群里面按照自己的速度进行消费分布式:多台服务器来完成共同的一个目标

2023-09-26 23:00:44 491

原创 Java使用XWPFTemplate将word填充数据的代码

【代码】Java使用XWPFTemplate将word填充数据的代码。

2023-08-31 10:24:20 2979

原创 @MapperScan的作用

MapperScan是MyBatis框架提供的注解,用于指定扫描Mapper接口的位置,将其自动装配到Spring容器中,方便调用Mapper接口实现数据访问。使用@MapperScan注解时,我们可以指定Mapper接口所在的包名或者类名作为参数,也可以使用basePackages和value两个属性来指定多个包名。此外,@MapperScan还支持使用annotationClass属性指定Mapper注解的类类型,这样只有被指定注解的Mapper接口才会被扫描并注册到Spring容器中。

2023-08-28 08:53:58 842

原创 Java反射面试题

Java反射是指在程序运行时,动态获取类的信息并调用类的方法或者操作类的属性。Java反射可以让程序在运行时动态地生成对象、调用方法、操作属性,提高程序的灵活性和扩展性。使用Class类的newInstance()方法可以动态生成对象,也可以使用Constructor类的newInstance()方法动态生成对象。可以使用Field类的get()方法动态获取属性的值,也可以使用set()方法动态设置属性的值。可以使用Method类的invoke()方法动态调用方法,传入方法的名称和参数列表即可。

2023-08-24 09:10:59 141

原创 Java反射的动态性,介绍一下

动态调用方法:反射可以动态地获取类的方法,并在程序运行时调用这些方法。Java反射机制是指在程序运行时,动态地获取类的信息并且操作类的属性、方法、构造器等。运行时获取类信息:反射提供了获取类信息的方法,包括类名、父类、接口、字段、方法、构造器等,可以在程序运行时动态获取。动态获取类的注解信息:反射可以获取类、方法、字段等的注解信息,并在程序运行时动态地使用这些注解信息。动态访问和修改类的字段:反射可以获取类的字段,并在程序运行时动态访问、修改类的字段。

2023-08-24 09:07:36 198

原创 SpringBoot面试题

Spring Boot是基于Spring框架的,但它与Spring框架有很大的不同。在整个启动流程中,Spring Boot的自动装配机制起着至关重要的作用,通过自动配置Beans,实现了许多常用的组件(如数据库、Web、缓存等)的自动配置和集成,大大简化了应用程序的开发和部署。Spring Boot是一种基于Spring框架的快速应用开发框架,它通过自动配置和约定大于配置的方式,使开发者可以快速搭建Spring应用,并集成第三方组件和库,降低开发难度和提高开发效率。Spring Boot的优点是什么?

2023-08-23 10:04:27 125

原创 线程池面试题

线程池中的任务队列有哪些类型?线程池的监控和调优:线程池需要监控线程池的运行情况,例如线程池中线程的数量,任务队列中任务的数量等。线程的分配和回收:线程池需要管理线程的状态,例如线程是否空闲、是否正在执行任务等。任务队列的管理:线程池需要管理任务队列的大小和任务队列中的任务。线程池的创建和销毁:线程池的创建需要设置线程池的大小、线程池的类型、任务队列的大小等参数,销毁线程池需要停止所有线程并清空任务队列。异常处理:线程池需要捕获并处理线程池中线程执行任务时可能出现的异常,例如任务抛出异常、线程中断等。

2023-08-23 10:00:39 76

原创 HashMap面试题

当哈希表中的元素数量超过了负载因子(默认为0.75)与桶的数量的乘积时,哈希表会自动增加桶的数量,以保证哈希表的性能。HashMap的主要优点是可以实现快速的插入、查找、删除操作,并且可以通过调整负载因子和桶的数量来控制HashMap的性能。对于原数组中的每个位置,如果有多个元素,会形成一个链表或者红黑树,这时会按照顺序遍历链表或者红黑树中的元素,然后重新计算hash值,再将其插入到新数组中的对应位置。另外,由于哈希表的实现方式,HashMap的迭代顺序不一定是元素插入顺序。最后将原数组的引用改为新数组。

2023-08-23 09:57:20 55

原创 Java面试题

有序集合类型(sorted set):是集合的一种特殊类型,集合中的元素可以排序。集合类型(set):是一个无序的集合,集合中的元素是唯一的,可以进行求交集、并集、差集等操作。数据缓存:使用缓存可以减少数据库的访问次数,提高查询效率。列表类型(list):是一个列表,可以在列表的两端进行Push和Pop操作,可以简单地理解为Redis中的数组。硬件优化:通过升级硬件(如增加内存、CPU等),可以提高MySQL数据库的处理能力。数据库设计:合理的数据库设计可以减少查询时需要访问的数据量,提高查询效率。

2023-08-23 09:53:31 61

原创 Redisi缓存的击穿、穿透、雪崩,介绍一下

缓存穿透是指在高并发场景下,请求的 key 在缓存和数据库中都没有对应的数据,导致大量请求直接落到数据库上,导致数据库瞬间压力过大,甚至宕机。或者设置空值缓存,将请求不存在的 key 在缓存中也做出对应的响应,避免访问数据库。缓存击穿是指在高并发场景下,缓存中的某个 key 失效,此时大量请求同时涌入数据库查询该 key 的数据,导致数据库瞬间压力过大,甚至宕机。缓存雪崩是指在某一时刻,缓存中大量的 key 同时失效,导致大量的请求同时涌入数据库,导致数据库瞬间压力过大,甚至宕机。

2023-08-23 09:47:59 821

原创 为什么要使用IOC

在Java应用程序中,使用IOC的主要目的是将程序的依赖关系从代码中解耦,使得代码更加灵活,易于扩展和修改。提高代码的可测试性:IOC可以帮助我们将依赖关系抽象化,从而使得我们可以在测试时轻松地将这些依赖替换成模拟对象,从而使得测试更加容易。减少代码中的硬编码:通过将依赖关系放在外部容器中管理,可以避免在代码中硬编码依赖,从而使代码更加灵活和易于扩展。降低代码的耦合度:通过使用IOC,我们可以将依赖关系解耦,从而使得代码更加模块化和灵活,降低代码的耦合度。

2023-08-23 09:45:58 627

原创 乐观锁和悲观锁,介绍一下

乐观锁:假设并发环境下不会发生并发冲突,所以在每次操作共享资源前不会加锁,而是在更新数据的时候先检查该数据是否被其他线程修改过,如果没有则更新成功,如果有则表示数据已过期,需要重新获取后再更新。乐观锁机制不会影响程序的性能,但是如果并发冲突较多,则需要多次重试,会引起额外的开销。悲观锁机制可以确保并发操作的安全性,但是加锁和释放锁的过程会带来额外的开销,会影响程序的性能。总的来说,悲观锁是一种悲观的认为并发操作有可能会发生冲突的锁机制,而乐观锁则是一种乐观的认为并发操作不会发生冲突的锁机制。

2023-08-23 09:44:02 49

原创 @Autowired 和 @Resource 有什么区别?

是基于名称(byName)或类型(byType)进行自动装配的,即它可以按照Bean的名称进行自动装配,也可以按照类型进行自动装配。如果同时指定了名称和类型,那么名称优先级更高。是JDK提供的注解,不需要使用其他Spring注解一起使用。使用时可以标注在类的字段、setter方法上,也可以标注在类的构造函数上。是基于类型(byType)进行自动装配的,即Spring会在容器中寻找与指定类型相同的Bean,并将其注入到目标对象中。则更灵活,可以根据名称或类型进行自动装配。更常用,因为它更简洁、更直观,而。

2023-08-23 09:39:38 73

原创 JUC并发编程与源码分析学习笔记(一)

在现今的互联网行业,尤其是开发工程师岗位,如果你对高并发、多线程都没有接触和了解,那肯定无法成为真正的高级开发工程师。高并发、多线程技术是目前非常重要的技术壁垒和对高级开发人员的要求,而要成为优秀的高薪程序员,高并发系统的架构设计和多线程硬核编码技能是当下你必须要掌握的。

2023-08-14 17:59:39 127

原创 Redis7学习笔记01

Redis。

2023-07-28 21:16:22 383

个人编写的动态java web网站

网站采用Struts2和hibernate编写,网站已经初见规模,

2018-06-20

空空如也

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

TA关注的人

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