- 第一章,Java开发中通用的方法和准则 1. 不要在常量和变量中出现易混淆的字母,(“1l“,表示一个long型的值,容易看做“11”); 2. 莫让变量脱变成变量(public static final int RAND_CONST = Random().nextInt();) 3. 三元类型操作符的类型必须一致(转化规则,若不可转,返回值Object,为明确类型表达式(变量),正常转化... 第一章,Java开发中通用的方法和准则 1. 不要在常量和变量中出现易混淆的字母,(“1l“,表示一个long型的值,容易看做“11”); 2. 莫让变量脱变成变量(public static final int RAND_CONST = Random().nextInt();) 3. 三元类型操作符的类型必须一致(转化规则,若不可转,返回值Object,为明确类型表达式(变量),正常转化...
- Java中的阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。阻塞... Java中的阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。1)支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。2)支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。阻塞...
- 熟悉和使用Jackson常用的类注解 熟悉和使用Jackson常用的类注解
- 线程通信 volatile和synchronized关键字任意线程对Object(Object由synchronized保护)的访问,首先要获得Object的监视器。如果获取失败,线程进入同步队列,线程状态变为BLOCKED。当访问Object的前驱(获得了锁的线程)释放了锁,则该释放操作唤醒阻塞在同步队列中的线程,使其重新尝试对监视器的获取。 等待/通知机制notify():通知一个在对... 线程通信 volatile和synchronized关键字任意线程对Object(Object由synchronized保护)的访问,首先要获得Object的监视器。如果获取失败,线程进入同步队列,线程状态变为BLOCKED。当访问Object的前驱(获得了锁的线程)释放了锁,则该释放操作唤醒阻塞在同步队列中的线程,使其重新尝试对监视器的获取。 等待/通知机制notify():通知一个在对...
- 双重检查锁定public class UnsafeLazyInitialization { private static Instance instance; public static Instance getInstance() { if (instance == null) // 1:A线程执行 instance = new Insta... 双重检查锁定public class UnsafeLazyInitialization { private static Instance instance; public static Instance getInstance() { if (instance == null) // 1:A线程执行 instance = new Insta...
- java内存模型二 volatile写-读的内存语义volatile写的内存语义:当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷新到主内存。volatile读的内存语义如下:当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效。线程接下来将从主内存中读取共享变量。线程A写一个volatile变量,实质上是线程A向接下来将要读这个volati... java内存模型二 volatile写-读的内存语义volatile写的内存语义:当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷新到主内存。volatile读的内存语义如下:当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效。线程接下来将从主内存中读取共享变量。线程A写一个volatile变量,实质上是线程A向接下来将要读这个volati...
- java内存模型一 happens-before在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happens-before关系。这里提到的两个操作既可以是在一个线程之内,也可以是在不同线程之间。程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。监视器锁规则:对一个锁的解锁,happens-before于随后对这个... java内存模型一 happens-before在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happens-before关系。这里提到的两个操作既可以是在一个线程之内,也可以是在不同线程之间。程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。监视器锁规则:对一个锁的解锁,happens-before于随后对这个...
- Java并发机制的底层实现原理Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。 2.1 volatile的应用在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处... Java并发机制的底层实现原理Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。 2.1 volatile的应用在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处...
- java.util.LinkedList 是 Java 集合框架中的成员之一,底层是基于双向链表实现,集合容量可动态变化的。它继承自 AbstractSequentialList 抽象类,实现了 List 接口。同时还实现了 Cloneable 和 Serializable 三个标记接口,说明 ArrayList 是可克隆复制的,可序列化的。 java.util.LinkedList 是 Java 集合框架中的成员之一,底层是基于双向链表实现,集合容量可动态变化的。它继承自 AbstractSequentialList 抽象类,实现了 List 接口。同时还实现了 Cloneable 和 Serializable 三个标记接口,说明 ArrayList 是可克隆复制的,可序列化的。
- LCP 01. 猜数字:小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。 样例 1输入: guess = [1,2,3], answer = [1,... LCP 01. 猜数字:小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。 样例 1输入: guess = [1,2,3], answer = [1,...
- 写在前面一直想学习下Activiti,自己之前工作的时候尝试了很多次,但都失败了,因为之前的工作就是做工作流的,但是旧项目是自己通过状态值驱动流程的,维护困难,新的平台使用了Activiti5,但是是基于低代码平台,都封装好了,所以我也不知道具体是个啥情况,蹭现在离职了,来之不易的时间,学习一波。哈哈BPMN设计器(Activiti Modeler)的问题:因为IDEA版本的问题,设计器弄... 写在前面一直想学习下Activiti,自己之前工作的时候尝试了很多次,但都失败了,因为之前的工作就是做工作流的,但是旧项目是自己通过状态值驱动流程的,维护困难,新的平台使用了Activiti5,但是是基于低代码平台,都封装好了,所以我也不知道具体是个啥情况,蹭现在离职了,来之不易的时间,学习一波。哈哈BPMN设计器(Activiti Modeler)的问题:因为IDEA版本的问题,设计器弄...
- @TOC 一、Activity的生命周期 1、生命周期状态 2 、生命周期方法 3、横竖屏切换时的生命周期 二、Activity的创建配置和关闭 1、Activity的创建 2、配置Activity 3、开启和关闭Activity 三、Intent与IntentFilter 1、Intent介绍 1.1 意图的概念 1.2 显式意图 1.3 隐式意图 2、IntentFilter 2.1 过... @TOC 一、Activity的生命周期 1、生命周期状态 2 、生命周期方法 3、横竖屏切换时的生命周期 二、Activity的创建配置和关闭 1、Activity的创建 2、配置Activity 3、开启和关闭Activity 三、Intent与IntentFilter 1、Intent介绍 1.1 意图的概念 1.2 显式意图 1.3 隐式意图 2、IntentFilter 2.1 过...
- 大家应该都知道JDK和JRE是什么,但是当面试官问道“请用你所学的java知识,告诉我JDK是干什么的?”,“JRE有什么作用?”,“这两者有什么区别和联系?”等问题时,可能就说的不是很明白了。下面就详细讲述一下JDK和JRE之间的区别和联系,为大家彻底理清JDK和JRE相关的知识。话不多说,先上图:从图中可以看出JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runti... 大家应该都知道JDK和JRE是什么,但是当面试官问道“请用你所学的java知识,告诉我JDK是干什么的?”,“JRE有什么作用?”,“这两者有什么区别和联系?”等问题时,可能就说的不是很明白了。下面就详细讲述一下JDK和JRE之间的区别和联系,为大家彻底理清JDK和JRE相关的知识。话不多说,先上图:从图中可以看出JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runti...
- 资源限制时间限制:1.0s 内存限制:256.0MB思路:大家可以先看一下俩张图, 我们只需要用一个数组即可,不需要排序旋转之后的数据。旋转之后,行成了列,列成了行,所以输出的时候让原来的列在外循环,原来的行在内循环,数组下标从大到小循环,并且因为数组的下标从0开始,要减1。看代码提交代码import java.util.Scanner;public cl... 资源限制时间限制:1.0s 内存限制:256.0MB思路:大家可以先看一下俩张图, 我们只需要用一个数组即可,不需要排序旋转之后的数据。旋转之后,行成了列,列成了行,所以输出的时候让原来的列在外循环,原来的行在内循环,数组下标从大到小循环,并且因为数组的下标从0开始,要减1。看代码提交代码import java.util.Scanner;public cl...
- springMVC整体结构理解,通过案例了解执行过程 springMVC整体结构理解,通过案例了解执行过程
上滑加载中
推荐直播
-
昇腾AI算法挑战赛-核心算子如何优化?专家带你深度解析2025/11/17 周一 16:00-17:00
王老师 华为算子专家
昇腾AI算法挑战赛进阶赛战鼓催征!本期直播间,我们特邀华为算子专家王老师,为你深度剖析Matmul、wholereducesum等核心算子的底层原理与优化技巧,直击赛题核心。想提升代码效率、冲击更高排名?锁定直播,带你破局!
回顾中 -
AI编码实干派,“码”力全开2026/02/26 周四 15:00-16:30
谈宗玮/于邦旭/丁俊卿/陈云亮/王一男
【中国,深圳,2026年2月26日】,以“AI编码实干派,码力全开”为主题的华为云码道(CodeArts)代码智能体新春发布会在线上成功召开。华为云码道公测版正式发布,为开发者和企业提供具备工程化能力的智能编码解决方案。
回顾中 -
华为云码道-玩转OpenClaw,开启在线养虾模式2026/03/11 周三 19:00-20:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中
热门标签