后台
文章平均质量分 60
后台技术的应用于
天下一般
喜欢运动的猿
展开
-
Java多线程<二>多线程经典场景
task.get()是阻塞的,最好不要放在主线程中,更不要放在线程创建的路径上,最好在开一个线程,进行归并。多线程对效率的提升体现在多处理器的并行上。这里实现的计算是平均划分数组进行求和,如果不能平均划分就会出错。应该使用归并式的那种划分。明天实现一下多线程的归并排序和多线程的斐波那契数列。原创 2023-12-30 14:13:11 · 1278 阅读 · 0 评论 -
Java多线程<三>常见的多线程设计模式
interrupted() 会让他失效。使用volatile关键字进行改写。原创 2023-12-30 14:09:44 · 1177 阅读 · 0 评论 -
Spring AOP<一>简介与基础使用
被增强的方法的总称一般和环绕通知一起使用@Around(),获取连接点。原创 2023-12-30 14:04:59 · 428 阅读 · 0 评论 -
mit数据库实验2
mit数据库实验2原创 2023-03-01 15:20:15 · 506 阅读 · 0 评论 -
mit数据库实验一总结
mit数据库实验一总结原创 2023-02-26 20:31:06 · 400 阅读 · 0 评论 -
c++宏调试
c++宏调试原创 2023-02-24 12:24:27 · 160 阅读 · 0 评论 -
mysql锁
mysql 锁原创 2023-01-24 10:15:45 · 1016 阅读 · 0 评论 -
kafka实战<二>spring整合kafka
spring 整合kafka原创 2023-01-15 10:09:53 · 295 阅读 · 0 评论 -
kafka实战<一>windows和linux安装kafka
kakfa windows和linux安装原创 2023-01-13 13:45:11 · 514 阅读 · 0 评论 -
Java泛型<二>泛型类型擦除与桥方法
类型擦除与桥方法原创 2022-11-09 18:48:19 · 856 阅读 · 0 评论 -
为什么不能只根据返回值进行函数重载
为什么只根据返回值无法进行函数重载原创 2022-11-09 18:35:23 · 1058 阅读 · 0 评论 -
Java泛型<一>为什么要有泛型
java泛型背景原创 2022-11-09 11:40:31 · 704 阅读 · 0 评论 -
蓝桥杯-Java快速输入输出
蓝桥杯-Java快速输入输出原创 2022-10-28 16:41:05 · 1319 阅读 · 0 评论 -
JVM<二>JVM调优(你想要的调优都在这里了)
jvm调优原创 2022-10-21 21:05:51 · 956 阅读 · 1 评论 -
JVM<一>内存管理[三]垃圾回收器
JVM内存管理之垃圾回收器原创 2022-10-18 18:27:52 · 689 阅读 · 0 评论 -
设计模式<三>观察者模式
观察者模式原创 2022-10-11 21:01:01 · 215 阅读 · 0 评论 -
JVM<一>内存自动管理[二]对象问题
Java中对象创建、访问,以及内存的对象布局等问题。原创 2022-10-11 20:26:19 · 313 阅读 · 0 评论 -
JVM<一>内存管理[一]内存划分与内存溢出
JVM内存自动管理之内存划分和实战OutOfMemery异常。原创 2022-10-11 18:34:12 · 459 阅读 · 0 评论 -
牛客Java项目<一>Index分页的实现
牛客的仿牛客社区项目原创 2022-09-29 16:20:27 · 380 阅读 · 0 评论 -
设计模式<二> :策略模式
策略模式原创 2022-08-08 18:53:40 · 123 阅读 · 0 评论 -
fork-join线程池
fork-join的分析原创 2022-06-21 00:01:06 · 354 阅读 · 0 评论 -
自定义线程池
线程池的自定义实现原创 2022-06-17 21:03:05 · 89 阅读 · 0 评论 -
双锁检测(DLC)
双锁检测不安全问题的分析package single;/** * @author: Zekun Fu * @date: 2022/5/23 9:59 * @Description: 双锁检测,如果不加volatile线程不安全。 * 因为会访问到未初始化的对象 */public class Doubl_Lock_Check { private static Doubl_Lock_Check instance; // 线程不安全 privat原创 2022-05-23 10:22:52 · 356 阅读 · 0 评论 -
latex表达式 -- 公式等号对其
公式的换行:使用\\就可以使得公式换行比如下面的表达式在等号前面加上了\\,公式就换行了。$$ \sum_{r = i + 1}^{R + 1}\sum_{l = L}^{i}sum[r] - sum[l] \\=(i - L + 1)\sum_{r = i + 1}^{R + 1}sum[r] - (R - i + 1)\sum_{l = L}^{i}sum[l] \\= (i - L + 1)(sums[R + 2] - sums[i + 1]) - (R - i + 1)(sums[原创 2022-05-22 18:04:24 · 2467 阅读 · 0 评论 -
归并排序 -- 多线程版本
近期学了Java多线程的一些关键字还有设计模式的代理模式,在这应用一下。先写下版本1,以后在逐渐进行改进。环境jdk 8+mavencglib思路这里主要实现了三个类。进行数组生成和打印以及其他数组操作的SortUtil类。进行时间统计的代理类TimeProxy,使用cglib生成代理类。进行主逻辑实现的SortThread类。代码SortUtil类package threadBase.threadPool;import java.util.Random;/**原创 2022-05-21 23:38:54 · 558 阅读 · 0 评论 -
观察者模式2 -- jdk内置的观察者模式分析
JDK内置的观察者模式观察者,根据不同的主题的更新来决定自己是否更新,不能在改变主题的状态了, 否则会死循环。具体的观察者绑定了某一个主题观察者不能改变主题的状态,否则会陷入死循环。被观察者,首先设置改变,其次通知所有的观察者。增删都加上锁调用的时候,复制一份,让线程私有之后,再慢慢进行调用。改变之后,使用下面的代码进行通知所有的观察者。setChange();notifyAllObservers();Observable代码详解1. 私有的属性: 是否改变,原创 2022-05-16 18:35:22 · 228 阅读 · 0 评论 -
责任链模式详解
责任链模式gitee代码实现地址1. 背景需求: 实现过滤需求2: 直接写好,不用修改的那种的过滤,就是可以从配置文件中读取的过滤器,然后加入到过滤器队列中。需求3:可以在决定在哪里停止过滤,不用进行下一步的过滤。需求4:在去的时候进行一个过滤,在回来的时候进行另一个过滤。2.实现链式编程实现filterpackage chainOfResponsibility;import com.sun.org.apache.bcel.internal.generic.GETFIE原创 2022-05-15 21:22:02 · 2911 阅读 · 0 评论 -
Java生产者消费者实现,以及死锁问题
逻辑代码 /* * 如果先获取队列的使用权限,而不是先判断空或者满的情况下: * 死锁的执行顺序 * 1. 队列初始为满 * 2. 消费者首先执行,获取队列锁,但是empty锁已经锁住了 * 3. 生产者在执行,队列锁锁住了。 * * 死锁执行顺序2 * 1. 队列初始为空 * 2. 生产者首先执行,获取队列锁,但是full锁已经上了 * 3. 消费者执行,队列锁拿不到。 * */packag原创 2022-05-14 11:26:58 · 328 阅读 · 0 评论 -
notify和notifyAll的区别,notify死锁问题
具体讲解参照博客区别下面补充一个例子,来说明,使用notify会产生死锁,但是使用notifyAll不会。原题为lleetcode 1195大体意思是:四个线程,调用同一个对象的四个不同方法,然后实现线程的同步。在这里使用了synchornized和state来实现这个题目。下面分析一种情况说明notify会产生死锁,而notifyAll会。修改完state = 0后,使用notify激活了应该执行state = 3的线程A。然后,线程state = 0, 调用了wait方法,锁死了自己。原创 2022-05-13 19:23:34 · 844 阅读 · 0 评论 -
Java线程<一>--总述
Java并发概述原创 2022-05-11 16:14:31 · 212 阅读 · 0 评论 -
外观模式与模板方法模式的异同
外观模式与模板方法模式异同点。原创 2022-05-08 20:55:43 · 486 阅读 · 0 评论 -
gradle打包jar找不到或者无法加载主类
直接在build.gradle文件中添加下面代码。jar { manifest { attributes 'Main-Class': '主类的全类名' }}另外如果含有第三方库,使用jar无法直接打包完成。最后的结果如下请看shadow打包第三方库...原创 2022-05-05 20:50:36 · 2645 阅读 · 0 评论 -
gradle打包项目和依赖(第三方库)
不要再乱搞了,找不到第三方库(依赖)的类,直接使用shadow,只需两步,轻松愉快添加插件, build.gradle中添加插件plugins { id 'com.github.johnrengelman.shadow' version '2.0.4' id 'java'}等一会,使用下面的命令进行打包。结果可以直接jar -jar运行了完整的build.gradle文件plugins { id 'com.github.johnrengelman.sh原创 2022-05-05 20:46:38 · 1978 阅读 · 0 评论 -
spring源码编译,以及问题解决思路
这两天编译了spring源码和springboot源码,也总结出来了这类源码出现问题的排查思路。在这里记录一下,希望小伙伴们少走点弯路。编译环境IDEA 2019, 内置kotlin插件spring 5.2.2-release源码jdk1.8gradle 5.6.41. 环境配置建议使用gitee获取spring源码地址gradle下载地址下载gradle后,配置GRADLE_HOME。2. 使用gradle进行编译下载之后,别先使用IDEA进行打开,先使用notepad修原创 2022-05-05 16:10:21 · 633 阅读 · 0 评论 -
spring bean的创建流程
spring bean的创建流程原创 2022-05-04 20:15:13 · 1245 阅读 · 0 评论 -
springboot源码编译
sprinboot源码编译原创 2022-05-03 21:28:29 · 3123 阅读 · 0 评论 -
rsync命令以及xsync封装
文章目录1. 配置ssh无密码登录2. 安装rsync3. 封装xsync命令4. 问题记录5. 参考文章1. 配置ssh无密码登录具体操作请看这里如果ping的通在进行操作2. 安装rsync使用apt-get install rsync 或者使用yum install -y rsync进行安装安装完成后测试输入rsync不会出现命令找不到就行了。3. 封装xsync命令编写脚本vim xysnc,或者touch创建完成在进行vim xsync修改增加如下内容#!/bin/sh原创 2022-04-08 17:14:09 · 1151 阅读 · 0 评论 -
大数据开发【3】 -- hadoop的云集群配置
1. 启动YARN,并运行MapReduce程序配置yarn-env.sh,对于3版本的就不用配置了,因为已经默认从hadoop-env.sh读取了。配置yarn-site.xml文件,只配置前两个就行了。后面的就不用进行配置了。一个是主机地址,另一个默认。<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapredu原创 2022-04-07 20:17:47 · 1830 阅读 · 1 评论 -
大数据开发【2】--hadoop的初步使用
hadoop的基本使用原创 2022-04-07 20:08:30 · 192 阅读 · 0 评论 -
linux实战[1] -- linux搭建java开发环境
1. 环境介绍环境使用的是VMware 15CentOS Linux release 8.4.2105如何产看自己操作系统的信息一、linux下如何查看已安装的centos版本信息:Linux查看当前操作系统版本信息 cat /proc/versionLinux查看版本当前操作系统内核信息 uname -alinux查看版本当前操作系统发行信息 cat /etc/issue 或 cat /etc/centos-releaseLinux查看cpu相关信息,包括型号、主频原创 2022-03-27 10:35:57 · 3499 阅读 · 0 评论