后端

Java中锁的优化机制了解吗?

从JDK1.6版本之后,synchronized本身也在不断优化锁的机制,有些情况下他并不会是⼀个很重量级的锁了。优化机制包括⾃适应锁、⾃旋锁、锁消除、锁粗化、轻量级锁和偏向锁。 锁的状态从低到⾼依次为⽆锁->偏向锁->轻量级锁->重量级锁,升级的过程就是从低到⾼,降级在⼀定条件也是有可能发⽣的。 ⾃旋锁:由于⼤部分时候,锁被占⽤的时间很短,共享变量的锁定时间也很短,所有没有必要

第一章 理解高性能程序 (9) 保持缓存的热度

保持缓存的热度        首先,别浪费缓存,因为主存很慢。这意味着无序地从内存中读取数据(被称为指针追逐pointer-chasing)并非明智。在现代处理器上,程序以预测的方式读取连续的内存块,可以受益于硬件级的预读取(prefetching)机制。一言以蔽之,即数据局部化(data locality)。        举个反面例子,唉,是我们古老而可靠的链表,遍历链表是一次实实在在的指

C语言-二维数组每行最大值提前

①命令行 #include< stdio.h> #define N 5 ~ ②定义函数 void fun(int a[N][N]) {int i,j,k,t; /*二维数组,行列分别用两个for语句遍历循环计数。*/ for(i=0;i<N;i++) /*每个变量都必须赋初值,所以k=0必不可少。*/ {k=0; for(j=1;j<N;j++) /*a[i

响应式编程之WebFlux

前言 前几篇文章介绍了Reactor以及响应式规范Reactive streams,那么如何将这种响应式编程应用在web开发中呐 异步 想一想平时web开发的场景 前端提交请求过来 spring(tomcat)从线程池中分配一个线程来应对请求 根据路径和配置/注解调用对应的方法 在我们的方法内一般连接数据库获取数据,阻塞取到结果后做一些计算,最后返回 spring(tomcat)负责将返回的数据

竞赛题-6291. 数组元素和与数字和的绝对差

题目: 给你一个正整数数组 nums 。 元素和 是 nums 中的所有元素相加求和。 数字和 是 nums 中每一个元素的每一数位(重复数位需多次求和)相加求和。 返回 元素和 与 数字和 的绝对差。 注意:两个整数 x 和 y 的绝对差定义为 |x - y| 。 示例 1: 输入:nums = [1,15,6,3] 输出:9 解释: nums 的元素和是 1 + 15 + 6 + 3 = 25

String a = "abc"和String a = new String("abc")比较

String a = "abc" 创建了0个或1个对象。 首先在栈中定义一个引用变量a,检查字符串常量池中是否存在"abc",存在则直接指向"abc"的地址(指向的是字符串常量池中的地址),不存在则先在常量池中创建"abc"再指向其地址。 常量池中不存在"abc"字符串: (1)在栈中创建3个char型字符'a','b','c' (2)在堆中new一个String对象,它的值是刚才在栈中创建的

Effective C++ 学习备忘录八

定制 new 和 delete 条款 49 - 了解 new-handler 的行为 set_new_handler 允许用户指定一个函数,在内存分配无法获得满足时调用 Nothrow new 是一个颇为局限的工具,因为它只适用于内存分配;后继的构造函数调用还是可能抛出异常。 条款 50 - 了解 new 和 delete 的替换时机 有许多理由需要写个自定义的 new 和 d

leetcode 算法第一集

前言: 各位同学大家好,现在这段时间给大家更新算法的一些讲解 废话不多说我们正式开始,希望能帮助到各位的学习 工作以及面试 需求 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 输入:nums = [1,2,3,1] 输出:true 具体实现 第一种 排序 在对数字从小到大排序之后,数组的重复元素一定出现

Activity启动流程

以下源码基于android-11.0.0_r1 启动一个Activity,通常有两种情况:第一种是不同进程的的根activity,比如laucnher启动app;第二种是同进程内部启动activity。这两种情况的启动流程类似,大致分为以下三个步骤: 调用进程的activity收集好信息后,向system_server进程的ActivityTaskManagerSrvice服务发起请求。 ATM