机制 常见java
【Java 并发编程】ReentrantLock
目录ReentrantLock公平锁和非公平锁synchronized 和 ReentrantLock 有什么区别? ReentrantLock ReentrantLock 是一个可重入的互斥锁,又被称为“独占锁”。ReentrantLock 类实现了 Lock ,它拥有与 synchronized ......
【Java 并发编程】ThreadLocal
目录ThreadLocalThreadLocal 实现线程隔离的原理ThreadLocal 内存泄漏场景 ThreadLocal ThreadLocal是一个将在多线程中为每一个线程创建单独的变量副本的类; 当使用ThreadLocal来维护变量时, ThreadLocal会为每个线程创建单独的变量 ......
【Java 并发编程】synchronized
synchronized 关键字 synchronized 是 Java 中的一个关键字,翻译成中文是同步的意思,主要解决的是多个线程之间访问资源的同步性,可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 使用方法 修饰实例方法 给当前对象实例加锁,进入同步代码前要获得 当前对象实例的 ......
java 命令解压war包
1. cmd 调出命令行工具 2. cd 定位到war包路径 3. jar -xvf yourfile.war 进行解压 "war"是一种文件格式,它是Java Web应用程序的打包格式。它是一种压缩文件,用于将Web应用程序的所有相关文件(包括HTML、CSS、JavaScript、JSP、Ser ......
java serverlets使用数据源连接oracle数据库,并执行查询操作代码
package chap03; import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultS ......
Error:java: Compilation failed: internal java compiler error
Error:java: Compilation failed: internal java compiler error 出现这个错误的原因主要是因为 JDK 版本问题,有两个原因,一个是编译器版本不匹配,一个是当前项目 JDK 版本不支持。 File --> Project Structure - ......
【Java 并发编程】LockSupport
目录简介方法介绍阻塞和唤醒示例示例1示例2示例3阻塞对象 blocker 的作用和显式锁、隐式锁等待唤醒的区别 简介 java.util.concurrent.locks.LockSupport 是一个工具类,提供了基本的线程阻塞和唤醒功能,它是创建锁和其他同步组件的基础工具,内部是基于 sun.m ......
Java IO 与 NIO:高效的输入输出操作探究
引言 输入输出(IO)是任何编程语言中的核心概念,而在Java中,IO操作更是应用程序成功运行的基石。随着计算机系统变得越来越复杂,对IO的要求也日益增加。在本文中,我们将探讨Java IO和非阻塞IO(NIO)的重要性以及如何在Java中实现高效的输入输出操作。 传统IO(阻塞IO) 传统IO是大 ......
这篇记录一下C#和java中的http request的测试
1. 在c#中,测试http的,一般做一个mock的httpContext, 然后里面的request和response都使用mock的,这样设置好后,就可以测试controller 2. 在java中,因为是httpservelet这些,所以实例化测试创建mock的httprequest这些 ht ......
java数组原理(对比c语言数组)
java数组原理(对比c语言数组) 数组名区别 存储结构 声明,创建和初始化区别 数组名区别 本着一切皆对象的原则,所以java中的数组也是对象.那么数组类是哪个,当然不是java.util.Arrays. 总之:java数组名是对象,而c++数组名是数据结构 存储结构 JAVA里数组的内存分配是在 ......
java项目实践-请求转发以及重定向-day18
目录1. 中文乱码问题2. 请求的转发servlet3. 登录后的重定向4 总结 1. 中文乱码问题 创建一个工程secondweb 添加jar包依赖 new servlet web.xml添加servlet 构建配置修改 <?xml version="1.0" encoding="UTF-8"?> ......
java学习第一天-安装JDK,运行Hello.java
卸载JDK 删除java的安装目录 删除JAVA_HOME 删除path下关于java的目录 cmd下输入java -version 安装JDK 华为云JDK下载链接,首先下载JDK 下载对应版本 安装JDK 设置安装路径 配置环境变量 打开环境变量 新建系统变量-->JAVA_HOME 配置pat ......
Java 开发环境配置
转载:https://www.w3cschool.cn/java/java-environment-setup.html window系统安装java 下载JDK 配置环境变量 1.右击“我的电脑”→“属性”→“高级系统设置”→“高级”→“环境变量”; 在"系统变量"中设置3项属性,JAVA_HOM ......
企业微信群机器人发送消息(三)java端如何控制
1.先在群里添加机器人,然后获取机器人的webhook地址: 假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa 2.有多种方式发送群消息,可以采用c ......
锁机制:atomic 和 CAS
锁机制 常用的锁机制有两种:悲观锁、乐观锁 1、悲观锁 假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。 悲观锁的实现,往往依靠底层提供的锁机制。 悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。 主要有 互斥锁、自旋锁、读写锁、原子操作等。 2、乐观锁 假设不会发生并发冲突,每 ......
Java String类
1.substring() 方法返回字符串的子字符串。 public String substring(int beginIndex) 或 public String substring(int beginIndex, int endIndex) 1 class Main { 2 public st ......
Java中 length 和 length()的区别
在Java中,str.length针对的是数组,而str.length()针对的是针对的字符串 数组(str.length) 的特点有:长度固定,类型固定。因此数组的长度就可以被视为是一种数组的属性 字符串(str.length()) : string 的内部机制是一个 char 数组,而 char ......
Java多线程编程的优点和缺点
优点: 加快响应用户的时间:多线程允许并发执行多个任务,可以充分利用多核处理器,从而提高程序的性能和响应速度。比如我们经常用的迅雷下载,都喜欢多开几个线程去下载,谁都不愿意用一个线程去下载,为什么呢?答案很简单,就是多个线程下载快啊。 简化程序结构、模块化、异步化:例如我们实现电商系统,下订单和给用 ......
Java并发编程和多线程的区别
并发编程: 并发编程是一种编程范式,它关注的是编写能够正确和高效处理多个并发任务的程序。并发编程不仅包括多线程,还包括了处理多个独立任务的各种技术和模式,如进程、协程、分布式编程等。并发编程的目标是实现任务的并发执行,以提高系统的性能和资源利用率。 因此,多线程是并发编程的一部分。多线程是在单个程序 ......
java 获取月初的第一天
一、背景 点击查看代码 SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); Date da = new Date(date.getYear(),date.getMont ......
在Java中,如何避免检查空值?
内容来自 DOC https://q.houxu6.top/?s=在Java中,如何避免检查空值? 我使用 x != null 来避免空指针异常。有没有其他的替代方法? if (x != null) { // ... } 在我看来,这是一个相对常见的问题,初级到中级的开发人员在某个时候都会遇到:他们 ......
cpu在执行 java时,java指令是保存在数据cache中还是指令cache中
Java代码在运行时,首先由JVM(Java Virtual Machine)编译器将Java字节码转换成本地机器代码,然后再由CPU执行。 在CPU中,指令缓存(Instruction Cache)和数据缓存(Data Cache)都是用于提高CPU处理效能的缓存结构,它们是处理器访问内存的缓存。 ......
Java AbstractQueuedSynchronizer
目录前言CLH 锁AQS 框架AQS 核心思想AQS 的同步状态AQS 对资源的共享方式AQS 的重要方法AQS 的数据结构NodeConditionObjectConditionConditionObjectAQS 源码分析核心方法acquire 方法addWaiteracquireQueuere ......
java实现大文件多线程上传案例
当机器内存大小为4G,需要上传一个大小为50G的文件时,为了避免内存溢出,可以采用分片上传的方式,即将大文件切分成多个小片段进行并发上传。以下是一个详细的方案和代码实现示例: 方案说明: 将大文件切分成多个大小适当的片段(例如每个片段大小为100MB)。创建一个线程池来管理并发上传任务,控制同时进行 ......
java批量执行atax同步MySQL表时出现卡住问题处理
中断问题和datax中自带的MySQL jar包版本有关,更换后即可。 背景:有个需求需要把服务器上的mysql业务库数据同步到另一台服务器上,我选择了datax来做批量同步操作。 现象:java批量执行的代码写好后,在自己电脑(win10)执行没问题,换了一台电脑(也是windows server ......
详解Java HashMap
HashMap介绍 HashMap遍历方式 HashMap的遍历,大体上可分为4类,而每种类型下又有不同的实现方式,总共的遍历方式可分为7种: 迭代器遍历: 使用迭代器对EntrySet遍历; 使用迭代器对KeySet遍历; foreach遍历: 使用foreach对EntrySet遍历; 使用fo ......
java 调度任务 产品功能对比(quartz,xxl-job,powerjob)
同类产品对比 QuartZ xxl-job SchedulerX 2.0 PowerJob 定时类型 CRON CRON CRON、固定频率、固定延迟、OpenAPI CRON、固定频率、固定延迟、OpenAPI 任务类型 内置Java 内置Java、GLUE Java、Shell、Python等脚 ......
java中接口的实现方式
目录Java8 接口初始化的几种场景通过接口实现类的方式实现1. 定义接口2. 接口实现3. 测试方法通过jdk8中双冒号方式1. 实现通过箭头函数Lambda表达式的方式1. 定义接口2. 接口实现3. 测试方法将接口作为方法参数1. 定义一个方法2. 调用方法并实现接口方法 Java8 接口初始 ......
java程序的运行流程(jdk,jre,jvm的关系)
资料来源于第8课:https://www.bilibili.com/video/BV1o841187iP?p=8&spm_id_from=pageDriver&vd_source=c3a656550cf5d38944e8878bb7026cbc 1.我们手写的java 代码为.java后缀文件储存在 ......
Java 中的异常处理
在 Java 中,异常是中断程序正常流程的事件。当发生意外情况时,会引发异常。如果没有正确的处理,这些异常可能会使您的程序崩溃。Java 提供了强大的异常处理机制,确保您的代码能够优雅地处理意外情况。 异常可能由多种因素引起,例如: 用户输入错误 硬件故障 网络连接错误 数据库错误 编程错误1. 1 ......