threadlocal 20230615 java lang

day02-Java基础语法

day02 - Java 基础语法 1. 注释 ​ 注释是对代码的解释和说明文字。 Java 中的注释分为三种: 单行注释: // 这是单行注释文字 多行注释: /* 这是多行注释文字 这是多行注释文字 这是多行注释文字 */ 注意:多行注释不能嵌套使用。 文档注释(暂时用不到): /** 这是多行 ......
语法 基础 Java day 02

Java SpringBoot Test 单元测试中包括多线程时,没跑完就结束了

如何阻止 Java SpringBoot Test 单元测试中包括多线程时,没跑完就结束了 使用 CountDownLatch CountDownLatch、CyclicBarrier 使用区别 多线程 ThreadPoolTaskExecutor 应用 Java BasePooledObjectF ......
线程 SpringBoot 单元 Java Test

【Java 并发】【八】【Atomic】【三】LongAdder的原理-分段锁提升并发性能

1 前言 上一节我们讲解了cas的缺陷,无法同时更新多个变量、以及ABA的问题。以及如果使用AtomicReference解决同时更新多个变量,如果使用AtomicStampedReference解决ABA的问题,这节我们就来讲解CAS带来的另外一个问题,在并发激烈的时候,产生大量的自旋,空耗CPU ......
LongAdder 原理 性能 Atomic Java

【Java 并发】【八】【Atomic】【三】AtomicReference、AtomicStampReference原理

1 前言 上节我们看了AtomicInteger、AtomicBoolean的原理,这一篇我们就来说说Atomic系列的另一个分类AtomicReference和AtomicStampReference。 2 多个变量修改的原子性 JUC虽然提供了AtomicInteger、AtomicBoolea ......

Java新手的随笔

算术运算符:+,-,*,/,%(求余),++(自加),-- a=3,b=a++,c=++a 运行上三个之后a=5,b=3,c=5 赋值运算符 := 关系运算符:>,<,>=,<=,==,!=,instanceof 逻辑运算符:&&,||,! 位运算符:&,|,^,~,>>(右移),<<(左移),>> ......
随笔 新手 Java

java笔记(this,super,override,instanceof,static)

super关键字的一些注意事项 子类在执行构造方法时,如果显式使用super()显式调用父类构造方法,则该调用必须放代码块在第一行 super必须出现在子类的方法或者构造方法中 使用this()显示调用构造方法,则该调用必须放在代码块第一行 由于第一条和第三条限制,super和this不能同时调用构 ......
instanceof override 笔记 static super

JAVA第三次作业

分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。(知识点:循环语句) 方法一: package xhy; public class Text { public static void main(String[] args) { // TODO Auto-gene ......
JAVA

【Java 并发】【八】【Atomic】【二】AtomicInteger、AtomicBoolean原理

1 前言 这节我们从AtomicInteger这个比较简单的原子类开始,来看看AtomicInteger的底层原理。 2 实测样例对比线程安全性 在说AtomicInteger的底层原理之前呢,我们先来看个例子感受下原子类: static修饰的共享变量,我们开启两个线程对共享变量进行10000次+1 ......

如何用java校验SQL语句的合法性?(提供五种解决方案)

方案一:使用JDBC API中提供的Statement接口的execute()方法 要在Java中校验SQL语句的合法性,可以使用JDBC API中提供的Statement接口的execute()方法。这个方法会尝试执行给定的SQL语句,如果SQL语句不合法,则会抛出一个SQLException异常 ......
语句 合法性 解决方案 方案 java

java学习日记20230404-String类

String类 String对象用于保存字符串,也就是一组字符序列; 字符串常量对象使用双引号包括起来的字符序列 字符串的字符使用unicode字符编码,一个字符(不区分字母还是汉字)占用两个字节 String常用的构造器: new String(); new String(String origi ......
20230404 日记 String java

Java第三次 上机练习+作业

上机练习: 1.分别使用for循环,while循环,do循环求1-100之间所有能被3整除的整数的和。(知识点:循环语句) public static void main(String[] args) { // TODO Auto-generated method stub int sum=0; f ......
Java

Vavr——一个颠覆JAVA的库

前言 Java8 在一定程度上支持了函数式编程,但标准库提供的函数式 API 不是很完备和友好。为了更好的进行函数式编程,我们就不得不借助于第三方库,而 VAVR 就是这方面的佼佼者,它可以有效减少代码量并提高代码质量。本文旨在快速的介绍一个VAVR提供的一些功能,以便我们能够快速入门VAVR。本文 ......
Vavr JAVA

剑指offer(Java)-数组中的逆序对(困难)

题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= 数组长度 <= 50000 解题思路: 这道题的核心在于 归并排序,在归并排序的基础上进行求解 逆 ......
逆序 数组 offer Java

线程间数据传递之ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal

前言 在JAVA中线程之间传输数据的方式有多种,而本文旨在探讨ThreadLocal及其衍生类的使用场景。 使用场景 业务系统的参数传递:在我们的业务系统中可能会用到许多公共参数,可能是用户的token信息,在我们链路中可能某一个方法需要用到它,那么我们又不想一层层的传递它。 分布式系统要打通各个系 ......

【Java 并发】【八】【Atomic】【一】JUC下的Atomic原子类体系概览

1 前言 这节我们就开始看看Atomic原子类系列,JUC包下提供的原子类底层的实现原理基本都是差不多的,都是基于volatile和CAS操作来保证线程安全的,我们后续会着重分析几个类。 2 概览 我们看下JUC下边都有哪些原子类: 看上面的图形,我们使用红色圈中的那些,就是我们要着重讨论的,一共分 ......
Atomic 概览 原子 体系 Java

Java 正则表达式

java.util.regex 包主要包括以下三个类: Pattern 类: pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一 ......
正则 表达式 Java

java序列化 和 json序列化 速度对比

结论 数据包大小区别不大。 但是小对象 json 快,约快3倍。 大对象java的序列化速度慢慢追平json(单个对象json长度3000的左右追平),这个可能和java对象转json有关系,但是装换这步在序列化前必不可可少 另外序列化和不止和对象大小有关还和字段数量有关系,这个因素我没测试,我这里 ......
序列 速度 java json

Java基础

本文是作者通过学习B站韩顺平老师2021年的《30天学会Java》和尚硅谷宋红康老师的《Java》视频写的Java学习笔记,也是作者写的第一篇关于编程开发语言的笔记,内容可能有些冗余,但是它可以作为你的在线Java”词典“查阅。关于文末的JDK新特性还会持续补充。如果文中有什么错误欢迎评论区留言,作... ......
基础 Java

Java-Day-3(运算符 + 标识符 + 键盘输入)

Java-Day-3 运算符 算术运算符 关系运算符 [ 比较运算符 ] 逻辑运算符 赋值运算符 三元运算符 位运算符 [ 需要二进制基础 ] 算术运算符 +、-、*、/ System.out.println(10.0 / 4); //2.5 double d = 10 / 4; //2.0 //数 ......
标识符 运算符 标识 Java-Day 键盘

Java多线程

1.可见性、原子性和有序性问题 多线程有三大特性,分别是可见性、原子性和有序性。 1.1可见性 在单核时代,所有的线程都是在一颗CPU上执行,CPU缓存与内存的数据一致性容易解决。因为所有线程都是操作同一个CPU的缓存,一个线程对缓存的写,对另外一个线程来说一定是可见的。一个线程对共享变量的修改,另 ......
线程 Java

如何使用Java程序实现二叉数

二叉树是一种重要的数据结构,它由一组节点组成,每个节点可以拥有最多两个子节点。使用Java可以很容易地实现一个二叉树。下面将介绍如何使用Java实现二叉树。 二叉树的节点定义 一个二叉树的节点可以定义为一个类,其中至少需要包含以下属性: 节点值 左子节点 右子节点 在Java中,我们可以通过如下方式 ......
程序 Java

使用JAVA实现冒泡排序算法

冒泡排序是最简单的排序算法之一,它的基本思路是将待排序的数组中相邻的元素进行比较和交换,这样一趟下来,最大(或最小)的元素就被交换到了最后的位置,然后再对剩下的元素进行同样的操作。下面是实现冒泡排序的Java代码: public class BubbleSort { public static vo ......
算法 JAVA

如何使用JAVA实现选择排序

当我们需要在Java中对一堆数据进行排序时,有很多种排序算法可以选择,其中之一就是选择排序。选择排序是一种简单的排序算法,基本思路是在待排序的元素中找到最小值,并将它放在数组的起始位置。然后在剩下的未排序元素中重复这个过程,直到所有元素都被排序。下面是如何使用Java实现选择排序的方法。 实现选择排 ......
JAVA

3.31Java作业

分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。(知识点:循环语句) package test; public class ass { public static void main(String[] args) { // TODO Auto-generated ......
3.31 Java 31

Java 获取当前或调用者类名和方法名(Thread.currentThread().getStackTrace()、new Throwable().getStackTrace()) this.getClass().getName();

Java 获取当前或调用者类名和方法名(Thread.currentThread().getStackTrace()、new Throwable().getStackTrace()) 原文链接:https://blog.csdn.net/inthat/article/details/11188554 ......

Java判断文件夹、文件是否存在,不存在则新建

Java判断文件夹、文件是否存在,不存在则新建 原文链接:https://blog.csdn.net/asfsdgdfgdf/article/details/128316278 1、Java判断是否存在文件夹,不存在则新建 File file = new File("D:/test/filetest ......
文件 文件夹 Java

让Java程序帮你生成双色球号码

在双色球游戏中,需要选出6个红球号码和1个蓝球号码。这个过程可能比较耗时,而且如果想要生成多组号码,手动输入的方式就变得特别不切实际。因此,我们可以使用Java程序来实现双色球号码的自动生成。 一、生成红球号码 首先,需要确定生成红球号码的范围和数量。在双色球游戏中,红球号码的范围为1~33,数量为 ......
双色球 双色 号码 程序 Java

2-Java基础语法

使用的技巧 ​ 如果我们要对代码进行解释,那么就可以使用注释。 ​ 当注释的内容比较少,一行就写完了,可以用单行注释。 ​ 如果注释的内容比较多,需要写在多行,那么可以使用多行注释。 ......
语法 基础 Java

如何用Java程序生成大乐透号码?

在大乐透游戏中,需要选出5个红球号码和2个蓝球号码。这个过程可能比较耗时,而且如果想要生成多组号码,手动输入的方式就变得特别不切实际。因此,我们可以使用Java程序来实现大乐透号码的自动生成。 一、生成红球号码 首先,需要确定生成红球号码的范围和数量。在大乐透游戏中,红球号码的范围为1~35,数量为 ......
大乐 号码 程序 Java

第三次Java作业

1.输入一个三位数,求个位,十位,百位 #include <stdio.h> main() { int a; printf("输入一个三位数:"); scanf("%d",&a); printf("个位是%d 十位是%d 百位是%d",a%10,a/10%10,a/100); } 2.输入一个年份, ......
Java