ICode9

精准搜索请尝试: 精确搜索
  • 我开源了一个Go学习仓库|笔记预览2022-08-22 08:34:44

    前言 大半个月前我参与了字节后端面试,未通过第四面,面试总结写在了这篇文章: https://juejin.cn/post/7132712873351970823 在此文的末尾,我写到为了全面回顾Go的知识点,我开始阅读《The Go Programing Language》,这是我接触Go以来第一次阅读英文书籍。并且希望将学习的笔记其整理成册

  • 第十章 对象的示例化内存布局与访问定位2022-08-22 08:31:45

    遍地都是月光,可月亮只有一个 1.对象的实例化 创建对象的方式 new:最常见的方式、单例类中调用getInstance的静态方法、XXXFactory的静态方法。 Class的newInstance方法:反射的方式,在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为public。 Constructor的

  • 2022.8.21 JMM与volatile2022-08-21 22:00:59

    16、JMM 什么是JMM JMM : Java内存模型,不存在的东西,概念!约定! 关于JMM的同步约定: 1、线程解锁前,必须把共享变量立刻刷回主存       2、线程加锁前,必须读取主存中的最新值到工作内存中! 3、加锁和解锁是同一把锁 线程 :工作内存、主内存 JMM规定了内存主要划分为主内存和工

  • 介绍下Java内存区域(运行时数据区)2022-08-21 20:01:27

    介绍下Java内存区域(运行时数据区) Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 和之前的版本略有不同。 下图是 JDK 1.8 对JVM做的改动,把方法区的具体实现----元空间已到了本地内存中。 各线程共享的:堆、方法区(元空间)、直接内存; 各

  • 内核的缘由2022-08-21 19:32:39

    内核的缘由 计算机是由各种外部硬件设备组成的,比如内存、cpu、硬盘等,如果每个应用都要和这些硬件设备对接通信协议,那这样太累了,所以这个中间人就由内核来负责,让内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。 现代操作系统,内核一般会提供 4 个基

  • 硬件结构 硬盘--2022-08-21 16:31:49

    CPU 的高速缓存,通常可以分为 L1、L2、L3 这样的三层高速缓存,也称为一级缓存、二级缓存、三级缓存。 在 Linux 系统,我们可以通过这条命令,查看 CPU 里的 L1 Cache 「数据」缓存的容量大小: $ cat /sys/devices/system/cpu/cpu0/cache/index0/size 32K 内存用的芯片和 CPU Cache 有所

  • c#使用Bitmap绘图的时候,内存增大问题2022-08-21 14:34:10

    最近碰到一个问题,就是使用Biamap绘图的时候,为了防止闪烁,使用了双缓存绘制的方式,但是会碰到内存急剧增加的情况,而且在XP的工控机和Win10的机器上运行结果不一样,在Win10 上运行的时候,内存增加的不是很明显,而在XP机子上运行一段时间,就会直接自动退出,我怀疑是XP工控机内存没有及时的释

  • 11.3 垃圾回收相关概念2022-08-21 12:31:28

    目录11.3.1 System.gc()的理解11.3.2 内存溢出与内存泄漏内存溢出(OOM)内存泄漏(Memory Leak)11.3.3 Stop The World11.3.4 垃圾回收的并行与并发并发(Concurrent)并行(Parallel)并发 VS 并行11.3.5 安全点与安全区域安全点(Safepoint)安全区域(Safe Region)引用概述11.3.6 强引用-不回收11.3.

  • JVM内存与垃圾回收篇2022-08-21 12:30:59

    1 概述 2 JVM与Java体系与结构 2.1 字节码 我们平时说的java字节码,指的是用java语言编译成的字节码。准确的说任何能在jvm平台上执行的字节码格式都是一样的。所以应该统称为:jvm字节码。 不同的编译器,可以编译出相同的字节码文件,字节码文件也可以在不同的JVM上运行。 Java虚拟

  • 三--寄存器(内存访问)2022-08-21 11:31:41

    3.1内存中字的存储   内存单元是字节单元(即一个单元存一个字节)   一个字用两个地址连续的单元存放,低位字节存在低地址,高位字节存在高地址   字单元:存放一个字型数据(16位)的内存单元,由两个地址连续内存单元组成   将起始地址为N的字单元简称为N地址字单元 3.2DS和[address]

  • 什么是闭包2022-08-21 09:34:23

    闭包就是可以读取其它函数内部的变量; 函数嵌套,内层函数使用了外层函数的变量;闭包=内层函数 + 外层函数的变量; 优点:函数可以操作函数内部的变量,延长变量的的作用范围,延长变量的生命周期; 生命周期:创建内存---使用内存---释放内存; 缺点:内存容易造成内存泄漏,解决方法:不适用的时候手动

  • 并发编程的艺术2022-08-20 17:01:50

    现在我们介绍避免死锁的几个常见方法。 ❑ 避免一个线程同时获取多个锁。 ❑ 避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。 ❑ 尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制。 ❑ 对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出

  • 锁与并发 synchronized(1)2022-08-20 12:04:30

      1.synchronized 锁的升级过程:         由于并发量不同,争抢的激烈程度不同出现锁的升级。   锁升级不可逆。   2.为什么要使用锁。   对共有资源的操作,因为对同一资源涉及多数据的复制,使用,回写等不能保证资源的原子性。 即围绕共有资源的原子性和有序性,可见性。   

  • Rust实战系列-Rust介绍2022-08-19 23:34:31

    “ 学习资料:rust in action[1] 1. Rust 安装 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source"$HOME/.cargo/env" 2. hello world 创建 hello 项目 mkdir rust_tmp && cd rust_tmp cargo new hello cd hello cargo run 看

  • reids(3)2022-08-19 23:00:36

    1.redis 过期策略:    1.定时过期   2.惰性过期   3.定期过期   2.redis内存淘汰策略: 全局的键空间选择性移除   noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。   allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。(这个是最常

  • mmap2022-08-19 17:00:54

    一、mmap 概述 mmap是memory map(内存映射)的缩写,其为一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和程序虚拟地址空间具有一种虚拟对应关系。mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存,普通文件被映射到进程地址空间

  • 云服务建立虚拟分区2022-08-19 15:33:33

    free -m 查看可用的内存不多了,swap是0,考虑在根目录建立交换文件 cd / sudo dd if=/dev/zero of=/swapfile bs=1k count=4096000 swapfile为文件名称,任意指定,大小为物理内存的两倍4g,依自己服务器来设置 mkswap /swapfile swapon /swapfile 建立并启用交换,再用内存查看命令查

  • 指针在内存所占的大小2022-08-19 00:03:48

    sizeof的特点:printf(”%d“,int);printf(”%d“,float);printf(”%d“,double);其结果为4 4 4这就是面试的时候问你,指针在内存中占多少个字节?这就是个问题不是简单的2,4,甚至8个字节回答:指针在内存中所在的字节数是由系统的寻址能力决定的,寻址能力就是CPU对于该数据范围处理的极限能力,理论上32位

  • allocator()类2022-08-18 20:32:04

    allocator类 群友之前问了一个问题,C++除了new和malloc还有什么分配内存的方法,当时我在想mmap()、brk()这些系统调用,后来突然想到STL里面有一个allocator类似乎也是做空间分配的。现在来学一学。 new/delete的局限性 抽象的描述new的行为:将内存分配和对象构造组合在一起。也就是ope

  • linux 常用命令2022-08-18 13:30:39

    ps  ps -aux (a 显示现行终端机下的所有程序,包括其他用户的程序。 u   以用户为主的格式来显示程序状况。 x   显示所有程序,不以终端机来区分。)  netstat  netstat -napt    (-a 显示所有连接和侦听端口,默认不显示LISTEN相关; -n 以数字形式显示地址和端口号。 -p proto

  • 简述一条更新语句的执行过程2022-08-18 11:34:30

    更新语句(增删改)的执行,基本流程和查询一致,也要经过连接器、分析器、优化器、执行器等功能模块,区别就在于拿到符合条件的数据之后的操作。 执行器先通过存储引擎获取需要修改的数据。如果该数据所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回

  • 第八章 - 堆2022-08-18 09:02:53

    月亮正亮得起劲,若此刻不想你倒显得我不解风情 1.堆的核心概述 1.1 认识堆内存 堆与进程、线程 一个进程对应一个JVM实例 一个JVM实例对应一个堆空间 进程包含多个线程,所以线程之间共享同一个堆空间 对堆的认识 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心

  • 05 - Volatile伪共享问题与Volatile重排序问题2022-08-18 01:31:50

    为什么Volatile不能保证原子性 public class VolatileAtomThread extends Thread { private static volatile int count; public static void main(String[] args) { ArrayList<Thread> threads = new ArrayList<>(); for (int i = 0; i < 10;

  • 如何从内存存储的角度解释小端和大端格式的概念?2022-08-17 20:31:56

    字节序(大、小端存储)是指字节存储在内存中的顺序。 内存通常是字节可寻址的,但大多数计算机体系结构都适用于 32 位大小或字大小(4 字节)的操作数。 因此,要将一个字存储到字节可寻址存储器中,有两种方法: (1)将字的最高有效字节存储在较小的地址中。这种类型的存储是指 Big Endian 格式。

  • java 启动设置jar包 命令设置参数说摸信息2022-08-17 20:03:29

    nohup java -jar  -Dspring.profiles.active=test  -Xms512M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=1024M  /data/home/app/XXX.jar >/dev/null 2>&1 & 说明:Xms:堆内存初始大小Xmx:堆内存最大值PermSize:永久内存初始大小MaxPermSize:永久内存最大值堆内存和永久内存区

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有