![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 92
Java技术一点通
本人计算机软件工程专业在读,擅长于Java后端开发,有多个项目开发经验,业余丰富各种技术栈,大学期间参与软件研发中心研究。荣获2023年CSDN博客之星、CSDN城市之星、阿里云社区专家博主、华为云享专家,致力于新技术的推广与优秀作品的普及。
展开
-
Java进阶 —— Java多线程编程笔记
多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。概述生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产者消费者问题,实际上主要是包含了两类线程: 一类是生产者线程用于生产数据 一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库。生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为。原创 2023-06-14 07:31:10 · 475 阅读 · 0 评论 -
Java 正则表达式
正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种【文本模式(Pattern)】。正则表达式使用单个字符串来描述、匹配具有相同规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式的核心功能就是处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。原创 2022-12-22 18:40:00 · 3479 阅读 · 0 评论 -
SpringCloud 学习笔记(上)
什么是微服务?微服务(Microservice Architecture) 是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。究竟什么是微服务呢?我们在此引用ThoughtWorks 公司的首席科学家 Martin Fowler 于2014年提出的一段话:原文:汉化:就目前而言,对于微服务,业界并没有一个统一的,标准的定义。但通常而言,微服务架构是一种架构模式,或者说是一种架构风格,它提倡将单一的应用程序划分成一组小的服务。原创 2022-10-24 23:47:16 · 279 阅读 · 1 评论 -
JUC 并发编程学习笔记(总)
JUC指的就是工具包的简称,里面的工具类可以很方便的实现多线程的开发。java.util工具包、包、分类。业务:普通的线程代码 Thread。Runnable没有返回值、效率相比Callable相对较低!原创 2022-10-19 09:27:56 · 2253 阅读 · 103 评论 -
JUC 并发编程学习笔记(下)
CAS是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,经过调查发现,其实现方式是基于硬件平台的汇编指令CAS是靠硬件实现的,JVM只是封装了汇编调用,那些AtomicInteger类便是使用了这些封装后的接口。Fork/Join采用的是分而治之的基本思想,分而治之就是将一个复杂的任务,按照规定的阈值划分成多个简单的小任务,然后将这些小任务的结果再进行汇总返回,得到最终的任务。CAS: 比较当前工作内存中的值和主内存中的值,如果这个值是期望的,那么则执行操作!原创 2022-10-14 01:41:15 · 460 阅读 · 100 评论 -
JUC 并发编程学习笔记(中)
SynchronousQueue是没有容量的,进去一个元素,必须等待取出来之后,才能再往里面放入一个元素。作用:多个共享资源互斥的使用!并发限流,控制最大的线程数。释放,会将当前的信号量释放+1,然后唤醒等待的线程。什么情况下会使用阻塞队列:多线程并发处理,线程池!获得,假设如果已经满了,等待被释放为止。// 等待计数器归0,然后再向下执行。了解:IO密集型、CPU密集型:(调优)数量-1,假设计数器变为0,就会被唤醒,继续执行。原创 2022-10-12 01:02:27 · 1051 阅读 · 103 评论 -
JUC 并发编程学习笔记(上)
JUC指的就是工具包的简称,里面的工具类可以很方便的实现多线程的开发。java.util工具包、包、分类。业务:普通的线程代码 Thread。Runnable没有返回值、效率相比Callable相对较低!原创 2022-10-10 14:49:02 · 2526 阅读 · 4 评论 -
仿牛客社区项目(第六章)
Elasticsearch 是一个分布式的、Restful风格的搜索引擎。支持对各种类型的数据的检索。搜索速度快,可以提供实时的搜索服务。便于水平扩展,每秒可以处理PB级海量数据。原创 2022-10-02 09:09:35 · 2742 阅读 · 0 评论 -
仿牛客社区项目(第五章)(总)
在C盘下找到wbem文件夹,且里面包含WMIC.exe,将其添加到系统变量path中去。比如在生产者的命令行中继续输入信息,很快在消费者这边也能得到消息。当遇到“‘wmic’不是内部或外部命令,也不是可运行程序”。,在系统变量path中新建该路径。可以看到生产者发送的消息。并且这个消息队列中可以实时传送消息。启动成功后不关闭此窗口,重新打开一个新的命令窗口,用于启动。下载Kafka的安装包后进行解压,就相当于安装成功了。前端页面代码的修改在项目汇总中可进行查看。,指生产者发布消息存储的位置在该服务器上。原创 2022-09-24 09:11:25 · 2605 阅读 · 1 评论 -
仿牛客社区项目(第五章)(下)
触发事件: 评论后,发布通知; 点赞后,发布通知;关注后,发布通知。处理事件:封装事件对象; 开发事件的生产者; 开发事件的消费者。原创 2022-09-24 00:38:50 · 2276 阅读 · 1 评论 -
仿牛客社区项目(第五章)(上)
在C盘下找到wbem文件夹,且里面包含WMIC.exe,将其添加到系统变量path中去。比如在生产者的命令行中继续输入信息,很快在消费者这边也能得到消息。当遇到“‘wmic’不是内部或外部命令,也不是可运行程序”。,在系统变量path中新建该路径。就可以正常启动Kafka了。可以看到生产者发送的消息。并且这个消息队列中可以实时传送消息。启动成功后不关闭此窗口,重新打开一个新的命令窗口,用于启动。下载Kafka的安装包后进行解压,就相当于安装成功了。,指生产者发布消息存储的位置在该服务器上。原创 2022-09-23 00:13:00 · 8576 阅读 · 2 评论 -
仿牛客社区项目(第四章)(总)
当多个用户从不同客户端发起访问时,则不能满足需求,因为服务器只会保存一条验证码信息,无法实现多用户登录。旧版:客户端不保存有验证信息,服务器保存一份验证码信息于。首页、帖子详情页和个人主页的代码修改在汇总中进行查看。,60s过后清除),服务端保存多份验证码信息(存储于。页面时,先获取查看用户信息的该用户实体,接着查询。查询关注数量和粉丝数量,是否已关注作者,并返回至。中,将随机字符串作为键,验证码的值作为值存储在。改进:添加缓存,优先在缓存中取到用户实体。获取验证码时,客户端将随机字符串存储在。原创 2022-09-20 21:39:23 · 3099 阅读 · 2 评论 -
仿牛客社区项目(第三章)(总)
事务是由N步数据库操作序列组成的逻辑执行单元,这系列操作要么全执行,要么全放弃执行。 事务的特性(ACID)原子性(Atomicity):事务是应用中不可再分的最小执行体。- 一致性(Consistency):事务执行的结果,须使数据从一个一致性状态,变为另一个一致性状态。- 隔离性(Isolation):各个事务的执行互不干扰,任何事务的内部操作对其他的事务都是隔离的。- 持久性(Durability):事务一旦提交,对数据所做的任何改变都要记录到永久存储器中。原创 2022-09-13 21:42:42 · 2775 阅读 · 3 评论 -
仿牛客社区项目(第三章)(下)
JDK动态代理: Java提供的动态代理技术,可以在运行时创建接口的代理实例。 Spring AOP默认采用此种方式,在接口的代理实例中织入代码。CGLib动态代理 - 采用底层的字节码技术,在运行时创建子类代理实例。 - 当目标对象不存在接口时,Spring AOP会采用此种方式,在子类实例中织入代码。原创 2022-09-11 08:59:48 · 3081 阅读 · 4 评论 -
仿牛客社区项目(第三章)(上)
前缀树-名称:Trie、字典树、查找树;特点:查找效率高,消耗内存大; 应用:字符串检索、词频统计、字符串排序等。-敏感词过滤器:定义前缀树;根据敏感词,初始化前缀树;编写过滤敏感词的方法。原创 2022-09-10 14:47:58 · 3226 阅读 · 4 评论 -
仿牛客社区项目(第一章)
从字面上理解是控制器,所以它是负责业务调度的,所以在这一层应写一些业务的调度代码,是连接前端和后端的纽带。**总结:**本章的主要内容是通过MVC思想来实现首页的帖子数目的显示,以及实现分页的功能。本章需要实现的功能是根据 User 实体类的 id 返回User 实体类。在本章需要实现的功能是接受浏览器发送过来的请求,然后去响应。类提供与帖子操作相关的服务,本章需要实现的 功能是根据。类对分页信息进行封装,以便在功能上实现分页的功能。本章实现的是仿牛客社区的首页访问功能,项目按照。实体包,在此包下创建。原创 2022-09-06 15:31:40 · 3609 阅读 · 4 评论 -
Java基础常见面试题总结(上)
在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以, Java 程序运行时相对来说还是高效的,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。原创 2022-09-04 13:27:01 · 4943 阅读 · 12 评论 -
【Java篇】多线程 学习笔记
程序(program) 是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,属于静态对象。进程(process) 是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。一个进程可以在同一时间并行执行多个线程。原创 2022-08-31 21:24:59 · 2924 阅读 · 13 评论