
Java基础
文章平均质量分 92
GeekDengshuo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ThreadLocal本地线程变量
ThreadLocal 文章目录ThreadLocal1.ThreadLocal的作用2.ThreadLocal的使用3.ThreadLocal的实现3.1ThreadLocal概览3.2ThreadLocalMap3.3ThreadLocal带来的问题-内存泄漏4.总结4.1应用场景4.2使用事项引用 1.ThreadLocal的作用 通常情况下,我们创建的变量可以被任何一个线程访问并修改,但是在多线程运行的环境下,我们希望每一个线程都有自己的本地专属变量,该怎么实现呐?(例如每个线程都保存该线程独有的原创 2021-06-20 17:28:43 · 783 阅读 · 0 评论 -
浮点数表示 & 缓存 & 布隆过滤器
浮点数表示 & 缓存 & 布隆过滤器 1.计算机是如何表示小数 2.缓存 3.布隆过滤器 1.浮点数的表示 引子: 我们先看一个错误示例 public static void main(String[] args) { System.out.println(1f == 0.999999f); // false System.out.println(1f == 0.9999999f); // false System.out.print原创 2021-06-12 10:28:19 · 283 阅读 · 1 评论 -
SpringMVC基础知识(一)
SpringMVC SpringMVC是基于Web MVC设计模式的请求驱动类型的轻量级Web框架; SpringMVC在Web应用中充当控制层Controller的角色 MVC模式:(Model-View-Controller):为了解决页面代码和后台代码的分离 0x01.SpringMVC请求流程 0x02.SpringMVC组件 0x03.SpringMVC核心 0x04.SpringMVC启动 0x05.SpringMVC方法 0x01.SpringMVC请求流程 0x02.Sprin原创 2021-05-12 22:12:52 · 147 阅读 · 3 评论 -
Java对象内存布局
Java对象内存布局 引子 运行时数据区域 虚拟机对象 锁升级(Synchronized) 1.引子 Java与C++之间隔着一堵由内存分配和垃圾回收筑城围墙,墙外面的人想进去,墙里面的人想出来。 正是因为Java虚拟机的内存分配和垃圾回收机制,减轻了程序员在编码时内存分配的负担,可以把更多精力放在实现上。 任何事物都有利弊,享受Java虚拟机的便利,就要承担相应的风险。 当Java程序内存出现泄漏的时候,如果没有搞懂虚拟机的内存分配及对象内存布局,就像隔靴搔痒,很难排查问题。 2.运原创 2021-05-05 22:51:37 · 225 阅读 · 0 评论 -
Java虚拟机
文章目录1.运行时数据区域2.GC垃圾回收3.内存分配与回收策略4.类加载机制1.加载2.验证3.准备4.解析5.初始化5.类与类加载器 1.运行时数据区域 1.程序计数器 当前线程执行字节码的行号指示器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法,则为空) 2.虚拟机栈 虚拟机栈描述的是java方法执行的内存模型:方法在执行的时候创建一个栈帧(Frame) 栈帧中存储着(局部变量,操作数栈,常量池引用) 3.本地方法栈 为虚拟机使用Native方法服务 4.Java堆 所有对象都在堆原创 2020-05-19 22:02:06 · 340 阅读 · 0 评论 -
JUC并发基础
文章目录一.Volatile0.基础知识1. volatile的解释3.volatile的应用二.CAS0.CAS的定义1.CAS底层原理2.CAS的缺点3.ABA问题三.集合类并发安全0.问题描述1.故障现象2.导致原因3.解决方法四.Java锁0.公平锁、非公平锁1.可重入锁(递归锁)2.自旋锁3.读写锁/互斥锁五.J.U.C-AQS0.AQS- Abstract Queued Synchronizer1.Semaphore信号量六.阻塞队列0.BlockingQueue阻塞队列1.阻塞队列的方法2.S原创 2020-05-13 20:57:32 · 896 阅读 · 0 评论 -
Java并发基础
文章目录1.Volatile2.CAS3.锁4.AQS5.ThreadPool 1.Volatile volatile是一个关键字,用于在并发编程中修饰变量 volatile:java提供的一种弱同步机制 轻量的同步机制,用来确保将变量的更新通知到其他线程 保证可见性(禁止指令重排)、不保证原子性 如何保证可见性 变量声明为volatile类型后,编译器与运行时都会注意到这个变量时共享的,不会将该变量 上的操作和其他内存操作仪器重排序 volatile变量不会被缓存在寄存器 指令重排 多线程环境中原创 2020-05-13 20:53:05 · 292 阅读 · 0 评论 -
类型信息(反射 及 RTTI)
类型信息 1.java如何在运行时识别对象和类的信息 "传统的"RTTI run-time type identification ,假设我们在编译时已经知道了所有类型,在编译的时候打开和检查.class文件 反射机制,允许在运行时发现和使用类的信息,在运行的时候打开和检查.class文件 运行时的类型信息使得你可以在程序运行时发现和使用类型信息 2.Class对象 Class对象这个...原创 2019-11-10 12:12:03 · 241 阅读 · 0 评论