标签 final 下的文章

  • 📂Netty 中的内存分配浅析教程

    Netty 出发点作为一款高性能的 RPC 框架必然涉及到频繁的内存分配销毁操作,如果是在堆上分配内存空间将会触发频繁的GC,JDK 在1.4之后提供的 NIO 也已经提供了直接直接分配堆外内存空间的能力,但是也仅仅是提供了基本的能力,创建、回收相关的功能和效率都很简陋。基于此,在堆外内存使用方面,Netty 自己实现了一套创建、回收堆外内存池的相关功能。基于此我们一起来看一下 Netty ...

  • 📂深入理解 Java 内存模型(六)——final教程

    与前面介绍的锁和 volatile 相比较,对 final 域的读和写更像是普通的变量访问。对于 final 域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个 final 域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作之间不能重排序。下面,我们通过一些示例性...

  • 📂一次线上故障:数据库连接池泄露后的思考教程

    一:初步排查早上作为能效平台系统的使用高峰期,系统负载通常比其它时间段更大一些,某个时间段会有大量用户登录。当天系统开始有用户报障,发布系统线上无法构建发布,然后后续有用户不能登录系统,系统发生假死,当然系统不是真的宕机,而是所有和数据库有关的连接都被阻塞,随后查看日志发现有大量报错。和数据库连接池相关:<pre class="text">``` Caused...

  • 📂Redis 做分布式锁的常见问题和解决方案教程

    redis 做分布式锁的三个核心要素:1、加锁最简单的命令是setnx,key是锁的唯一标识,按业务来决定命名,value为当前线程的线程ID。当一个线程执行setnx返回1,说明key原本不存在,该线程成功得到了锁,当其他线程执行setnx返回0,说明key已经存在,该线程抢锁失败。2、解锁当得到锁的线程执行完任务,需要释放锁,以便其他线程可以进入。释放锁的最简单方式是执行del指令。3、...

  • 📂jdbc oracle和mysql连接教程

    oracle<pre class="brush:csharp;gutter:true;">private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";<br></br>private static final String USE...

  • 📂mybatis源码探索笔记-2(构建SqlSession并获取代理mapper)教程

    前言上篇笔记我们成功的装载了Configuration,并写入了我们全部需要的信息。根据这个Configuration创建了DefaultSqlSessionFactory。本篇我们实现构建SqlSession即mybatis的一次sql会话,并获取到我们常用的代理mapper接口类。在正文之前先放上之前的一段代码 @Autowired private SqlSessionFa...

  • 📂sql盲注脚本--python教程

    1.布尔盲注--方便以后修改,难点仅仅在于使用二分法求name# 1.布尔盲注 # 页面有不同的响应word1,word2 # 可猜解数据库长度、个数、名字、表个数、表长度、名字、字段、 # 长度:length,order by # 个数:count # 名字:ascii,substr import requests import time from math import ceil cla...

  • 📂Java内存分配中,堆和栈的区别教程

    参考:https://www.jianshu.com/p/65b9f5f79716 根据编译原理,程序在运行时的内存分配策略有三种:静态 Static指在编译时就能确定的每个数据目标在运行时刻需要的存储空间需求。因而在编译的时候就可以给他们分配固定的存储空间。 这种数据目标在编译时就为他们分配固定的内存。 *限制: 代码中不能有可变数据结构,如数组。 代码中不允许有递归或嵌套结构的出...

  • 📂Java内存模型中的部分构造对象教程

    我遇到了以下代码in an article somewhere on the Internet:public class MyInt { private int x; public MyInt(int y) { this.x = y; } public int getValue() { return this.x; ...

  • 📂java – 我“修复”了内存泄漏,但是..如何以更好的方式修复它?教程

    这是一个非常快速和临时的错误修复程序.. 它有效,但我希望找到更好的理解和解决方案.这是生成泄漏的类构造函数final transient DataInputStream din; final transient DataOutputStream dout; final transient BufferedReader bin; final transient BufferedWr...

  • 📂java 简单数据库连接池教程

    <pre class="has">public class DataSourcePool {private final CopyOnWriteArrayList<Connection> list; //用到了信号量 private final Semaphore semaphore; public DataSourcePool(int size...

  • 📂Android 内存泄露分析教程

    Android OOM/MemoryLeak各位读者可能都有拿的出手的github或者APP实战项目,但是会使用现成的XX开源组件并不代表你的基础就很好。本文将带你补习Android基础 -- Android中内存泄露实例,分享给大家。基础在阅读本文前,请了解如下基础本文属于java语言上的分析,不涉及到GC,虚拟机,native底层细节的实现。什么是内存泄漏当你不再需要某个实例后,但是这个...

  • 📂深入理解Java内存模型(六)——final教程

    与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代码来分别说明这两个规...