Java

多线程系列(十八) -AQS原理浅析

一、摘要 在之前的文章中,我们介绍了 ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、Semaphore、ThreadPoolExecutor 等并发工具类的使用方式,它们在请求共享资源的时候,都能实现线程同步的效果。 在使用方式上稍有不同,有的是独占式,多个线程竞争时只有一个线程能执行方法,比如 ReentrantLock 等;有

Vue3 组合函数 element-plus table数据滚动播放

Vue 滚动播放组合函数 import { onMounted, onUnmounted } from "vue"; export function createScroll(tableRef) { let timer = null; function startScroll() { const table = tableRef.value.layout.table.refs;

css 闪烁 左右摆动效果

代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> </style> </head> <body&gt

Android开发:homo计算器

引言 由于众所周知的原因,Homo一词包括在年轻人的群体中广泛传播,本人在看到网上一项目后非常感兴趣,并将其封装成.apk格式的homo calculate应用,可以将不过长的数字转化成114514的数字计算组合,效果如下: 简陋的主界面 简单的计算 用1验证计算正确性 实现过程 一、写Java代码 首先放上大佬的GitHub地址:https://github.com

05-vue

Vue2 直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量。 如果直接调用Vue()方法: Vue框架要求options参数必须是一个纯粹的JS对象,在 {} 中可以给Vue实例大量的key : value 配置项 template配置项:模板,用来指定模板语句 选项 data 数据对象 模板语句的数据来源:data配置项 数据对象在模板语句中使用需

07-ElementPlus组件库

ElementPlus 简介 ElementPlus是饿了么团队研发的,基于Vue3的组件库 准备工作: 创建工程化的Vue项目 选择 TypeScript 参照官方文档安装ElementPlus组件库(当前工程的目录下) main.ts中引入Element Plus组件库 参照官方文档 复制组件代码,调整 常用组件 Button组件 对应的代码: plain 控制背景

01-Ajax&Axios

Ajax Asynchronous Javascript And Xml 传统的请求方式: URL地址栏 超链接 form表单 通过JS代码 window.open(url) document.location.href = url window.location.href = url 缺陷: 页面全部刷新,用户体验较差 用户体验不连贯 概述 Aj

js实现大文件分片上传

一个上传组件,需要具备的功能: 需要校验文件格式可以上传任何文件,包括超大的视频文件(切片)上传期间断网后,再次联网可以继续上传(断点续传)要有进度条提示已经上传过同一个文件后,直接上传完成(秒传) 前后端分工: 前端: 文件格式校验文件切片、md5计算发起检查请求,把当前文件的hash发送给服务端,检查是否有相同hash的文件上传进度计算上传完成后通知后端合并切片 后端: 检查接收到的hash是

Tomcat10

概述 Java: JavaSE 标准版 JavaEE 企业版 JavaME 微型版 Servlet就是JavaEE的13种规范之一 Web系统通信原理 输入URL 域名解析器解析 http://110.242.68.3:80/index.html 发送http协议到110.242.68.3主机,定位80端口 服务器将index.html文件发送给浏览器 浏览器解析并显示 从浏览器到服务器:

力扣刷题笔记-23 合并k个升序链表

找对象是找绝对盟友 学习了这个算法之后,对于链表更加理解了一些。 链表的理解 链表的数据结构就是数据+指针,数据是int,String等类型,指针是什么?指针就是他自己这种类型的节点,直接指向下一个。 而我们在说,“给定一个链表”,实际上给的是一个头节点。这道题涉及到优先级队列,给定的参数是List lists,按照我以前对链表的理解,我就认为lists里面的每个元素都是一个完整的链表。 看完这个

阿里二面:如何定位&避免死锁?连着两个面试问到了!

在面试过程中,死锁是必问的知识点,当然死锁也是我们日常开发中也会遇到的一个问题,同时一些业务场景例如库存扣减,银行转账等都需要去考虑如何避免死锁,一旦线上发生了死锁,那可能年终不保。。。。。下面我们就来聊一聊死锁如何定位,以及如何避免。 什么是死锁 死锁(Deadlock)是指在操作系统里,两个或多个并发线程在执行过程中,因争夺资源而造成的一种互相等待的现象,且无外力干预的情况下,这些线程都无法进

docker-compose 部署apollo

apollo-1.9.2 docker-compose.yaml

aardio 背景透明的3种方式(透明窗体1 webview2,透明窗体2-win-region-bitmap,透明窗体3-winform-transparent-color)

3种透明模式 我给起个名字,也好记忆。 透明模式1:浏览器模式 透明模式2:位图遮罩模式 透明模式3:背景透明模式 aardio 背景透明的3种方式(透明窗体1 webview2,透明窗体2-win-region-bitmap,透明窗体3-winform-transparent-color) 3种透明窗体,主要分成是否可以穿透,遮罩组件,全部显示。 透明窗体1 webview2 优点:可以用ht

3月13每日打卡

净现值计算的程序JAVA import java.util.Scanner; public class NPVCalculator { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入投资项目的年限:");

在Java中如何通过优化代码来节省内存

Java 程序的一个常见问题是高内存使用率,这会导致性能问题甚至崩溃。因此,需要使用内存节省技术来优化 Java 代码并减少内存使用非常重要。 选择正确的数据类型: 使用适当大小的数据类型可以避免不必要的内存浪费。例如,如果你知道一个整数的取值范围在-128到127之间,那么使用byte类型而不是int类型会更节省内存。 对于浮点数,如果精度要求不高,可以使用float而不是double,因

3.13任务

经过两天的研究,今早终于成功完成了更换头像的任务 但是现在头像更换完成后,点击别的fragment就直接闪退了,问题在这里。 fragment无法保留对象,所以要保留授权的话需要在activity中保留,此处的rxpermission就需要用getactivity而不能直接在fragment中用this。报错信息为java.lang.IllegalArgumentException: saveBa

vue使用Echarts常见警告处理方法

【警告一】[ECharts] DEPRECATED: textStyle hierarchy in label has been removed since 4.0. All textStyle properties are configured in label directly now. 这个警告信息是因为你在使用 ECharts 时,使用了旧版本的配置方式,即在 label 的配置项中使用

40_DockerFile简介

Dockerfile 简介 常用保留字 编写 centos 安装 java 环境

开发概念解释 --- maven 和 npm的常识

maven 和 npm有点类似于linux中的apt,apt是linux系统中安装软件的方式比如安装浏览器,maven是java中安装依赖软件的方式比如安装apache的common io工具,npm是nodejs环境中安装依赖的方式比如 jquery工具。而nodejs有点类似于java。我们将这些工具统称为安装包管理器,简称包管理器。其他编程语言也有类似的工具。 maven会将依赖下载到一个指

使用IDEA+groovy快速生成entity、dto、dao、service、serviceImpl

groovy代码 IDEA使用 1、将groovy文件添加到IDEA 2、选择需要生成的表,右键Tools->Scripted Extendsions->generate POJOs.groovy

JS 链表 - 笔记

代码: class ListNode { /** * @constructor * @param {number} val * @param {ListNode} next */ constructor(val, next) { this.val = (val === undefined ? 0 : val);

使用Jenkins搭建CI/CD服务器

1、为什么要 用CI / CD 软件开发的连续方法基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性。从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预。它涉及在每次小迭代中不断构建,测试和部署代码更改,从而减少基于有缺陷或失败的先前版本开发新代码的机会。这种方法有三种主要方法,每种方法都根据最适合您的策略进行应用。 持续集成(Continuous Integratio

Java学习笔记——第十四天

常见算法 什么是算法 算法是解决某个实际问题的过程和方法。 排序算法 冒泡排序 每次都从数组中找出最大值放到数组的后面去。 伪代码(升序排序): 选择排序 每轮选择当前位置,来找出后面的较小值与该位置交换。 伪代码(升序排序): 查找算法 基本查找/顺序查找 遍历数组,依次比较。 在数据量特别大时,基本查找性能很差。 二分查找/折半查找 将数组排序。 二分法查找。 伪代码: 正则表达式

即时通讯技术文集(第35期):IM群聊技术合集(Part2) [共12篇]

为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第35 期。 ​[- 1 -] 直播系统聊天技术(一):百万在线的美拍直播弹幕系统的实时推送技术实践之路 [链接] http://www.52im.net/thread-1236-1-1.html [摘要] 本文作者是美拍的架构师,

Vue学习笔记49--浏览器存储(local Storage + session Storage)

浏览器存储:意思就是本地缓存信息 local Storage 示例一: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.

JAVA实现算法问题25匹马,找出最快的3匹,但是只有5个赛道,每次比赛只能得到5匹马的速度排序,那么最少需要多少次比赛

  1. 前言共有两种情况,这里先给出结论,下面详述,记时和不记时。 记时 自然5次就可以得到答案,每次记时然后得出前三即可; 不记时 结论是至少需要 7 次,下面来一步步分析 2. 不记时情形 正确思路:       分为1 2 3 4 5 共五组。抉择出每一组的第一名,赛跑次数:5次抉择出各小组第一名中跑的最快的。赛跑次数:6次   &nbs

Java 包装类:原始数据类型与迭代器

Java Iterator Iterator 接口提供了一种迭代集合的方法,即顺序访问集合中的每个元素。它支持 hasNext() 和 next() 方法,用于检查是否存在下一个元素以及获取下一个元素。 获取 Iterator 可以使用集合的 iterator() 方法获取 Iterator 实例: 遍历集合 可以使用 hasNext() 和 next() 方法遍历集合: 删除元素 可以使用

LeetCode[题解] 1261. 在受污染的二叉树中查找元素

首先我们看原题 给出一个满足下述规则的二叉树: root.val == 0 如果 treeNode.val == x 且 treeNode.left != null,那么 treeNode.left.val == 2 * x + 1 如果 treeNode.val == x 且 treeNode.right != null,那

JUC源码讲解:逐步解析 Thread.init() 源码

# JUC源码讲解:逐步解析 Thread.init() 源码 抛出问题 我们在 new Thread() 时,init() 方法便会自动调用,用来创建这个线程。那么,创建线程时都发生了什么事?子线程与父线程有何关系?线程是怎么创建的?juc怎么选择 ThreadGroup? 让我们从源码中寻找答案吧! 查看源码 可以看到,init() 传递了 ThreadGroup(划重点),以及 nam

【vscode】vscode配置Java

【vscode】vscode配置Java 前言 ‍ 配环境,需要记录,避免反复踩坑。 ‍ 步骤 ‍ step1:官网走 ‍ 配环境为什么不直接上官网教程,Visual Studio Code - Code Editing. Redefined ‍ ​​ ‍ 点击Java ‍ ​​ ‍ step2:配置必需的环境 ‍ Coding Pack for Java To help you set up

<<  <  450  451  452  453  454  455  456  457  458  459  460  >  >>