随笔分类 -  Java

java面试准备
摘要:ThreadLocal 1.ThreadLocal的作用 通常情况下,我们创建的变量可以被任何一个线程访问并修改,但是在多线程运行的环境下,我们希望每一个线程都有自己的本地专属变量,该怎么实现呐?(例如每个线程都保存该线程独有的 UserId 、TranactionId) 类似于JVM中分配内存,所 阅读全文
posted @ 2021-06-20 17:27 dengshuo7412 阅读(105) 评论(0) 推荐(0)
摘要:浮点数表示 & 缓存 & 布隆过滤器 1.计算机是如何表示小数 2.缓存 3.布隆过滤器 1.浮点数的表示 引子: 我们先看一个错误示例 public static void main(String[] args) { System.out.println(1f == 0.999999f); // 阅读全文
posted @ 2021-06-12 10:32 dengshuo7412 阅读(126) 评论(0) 推荐(0)
摘要:Reactor模式及NIO 1.引子 2.Reactor模式 3.Reactor模式应用 1.引子 Redis服务器: Redis服务器是一个事件驱动程序,主要处理文件事件(file event)和时间事件(time event) Redis基于Reactor模式开发了网络事件处理器 2.React 阅读全文
posted @ 2021-05-27 22:39 dengshuo7412 阅读(184) 评论(0) 推荐(0)
摘要:SpringMVC SpringMVC是基于Web MVC设计模式的请求驱动类型的轻量级Web框架; SpringMVC在Web应用中充当控制层Controller的角色 MVC模式:(Model-View-Controller):为了解决页面代码和后台代码的分离 0x01.SpringMVC请求流 阅读全文
posted @ 2021-05-12 22:05 dengshuo7412 阅读(62) 评论(0) 推荐(0)
摘要:title: Java对象内存布局 date: 2021-05-05 15:58:39 tags: Java;JVM Java对象内存布局 引子 运行时数据区域 虚拟机对象 锁升级(Synchronized) 1.引子 Java与C++之间隔着一堵由内存分配和垃圾回收筑城围墙,墙外面的人想进去,墙里 阅读全文
posted @ 2021-05-05 22:49 dengshuo7412 阅读(161) 评论(0) 推荐(0)
摘要:title: 深入理解Java虚拟机 date: 2020 05 14 10:58:24 tags: JVM,虚拟机 [TOC] 1.运行时数据区域 1.程序计数器 当前线程执行字节码的行号指示器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法,则为空) 2.虚拟机栈 虚拟机栈描述的 阅读全文
posted @ 2020-05-19 22:00 dengshuo7412 阅读(227) 评论(0) 推荐(0)
摘要:[TOC] 一.Volatile 0.基础知识 volatile关键字是java虚拟机提供的最轻量级的同步机制 JMM :Java Memory Model 可见性 Visiblity 原子性 Atomicity 有序性 Ordering 可见性 : JMM内存模型中,工作内存和主内存同步延迟现象造 阅读全文
posted @ 2020-05-13 20:58 dengshuo7412 阅读(162) 评论(0) 推荐(0)
摘要:@[toc] 1.Volatile volatile是一个关键字,用于在并发编程中修饰变量 volatile:java提供的一种 弱 同步机制 轻量的同步机制,用来确保将变量的更新通知到其他线程 保证可见性(禁止指令重排)、不保证原子性 如何保证可见性 变量声明为volatile类型后,编译器与运行 阅读全文
posted @ 2020-05-13 20:54 dengshuo7412 阅读(137) 评论(0) 推荐(0)
摘要:JVM 0.JVM 常见的启动参数。 Xms: 设置堆的最小值。 Xmx: 设置堆的最大值。 Xmn: 设置新生代的大小。 Xss: 设置每个线程的栈大小。 XX:NewSize: 设置新生代的初始值。 XX:MaxNewSize: 设置新生代的最大值。 XX:PermSize: 设置永久代的初始值 阅读全文
posted @ 2019-11-14 16:08 dengshuo7412 阅读(184) 评论(0) 推荐(0)
摘要:Java并发 J.U.C图 一.线程的安全性 当多个线程访问某个类的时候,不管运行环境采用何种方式调度或者这些线程如何交替执行,并且在主调代码中不需要任何额外的同步或者协同,这个类都可以表现出正确的行为,那么这个类就是线程安全的 无状态和竞态条件 无状态:不包含任何域,也不包含任何对其他对象中域的引 阅读全文
posted @ 2019-11-13 17:35 dengshuo7412 阅读(174) 评论(0) 推荐(0)
摘要:数组 及Arrays实用功能 1.问题来源 在学习容器的时候,对容器(集合)和数组在使用时如何选择有较大的问题? 2.数组 数组及其他类容器的区别 效率 类型 保存基本类型的能力 java中时内置数组Array,就是一个简单的线性序列 对于简单的数组 创建并组装他们 通过index访问元素 ,[] 阅读全文
posted @ 2019-11-11 11:35 dengshuo7412 阅读(131) 评论(0) 推荐(0)
摘要:类型信息 1.java如何在运行时识别对象和类的信息 "传统的"RTTI run time type identification ,假设我们在编译时已经知道了所有类型,在编译的时候打开和检查.class文件 反射机制,允许在运行时发现和使用类的信息,在运行的时候打开和检查.class文件 运行时的 阅读全文
posted @ 2019-11-10 12:10 dengshuo7412 阅读(158) 评论(0) 推荐(0)
摘要:Object 通用方法容易混淆的定义 先搞清楚各自的定义 "==" 用来判断 相等 equals() 用来判断 等价 hashcode() 用来返回 散列值 “==”相等 基本类型,判断两个值是否相等 引用类型,判断两个变量是否 引用同一个对象 在Object中未被重写的定义 hashcode()是 阅读全文
posted @ 2019-11-08 22:54 dengshuo7412 阅读(166) 评论(0) 推荐(0)
摘要:并发 1.基础知识 进程 :进程有独立的代码和数据空间(进程上下文),进程间切换会有巨大的开销,进程是进行资源分配的最小单位 线程 :同一类线程共享代码及数据空间,线程有独立的运行栈和pc计数器,线程的切换开销小,线程是cpu进行调度的最小单位 主线程 :JVM调用程序main()所产生的程序 当前 阅读全文
posted @ 2019-10-28 17:40 dengshuo7412 阅读(159) 评论(0) 推荐(0)
摘要:Comparable 及 Comparator 的区别 Comparable 一个内比较器,类可以和自己比较 compareTo() 自然比较方法 一个对象Collections,Arrays想自己调用sort进行自动排序,对象必须实现Comparable接口 Comparator 比较器 类本身不 阅读全文
posted @ 2019-10-25 08:35 dengshuo7412 阅读(269) 评论(0) 推荐(0)
摘要:java I/O java的输入输出系统 所有的数据都是通过流在各个设备上转运传输 磁盘文件 File 主要处理文件及文件系统(目录)这个 比较特殊,不属于流式操作 文件信息 isFile(),listFiles(),getName(),exists() getPath(),getAbsoluteP 阅读全文
posted @ 2019-10-23 16:31 dengshuo7412 阅读(190) 评论(0) 推荐(0)