-
异常: Call From * 9000 failed on connection exception: java.
所属栏目:[Java] 日期:2020-12-14 热度:182
场景: eclipse链接不上阿里云hadoop 解决: 将hadoop的配置文件中的ip改为内网IP即可[详细]
-
异常:android.os.NetworkOnMainThreadException
所属栏目:[Java] 日期:2020-12-14 热度:88
场景: 安卓开发时在主线程访问网络 解决: 将访问网络的代码使用Thread操作 Handler handler = = String val = data.getString("value" = Message msg = = "value","存放数据"[详细]
-
异常: Recieved SHUTDOWN signal from Resourcemanager ,Registr
所属栏目:[Java] 日期:2020-12-14 热度:139
异常: Recieved SHUTDOWN signal from Resourcemanager,Registration of NodeManager failed,Message from ResourceManager: NodeManager from localhost doesn't satisfy minimum allocations,Sending SHUTDOWN signal to the NodeManager. 场景: 在配置had[详细]
-
Java并发编程的艺术笔记
所属栏目:[Java] 日期:2020-12-14 热度:123
多线程总结 Java内存模型 volatile 重排序规则[不允许重排序] volatile读+任何操作 任何操作+volatile写 volatile写+volatile读 ReentrantLock 实现依赖于Java同步器框架AQS AQS使用一个整型的volatile变量(命名为state)来维护同步状态 这个volatile变[详细]
-
ThreadLocal源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:53
1.特性分析 类功能 提供线程本地变量。 减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度 为线程提供一个私有的变量副本,这样每一个线程都可以随意修改自己的变量副本,而不会对其他线程产生影响。 与类中其它普通变量的区别 普通的变量可[详细]
-
简单认识SLF4J
所属栏目:[Java] 日期:2020-12-14 热度:153
SLF4J JAVA 简易日志门面 【Simple Logging Facade for Java,缩写SLF4J】 宏观定义:一套包装Logging 框架的界面程式,以外观模式实现 定性:它仅仅是一个提供日志输出的统一接口,而非具体的日志实现方案。具体的日志实现方案有:log4j、JDK14、Simple等。[详细]
-
Exchanger源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:87
1.特性分析 功能 一个用于线程间协作的工具类。 用于线程间的数据交换。 实现机制 它提供了一个同步点, 在这个同步点,两个线程可以交换彼此的数据 。 两个线程通过exchange方法交换数据,如果第一个线程先执行exchange()方法,它会一直等待第二个线程也执[详细]
-
java中的12个原子操作类
所属栏目:[Java] 日期:2020-12-14 热度:192
1.简介 JDK1.5开始提供了java.util.concurrent.atomic包,这个包中的原子类提供了一种用法简单、性能高效、线程安全的更新变量的方式。 包中共计12个类,分属于4种类型: 原子更新基本类型 原子更新数组 原子更新引用类型 原子更新属性(类的字段) 实现方式[详细]
-
Semaphore源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:81
1.特性分析 Semaphore就是一个计数的信号量 每一个线程在获取资源前,必须从semaphore获取许可,这保证了一定有可用的资源。 注意:acquire方法并没有使用同步锁机制 ,这样就保证了acquire方法被调用时,被使用完的资源依然可以放回资源池中。 二元semaphore[详细]
-
JDK中涉及的设计模式总结
所属栏目:[Java] 日期:2020-12-14 热度:100
所有的设计模式都找了一种JDK中的实现(并未列出所有,原因是太多,而且本次整理的目的是通过JDK中的实例完成设计模式的梳理和记忆,所以只写一种实现)。依次对类,对应的方法,功能进行介绍。 创建模式 h4 id="1抽象工厂"1.抽象工厂 javax.xml.parsers.Docum[详细]
-
CyclicBarrier源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:172
1.特点分析 CyclicBarrier是一种 同步机制 ,它可以使得 一组线程在同一个障碍点进行等待 。 CyclicBarriers 可以通过重置计数器从而重新使用 。 CyclicBarrier支持一个可选的Runnable命令(实例化构造函数中的参数),该命令在最后一个线程到达后,但在任何线[详细]
-
CopyOnWriteArrayList源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:199
1.特性 此类是ArrayList的线程安全变体,其中所有更改操作(如add,set等)通过创建底层数组的最新副本来实现 迭代器特性: 迭代器使用快照方式,且在迭代期间数组不会改变,故不会出现并发异常。 迭代器创建后,对list对add,remove不会反映到迭代器中。 迭代[详细]
-
基本类型包装型的缓存值cache
所属栏目:[Java] 日期:2020-12-14 热度:171
1.基本类型包装类型的缓存值 基本类型不包括:float,double bool缓存值:true,false char缓存值:0~127,故ASSII码里面的字符都有缓存 其它范围:-128~127 特殊的int:上限默认为127,但可通过-XX:AutoBoxCacheMax设置。 实现方式:定义了缓存数组(bool[详细]
-
ConcurrentHashMap源码分析-Java8
所属栏目:[Java] 日期:2020-12-14 热度:197
h4 id="1concurrenthashmap特性"1.ConcurrentHashMap特性 说明:因为ConcurrentHashMap单词太长,所以下面均适用 CHM 替代ConcurrentHashMap 同为线程安全集合,但CHM没有任何 访问操作 需要锁定全表。这也注定了CHM上的操作效率之高。 表访问需要volatile/a[详细]
-
LinkedHashMap源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:180
得益于昨天网易的面试,所以重新认识了一个集合,回来后赶紧做了分析,继续努力~ps:面试官真的很nice,希望好运~ h4 id="1特性分析"1.特性分析 说明:因为LinkedHashMap单词太长,所以以下都用LHM替代 基本数据结构:数组+双向链表+红黑树 因为继承Hash[详细]
-
Java8函数式编程的宏观总结
所属栏目:[Java] 日期:2020-12-14 热度:186
h4 id="1java8优势"1.java8优势 通过将行为进行抽象,java8提供了批量处理数据的并行类库,使得代码可以在多核CPU上高效运行。 h4 id="2函数式编程的核心"2.函数式编程的核心 使用不可变值和函数,函数对一个值进行处理,映射成另一个值。 h4 id="3lambda表[详细]
-
AbstractSet源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:199
h4 id="13个方法"1.3个方法 h4 id="2hash值"2.Hash值 hash=sum(每个元素的hash值) 如果元素为null,则默认hash值为0. h4 id="3removeallcollection"3.removeAll(Collection h4 id="4源码分析"4.源码分析 package sourcecode.analysis; /** * @Author: cxh *[详细]
-
TreeMap源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:100
h4 id="1特征分析"1.特征分析 TreeMap是基于NavigableMap的 红黑树 的实现。 默认排序方式:对key升序排序。 TreeMap是 非线程同步 的。 支持浅拷贝,序列化 红黑树put节点时,分有无比较器分开讨论,这主要是从性能角度考虑的。 代理模式: 定义在subMap中[详细]
-
ListIterator接口源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:149
h4 id="1listiterator-vs-iterator"1.ListIterator VS Iterator: ListIterator是对接口Iterator的继承 Iterator只有4个操作方法:hasNext,next,remove,forEachRemaining,其中forEachRemaining是JDK8新增方法 ListIterator比Iterator多出5个方法:hasPre[详细]
-
ArrayList源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:127
h4 id="1特点总结"1.特点总结: 可存储元素null 调用无参构造器创建实例,默认容量capacity=10 自动扩容倍数:1.5 和Vector类等价,区别是 ArrayList不是线程安全的. 4个重要的private static final类型实例变量: EMPTY_ELEMENTDATA 空实例的共享空数组 在c[详细]
-
《Effective Java》读书笔记
所属栏目:[Java] 日期:2020-12-14 热度:123
h3 id="1静态工厂方法"1.静态工厂方法 相对公有构造器的优势 有名字。静态工厂方法可以根据功能定义名字,但构造器名字都是类名。 不必每次调用时都创建对象。如果经常请求创建相同的对象,并且创建对象的代价很高,则这项技术可以极大的提高性能。 可以返回[详细]
-
AbstractList源码分析-java8
所属栏目:[Java] 日期:2020-12-14 热度:83
h3 id="1说明"1.说明 AbstractList是List的骨架实现 唯一构造器.(通常由子类构造函数隐式调用,因为protected修饰,且无参数,所以可以被子类使用) 2个私有内部类:Itr,ListItr。Itr实现了Iterator接口;ListItr继承了Itr,且实现了ListIterator接口。 2个辅助[详细]
-
List接口-java8
所属栏目:[Java] 日期:2020-12-14 热度:140
h3 id="1list接口特性"1.List接口特性: List接口定义中元素可以为null,但是对接口的不同class实现却不一定。 方法调用带来了内存空间损耗(和母list元素不共享内存): toArray() 方法调用可能带来内存空间损耗: toArray(T[] a) java8新增default方法: rep[详细]
-
CountDownLatch源码分析
所属栏目:[Java] 日期:2020-12-14 热度:185
h3 id="1javautilconcurrent中高级的工具分为三类"1.java.util.concurrent中高级的工具分为三类 Executor Framework 并发集合(Concurrent Framework) 同步器 本文章是对常用同步器CountDownLatch进行介绍 h3 id="2同步器"2.同步器 定义:是一些使线程能够等[详细]
-
函数接口BiConsumer
所属栏目:[Java] 日期:2020-12-14 热度:61
package sourcecode.analysis; /** @Author: cxh @CreateTime: 18/3/8 15:54 @ProjectName: JavaBaseTest */ import java.util.Objects; /** to operate via side-effects. 本函数接口特征: 1.输入参数2个. 2.无输出结果 3.本函数接口和Consumer函数接口唯一[详细]