java
Fighter168
Cray for you
展开
-
Java最强最新知识体系总结(2021版)
Java最强最新知识体系总结(2021版)转载 2021-04-26 14:09:32 · 302 阅读 · 0 评论 -
75个阿里开源项目
前端1.数据驱动的高交互可视化图形语法 AntV - G2G2 是一套基于可视化编码的图形语法,以数据驱动,具有高度的易用性和扩展性,用户无需关注各种繁琐的实现细节,一条语句即可构建出各种各样的可交互的统计图表。同时,G2 也是 AntV 最重要的组成,始于《The Grammar of Graphics》一书描述的视觉编码语法系统(这也是 G2 项目命名的由来)。项目地址:https:/...转载 2020-04-01 19:19:18 · 196 阅读 · 0 评论 -
Java知识体系最强总结(2020版)
原文地址:java知识总结转载 2020-03-16 11:08:55 · 247 阅读 · 0 评论 -
java提高篇(三)-----理解java的三大特性之多态
面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开:转载 2017-02-26 17:56:45 · 431 阅读 · 0 评论 -
Java IO最详解
初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是Java io 比较基本的一些处理流,除此之外我们还会提到一些比转载 2017-02-27 16:28:54 · 625 阅读 · 0 评论 -
ConcurrentHashMap源码分析(JDK8版本)
注:本文源码是JDK8的版本,与之前的版本有较大差异ConcurrentHashMap是conccurrent家族中的一个类,由于它可以高效地支持并发操作,以及被广泛使用,经典的开源框架spring的底层数据结构就是使用ConcurrentHashMap实现的。与同是线程安全的老大哥HashTable相比,它已经更胜一筹,因此它的锁更加细化,而不是像HashTable一样为几乎每个转载 2017-03-31 22:10:07 · 1139 阅读 · 0 评论 -
LinkedList源码分析(基于JDK8)
LinkedList简介LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行队列操作。LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用。LinkedList 实现了Cloneable接口,即覆盖了函数clon原创 2017-03-12 17:36:24 · 5763 阅读 · 1 评论 -
ArrayList源码分析(基于JDK8)
ArrayList 源代码解读,以及ArrayList特点总结原创 2017-03-12 00:23:19 · 20640 阅读 · 31 评论 -
HashMap源码分析(基于JDK8)
HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。原创 2017-03-25 18:51:54 · 5430 阅读 · 3 评论 -
HashSet源码分析(基于JDK8)
对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成原创 2017-03-27 00:16:46 · 4747 阅读 · 2 评论 -
ThreadLocal源码分析
ThreadLocal是怎么实现了多个线程之间每个线程一个变量副本的?它是如何实现共享变量的。ThreadLocal提供了set和get访问器用来访问与当前线程相关联的线程局部变量。如何实现自己的ThreadLocal ? 下面我们来看一看ThreadLocal使用示例下面是HibernateUtil 中的ThreadLocal使用示例 //创建线程局部变量原创 2017-02-25 12:06:12 · 737 阅读 · 0 评论 -
Java nio 概述
Java nio 全称Java new io,是jdk1.4里提供的api。Java nio 与 io最主要的区别1、读写方式Io是面向流的,只能在一个方向上移动,一个输入流(inputStream)一个输出流(outputStream),需要从流中读一个或多个字节,直到读取完所有的字节。Nio是面向缓冲的,可以双向,无论是读写,数据都会被先放到一个缓冲区转载 2017-03-02 20:38:16 · 545 阅读 · 0 评论 -
Lock与synchronized 的区别
1、lock是可中断锁,而synchronized 不是可中断锁 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在等待了足够长的时间以后,中断等待,而干别的事情原创 2017-02-07 09:45:41 · 357 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch原创 2017-01-12 11:19:22 · 397 阅读 · 0 评论 -
java常见面试题及答案 11-20(JVM)
11.JVM内存分哪几个区,每个区的作用是什么?Java虚拟机主要分为以下一个区:方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器编译后的代码等数据。3. 该区域是被线程共享的。4. 方法区里有一个原创 2017-01-12 15:31:48 · 621 阅读 · 0 评论 -
Java常见面试题及答案 21-30(集合类)
21.HashMap的工作原理是什么?HashMap内部是通过一个数组实现的,只是这个数组比较特殊,数组里存储的元素是一个Entry实体(jdk 8为Node),这个Entry实体主要包含key、value以及一个指向自身的next指针。HashMap是基于hashing实现的,当我们进行put操作时,根据传递的key值得到它的hashcode,然后再用这个hashcode与数组的长度原创 2017-01-12 15:38:32 · 714 阅读 · 0 评论 -
java并发编程系列之Lock的使用
Jdk1.5中,在Java.util.concurrent.locks包下,有一组实现线程同步的接口和类,说到线程的同步,很多立马就会想到synchronized关键字,这是java内置的关键字,用来处理线程同步的,但这个关键字有很多的缺陷,使用起来也不是很方便和直观,所以就出现了Lock,下面,我们就来对比着讲解Lock。synchronized关键字:该关键字在使用的过程中会有转载 2017-02-09 11:40:48 · 413 阅读 · 0 评论 -
Java提高篇(三四)-----fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器转载 2017-02-27 20:07:55 · 455 阅读 · 0 评论 -
java中读写锁ReadWriteLock
1.排他锁(互斥锁)的概念: synchronized,ReentrantLock这些锁都是排他锁,这些锁同一时刻只允许一个线程进行访问。2.读写锁的概念: 分为读锁和写锁,多个读锁不互斥,读锁和写锁互斥,写锁与写锁互斥。3.读写锁的好处:为了提高性能,Java提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,如果没有写转载 2017-02-10 10:41:18 · 565 阅读 · 0 评论 -
HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了。本文尽自己所能,尽量详细的解释HashMap的源码。一山还有一山高,有不足之处请之处,定感谢指定并及时修正。 在看HashMap源码之前先复习一下数据结构。 Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表恰好相反转载 2017-02-14 19:08:51 · 429 阅读 · 0 评论 -
Java序列化总结
前一段时间写的关于集合类源码分析的博客中其实一直没有提到两个方法,那就是writeObject和readObject方法。这两个方法涉及到序列化的内容,这篇博文总结遇到过的和序列化相关的内容。 什么是序列化? 序列化是将对象的状态信息转化为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后可以通过存储区中读取或反序列化对象的状态转载 2017-02-14 20:44:24 · 381 阅读 · 0 评论 -
Java中CAS详解
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制原创 2017-02-07 09:17:58 · 3053 阅读 · 0 评论