- 第一章,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整体结构理解,通过案例了解执行过程
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签