随笔分类 -  Java

摘要:package com; import java.util.Map; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CyclicBarrier; /** * Created by ya... 阅读全文
posted @ 2016-11-28 11:31 11楼的日记 阅读(522) 评论(0) 推荐(0)
摘要:JDK提供了7中阻塞队列,这里介绍其中3中,剩余的以此类推原理相同。 1.ArrayBlockingQueue 2.LinkedBlockingQueue:链表实现的有界阻塞队列 3.PriorityBlockingQueue:支持优先级的无界阻塞队列 4.DelayQueue 5.Synchron 阅读全文
posted @ 2016-11-27 13:09 11楼的日记 阅读(1095) 评论(0) 推荐(0)
摘要:package com; import sun.misc.Unsafe; import java.lang.reflect.Field; /** * Created by yangyu on 16/11/24. */ public class TestUnsafe { public static void main(String[] args) { Node ... 阅读全文
posted @ 2016-11-24 17:56 11楼的日记 阅读(9173) 评论(2) 推荐(1)
摘要:public class Test { public static void main(String[] args) { int t = 0; int p = 0; int q = 0; int tail = 1; int head = 2; /** * 这个(t != ... 阅读全文
posted @ 2016-11-24 17:33 11楼的日记 阅读(436) 评论(0) 推荐(0)
摘要:一、java提供了三种ClassLoader对Class进行加载: 1.BootStrap ClassLoader:称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等,可通过如下程序获得该类加 阅读全文
posted @ 2016-10-24 12:35 11楼的日记 阅读(14094) 评论(1) 推荐(0)
摘要:首先让我们看看最简单的socket client与server实例: Client Server 以上一个Client和一个Server,最简单的例子,但是体现socket编程。 如果需要Server服务端一直监听端口,那么只需要循环就可以(server.accept()会阻塞等待请求),至于需要高 阅读全文
posted @ 2016-10-19 18:04 11楼的日记 阅读(528) 评论(0) 推荐(1)
摘要:一、看一下简单的通过XML的AOP配置 1.首先创建一个简单的Student类 2.创建一个简单的aspect切面class 3.SpringAOP.xml配置 分析一下这个execution(* com.seeyon.SpringBean.aop.Student.get*(..))切点表达式: ( 阅读全文
posted @ 2016-10-12 17:36 11楼的日记 阅读(4468) 评论(0) 推荐(0)
摘要:在这里我们介绍一下最简单的链表LinkedList; 看一下add()方法: add原理就是: 1.首先获取链表最后一个节点。 2.把新节点插入到最后一个节点之后。 3.linkedList的last属性重新指向最后一个节点。 4.如果这个节点是第一个节点,之前没有节点,那么将linkedList的 阅读全文
posted @ 2016-10-11 13:02 11楼的日记 阅读(1333) 评论(0) 推荐(0)
摘要:兴趣所致研究一下HashMap的源码,写下自己的理解,基于JDK1.8。 本文大概分析HashMap的put(),get(),resize()三个方法。 首先让我们来看看put()方法。 1.首先通过hash(key)计算key的hash值 2.由于hashMap实际存储数据的就是table数组,那 阅读全文
posted @ 2016-09-30 12:27 11楼的日记 阅读(494) 评论(0) 推荐(0)
摘要:volatile 关键字作用是,使系统中所有线程对该关键字修饰的变量共享可见,可以禁止线程的工作内存对volatile修饰的变量进行缓存。 volatile 2个使用场景: 1.可见性:Java提供了volatile关键字来保证可见性。 当一个共享变量被volatile修饰时,它会保证修改的值会立即 阅读全文
posted @ 2016-09-29 16:04 11楼的日记 阅读(762) 评论(0) 推荐(0)
摘要:其中\d+是匹配1个或者更多个数字。 最后输出结果为:3000 附上一张正则表达式元字符语法: 阅读全文
posted @ 2016-09-27 14:58 11楼的日记 阅读(9627) 评论(1) 推荐(2)
摘要:我解释一下(* com.evan.crm.service.*.*(..))中几个通配符的含义: |第一个 * —— 通配 任意返回值类型| |第二个 * —— 通配 包com.evan.crm.service下的任意class| |第三个 * —— 通配 包com.evan.crm.service下 阅读全文
posted @ 2016-09-27 13:34 11楼的日记 阅读(2164) 评论(0) 推荐(1)
摘要:1.String是只读字符串,引用的字符串内容是无法改变的。 2.StringBuffer和StringBuilder的字符串对象可以直接进行修改。 3.StringBuilder没有被synchronized关键字修饰,线程不安全,效率高于StringBuffer,StringBuffer线程安全 阅读全文
posted @ 2016-09-26 09:55 11楼的日记 阅读(260) 评论(0) 推荐(0)
摘要:忙等待没有对运行等待线程的 CPU 进行有效的利用(而且忙等待消耗cpu过于恐怖,请慎用),除非平均等待时间非常短。否则,让等待线程进入睡眠或者非运行状态更为明智,直到它接收到它等待的信号。 Java 有一个内建的等待机制来允许线程在等待信号的时候变为非运行状态。java.lang.Object 类 阅读全文
posted @ 2016-09-24 13:11 11楼的日记 阅读(1127) 评论(0) 推荐(0)
摘要:使用Java多线程编程时经常遇到主线程需要等待子线程执行完成以后才能继续执行,那么接下来介绍一种简单的方式使主线程等待。 java.util.concurrent.CountDownLatch 使用countDownLatch.await()方法非常简单的完成主线程的等待: CountDownLat 阅读全文
posted @ 2016-09-24 12:07 11楼的日记 阅读(34783) 评论(1) 推荐(0)