Sam哥哥聊技术

互联网技术爱好者

排序:
默认
按更新时间
按访问量

生产者-消费者模式

概述 生产者-消费者模式在系统交互方面,有两个特点: 1、系统解耦 2、解决并发问题下面用几个简单例子逐步说明。 简单例子 假设有两个系统,A系统和B系统,B系统需要依赖A系统产生的数据,也就是说,A系统产生数据后,必须把数据扔给B系统。 这个时候,可以让B系统提供一个方法,比如说提供一...

2017-02-13 14:54:44

阅读数:1392

评论数:0

学习JAVA类加载器

概述 JAVA语言利用虚拟机来加载class文件,并执行代码。任何JAVA文件,经过编译生成的class文件只要符合规范,就可以被虚拟机加载并执行。 类加载器的分类 类加载器有两个分类,一种是用于加载JAVA核心组件的启动类加载器(bootstrap class loader),另一种是用户自...

2017-02-12 12:34:18

阅读数:774

评论数:0

HTTP1.0 HTTP 1.1 HTTP 2.0主要区别

HTTP1.0 HTTP 1.1主要区别 长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因...

2017-02-11 13:48:07

阅读数:24837

评论数:0

Mysql 索引知识点

介绍MySql的索引知识点。

2017-02-08 11:54:46

阅读数:970

评论数:2

Mysql B+树学习

概述 要描述清楚B+树,得先了解二叉查找数,平衡二叉树。 二叉查找树 任意节点,它的左子树如果不为空,那么左子树上所有节点的值都小于根节点的值; 任意节点,他的右子树如果不为空,那么右子树上的所有节点的值大于根节点的值。 这个特性给查找带来了方便,如上图,要找k...

2017-02-08 00:56:37

阅读数:2590

评论数:3

学习NIO

介绍NIO的知识。

2017-02-06 23:57:54

阅读数:2384

评论数:4

Object wait方法

概述 当线程B访问某个共享资源时,想获取资源的锁对象,发现这个锁已经被线程A拿到了,这个时候,线程B只能被挂起,等待线程A释放锁。但是拿到锁的线程A在执行的过程中,因为某些条件还不满足,暂时不想继续执行下去,想先等待一下(注意:是已经拿到锁的线程A自己想主动等待的),希望等到某个条件满足后,继续执...

2017-02-04 14:54:22

阅读数:2844

评论数:3

ConcurrentHashMap学习

概述 ConcurrentHashMap绝对是经典之作,里面的设计思想可以开拓我们的编程思路。想在高并发多线程环境使用一个Map的话,ConcurrentHashMap是首选,它不只性能高,还是线程安全的。 我们最常使用的HashMap是线程不安全的,可以参考HashMap多线程下发生死...

2017-02-03 01:44:02

阅读数:823

评论数:2

学习volatile关键字

volatile关键字要用好很难,使用它的场景也不多,但是在某些场景下,volatile变量是线程安全的,并且开销比synchronized关键字要低。 基础知识锁的两大特性”互斥” 与 “可见性”。 互斥是说,每次都得等先拿到锁的线程把锁释放了,其他线程才有资格访问共享资源,期间线程对共享资源时...

2017-01-31 22:25:29

阅读数:731

评论数:2

学习一下CAS

学习一下CAS

2017-01-31 08:16:35

阅读数:875

评论数:0

HashMap多线程下发生死循环的原因

概述 大神陈皓已经在疫苗:JAVA HASHMAP的死循环一文中详细描述了HashMap多线程下产生死循环的原因,我仔细研读了这篇大作,做了一些笔记,加上自己的一些理解 整理出一些信息,发出来与大家交流交流。 HashMap存储的数据结构 陈皓在Hash表数据结构这一节提到了HashMap的...

2017-01-25 11:39:54

阅读数:3370

评论数:7

HashMap扩容

`HashMap`的size大于等于(**容量*加载因子**)的时候,会触发扩容的操作,这个是个代价不小的操作。 为什么要扩容呢?`HashMap`默认的容量是16,随着元素不断添加到`HashMap`里,出现`hash`冲突的机率就更高,那每个桶对应的链表就会更长, 这样会影响查询的性能,因为每...

2017-01-24 11:54:31

阅读数:1604

评论数:0

转载张龙老师一篇关于IntelliJ IDEA的介绍

IntelliJ IDEA

2017-01-24 00:46:04

阅读数:526

评论数:0

Dojo到底还有没有人用呢

哎。`DOJO`研究了一段时间了,但是问了周围的同事以及其他互联网公司的同事,都说没用`DOJO`。个人觉得如果是做后台应用的界面端的话,`DOJO`是个不错的选择,严格的面向对象,组件又多也很规范。但是目前大家宁愿选择jquery ui、easyui等等。搞不懂?? 搞得我都不想继续看`DOJ...

2017-01-24 00:35:59

阅读数:1196

评论数:4

HashMap的put和get方法原理

概述JAVA中的数组,在添加或者删除元素的时候,都会复制一个新数组,比较耗内存。但是数组的遍历则是非常高效的。链表则是相反, 遍历慢(需要遍历数组,一直找到值相等的元素才算找到),而添加和删除元素代价低。有没有办法结合两者的特点,做到寻找元素快,插入元素或者删除元素代价低呢?答案是利用哈利表。H...

2017-01-23 15:02:16

阅读数:13763

评论数:3

你去面试,需要准备什么知识点?

概述又是新的一年了,去年的绩效也出来了,总是几家欢乐几家愁。绩效好的机会多的老板信任的,在新的一年会更加有干劲。绩效不好的,老板不看好的,可能新的一年就会有离职的冲动。 如果你有离职的想法,那么还是需要花一些时间准备一下,毕竟现在外面好的互联网公司对程序员的要求还是蛮高的,需要你有各种能耐。下面...

2017-01-18 16:34:38

阅读数:1859

评论数:26

线程安全的CopyOnWriteArrayList介绍

证明CopyOnWriteArrayList是线程安全的先写一段代码证明CopyOnWriteArrayList确实是线程安全的。ReadThread.javaimport java.util.List;public class ReadThread implements Runnable { ...

2017-01-17 16:07:19

阅读数:18713

评论数:4

Short类型的List contains(Byte.valueOf("1"))的问题

概述最近测试人员发现了一个bug,我找了半天,一直找不到bug的原因。后来debug代码的时候,才发现一个隐藏的bug。如下代码:private static List<Short> tempList = Arrays.asList(new Short [] {13,17,18,20}...

2017-01-16 19:58:38

阅读数:654

评论数:0

利用子查询找出某个属性存在A表而不存在B表的数据

概述假设有两张表,A表和B表A表: id name age 1 xxx 15 2 yyy 18 3 zzz 20 B表: id b_id age 1 1 15 2 2 18 其中B表的b_id字段引用了A表的id字段。...

2017-01-16 14:32:21

阅读数:1655

评论数:5

线程不安全的ArrayList

概述java.util.ArrayList不是线程安全的,当有多个线程并发读写ArrayList的时候,ArrayList会抛出如下异常java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkFor...

2017-01-15 23:02:49

阅读数:893

评论数:0

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