机制result java
Java语言基础知识全总结
一.Java的优点 1. 跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快 2. 纯面向对象。Java 所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特点? 3. Jav ......
在学习JavaWeb以及Java框架中的疑惑
1. Sevlet和SpringMVC与SpringBoot以及Spring Servlet是服务器端小程序,本质上是属于Controller层的,举个例子,LoginServlet和LoginController是划等号的。 Spring MVC是Spring的一个模块,是一个web框架。通过Di ......
LeedCode刷题(2)-Java随机数练习
2.随机数练习 (1)随机生成数 题目:请编写如下所示程序 随机生成并显示一位数的正整数(1~9的值) 随机生成并显示一位数的负整数(-9 ~ -1的值) 随机生成并显示两位数的正整数(10~99的值) ①Random类总结 random是Java提供的一个类库,它的实例会生成一连串的伪随机数 Ra ......
java——redis随笔——实战——优惠券秒杀——分布式锁
注意:synchronized用户单机(jvm)上面的锁,对于分布式应用则无能为力。所以对于分布式系统,则需要分布式锁。 分布式锁:满足分布式系统或集群模式下多线程课件并且可以互斥的锁 分布式锁的核心思想就是让大家共用同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心 ......
用java写一个计算机
public class Demo07 { public static void main(String[] args) { //用scanner创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in);//System.in是输入的意思 ......
java的边框
1.关于边框 是能够在swing组件边缘周围渲染边框的对象的接口,边框就是对组件边界的装饰,可以为组件添加边框的色彩,也可以在边框上添加标题,让组件更加美观好看。 2.部分边框类 BevelBorder : 实现简单的两行斜角边框的类。 参数: protected int bevelType 斜面类 ......
[Java]Java初学之多线程03--同步与锁
Intro 本篇文章主要关于多线程"同步"以及"锁"的相关内容~ 正文 同步(Synchronize) 概念 “同步”是基于“并发”的需求而出现的 所谓并发,就是同一个对象被多个线程同时操作,比如两个人同时从同一个账户取钱,再比如春运抢票。 多个线程同时使用一个资源,必然会造成混乱。想象一下从前的线 ......
Java Hotspot G1 GC 原理
目录原理概念初始堆占用情况标记Remember Set原理Card TableCollect Set停顿预测模型G1的垃圾回收过程对象分配线程本地分配缓冲区Eden 区中分配Humongous 区分配堆内存结构传统的 GC 收集器G1 收集器G1 垃圾收集周期Young GCYoung GC 总结M ......
Java面试专题
Java面试专题 面试题背后的逻辑->拆分问题讲解->回答方式及参考问题 Redis篇 使用场景 1、你在最近的项目中哪些场景使用了redis? 缓存:缓存击穿,缓存穿透,缓存雪崩,双写一致性,数据过期策略,数据淘汰策略 分布式锁:setnx,redission 2、什么是缓存穿透,怎么解决? 缓存 ......
Java基础 多线程的 6 种状态
Java 的虚拟机当中没有定义运行状态,因为当线程抢夺到 CPU 执行权的时候,虚拟机会把当前线程交给操作系统管理,虚拟机就不管了。 ......
Java基础 阻塞队列的方式实现等待唤醒机制,哪里体现了等待?哪里又体现了唤醒?
Java的阻塞队列(Blocking Queue)可以用来实现等待唤醒机制,其中等待和唤醒的操作在队列的不同方法中体现: 1.等待: 在阻塞队列中,等待通常发生在以下情况: 2.当队列为空时,消费者线程试图从队列中取出元素时,它会被阻塞,直到队列中有元素可供消费。这种等待是通过阻塞队列的take() ......
Java基础 等待唤醒机制(阻塞队列方式实现)
等待唤醒机制还可以用 阻塞队列的方式进行实现 练习:利用阻塞队列完成生产者和消费者(等待唤醒机制)的代码 细节:生产者和消费者必须使用同一个阻塞队列 阻塞队列的创建方式(泛型:队列里面数据的类型):ArrayBlockingQueue<String> queue = new ArrayBlockin ......
Java基础 Java 为什么非要在 锁对象身上调用 wait()方法 和 notifyAll()方法
在Java中,wait()和notify()方法必须在同步块或同步方法内部使用,通常在锁对象上调用,有以下原因: 1.互斥性: 当你在同步块内部使用wait()和notify()方法时,它们与锁对象紧密相关,确保在调用wait()和notify()时能够维持互斥性。这意味着在调用wait()时,当前 ......
Java基础 什么是生产者和消费者
在Java中,"生产者-消费者"(Producer-Consumer)是一种常见的并发编程模型,用于协调多个线程之间的工作,其中一些线程充当生产者,而其他线程充当消费者。这模型通常用于处理共享数据的情况,其中生产者线程生成数据并将其放入共享缓冲区,而消费者线程则从缓冲区中取出数据并进行处理。主要特点 ......
Java基础 等待唤醒机制——生产者代码实现
package pojo.xc01;public class Cook extends Thread{ @Override public void run() { while (true) { synchronized (Desk.lock) { if (Desk.count == 0) break ......
Java基础 等待唤醒机制——消费者代码实现
等待唤醒机制的三个角色:生产者、消费者、控制生产者和消费者的第三者 代码: package pojo.xc01;//用来控制生产者和消费者的执行public class Desk { //桌子上是否有面条(0:没有面条 1:有面条) //用布尔类型表示的话有一个小弊端,因为布尔类型只有两个值,只能控 ......
java——redis随笔——实战——优惠券秒杀
黑马视频地址:https://www.bilibili.com/video/BV1cr4y1671t?p=49&spm_id_from=pageDriver&vd_source=79bbd5b76bfd74c2ef1501653cee29d6 csdn地址:https://blog.csdn.net ......
Java基础 当某一个线程执行代码时发现锁已经被锁住了,该线程会怎么样?
当一个线程尝试获取一个已经被其他线程锁住的锁时,它的行为取决于所使用的编程语言和锁的类型。一般情况下,有以下几种可能的行为: 1.阻塞等待:线程会被阻塞,直到锁变为可用。这是最常见的情况,通常用于互斥锁。在Java中,可以使用synchronized关键字或ReentrantLock类来实现这种行为 ......
Java中的Set集合
Set集合的特点:不能存储相同元素。 Set接口两大实现(常用):HashSet TreeSet Set是一个抽象接口,不能对Set进行实例化。 (Set set = new Set(); )错误 该接口主要继承于Collection接口,所以具有Collection的一些常见的方法。 1.add( ......
你知道Java21中的顺序集合吗?
在Java 21中,处理集合的方式得到了改进,因为三个新的接口已经融入了现有的类型层次结构。这些顺序集合为我们提供了一个统一的API来访问第一个和最后一个元素,并以相反的顺序处理集合。 为了更好地理解顺序集合是什么,让我们回顾一下集合之前的样子。 Java集合框架在Java 1.2中引入的Colle ......
什么是 Angular 应用的 rerender 机制
我们在某些 Angular 应用的 angular.json 文件里,能看到下面的代码: prerender": { "builder": "@nguniversal/builders:prerender", "options": { "routes": ["/"] } } 首先,让我们来理解上述代 ......
Java 垃圾回收机制
目录垃圾回收的基础知识堆空间的基本结构内存分配和回收原则对象优先在 Eden 区分配大对象直接进入老年代长期存活的对象将进入老年代GC 分类对象是否可被回收引用计数算法可达性分析算法引用类型强引用(StrongReference)软引用(SoftReference)弱引用(WeakReference ......
java redis 短信业务应用
java redis 短信业务应用 短信业务场景:根据实际业务来通知客户,在短信的MQ中新增字段:是否需要发送短信的标识,短信微服务可以接收到MQ后根据该字段来判断是否发送。 如果发送端MQ的事件的操作是分开的,比如步骤1:修改订单, 步骤2:产生修改后的费用去支付,在支付成功之后才发送该MQ消息。 ......
Java提升技术,进阶为高级开发和架构师的路线
原文网址:Java提升技术,进阶为高级开发和架构师的路线-CSDN博客 简介 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 ......
Java拾贝第十二天——IO流之对象序列化与对象流
把一个对象转换为二进制流就是对象的序列化。(对象👉二进制流) 二进制流转换为一个对象就是对象的反序列化。(二进制流👉对象) 二进制流也就是byte[]数组 如果一个类的对象想要被序列化,则这个类必须要实现java.io.Serializable接口。 该接口定义如下: public interf ......
Java基础 Lock 锁
代码示例: package pojo;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Ticket extends Thread{ public s ......
Java基础 同步方法
同步代码块 就是 把一段代码给锁起来,这样就可以解决多线程操作共享数据时带来的数据安全问题 但是如果我们想要把一个方法里面所有的代码全都锁起来,就没有必要用同步代码块了,我们可以直接把 synchronized 加在方法上,这个方法就叫做同步方法 同步方法的格式: 修饰符 synchronized ......