java
蒻鸡Kid
这个作者很懒,什么都没留下…
展开
-
java 基础知识之反射
一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。ps.框架的灵魂二 获取类的Class实例的方式想要创建一个对象,首先要获取类的class实例才能进行反射创建通过Class.forName(“类的全限定名”) 来获取Class<Demo> demoClass = (Class<Demo>) Cla原创 2020-10-23 20:26:16 · 183 阅读 · 0 评论 -
Redis基础使用&&底层&&面试题
redisredis使用性能优异的原因redis 是基于内存的采用的是单进程单线程模型的kv数据库,由C语言编写的,官方提供的数据是可以达到10W+的qps的(每秒查询次数)完全基于内存,绝大部分的请求是纯粹的内存操作,非常快速,它的数据存在内存中 类似hashmap 的优势 让查找和操作的时间复杂度都是O(1)数据结构简单,对数据操作简单。采用单线程 避免了不必要的上文切换和竞争条件,也不存在多进程或者多线程切换导致的cpu小号,不用考虑各种锁的问题,不存在加锁释放锁的操作,没有因为可能出现死原创 2020-08-18 14:52:03 · 337 阅读 · 0 评论 -
多线程之线程池ThreadPoolExecutor 源码解析
线程池 源码 看不懂 顺着网线来打我,ThreadPoolExecutor原创 2020-06-15 20:25:25 · 136 阅读 · 0 评论 -
ConcurrentHashMap 详解(超详细 看不懂你锤我)
ConcurrentHashMap介绍ConcurrentHashMap是一个 在juc包下的 map, 线程安全。 在jdk.1.7 之前采用数组+ 链表的结构 并且采用分段锁机制 来保证线程安全,而jdk1.8之后 他改成了 数组+ 链表+ 红黑树,线程安全方面也改成了 cas+ synchronized 来保证线程安全。下面我们来看看ConcurrentHashMap的 源码是怎样实现的(jdk1.8)属性// 散列表最大容量private static final int MAXIMUM_C原创 2020-06-14 09:28:12 · 9619 阅读 · 0 评论 -
多线程之FutureTask源码解析
FutureTask介绍个可取消的异步计算。FutureTask提供了对Future的基本实现,可以调用方法去开始和取消一个计算,可以查询计算是否完成并且获取计算结果。只有当计算完成时才能获取到计算结果,一旦计算完成,计算将不能被重启或者被取消,除非调用runAndReset方法。除了实现了Future接口以外,FutureTask还实现了Runnable接口,因此FutureTask交由Executor执行,也可以直接用线程调用执行(futureTask.run())。public class Fut原创 2020-06-13 10:11:40 · 117 阅读 · 0 评论 -
线程基础Thread类源码解读
ThreadThread类是java在创建多线程的一个类 也是使用的比较多的一个多线程类。Thread类继承了Runnable 接口 实现了多线程。重要属性解读// 标志线程状态 默认为 未启动private volatile int threadStatus;// 线程最低优先级public static final int MIN_PRIORITY = 1;// 默认优先级public static final int NORM_PRIORITY = 5;// 最大优先级publ原创 2020-06-12 20:47:41 · 88 阅读 · 0 评论 -
jdk8之LongAdder 源码解析
LongAdder 是比AtomicaLong 更高效的原子累加器 是Doug lea大师的作品。目录结构add && increment && decrement 方法 public void add(long x) { Cell[] cs; long b, v; int m; Cell c; // cells 累加单...原创 2020-04-16 22:05:12 · 362 阅读 · 0 评论 -
java集合框架源码解析之HashSet
代码结构实现了 Set接口public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable属性 // 底层调用map的方法 private transient HashMap<E,Object&g...原创 2020-04-01 10:28:14 · 129 阅读 · 0 评论 -
java并发容器之ConcurrentHashMap 详解
ConcurrentHashMap, jdk1.7,jdk1.8区别,java的并发包。舍弃了分段锁,而改用了cas+ synchronized 来保证并发安全。原创 2020-03-21 18:27:31 · 468 阅读 · 0 评论 -
java 初识JVM
java 代码执行流程–java程序–> 编译成字节码文件 -->类加载器–> 字节码校验器 ->执行引擎java编译器输入的指令流是一种基于栈的指令集,另一种是基于寄存器的指令集架构基于栈式架构的特点:设计和实现更简单,适用于资源受限的系统避开了寄存器的分配难题,使用零地址指令方式分配直流零的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小编...原创 2020-03-13 22:44:07 · 168 阅读 · 0 评论 -
java多线程学习笔记
创建线程的四种方式1、 继承Thread 类通过此方法创建线程 需要重写run方法class ThreadTest extends Thread{ @Override public void run() { System.out.println("ThreadTest running"); }}public class ThreadTest01 ...原创 2020-03-05 22:39:47 · 87 阅读 · 0 评论 -
JAVA集合之HashMap详解
HashMap 是实现与Map接口 java集合框架中重要的集合 底层数据结构是 数组+链表+红黑树非线程安全属性解释 //默认初始化数组容量 默认 16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // 最大数组容量 2^30 次方个 static final int MAXIMUM_CA...原创 2020-03-04 21:46:34 · 158 阅读 · 0 评论 -
ArrayList 源码详解
ArrayList 继承 AbstractList 抽象类 是List 的子类属性解释// 默认 数组大小是 10个private static final int DEFAULT_CAPACITY = 10;private static final Object[] EMPTY_ELEMENTDATA = {};private static final Object[] DEFAUL...原创 2020-02-24 19:13:07 · 720 阅读 · 3 评论 -
java集合之Vector 详解
Vector 是java 集合中的他继承了AbstractList 实现了List等接口运用synchronized 保证了线程安全 但是也带来了格外的性能开销 public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneabl...原创 2020-02-28 22:20:00 · 289 阅读 · 0 评论 -
java集合之LinkedList 详解
LinkedList 继承至AbstractSequentialList 同时实现了List 等接口public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Seriali...原创 2020-02-26 19:06:44 · 180 阅读 · 0 评论 -
异常、断言
异常都是由 Throwable 继承而来,但在下一层立即分解为两个分支:Error 和 Exception.Error类层次结构描述了java运行时内存耗尽或者内部错误应用程序不应该抛出这种异常Exception层次结构又分为 RuntimeException 和其他异常由程序错误导致的异常 就是RuntimeException ,而如果程序本身没有问题,由于I/O错误这类的问题产生的异常...原创 2020-02-18 20:47:56 · 186 阅读 · 0 评论 -
java面试题 软引用 强引用 弱引用 虚引用的的区别
强引用强引用就是我们最常见的普通引用,只要在有强引用指向的一个对象,就能表明对象还活着。垃圾收集器不会回收这种对象。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域活着显式地将相应的引用赋值为NULL 就可以被垃圾收集器手机的。具体回收还是看垃圾回收的策略。软引用软引用是一种相对强引用的弱化一些的引用,可以让对象豁免一些垃圾收集,只有当jvm认为内存不足的时候,才会去视图回...原创 2020-02-06 19:50:05 · 253 阅读 · 0 评论