WangQYoho的博客

路漫漫.

基于多线程和本地缓存实现跨域重复调用的高性能

>> 最近工作了,写博客的时间越来越少了,思考的时间越来越少,学习沉淀的时间也越来越少。忙里偷闲,记录一些在平时工作中一些有亮点的小tip,记录一些实用的技能,也多亏平时接触到的有能力有想法的同事~ 前言 对于大体量互联网公司的应用,更多场景下需要考...

2018-11-01 11:38:02

阅读数 164

评论数 0

不直接使用加减乘除完成四则运算?——二进制位运算实现四则运算

转载地址:https://ych0112xzz.github.io/2016/10/27/OperationwithBits/ 位运算实现整数加法方法x^y //执行加法,不考虑进位。(x&y)<<1 //进位操作解释在这里我们先...

2018-03-25 16:50:39

阅读数 596

评论数 0

Java NIO (一)

在现在,Java NIO已经越来越多的获得了应用包括Tomcat,netty等,这项技术也由之前面试时候的加分项变成了Java程序员必 备的技能之一。而之前我一直没有系统的对其进行学习梳理,因此现在闲下来,想对这一块的知识做一个相对完整的整理。话不多 说,开始吧。 引 NIO主要有三大核心部分:C...

2017-09-15 10:26:28

阅读数 320

评论数 0

Java泛型擦除和泛型的子类继承限制

一、引 最近发现一个问题,LinkedList ls 不可以被赋值给LinkedList lo,这是为什么呢? 这是因为Java中是泛型是伪泛型。虽然上面两个泛型的类具有继承关系,但是这两个List之间本身是没有关系的。当上述的 LinkdedList被编译之后,class文件中其变成了Linke...

2017-09-12 11:30:41

阅读数 3121

评论数 0

静态代理和动态代理的理解

Java 静态代理 静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理...

2017-08-25 18:04:24

阅读数 31924

评论数 16

concurrent.locks包中的几种锁的区别

可重入锁(ReentrantLock)可分为好几种,分别对应了不同的用途,先贴上api: lock public void lock() 获取锁。 如果该锁没有被另一个线程保持,则获取该锁并立即返回,将锁的保持计数设置为 1。 如果当前线程已经保持该锁,则将保持计数加 1,并且该方法...

2017-03-13 10:39:26

阅读数 552

评论数 0

深入理解Java ClassLoader

转载地址:http://blog.csdn.net/xyang81/article/details/7292380 一、什么是ClassLoader?          大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Ja...

2017-02-16 09:53:10

阅读数 618

评论数 0

JAVA类加载机制

类加载过程     类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺...

2017-02-15 11:34:04

阅读数 163

评论数 0

JAVA BIO和NIO及简单实现

最近简单研究了一下JAVA的NIO,话说出来这么久了,感觉这一块一直是空白,用的也比较少。但是感觉socket io这部分在以后工作中的高并发项目可能会用到,所以最近抽空研究了解了一下。 1、阻塞IO 阻塞IO比较简单,就是用普通的socket去写,因为没有什么太复杂的处理...

2017-02-14 16:01:21

阅读数 317

评论数 0

线程通信中的CountDownLatch和CycliBarrier

一、CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的...

2017-02-10 15:32:04

阅读数 1055

评论数 0

并发容器——CopyOnWrite

什么是CopyOnWrite容器   CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对Co...

2017-02-09 16:22:25

阅读数 259

评论数 0

并发容器——ConcurrentHashMap

HashMap是非线程安全的,Hashtable是线程安全的,但是由于Hashtable是采用synchronized进行同步,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。   ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够...

2017-02-09 16:14:00

阅读数 174

评论数 0

字符操作编程题(不断更新)

一、给定一个字符串,找出最长的没有重复成员的字串,并返回长度 第一个方法就是最老实的版本,逐步遍历所有子串,判断子串中有没有重复元素,记录全部遍历过程的最长子串长度。时间复杂度为O(n^3)。 public class Solution { public int lengthOfLong...

2016-11-01 15:10:06

阅读数 435

评论数 0

HashSet底层实现

前几天了解了hashmap的底层实现,现在继续看一下hashset的底层实现。由于hashset底层是由hashmap实现的,所以放到后面 来讲。有关hashmap的底层实现,可以戳这里: HashMap底层实现(jdk1.8) HashSet实现Set接口,由哈希表(实际上是一个Hash...

2016-10-30 15:12:40

阅读数 873

评论数 0

HashMap底层实现(jdk1.8)

在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当 位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表 +红黑树实现,当链表长度超...

2016-10-29 21:59:13

阅读数 645

评论数 0

Java并发编程:阻塞队列

在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。   使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线...

2016-10-23 20:18:56

阅读数 220

评论数 0

Java Class文件的一些解读

最近问到了Class文件相关的问题,现在从网上搜索一些资料,并加上自己的补充,记录如下: Java Class文件中包含以下信息: ClassFile { u4 magic;                                                       ...

2016-10-21 21:26:39

阅读数 1424

评论数 0

关于ThreadLocal的理解

当访问共享的可变数据时,通常需要使用同步。一种避免使用同步的方法就是不共享数据(虽然有点儿蠢...)。如果仅仅在单线程内访问数据,就不需要同步,这种技术就称作线程封闭(Thread Confinement)。   维持线程封闭性的一种较为规范的方法是使用ThreadLocal,这个类可以使得线程中...

2016-10-18 15:27:42

阅读数 246

评论数 0

Java内存模型以及volatile关键字

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的...

2016-10-16 14:20:13

阅读数 349

评论数 0

数据结构编程题(不断更新)

记录一些数据结构的编程题好题: 1、计算二叉树深度 public class Solution { public int TreeDepth(TreeNode pRoot) { return pRoot == null ? 0 : Math.max(TreeDepth(pR...

2016-09-27 10:26:53

阅读数 3268

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭