framework国产solon java

[Java]Java初学之多线程03--同步与锁

Intro 本篇文章主要关于多线程"同步"以及"锁"的相关内容~ 正文 同步(Synchronize) 概念 “同步”是基于“并发”的需求而出现的 所谓并发,就是同一个对象被多个线程同时操作,比如两个人同时从同一个账户取钱,再比如春运抢票。 多个线程同时使用一个资源,必然会造成混乱。想象一下从前的线 ......
Java 线程 03

Java Hotspot G1 GC 原理

目录原理概念初始堆占用情况标记Remember Set原理Card TableCollect Set停顿预测模型G1的垃圾回收过程对象分配线程本地分配缓冲区Eden 区中分配Humongous 区分配堆内存结构传统的 GC 收集器G1 收集器G1 垃圾收集周期Young GCYoung GC 总结M ......
原理 Hotspot Java G1 GC

Java面试专题

Java面试专题 面试题背后的逻辑->拆分问题讲解->回答方式及参考问题 Redis篇 使用场景 1、你在最近的项目中哪些场景使用了redis? 缓存:缓存击穿,缓存穿透,缓存雪崩,双写一致性,数据过期策略,数据淘汰策略 分布式锁:setnx,redission 2、什么是缓存穿透,怎么解决? 缓存 ......
专题 Java

Java基础 多线程的 6 种状态

Java 的虚拟机当中没有定义运行状态,因为当线程抢夺到 CPU 执行权的时候,虚拟机会把当前线程交给操作系统管理,虚拟机就不管了。 ......
线程 状态 基础 Java

Java基础 阻塞队列的方式实现等待唤醒机制,哪里体现了等待?哪里又体现了唤醒?

Java的阻塞队列(Blocking Queue)可以用来实现等待唤醒机制,其中等待和唤醒的操作在队列的不同方法中体现: 1.等待: 在阻塞队列中,等待通常发生在以下情况: 2.当队列为空时,消费者线程试图从队列中取出元素时,它会被阻塞,直到队列中有元素可供消费。这种等待是通过阻塞队列的take() ......
队列 机制 方式 基础 Java

Java基础 等待唤醒机制(阻塞队列方式实现)

等待唤醒机制还可以用 阻塞队列的方式进行实现 练习:利用阻塞队列完成生产者和消费者(等待唤醒机制)的代码 细节:生产者和消费者必须使用同一个阻塞队列 阻塞队列的创建方式(泛型:队列里面数据的类型):ArrayBlockingQueue<String> queue = new ArrayBlockin ......
队列 机制 方式 基础 Java

Java基础 Java 为什么非要在 锁对象身上调用 wait()方法 和 notifyAll()方法

在Java中,wait()和notify()方法必须在同步块或同步方法内部使用,通常在锁对象上调用,有以下原因: 1.互斥性: 当你在同步块内部使用wait()和notify()方法时,它们与锁对象紧密相关,确保在调用wait()和notify()时能够维持互斥性。这意味着在调用wait()时,当前 ......
方法 Java notifyAll 对象 基础

Java基础 什么是生产者和消费者

在Java中,"生产者-消费者"(Producer-Consumer)是一种常见的并发编程模型,用于协调多个线程之间的工作,其中一些线程充当生产者,而其他线程充当消费者。这模型通常用于处理共享数据的情况,其中生产者线程生成数据并将其放入共享缓冲区,而消费者线程则从缓冲区中取出数据并进行处理。主要特点 ......
生产者 消费者 基础 Java

Java基础 等待唤醒机制——生产者代码实现

package pojo.xc01;public class Cook extends Thread{ @Override public void run() { while (true) { synchronized (Desk.lock) { if (Desk.count == 0) break ......
生产者 机制 代码 基础 Java

Java基础 等待唤醒机制——消费者代码实现

等待唤醒机制的三个角色:生产者、消费者、控制生产者和消费者的第三者 代码: package pojo.xc01;//用来控制生产者和消费者的执行public class Desk { //桌子上是否有面条(0:没有面条 1:有面条) //用布尔类型表示的话有一个小弊端,因为布尔类型只有两个值,只能控 ......
机制 消费者 代码 基础 Java

Java基础 生产者和消费者(等待唤醒机制)

生产者和消费者完整的执行过程: ......
生产者 机制 消费者 基础 Java

java——redis随笔——实战——优惠券秒杀

黑马视频地址:https://www.bilibili.com/video/BV1cr4y1671t?p=49&spm_id_from=pageDriver&vd_source=79bbd5b76bfd74c2ef1501653cee29d6 csdn地址:https://blog.csdn.net ......
优惠券 实战 随笔 redis java

Java基础 当某一个线程执行代码时发现锁已经被锁住了,该线程会怎么样?

当一个线程尝试获取一个已经被其他线程锁住的锁时,它的行为取决于所使用的编程语言和锁的类型。一般情况下,有以下几种可能的行为: 1.阻塞等待:线程会被阻塞,直到锁变为可用。这是最常见的情况,通常用于互斥锁。在Java中,可以使用synchronized关键字或ReentrantLock类来实现这种行为 ......
线程 代码 基础 Java

如何选冲锋衣 —— 国产冲锋衣也被卡脖子了?

首先要说明本人并不是专业的“冲锋衣”领域人士,只不过作为一个外行人在这里讨论讨论。 首先要知道一点,你就是国外大品牌的冲锋衣不论是产品质量还是品牌力上都要远远好于国内品牌,当然价格往往也会数倍甚至是十多倍于国内品牌的冲锋衣。 外国大品牌的冲锋衣往往都是使用GORE-TEX PRO面料的,这是一种专业 ......
国产

Java中的Set集合

Set集合的特点:不能存储相同元素。 Set接口两大实现(常用):HashSet TreeSet Set是一个抽象接口,不能对Set进行实例化。 (Set set = new Set(); )错误 该接口主要继承于Collection接口,所以具有Collection的一些常见的方法。 1.add( ......
Java Set

你知道Java21中的顺序集合吗?

在Java 21中,处理集合的方式得到了改进,因为三个新的接口已经融入了现有的类型层次结构。这些顺序集合为我们提供了一个统一的API来访问第一个和最后一个元素,并以相反的顺序处理集合。 为了更好地理解顺序集合是什么,让我们回顾一下集合之前的样子。 Java集合框架在Java 1.2中引入的Colle ......
顺序 Java 21

Java反序列化之URLDNS链

URLDNS链是java原生态的一条利用链,通常用于存在反序列化漏洞进行验证的,因为是原生态,不存在什么版本限制。 ......
序列 URLDNS Java

Java 垃圾回收机制

目录垃圾回收的基础知识堆空间的基本结构内存分配和回收原则对象优先在 Eden 区分配大对象直接进入老年代长期存活的对象将进入老年代GC 分类对象是否可被回收引用计数算法可达性分析算法引用类型强引用(StrongReference)软引用(SoftReference)弱引用(WeakReference ......
机制 垃圾 Java

java redis 短信业务应用

java redis 短信业务应用 短信业务场景:根据实际业务来通知客户,在短信的MQ中新增字段:是否需要发送短信的标识,短信微服务可以接收到MQ后根据该字段来判断是否发送。 如果发送端MQ的事件的操作是分开的,比如步骤1:修改订单, 步骤2:产生修改后的费用去支付,在支付成功之后才发送该MQ消息。 ......
短信 业务 redis java

Java提升技术,进阶为高级开发和架构师的路线

​ 原文网址:Java提升技术,进阶为高级开发和架构师的路线-CSDN博客 简介 Java怎样提升技术?怎样进阶为高级开发和架构师?本文介绍靠谱的成长路线。 首先点明,只写业务代码是无法成长技术的。提升技术的两个方法是: 有技术大佬带 有技术大佬的资料 本文介绍靠谱的技术进阶资料,让你比其他人更有竞 ......
架构 路线 技术 Java

JAVA - Obejects api

package com.demo2; import com.demo.Demo1; import java.util.Objects; public class Test { public static void main(String[] args) { String name = null; S ......
Obejects JAVA api

Java拾贝第十二天——IO流之对象序列化与对象流

把一个对象转换为二进制流就是对象的序列化。(对象👉二进制流) 二进制流转换为一个对象就是对象的反序列化。(二进制流👉对象) 二进制流也就是byte[]数组 如果一个类的对象想要被序列化,则这个类必须要实现java.io.Serializable接口。 该接口定义如下: public interf ......
对象 序列 Java

Java基础 Lock 锁

代码示例: package pojo;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Ticket extends Thread{ public s ......
基础 Java Lock

Java基础 同步方法

同步代码块 就是 把一段代码给锁起来,这样就可以解决多线程操作共享数据时带来的数据安全问题 但是如果我们想要把一个方法里面所有的代码全都锁起来,就没有必要用同步代码块了,我们可以直接把 synchronized 加在方法上,这个方法就叫做同步方法 同步方法的格式: 修饰符 synchronized ......
基础 方法 Java

学习如何新建java项目

java的程序的运行机制 编译型:全局翻译 解释型:实时更新 在idea写下hello,world [破解激活码] IDEA 2023.2.3 最新激活码,注册码(亲测好用) - 异常教程 (exception.site) 新建一个文件夹 在文件夹新建一个class Java语法 创建一个新项目(重 ......
项目 java

Java基础 同步代码块

同步代码块: 利用同步代码块把操作共享数据的代码给锁起来,让同步代码块里面的代码是轮流去执行的 格式: synchronized (锁对象) { 操作共享数据的代码 } 细节: 1. 在最初,锁的状态是默认打开的,如果有一个线程进去了,锁就会自动关闭 2. 当锁里面全部代码都执行完毕了,线程出来了, ......
代码 基础 Java

aardio调用java语言

一、引入java 默认只要在 aardio 中调用 import java; 就会自动搜索系统可用的 JRE,如果没有找到 JRE,会自动导入 java.jre.v8 扩展库,并自动安装 OpenJDK JRE v8 。 注:如果系统已经安装了java6,就会用系统自带的java6,而不会自动安装O ......
语言 aardio java

Java基础 线程的生命周期

1. 当创建线程对象的时候,是新建状态 2. 新建完之后 调用 start()方法 就变成了就绪状态(是在调用完了 start() 方法之后才变成了就绪状态)。在就绪状态下,线程开始抢夺 CPU 的执行权。注意是正在抢,还没有抢到,没抢到就无法执行代码。所以就绪状态 有执行资格,但没有执行权(有执行 ......
线程 周期 生命 基础 Java

获取Java21所有启动参数及默认值

各版本获取启动参数命令: java -XX:+PrintFlagsFinal -version > jvm_flags.txt 所有参数: [Global flags] int ActiveProcessorCount = -1 {product} {default} uintx AdaptiveS ......
参数 Java 21

入门篇-其之七-Java运算符(下)

一、三元运算符的使用 三元运算符(也称作三目运算符),使用:和?表示,其格式为:布尔表达式 ? 表达式1 : 表达式2 如果布尔表达式的计算结果是true,那么执行表达式1;否则,如果布尔表达式的计算结果是false,则执行表达式2。 表达式1和表达式2计算结果的数据类型必须要和左侧变量定义的数据类 ......
运算符 Java
共10720篇  :78/358页 首页上一页78下一页尾页