- 博客(52)
- 收藏
- 关注
原创 Golang 并发控制模型
Go语言的并发模型是CSP(通信顺序进程),提倡通过通信来进行内存共享,而不是通过共享内存来实现通信。控制并发有三种经典的方式,使用 channel 通知实现并发控制、使用 sync 包中的 WaitGroup 实现并发控制、使用 Context 上下文实现并发控制。
2024-08-03 00:15:39 903 3
原创 go 语言中 init() 函数是什么时候执行的?
在 golang 中, init() 函数是在main() 函数之前执行的。全局常量、变量是在 init 函数之前初始化的。Go语言代码执行顺序为:import –> const –> var –>init()–>main()。
2024-08-01 21:57:12 976
原创 go 语言实现快速排序
快速排序是一种分治策略的排序算法,关键过程是对数组进行划分。选择一个基准值(pivot element),围绕着这个基准值划分子数组,对子数组递归调用快速排序,直到数组有序。
2024-07-17 18:39:05 566
原创 GO语言中的接口(interface)
在Go语言中,接口(interface)是方法的集合,它允许我们定义一组方法但不实现它们,任何类型只要实现了这些方法,就被认为是实现了该接口。接口更重要的作用在于多态实现,它允许程序以多态的方式处理不同类型的值。接口体现了程序设计的多态和高内聚、低耦合的思想。
2024-07-13 19:43:07 1765 1
原创 Golang 中的 slice 为什么是并发不安全的?
Golang 中的 slice 为什么是并发不安全的?怎样实现一个并发安全的 slice ?
2023-05-10 11:56:08 2463 1
原创 【JAVA】Java内存模型JMM
JMM的目的是为了解决Java多线程对共享数据的读写一致性问题,通过Happens-Before语义定义了Java程序对数据的访问规则,修正之前由于读写冲突导致的Cache数据不一致的问题。具体到Hotspot VM的实现,主要是由OrderAccess类定义的一些列的读写屏障来实现JMM的语义。JVM内存模型则是指JVM的内存分区。...
2023-02-08 16:57:21 133
原创 Java基础问题整理(二)
文章目录Redis分布式锁:CASSynchronized锁升级过程ReentrantLockJava对象的构成synchronized还是Lock的区别:volatilevolatile和synchronized的区别MySQL数据库中的各种锁MySQL主从复制原理RabbitMQ索引数据库事务
2021-01-30 10:38:04 294
原创 Java基础问题整理(一)
文章目录java基础Java8的新特性Lamda表达式的优缺点Java语言有哪些特点访问修饰符 public,private,protected,以及不写(默认)时的区别java内部类抽象类和接口的区别创建对象的过程方法重写和方法重载的区别面向对象和面向过程的区别面向对象的特征sleep和wait的区别?反射泛型&和&&的区别final 有什么用?final finally finalize区别this关键字的用法super关键字的用法this与super的区别staticbreak
2021-01-30 00:08:21 162
原创 秒杀项目详解
商城秒杀项目详解使用事务处理保证秒杀成功和生成订单的一致性;使用Redis做页面缓存、预减库存、接口限流等功能,提高系统性能;使用RabbitMQ消息队列实现异步下单,降低秒杀时对数据库访问的压力;使用图形验证码答题的方式防止机器人的恶意访问;使用redis分布式锁和数据库乐观锁防止超卖;使用Jmeter设置线程组模拟高并发进行测试;一、秒杀技术难点:1、极短时间.
2020-12-17 16:00:33 945
原创 【设计模式】8种方式实现单例模式
8种方式实现单例模式1、饿汉式的两种写法饿汉式的特点:在获取单例对象之前对象就已经创建完成了。package com.JUC编程.volatile0;public class SingleEh { //饿汉式单例模式 //1.静态常量 /* private static final SingleEh singleEh=new SingleEh(); private SingleEh(){ } public static SingleEh getSingl
2020-11-26 21:25:31 119
原创 【JVM】Java垃圾回收与垃圾收集器
文章目录java垃圾回收机制GC一、Where:针对哪些区域进行垃圾回收?(java堆和方法区)1、JVM的内存模型/内存布局2、为什么java堆和方法区需要进行垃圾回收?二、Who:哪些对象被回收? (对象存活判定算法、4种引用)1、判断对象是否存活2、GC Roots对象3、JVM中4种引用和使用场景4、判断对象的可达性三、When:何时触发垃圾回收机制GC?(Minor GC和Full GC)1、Minor GC2、Full GC四、How:对象如何被回收?(垃圾回收算法)1、标记—清除算法(Maik
2020-11-17 21:22:26 231
原创 【JVM】Java虚拟机——JVM
文章目录深入理解Java虚拟机——关于虚拟机的简单介绍1.前言2.JVM介绍(1)JDK,JRE,JVM三者的联系(2)JVM赋给Java的特性(Java语言的跨平台)(3)Java程序的运行过程深入理解Java虚拟机——关于虚拟机的简单介绍1.前言Java虚拟机,又称JVM。我们平常写java程序的时候几乎是感觉不到JVM的存在的,我们只需要根据Java规范去编写类,然后就可以运行程序了,只有程序出现bug了,我们才有可能在控制台上看到一些JVM报错的信息,比如内存溢出异常等问题,通过对Java虚
2020-11-07 21:23:38 149
原创 【JVM】虚拟机类加载机制和类加载器
文章目录JVM类加载机制一、概述二、类加载时机1、类的生命周期2、初始化时机(类加载时机)三、类加载过程1、加载2、连接(1)验证(2)准备(3)解析3、初始化四、类加载器1、根类加载器(启动类)2、扩展类加载器3、系统类加载器五、类加载机制1、全盘负责2、双亲委派3、缓存机制JVM类加载机制一、概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,
2020-11-07 17:48:23 576 1
原创 【计算机网络】常用软件架构C/S和B/S
文章目录C/S和B/S架构一、C/S(Client Server)两层架构1、C/S架构背景:2、两层架构:3、C/S架构流程:4、C/S架构的优点:5、C/S架构的缺点:二、B/S(Browser Server)三层架构1、B/S架构背景:2、三层架构:3、B/S架构的三种形式:4、B/S常用架构流程:5、B/S架构的优点:6、B/S架构的缺点:三、C/S与B/S的结构区别1)比较大的差别2)小的差别C/S和B/S架构一、C/S(Client Server)两层架构1、C/S架构背景: C/S
2020-11-06 20:47:42 12231
原创 【计算机网络】URI、URL、URN的区别
URI、URL和URN之间的区别 HTTP规范将更通用的概念URI作为其资源标识符,但是实际上,HTTP应用程序处理的只是URI的URL子集。 1、URI全名为Uniform Resource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成。 2、URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来标识资源。 3、URN全名为Uniform Resource Name(统
2020-11-05 18:09:35 469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人