Stream 文章目录StreamInputStreamread(byte b[], int off, int len)skip(long n)available()close()mark(),reset(),markSupported()OutputStreamwrite(byte b[], int off, int len)flush() InputStreamInputStream是所有从文
1.用JavaPOI导出Excel时,我们需要考虑到Excel版本及数据量问题 2.针对不同Excel版本,要采用不同工具类 3.JavaPOI导出Excel有三种形式(1)HSSFWorkbook:是操作Excel2003以前(包括2003)版本,扩展名是.xls <1>poi导出excel最常用方式 <2>此种方式局限就是导出行数至
转载 2023-07-28 09:16:08
380阅读
# Python计算Excel空白数量 ## 引言 在处理Excel文件时,经常需要统计其中空白数量。空白是指整行单元格均为空。本文将介绍如何使用Python来计算Excel文件中空白数量,并提供代码示例。 ## 准备工作 在开始之前,我们需要安装`openpyxl`库来操作Excel文件。如果你还没有安装该库,可以使用以下命令进行安装: ```python pip ins
原创 2023-11-18 09:29:22
116阅读
CPU缓存缓存是由缓存组成,通常是 64 字节(常用处理器缓存是 64 字节,比较旧处理器缓存是 32 字节),并且它有效地引用主内存中一块地址。一个 Java long 类型是 8 字节,因此在一个缓存中可以存 8 个 long 类型变量。在程序运行过程中,缓存每次更新都从主内存中加载连续 64 个字节。因此,如果访问一个 long 类型数组时,当数组中一个值被
转载 2023-09-22 11:02:36
127阅读
Java 缓存和伪共享最近看了一本书,因为以前不太了解底层原理,所以这块比较薄弱,所以通过本文做下记录和总结。1.缓存和伪共享概念1.1 概念阐述在计算机系统中,内存是以【缓存】为单位存储,一个缓存存储字节是2倍数。不同机器上,缓存大小也不一样,通常来说为64字节。 伪共享是指:在多个线程同时读写同一个【缓存】上不同数据时,尽管这些变量之间没有任何关系,但是在多线程之间仍然需
转载 2023-06-24 23:08:57
129阅读
# Java缓存实现指南 ## 引言 Java缓存优化是一种优化技术,可以提高程序性能。在本文中,我将向你解释什么是Java缓存,以及如何实现它。我将使用表格展示整个流程,并提供每个步骤所需代码示例和注释。 ## 什么是Java缓存 Java缓存是计算机内存中一段连续内存区域,通常为64字节。当CPU从内存中读取数据时,它会将整个缓存加载到CPU缓存中。如果我们能够利用好
原创 2023-10-11 06:09:23
62阅读
# Java操作Excel表格数量 ## 引言 在现实生活中,我们经常需要处理大量数据,而Excel表格是一种常见用于存储和分析数据工具。在Java开发中,我们可以使用一些库来操作Excel表格,以便读取、写入和修改数据。本文将介绍一些常见Java库,以及它们提供功能来处理Excel表格数量。 ## Apache POI Apache POI是一个开源Java库,它提供了一
原创 2023-10-20 13:35:23
52阅读
# Java缓存实现指南 作为一名经验丰富开发者,我很高兴能帮助你了解如何在Java中实现缓存缓存是现代计算机系统中用于提高数据访问速度一种技术。在这篇文章中,我将通过一个简单示例,向你展示如何在Java中实现缓存。 ## 步骤流程 首先,让我们通过一个表格来了解实现缓存步骤: | 步骤 | 描述 | | --- | --- | | 1 | 创建一个缓存类 | |
原创 2024-07-17 06:45:30
38阅读
## 导出Excel数量Java实现 在Java中,我们可以使用Apache POI库来导出Excel文件,这个库提供了一组API,可以用于创建、修改和读取Excel文件。在本文中,我们将介绍如何使用Apache POI来导出Excel文件,并在最后提供一个完整示例代码。 ### 安装POI库 首先,我们需要安装Apache POI库。在Maven项目中,可以在`pom.xml`文件中添
原创 2023-11-06 10:47:21
14阅读
总结:CPU处理时是依次从L1,L2,L3,物理内存中取数据。如果该层没找到就找下一层,访问速度逐步降低。Lx中是按行进行缓存,即缓存,是最小访存单位,类似磁盘一个(扇区?)。所以,如果大部分相关数据都在一个缓存(通常64字节)中,访问一次就可以获取到所有的数据。提高性能如何将相关数据都放到一个缓存?这就需要分析缓存是怎么存数据:按照加载顺序,例如将相关代码都放到一个数组,加载数组时,
转载 2023-09-09 22:04:42
47阅读
首先应该理解为什么需要缓存。在计算机组成中,关于存储这一块是分层设计,访问速度从快到慢主要分为:CPUL1缓存、CPUL2缓存、CPUL3缓存、主内存、SSD硬盘、机械硬盘。其实一开始并没有L1、L2、L3缓存,但CPU访问内存速度还是慢,在这个过程中CPU只能等,为了优化这一点,在CPU内部加入了这些缓存,主要用于存放内存中热点数据。举个特例来说,CPU内部缓存是按缓存存储
# 用Java实现Excel分页 在实际工作中,我们经常会遇到需要处理Excel表格数据情况。有时候,我们需要将大量数据拆分成多个页面显示,这就需要对Excel进行分页处理。本文将介绍如何用Java实现Excel分页功能。 ## Excel分页概念 Excel分页指的是将一个大表拆分成多个小表,每个小表叫做一页。这样做好处是可以减少数据量,提高查看和操作效率。在Excel中,我们
原创 2024-06-28 03:35:47
92阅读
@sun.misc.Contended 介绍 @sun.misc.Contended 是 Java 8 新增一个注解,对某字段加上该注解则表示该字段会单独占用一个缓存(Cache Line)。 这里缓存是指 CPU 缓存(L1、L2、L3)存储单元,常见缓存大小为 64 字节。
转载 2023-07-19 11:31:30
140阅读
 通过消息队列进行数据同步至 Redis,然后 Java 应用直接去取缓存。这个阶段优点是:由于是使用分布式缓存,所以数据更新快。缺点也比较明显:依赖 Redis 稳定性,一旦 Redis 挂了,整个缓存系统不可用,造成缓存雪崩,所有请求打到 DB。第二,三阶段:JavaMap 到 Guava Cache 这个阶段使用进程内缓存作为一级缓存,Redis 作为二级。优点:不受外部系统
批注是一种富文本注释,常用于为指定Excel单元格添加提示或附加信息。 Free Spire.XLS for Java为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注功能。 本文将介绍如何使用 Free Spire.XLS for JavaExcel文档中添加,读取和删除批注。安装首先你需要下载 Spire.XLS JAR 并将其作为依赖项添加到您Java程序中。如
缓存对齐:对于有些特别敏感数字,会存在线程高竞争访问,为了保证不发生伪共享,可是使用缓存对齐编程方式。disruptor: public long p1,p2,p3,p4,p5,p6,p7 //cathe padding private volatile cursor = INITIAL_CURSOR_VALUE; public long p8,p9,p10,p11,p12,p13
转载 2023-06-28 10:47:43
85阅读
本文基于 OpenJDK 8 ~ 14 版本JEP 142 内容用于将某个或者某些需要多线程读取和修改 field 进行缓存填充。同时由于 Java 8 之前对于缓存填充方式,比较繁琐且不够优雅,还有可能缓存大小不一问题,所以这个 JEP 中引入了 @Contended 注解。什么是缓存填充以及 False SharingCPU 缓存结构:CPU 只能直接处理寄存器中数据,从上面
二、解析1. 硬件层并发优化基础知识存储器层次结构图如下:各级缓存耗时对比:采用分层缓存层次结构会带来数据不一致问题,如下图:那么如何保证数据一致性,现代CPU处理办法有两种:(1) 锁系统总线;(2) 利用缓存一致性协议MESI(Intel处理器用比较多,还有很多其他缓存一致性协议),大致结构如下图:2. CPU乱序执行CPU中有个乱序执行概念,概念图如下:CPU在执行指令时候
转载 2023-10-11 06:53:39
87阅读
1、高速缓存由来:处理器处理能力原因大于主内存(DRAM)访问速率,为了弥补这个差距,引入了高速缓存。高速缓存是一种存取速率远比主内存大而容量远比主内存小存储部件,每一个处理器都有其高速缓存。在引入高速缓存之后,处理器执行读、写操作时就不直接操作主内存,而是通过高速缓存执行。变量名相当于内存地址,变量值相当于相应内存空间中存储数据。可以理解为,高速缓存为程序中数据做了一份对应主内存副本,
在最近面试中,我曾被多次问到,怎么实现一个最近最少使用(LRU)缓存缓存可以通过哈希表来实现,然而为这个缓存增加大小限制会变成另一个有意思问题。现在我们看一下怎么实现。 最近最少使用缓存回收 为了实现缓存回收,我们需要很容易做到: 查询出最近最晚使用项 给最近使用项做一个标记 链表可以实现这两个操作。检测最近最少使用项只需要返回链表尾部。标记一项为最近使用项只需要从当前
  • 1
  • 2
  • 3
  • 4
  • 5