随笔分类 -  java

摘要:![img](https://img2023.cnblogs.com/blog/1297993/202307/1297993-20230703001735859-1754577097.png) ![img](https://img2023.cnblogs.com/blog/1297993/20230 阅读全文
posted @ 2023-07-10 10:30 float123 阅读(15) 评论(0) 推荐(0) 编辑
摘要:## 名词 ### 线程和进程 进程是程序资源管理的最小单位 ,同一进程中的多条线程共享该进程中的全部系统资源,如虚拟地址空间,文件描述符文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈、寄存器环境、线程本地存储等信息。 进程和线程最大的区别就是操作系统给进程分配了虚拟内存空间 . 进 阅读全文
posted @ 2023-06-25 10:36 float123 阅读(23) 评论(0) 推荐(0) 编辑
摘要:前言 本章节使用 JDK 环境版本如下 : C:\Users\chenjz20>java -version java version "1.8.0_192" Java(TM) SE Runtime Environment (build 1.8.0_192-b12) Java HotSpot(TM) 阅读全文
posted @ 2023-02-26 16:21 float123 阅读(15) 评论(0) 推荐(0) 编辑
摘要:## 前言 ​ 该篇文章讲了关于java `final` 关键字的一些内容 , 大部分内容参考 : https://www.cnblogs.com/dolphin0520/p/3736238.html ## 概述 ​ final 可以修饰 : - 变量 - 类 - 方法 ​ final 的主要作用有 阅读全文
posted @ 2022-11-27 12:07 float123 阅读(20) 评论(0) 推荐(0) 编辑
摘要:前言 该篇文章讲了关于java final 关键字的一些内容 , 大部分内容参考 : https://www.cnblogs.com/dolphin0520/p/3736238.html 概述 final 可以修饰 : 变量 类 方法 final 的主要作用有 : final 变量一旦被初始化赋值之 阅读全文
posted @ 2022-11-25 09:48 float123 阅读(24) 评论(0) 推荐(0) 编辑
摘要:## Demo 先来看一下 ThreadLocal 的使用 ````java public class ThreadLocalOutOfMemoryTest { static class LocalVariable { //总共有5M private byte[] locla = new byte[ 阅读全文
posted @ 2021-09-04 23:31 float123 阅读(159) 评论(0) 推荐(0) 编辑
摘要:安装 安装很容易 , 是以 jar 包的形式运行的 模拟 我们以官方提供的例子为例 然后再另外的窗口运行 , 下面使用 命令, 该命令可以监控方法调用的情况包括 : 例如我们可以知道知道每5秒, 方法的调用情况. 可以看到 avg rt(平均响应) 我们可以找到最耗时的方法 , 然后进行定位问题 , 阅读全文
posted @ 2021-06-13 22:18 float123 阅读(1404) 评论(0) 推荐(0) 编辑
摘要:> 文章部分图片和描述来自 : https://www.infoq.cn/article/java-memory-model-1/ 半原创。 ## java memory model 出现的动机 以下的总结是个人观点不知准不准确 : 由于底层的编译器和处理器会重排序,从而使变量的可见性很模糊,而 J 阅读全文
posted @ 2020-03-30 13:36 float123 阅读(171) 评论(0) 推荐(0) 编辑
摘要:## 概述 这一篇想介绍一下 `String` 这个基本类型 ,包括它的底层实现和一些用法, 一些需要注意的地方. ## 字符串在内存布局的表示 这一节的内容请仔细看 R 大的这两篇文章 - [篇一 : 字符串的一般封装方式的内存布局 (0): 拿在手上的是什么](https://www.iteye 阅读全文
posted @ 2020-03-18 14:38 float123 阅读(296) 评论(0) 推荐(0) 编辑
摘要:## 概述 文章对HashMap的部分细节进行介绍,JDK1.7之前有可能出现环形表的问题,而1.7之后进行了改进,文章对环形表现象的出现进行了解析,然后对HashMap注意的几个问题进行了解答。 HashMap的底层实现是数组,主要具有以下特点 : - 键值对都允许为空(重要) - 线程不安全 - 阅读全文
posted @ 2019-12-31 14:31 float123 阅读(158) 评论(0) 推荐(0) 编辑
摘要:问题 : servlet 这个类是有什么作用 概述 servlet 是个接口,这个接口的作用是规范了接收请求的处理类。而最终的实现交给了 servlet 容器去实现。 servlet 接口 接口方法如下 : public interface Servlet { void init(ServletConfig var1) throws Servle... 阅读全文
posted @ 2019-03-09 17:33 float123 阅读(231) 评论(0) 推荐(0) 编辑
摘要:文章从 https://blog.51cto.com/devbean/203501 转载问题 :doble-check 实现的单例模式有什么缺点线程安全的单例写法应该是怎么样的概述 在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。... 阅读全文
posted @ 2019-03-01 16:54 float123 阅读(154) 评论(0) 推荐(0) 编辑
摘要:问题 : HashMap 容量大小 (capacity)为什么为 2n HashMap 是线程安全的吗,为什么 HashMap 既然有hash进行排位还需要equals()作用是什么 文章部分图片和代码来自参考资料,属于半原创 概述 HashMap 属于字典类,以键值对的方式存储值, 通过计算 hash 值,把key 放在特定的位置,当计算得到的键相同将会以链表的... 阅读全文
posted @ 2019-02-27 10:13 float123 阅读(518) 评论(0) 推荐(0) 编辑
摘要:问题 : 代理的应用场景是什么 动态代理的底层原理是什么,为什么只能继承接口 概述 代理模式是设计模式的一种,简单地说就是调用代理类的方法实际就是调用真实类的方法。这种模式在AOP (切面编程)中非常常见,使用的场景比如事务,网络代理等。他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。本文将会介绍代理... 阅读全文
posted @ 2019-02-25 16:15 float123 阅读(164) 评论(0) 推荐(0) 编辑
摘要:> _本文部分照片和代码分析来自文末参考资料_ > > _java8中的concurrenthashmap的方法逻辑和注解有些问题,建议看最新的JDK版本_ > > _建议阅读 concurrenthashmap 源码前过一遍源码前面的注释,参考资料第二篇的博客有注释翻译_ ## 问题 - Conc 阅读全文
posted @ 2019-01-11 15:56 float123 阅读(452) 评论(0) 推荐(0) 编辑
摘要:ScheduledThreadPoolExecutor概述 ScheduledThreadPoolExecutor下文简称 STPE. 1 public class ScheduledThreadPoolExecutor 2 extends ThreadPoolExecutor 3 implements ScheduledExecu... 阅读全文
posted @ 2019-01-04 15:45 float123 阅读(175) 评论(0) 推荐(0) 编辑
摘要:问题 : 线程池中的 coreSize 和 maxSize 的作用分别是什么? 未执行的线程池存在在哪种数据类型,为什么使用这种类型的数据结构 ThreadPoolExecutor概述 ThreadPoolExecutor 下文简称 TPE ,我们使用它都是从Executror 这个类中的方法 : 1 public static ExecutorService ne... 阅读全文
posted @ 2018-12-30 18:23 float123 阅读(281) 评论(0) 推荐(0) 编辑
摘要:阅读前阅读以下参考资料,文章图片或代码部分来自与参考资料 概览 一张图了解一下java锁. 注 : 阻塞将会切换线程,切换内核态和用户态,是比较大的性能开销 各种锁 为什么要设置锁的等级 jdk1.6对锁的实现引入了大量的优化,如自旋锁、适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等技术来减少锁操作的开销。锁主要存在四中状态,依次是:... 阅读全文
posted @ 2018-12-28 19:45 float123 阅读(217) 评论(0) 推荐(0) 编辑
摘要:问题 : ArrayBlockQueue 和 LinkedBlockQueue 的区别 两者的实现又是怎么样的 应用场景 BlockingQueue 概述 blockingQueue 是个接口,从名字上看就可以知道它是个阻塞队列,里面定义了增删改查的方法。四种不同的方法用于不同的场景中使用: 1、抛出异常; 2、返回特殊值(null 或 true/false,取决于具体的操作)... 阅读全文
posted @ 2018-12-27 16:24 float123 阅读(264) 评论(0) 推荐(0) 编辑
摘要:文章部分代码图片和总结来自参考资料 哈希和常用的方法 散列,从中文字面意思就很好理解了,分散排列,我们知道数组地址空间连续,查找快,增删慢,而链表,查找慢,增删快,两者结合起来形成散列表。如下图。 常见的hash 散列方法有 : 直接定址法:直接以关键字k或者k加上某个常数(k+c)作为哈希地址。 数字分析法:提取关键字中取值... 阅读全文
posted @ 2018-12-23 11:45 float123 阅读(1607) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示