算法 源码 编码java

LRU 算法与 LFU 算法

算法介绍 LRU LRU 全称是 Least Recently Used,即最近最久未使用算法。 LRU 根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高,它是页面置换算法的一种,也常用于缓存设计。 LFU LFU 全称是 Least Freque ......
算法 LRU LFU

快速选择算法

问题描述 给定一个长度为$n$的数组,如何在$O(n)$的时间复杂度内找到第$k$大的数。 思路 朴素的想法是先排序,然后直接找到第$k$个元素,时间复杂度为$O(n\log n)$。 我们可以利用快速排序的思想来解决这个问题,考虑快速排序的划分过程,在快速排序的“划分”结束后,数组$A_p \cd ......
算法

字符串哈希算法

问题描述 考虑 1044. 最长重复子串 (Hard),本题思路并不难,可以使用二分答案来解决,假设答案为 mid,那么长度大于 mid 的子串在 s 中只会出现一次,否则至少出现两次。 因此只需要考虑子串在 s 中的出现次数即可,比较直接的想法是使用 key 为 string 的 unordere ......
字符串 算法 字符

java: 错误: 不支持发行版本 5

Settings: Project Structure: ......
错误 版本 java

Guava EventBus的具体使用以及源码解析

EventBus是Guava中的一个处理组件间通信的事件总线,是观察者模式的一种实现。相比于MQ更加简洁,轻量,使事件生产者和事件消费者实现解耦分离。 ......
源码 EventBus Guava

JPEG编码协议--DCT变换

从之前的几篇文章介绍可以看出,JPEG编码最重要的一步就是DCT变换,将空域的图像信号转换到频域,达到良好的去空间相关性的性能,DCT变换本身是无损的。因此DCT变换在图像编码领域被广泛应用。 一、一维DCT变换 在JPEG编码中使用了二维DCT变换,一维DCT是二维的基础,我们先看下一维DCT变换 ......
编码 JPEG DCT

深入剖析创建Java虚拟机的实现方法

经过前文《深入剖析java.c文件中JavaMain方法中InitializeJVM的实现》的分析,找到了创建Java虚拟机具体实现的方法Threads::create_vm((JavaVMInitArgs*) args, &can_try_again)。该方法的实现在src\hotspot\sha ......
方法 Java

马拉车算法

截图来自董老师https://www.bilibili.com/video/BV173411V7Ai/?spm_id_from=333.999.0.0&vd_source=23dc8e19d485a6ac47f03f6520fb15c2 P3805 【模板】manacher 算法 #include< ......
算法

java8分组使用

分组使用 HashMap<Boolean, Set<String>> collect = currentUserRoles.stream().collect(Collectors.groupingBy(this::isSupperAdminRoleCode, HashMap::new, Collec ......
java8 java

Java并发之原子类

## 一、原子类简介 ### 1 什么是原子类 Java中提供了一些原子类,原子类包装了一个变量,并且提供了一系列对变量进行原子性操作的方法。原子性的意思是对于一组操作,要么全部执行成功,要么全部执行失败,不能只有其中某几个执行成功。在多线程的情况下能够保证操作 `不会被中断`,从而能保证并发安全 ......
原子 Java

Java并发之 Lock 锁

## 一、Lock接口 ### 1 Lock简介&地位&作用 - 锁是一种工具,用于控制对`共享资源`的访问 - Lock和synchronized是最常见的两个锁,他们都能够达到线程安全的目录,但是使用和功能上又有较大的不同 - Lock接口最常见的实现类就是`ReentrantLock` - 通 ......
Java Lock

java并发之CAS(Compare and swap)

### 1. 简介 CAS的底层调用native方法,最终是利用CPU的一个特殊指令,该指令由CPU保证了原子性,而且包含多个操作,比如先比较再更新。 原理: - (1)需要读写的内存值(V)、原值(A)和新值(B)。如果V的值与原值A相匹配,那么把B设置给V,否则处理器不做任何操作。 - (2)无 ......
Compare java swap CAS and

第七次java作业

1.编写一个方法,实现冒泡排序(由小到大),并调用该方法 package lll; import java.util.Scanner; public class lll { public static void main(String[] args) { // TODO Auto-generated ......
java

Java并发工具之ThreadLocal

## 一、ThreadLocal 简介 ### 1. ThreadLocal 是什么? ThreadLocal 字面意思是本地线程,其实更准确来说是线程局部变量,线程类 Thread 有个变量叫做 threadLocals,其类型就是ThreadLocal.ThreadLocalMap 类型,他其实 ......
ThreadLocal 工具 Java

odoo16.0源码安装Ubuntu22.04环境

同样使用的OS是ubuntu22.04,通过vbox虚拟机来进行测试安装。 一、安装好虚拟环境以后,先更新一下当前系统 sudo apt-get update && sudo apt-get upgrade 二、安装odoo运行环境依赖包、node.js包安装工具,以及rtlcss包 sudo ap ......
源码 环境 Ubuntu 22.04 odoo

《数据结构与算法》之二叉树(补充树)

一.树结构之二叉树操作 二叉树的查找 二叉搜索树,也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空,如果不为空,应该满足以下性质: 非空左子树的所有结点小于其根结点的键值 非空右子树的所有结点大于其根结点的键值 左右子树都是二叉搜索树 对于二叉树的查找,其实沿用的是分治法的思想,所以我们 ......
数据结构 算法 结构 数据

文心一言 VS 讯飞星火 VS chatgpt (40)-- 算法导论5.4 4题

# 四、一次聚会需要邀请多少人,才能让其中 3 人的生日很可能相同? ## 文心一言: 为了解决这个问题,我们需要先计算出所有可能的生日组合数,然后计算出其中生日相同的组合数。 已知需要邀请的人数为:23人 根据组合数公式,可计算出所有可能的生日组合数: 2.58520167*10^{22} 根据生 ......
文心 导论 算法 chatgpt VS

Java中Lambda表达式

Demo1: package com.itheima.d9_lambda; public class LambdaDemo1 { public static void main(String[] args) { //目标:学会使用lambda的标准格式简化匿名内部类的代码形式 Animal a = ......
表达式 Lambda Java

Java反序列化Commons-Collection篇06-CC5链

# 环境分析 jdk:jdk8u65 CC:Commons-Collections 3.2.1 pom.xml 添加 ```xml commons-collections commons-collections 3.2.1 ``` # CC5链子分析 ```java /* Gadget chain: ......

Java课程设计--象棋--齐鲁工业大学

目录 1.项目简介 2.项目采用技术 3.功能需求分析 4.项目亮点 5.项目功能架构图和UML类图 6.主要功能截图 7.团队成员负责模块(表格形式) 8.项目git地址 9.团队成员git提交截图 10.项目总结 正文 1.项目简介 主要研究基于JAVA技术的中国象棋游戏的分析与设计,对中国象棋 ......
象棋 工业大学 课程 工业 大学

Java基本查找,二分查找,选择排序

一、基本查找 package com.itheima.d8_sort_binarysearch; /** *基本查找 */ import java.util.Scanner; public class Test3 { public static void main(String[] args) { ......
Java

Java面试笔记202306

Java基础 ArrayList ArrayList底层数据是动态数组,初始长度为10,每次扩容为原来的1.5倍。扩容流程: 首先会创建一个新的长度的数组,然后使用Arrays.copyOf()方法将旧的数组中的元素复制到新的数组中,最后会将新插入的数据插入到新的数组中。 IO和NIO的区别 io指 ......
笔记 202306 Java

Java反序列化之Commons-Collection篇05-CC2链

# 环境分析 jdk:jdk8u65 CC:Commons-Collections 4.0 pom.xml 添加 ```xml org.apache.commons commons-collections4 4.0 ``` # 链子分析 CC2 实际上是 CC4的一个变型。 在CC3中我们提到了 T ......

Java9比Java8改进了什么

1)引入了模块系统,采用模块化系统的应用程序只需要这些应用程序所需的那部分JDK模块,而非是整个JDK框架了,减少了内存的开销。 2)引入了一个新的package:java.net.http,里面提供了对Http访问很好的支持,不仅支持 Http1.1而且还支持HTTP2。 3)引入了jshell这 ......
Java Java9 Java8

Java9新特性

在介绍java9之前,我们先来看看java成立到现在的所有版本。 1990年初,最初被命名为Oak; 1995年5月23日,Java语言诞生; 1996年1月,第一个JDK-JDK1.0诞生; 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术; 1996年9月,约8.3万 ......
特性 Java9 Java

JAVA8 十大新特性详解

一、接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 复制代码代码如下: interface Formula { double calculate(int a); default double sqrt(in ......
特性 JAVA8 JAVA

Java异常处理

#Java异常体系 ### 1.1 Throwable java.lang.Throwable 类是Java程序执行过程中发生的异常事件对应的类的根父类。 Throwable中的常用方法: * public void printStackTrace():打印异常的详细信息。包含了异常的类型、异常的原 ......
Java

BatteryControllerImpl.java

package com.android.systemui.statusbar.policy;import android.app.ActivityManager;import android.content.BroadcastReceiver;import android.content.Conte ......
BatteryControllerImpl java

Java红黑树

红黑树(一棵自平衡的排序二叉树)五大特性: 1)每个结点要么是红的,要么是黑的。 2)根结点是黑的。 3)每个叶结点,即空结点是黑的。 4)如果一个结点是红的,那么它的俩个儿子都是黑的。 5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点 场景 1)广泛用于C++的STL中,map ......
Java

算法题总结-最长递增子序列

原题 https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4?tpId=37&tqId=21247&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2F ......
序列 算法