文章目录代码目录一、运行时数据区概述二、实现运行时数据区1、线程2、Java虚拟机栈3、帧4、局部变量表5、操作数栈三、测试 代码目录ZYX-demo-jvm-04 ├── pom.xml └── src └── main │ └── java │ └── org.ZYX.demo.jvm │ ├── classfile
转载 2024-06-13 11:44:02
25阅读
Java实现LRUCache前言一、LRU实现补充二、Redis LRU算法实现 前言运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不
转载 2024-01-06 08:54:14
69阅读
KNN算法和欧式距离介绍1. KNN算法又称为k近邻分类(k-nearest neighbor classification)算法。    最简单平凡的分类器也许是那种死记硬背式的分类器,记住所有的训练数据,对于新的数据则直接和训练数据匹配,如果存在相同属性的训练数据,则直接用它的分类来作为新数据的分类。这种方式有一个明显的缺点,那就是很可能无法找到完全匹配的训练记录。&nbs
手写LRU缓存淘汰算法 背景 在我们这个日益追求高效的世界,我们对任何事情的等待都显得十分的浮躁,网页页面刷新不出来,好烦,电脑打开运行程序慢,又是好烦!那怎么办,技术的产生不就是我...
转载 2021-03-01 21:25:00
177阅读
2评论
前言之前系统接入大数据PV统计平台,最近因PV统计平台侧服务器资源紧张,要求各接入方必须缓存API调用验证用的Token,从而减少无效请求和服务端缓存中间件的存储压力。 虽然系统部分业务模块都有缓存数据的需求,但由于没有提供统一的前端缓存模块,这导致各业务模块都自行实现一套刚好能用的缓存机制,甚至还会导致内存泄漏。 以兄弟部门这张整改工单作为契机,是时候开发一个系统级的前端缓存模块,逐步偿还技术负
原创 2022-03-24 10:18:50
127阅读
java面试:手写代码 二分查找法/** * 二分查找法。时间复杂度:O(log n) * 二分查找法:给定一组有序的数组,每次都从一半中查找。直到找到要求的数据。 * * @param nums * @param target * @return */ pub
转载 2023-07-06 22:18:16
0阅读
目前市面上已经有很多开源的缓存框架,比如Redis、Memcached、Ehcache等,那为什么还要自己动手写缓存?本章将带领大家从0到1写一个简单的缓存框架,目的是让大家对缓存的类型、缓存的标准、缓存的实现以及原理方面有一个系统的了解,做到知其然,知其所以然。3.1 缓存定义的规范    JSR是JavaSpecification Requests的缩写,意思是J
原创 2022-03-21 09:53:07
173阅读
统的了解,做到知其然,知其所以然。3.1 缓存定义的规范    JSR是JavaSpecification Requests的缩写,意思是Java规范提案,它已成为Jav...
原创 2021-11-22 10:58:13
152阅读
实现一个最简单最主要的缓存系统。 using System; using System.Data; using System.Configuration; using System.Web; using System.Collections; using System.Text; using Sys
转载 2016-03-31 08:26:00
87阅读
2评论
前言:不断学习就是程序员的宿命 此题对应力扣题目地址:https://leetcode-cn.com/problems/lru-cache/ 一、LRU介绍 LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的数据予以淘汰。 二、设计思 ...
转载 2021-09-03 16:14:00
109阅读
2评论
增加代码详解缓存 com.simple.ibatis.cache缓存接口-Cachepublic interface Cache {     /**放入缓存*/     void putCache(String key,Object val);     /**获取缓存*/     Object getCache(String key);     /**清空缓存*/     void clea
原创 2020-10-15 16:21:31
436阅读
缓存和 LRU 算法 缓存是计算机编程中的一种技术,用于临时存储数据以加速访问和提高性能。缓存是提高系统性能、减少延迟和优化用户体验的重要工具。合理使用缓存技术,开发人员可以构建更加高效和可靠的应用程序。缓存的重要性体现在以下方面: 首先,缓存通过减少数据读取时间来提升系统性能。当应用程序频繁访问某些数据时,直接从原始数据源读取会花费大量时间。将常用数据存储在缓存中,系统可以更快速地访问所需数据,
原创 精选 2024-08-12 14:41:11
204阅读
遇到重复工作一定想办法将其转化为自动化,我觉得这才是合格的程序猿。我们日常开发中遇到的80%的代码都是增删改查,当然,已经有一些插件,比如MP提供了一整套的代码生成方案,但是提供的基本都是java代码,因为模板语言有太多种,根据每个人每个项目的不同而不同,但是,模板中一样也基本是列表和表单提交,怎么来解决这个重复工作呢?思路:依然依赖mp组件,因为mp已经提供了对应的BaseService,Bas
HashMap简介HashMap是Java中一中非常常用的数据结构,也基本是面试中的“必考题”。它实现了基于“K-V”形式的键值对的高效存取。JDK1.7之前,HashMap是基于数组+链表实现的,1.8以后,HashMap的底层实现中加入了红黑树用于提升查找效率。HashMap根据存入的键值对中的key计算对应的index,也就是它在数组中的存储位置。当发生哈希冲突时,即不同的key计算出了相同
转载 2024-06-05 19:08:39
11阅读
今天是2023年1月1日,绝佳的日子。前几天正好在开始重学java,那就从今天开始写博客记录学习之路。本科四年,工作三年,再加上去年九月开始读研,接触CS很久了。希望这次可以从一个比较宏观的角度,扎实地学好java。目前是先找了一个网课开始学(不想再啃大部头了,学C++那会就是看书,比较折磨)后期会加上刷题,做项目,准备面试题。每天学习量不求多,只求坚持。每天都在认真追求知识上的进步,那么生活自然
手写代码模块(Java实现)——树0.Previous Prepare (TreeNode)private class TreeNode<T>{ private T data; private TreeNode<T> left; private TreeNode<T> right; public
转载 2024-04-12 09:51:44
35阅读
一、概述Spring的最根本的使命就是简化开发。体现在:基于POJO的轻量级和最小侵入性编程,通过DI和面向接口实现松耦合,基于切面和惯性声明式编程,通过切面和模板减少样板代码。Spring是面向Bean进行编程的,Spring提供了IOC容器通过配置文件或者注解的方式来管理对象之间关系。Spring的注入方式:Setter、构造方法、强制赋值。控制反转的两种方式是依赖注入和依赖查找,最早Spri
转载 2024-07-05 11:19:23
16阅读
文章目录视频教程连接实现的效果实现这些IOC的思路1. 获取到我们要管理的Class对象2.实例化要管理的对象 把初始化之后的对象给放到Map容器里面3.依赖注入的实现具体实现步骤注解MyBeanDefinition 存放Class和ClassNameMyAnnotationConfigApplicationContext(重点 IOC的核心)就和上面思路里面说的一样 分三步走就好了第一步的实现
前言这是带给大家的第一篇技术文章,也是所有的java开发人员肯定使用过的。因为相比较其它数据结构而言,无疑它是最简单的。所以今天放第一篇来给大家介绍。并自行实现一个简易版的ArrayList。本文借鉴jdk7与8实现,部分变量命名参考jdk命名,细节无法顾全,但大体思想是jdk的思想,做一个简化版来帮助大家理解。关注点不只是ArrayList,在任何集合中,都应关注以下几点:原理ArrayList
转载 2023-10-07 15:23:46
61阅读
一、前文回顾在上一篇文章中,我们探究了一个RPC框架最基本的一些技术,并且开始写了服务端的注册发现相关的代码,今天我们继续之前的进度往后。既然已经将服务暴露出去了,接下来我们要考虑的是如何通过网络的形式将其传输出去。二、网络模块开发客户端和服务端之间想要通信必然需要一个媒介,所以我们需要为我们的RPC框架搭建一个网络模块。那么提到网络编程那么就有以下几个方案:我们最先想到的是Java中的Socke
转载 2023-07-19 12:36:43
251阅读
  • 1
  • 2
  • 3
  • 4
  • 5