技术教程

为什么?为什么StringBuilder是线程不安全的?

推荐学习周一福利到!献上“独家全新”MySQL进阶套餐,简直就是血赚 死磕「并发编程」100天,全靠阿里大牛的这份最全「高并发套餐」 之前我们对比了String、StringBuilder和StringBuffer的区别,其中一项便提到StringBuilder是非线程安全的,那么是什么原因导致了StringBuilder的线程不安全呢?原因分析如果你看了S …

Kotlin+SpringBoot+Redis+Lua实现限流访问控制详解

1、Redis是简介redis官方网Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助工程基于基础架构 Kotlin+SpringBoot+MyBa …

「Java多线程」内置锁(Synchronized)的前世今生

什么互斥和同步互斥是指某一资源同一时间只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法控制对资源的访问顺序同步是指在互斥的基础上实现对资源的有序访问,即:也是不可以同时访问,并且还需要按照某种顺序来运行。什么是互斥量互斥量mutex是Linux提供一把 互斥锁 mutex(也称之为 互斥量 )用于对共享资源加锁,保证一时间只允许一个线程对其进行访 …

一个简单的代码生成器_简单的代码生成程序

  前言  逆向工程从数据库表直接生成代码,是日常开发中常用的敏捷开发手段,常见的例如:mybatis-plus的代码生成器等  为什么要自己写代码生成器呢?MP的生成器不香吗?香!  但是自己写的工具用起来最顺手,可以随意扩展,想怎么玩就怎么玩,只要自己有想法,玩出花来都没问题,当然了,能力有限,现在还只能实现简单版本,更多骚操作自己发挥!  思路:  1 …

不要让你的Java对象"逃逸"了

经常会有面试官会问一个问题:Java中的对象都是在"堆"中创建吗?然后跟求职者大谈特谈"逃逸分析",说通过"逃逸分析",JVM会将实例对象分配在"栈"上。其实这种说法是并不是很严谨,最起码目前在HotSpot中并没有在栈中存储对象的实现代码!什么是逃逸分析?首先逃逸分析是一种算法,这套算法在Ja …

同事如此使用StringBuilder,我给他提了一个Bug

字符串的拼接在项目中使用的非常频繁,但稍不留意往往又会造成一些性能问题。字符串的拼接在项目中使用的非常频繁,但稍不留意往往又会造成一些性能问题。最近 Review 代码时发现同事写了如下的代码,于是给他提了一个 bug。@Testpublic void testForAdd() {String result = "NO_";for (int …

Qt C++ 实现无边框窗体/自定义标题栏/圆角/窗口拖拽拉升和阴影

在使用Qt做界面开发时,为了提升视觉效果,经常会采用无边框窗口设计。实现无边框其实很简单,一行代码搞定。setWindowFlag(Qt::FramelessWindowHint);由于移除了系统默认标题栏,窗口失去了原生的移动和缩放功能,需通过代码手动实现。本文旨在使用 Qt 框架实现一个无边框窗口,具备以下核心功能:· 去除系统默认的窗口边框和标题栏;· …

鸿蒙应用开发从入门到实战(十二):ArkUI组件Button&Toggle

大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容、欢迎关注!ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解按钮组件Button和Toggle的使用。一、按钮Button1.1 概述Button为按钮组件,通常用于响应用户的点击 …