java
文章平均质量分 79
Fly_TheWind
这个作者很懒,什么都没留下…
展开
-
浅谈Synchronized
文章目录总览Synchronized 的作用Synchronized 的使用锁优化和同步原理锁粗化锁消除锁升级偏向锁轻量级锁重量级锁Monitor引用参考总览Java中锁机制可以分成以下几种:LockSynchronizedAutomatic (CAS)今天就我目前总结的知识来简单的聊一聊Synchronized。私以为学习需要有一个全局的概览,才可以更好的进行理解和记忆。如图是我理解的在锁升级过程中的知识概览。Synchronized 的作用原子性:所谓原子性就是指一个操作或者多个原创 2021-11-07 22:45:45 · 383 阅读 · 0 评论 -
谈谈Volatile
文章目录Volatile 作用1. 可见性多核CPU结构存储器层级结构CPU的多级缓存缓存一致性协议MESI2. 禁止指令重排序Java 源码字节码JVM 内存屏障汇编Volatile 作用可见性禁止指令重排序1. 可见性想要深入理解Volatile的作用,首先要理解计算机组成原理的一些知识:多核CPU结构存储器层级结构L1: 寄存器L2: 高速缓存L3: 高速缓存L4: 主存L5: 磁盘L6: 远程文件存储CPU的多级缓存计算机由于Cpu的运行速度远远大于数据IO的速度,原创 2021-10-24 21:14:08 · 480 阅读 · 0 评论 -
线程池能够持有最大线程数量真的是Integer.MAX_VALUE吗?
看到这个标题,大部分朋友都会说那还用说肯定是Integer.MAX_VALUE啊不行,我都可以给你找出源码来: /** * Creates a thread pool that creates new threads as needed, but * will reuse previously constructed threads when they are * available. These pools will typically improve the p原创 2021-10-19 00:38:16 · 482 阅读 · 0 评论 -
通过实例来理解 Java 中的四种引用类型
Java引用类型文章目录Java引用类型强引用释义代码演示软引用释义代码演示用途其他问题弱引用释义实例虚引用释义代码示例VisualVM查看内存情况,显式清除虚引用前后内存占用情况Java 中有强、软、弱、虚四种引用类型。强引用这个类并不存在,默认对象都是强引用类型,相比于WeakReference、SoftReference、PhantomReference的衬托,所以才起了一个叫Strong Reference的名字。其类图如下所示:强引用释义如果JVM垃圾回收器 GC 可达性分析结果为可达原创 2021-09-21 17:44:22 · 357 阅读 · 0 评论 -
ThreadLocal 简介
文章目录ThreadLocal 是什么ThreadLocal 作用从ThreadLocal 源码看 Thread实现原理ThreadLocal 类set()源码get() 源码remove() 源码ThreadLocal 面试相关问题ThreadLocal 为什么要使用弱引用ThreadLocal 为什么可能出现的内存泄露怎么避免ThreadLocalThreadLocal 是什么在百度百科上的注释是:ThreadLocal是Thread的局部变量,用于编多线程程序,对解决多线程程序的并发问题有一定原创 2021-09-21 11:27:48 · 402 阅读 · 0 评论 -
使用Springboot 自定义注解完成 统计函数耗时功能
使用Springboot 自定义注解完成 统计函数耗时功能pom 导入依赖建立springboot项目,在pom中导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>自定义注解 costTimepackage com原创 2021-03-08 23:25:13 · 1272 阅读 · 0 评论 -
面试题之 数据结构
StringBuffer 和 StringBuilderhttps://blog.csdn.net/rmn190/article/details/1492013TreeMap 和 MashMaphttps://www.jianshu.com/p/2dcff3634326重要 HashMap 、 HashTable和ConcurrentHashMap原创 2019-09-27 20:21:50 · 189 阅读 · 0 评论 -
Java 面试题 HashMap、ConcurrentHashMap、HashTable
HashMapHashMap 是一个关联数组、哈希表,它是线程不安全的,允许key为null,value为null。遍历时无序。其底层数据结构是数组称之为哈希桶,每个桶里面放的是链表,链表中的每个节点,就是哈希表中的每个元素。在JDK8中,当链表长度达到8,会转化成红黑树,以提升它的查询、插入效率,它实现了Map<K,V>, Cloneable, Serializable接口。...原创 2019-09-27 20:19:03 · 295 阅读 · 0 评论 -
Java 类加载
类加载类的生命周期加载 -> (验证 ->准备 ->解析)(连接Linking) ->初始化->使用 -> 卸载初始化阶段,JVM规定有且只有5中情况必须对类进行“初始化”,遇到new, getStatic,putstatic 或invokestatic这4条字节码使用java.lang.reflect包的方法对类进行反射调用时初始化一个类发现其父...原创 2019-09-21 21:54:23 · 161 阅读 · 0 评论 -
Java中断机制
Java中断机制好文章,记录一下https://www.cnblogs.com/jiangzhaowei/p/7209949.html转载 2019-09-14 20:39:06 · 240 阅读 · 0 评论 -
java 线程池总结
#TOC线程池 复习(预习)什么是线程池?线程池是管理了一组工作线程,同时它还包括了一个用于防止等待任务队列的任务队列(阻塞队列)。线程池体系从左到右 → 分别表示了线程池的 接口、类继承关系接口接口抽象类实现类ExecutorExecutorServiceAbstractExecutorServiceThreadPoolExecutorExecut...原创 2019-09-13 16:01:04 · 163 阅读 · 0 评论 -
从JDK文档看 Java 的线程状态究竟有几种?
就网上的资料来说,存在好几种说法:第一种:新建、就绪、运行中、阻塞、死亡一种是:线程的几种状态线程在一定条件下,状态会发生变化。根据线程的几种状态这篇文章,线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使...原创 2019-09-13 15:06:53 · 291 阅读 · 0 评论 -
Java构造函数的重载(设置默认参数)
众所周知,java没有办法设置默认参数,只有通过函数的重载的性质来完成对默认参数的设置。例如:为了是的函数能最大形式的通用,会传入正则表达式,但在大部分情况下,使用默认的参数就够了,所以就对removeSpace函数进行了重载。 public static String removeSpace(String content){ String defeat = "([^。! :))])\n...原创 2019-04-20 17:26:35 · 6618 阅读 · 0 评论 -
找实习之前看了些东西,觉得有必要了解的。
在网上看到一些有不太懂的问题,找了些答案。避免误删,在这放下。原创 2016-05-18 19:34:47 · 466 阅读 · 0 评论 -
Java文件流 字节流和字符流
Java 流分成2大类:1.字节流2.字符流顾名思义 字节流就是内容以字节的形式存储在流中,字符流则以字符的形式存储在流中,一般而言,字符流只用来处理纯文本文件,而字节流则可以用来处理文本,图片,视频,音频等。而对于字符流和字节流来说都可以分成输入输出两部分,所以可以分成: 字节流 字符流原创 2016-05-18 21:22:07 · 717 阅读 · 0 评论 -
亚信的实习的一到笔试题,交换链表的后半部分
链表节点结构package parameterValues;public class LNode { int value; LNode next;}这是主程序package parameterValues;import org.junit.Test;import sun.security.action.GetLongAction;public cl原创 2016-05-18 21:44:18 · 816 阅读 · 0 评论 -
计蒜之道第四场第一题:淘宝流量分配
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; int sum; while (scanner.hasNext()) { n = scanner.ne原创 2016-06-11 16:54:28 · 769 阅读 · 1 评论 -
牛客网 8.2 网易2017校招 Java 第一题 下厨房
题目大致是每组输入多行,每行有多种食材,求每组共多少食材,用hashtable不添加重复的特性解决。import java.util.Hashtable;import java.util.Scanner;/** * 网易2017校招笔试内推 * */public class 下厨房 { public static void main(String[] args) { S原创 2016-08-04 14:41:47 · 1272 阅读 · 0 评论 -
牛客网 8.2 2017网易校招 Java 第二题 地牢逃脱
题目大致如下:输入n,m,为地牢长和宽,下面输入n行m列的字符,如果为‘.’那么代表此处可以通行,否则无法通行,接下去,代表,地牢入口在哪,输入一行X,Y。代表入口地址,接下面是有几种走法,输入一个数字numb,下面每行有2个数字,代表如何行走。默认出口为右下角。求最坏情况下多少次能找到出口。输入事例:3 3 . . .. . .. . .0 140 1原创 2016-08-04 14:55:13 · 1057 阅读 · 0 评论 -
解决hash冲突
转自:http://blog.sina.com.cn/s/blog_54f82cc20100zuuy.html虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和转载 2016-08-14 14:22:28 · 387 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2. HashMap的数据结构: 在java编程语言中,最基本的结构转载 2016-08-14 13:52:19 · 603 阅读 · 2 评论 -
2017网易秋招内推面试经历
记录下面试时被问到的一些问题,有些可能不记得了,趁着还有印象,写下来。原创 2016-08-14 15:28:42 · 5784 阅读 · 0 评论 -
Java基本概念:集合类(Collection)List/Set/Map... 的区别和联系
Java基本概念:集合类(Collection) List/Set/Map... 的区别和联系Collection:List、SetMap:HashMap、HashTable如何在它们之间选择一、Array , ArraysJava所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。1、效率高,但容量固定且无法动态改变。array还有一个缺点是,无法转载 2016-05-26 15:09:16 · 609 阅读 · 0 评论