since1499

导航

2018年3月20日 #

用户画像

摘要: 什么是用户画像? 在互联网逐渐步入大数据时代后,不可避免的给企业及消费者行为带来一系列改变与重塑。其中最大的变化莫过于,消费者的一切行为在企业面前似乎都将是“可视化”的。随着大数据技术的深入研究与应用,企业的专注点日益聚焦于怎样利用大数据来为精准营销服务,进而深入挖掘潜在的商业价值。于是,“用户画像 阅读全文

posted @ 2018-03-20 10:28 skylink 阅读(108) 评论(0) 推荐(0) 编辑

2014年8月19日 #

华为离职副总裁徐家骏:年薪千万的工作感悟

摘要: 导语:从普通的公司职员,到年薪千万的华为副总裁,再到离开华为转战百度,徐家骏的十年从业经历和经验可资借鉴,我们从中也可以一窥华为的运作过程。徐家骏是华为数据中心的头,技术超级牛人,一级部门总监,华为副总裁,年收入过千万。从一个普通的公司职员,到年薪千万的华为副总裁,再到离开华为转战百度,徐家骏的十年... 阅读全文

posted @ 2014-08-19 17:56 skylink 阅读(148) 评论(0) 推荐(0) 编辑

2014年1月9日 #

JAVA CAS原理深度分析-转载

摘要: 参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.htmlhttp://www.searchsoa.com.cn/showcontent_69238.htmhttp://ifeve.com/atomic-operation/http://www.infoq.com/cn/articles/java-memory-model-5java.util.concurrent包完全建立在CAS 阅读全文

posted @ 2014-01-09 11:12 skylink 阅读(281) 评论(0) 推荐(0) 编辑

彻底理解ThreadLocal二

摘要: 首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一个map中,每个线程都有这样一个map,执行ThreadLocal.get 阅读全文

posted @ 2014-01-09 10:11 skylink 阅读(284) 评论(0) 推荐(0) 编辑

2014年1月8日 #

彻底理解ThreadLocal一

摘要: synchronized这类线程同步的机制可以解决多线程并发问题,在这种解决方案下,多个线程访问到的,都是同一份变量的内容。为了防止在多线程访问的过程中,可能会出现的并发错误。不得不对多个线程的访问进行同步,这样也就意味着,多个线程必须先后对变量的值进行访问或者修改,这是一种以延长访问时间来换取线程安全性的策略。而ThreadLocal类为每一个线程都维护了自己独有的变量拷贝(其实每个线程都new一个变量对象)。每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了,那就没有任何必要对这些线程进行同步,它们也能最大限度的由CPU调度,并发执行。并且由于每个线程在访问该变量时,读取和修改的,都 阅读全文

posted @ 2014-01-08 17:17 skylink 阅读(183) 评论(0) 推荐(0) 编辑

2014年1月2日 #

观察者模式(浅谈监听器工作原理)

摘要: 从某种角度来说,我们总是处于两种生活状态:观察者与被观察者。当处于观察者状态时,被观察的对象会向我们发出某种信息,使我们产生某种心理活动或行为状态的改变。当我们处于被观察者状态时,我们的行为活动又可以以信息的方式影响观察者。(大多数情况下是两种状态并存。) 作为一种面向对象的编程语言,java中的设计模式跟我们的生活模式十分相似,观察者模式也不例外。一 观察者模式定义与组成 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己 。主要分为四部分:1.抽象主题角色 2.抽象观察者角色 3.具体主 阅读全文

posted @ 2014-01-02 15:02 skylink 阅读(609) 评论(0) 推荐(0) 编辑

2013年12月30日 #

Java编程提高性能时需注意的地方

摘要: 1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面第一,控制资源的使用,通过线程同步来控制资源的并发访问第二,控制实例的产生,以达到节约资源的目的第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信2.尽量避免随意使用静态变量要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如123public class A{static B b = new B();}此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对 阅读全文

posted @ 2013-12-30 13:22 skylink 阅读(195) 评论(0) 推荐(0) 编辑

2013年12月27日 #

Spring对Quartz的封装实现简单需注意事项

摘要: 前段时间在项目中一直使用正常的Quartz突然出现了任务漏跑的情况,由于我以前看过Quartz的内部实现,凭借记忆我觉得是由于Quartz的线程池的使用出现问题导致了故障的发生。为了搞清问题的真相,我又重新看了一下Quartz的代码。在看Spring的代码时发现Spring对Quartz封装过以后对Quartz的初始化过程还是比较复杂的,我对比较关键的几点提取出来画出了上面的时序图。大家可以结合代码看上面的时序图应该可以理解Quartz的初始化过程。图中的SpringContext只是用来代表Spring容器,我们在使用Quartz时没有对它进行特殊的配置,因此它各种参数都是默认的。特别是“o 阅读全文

posted @ 2013-12-27 11:37 skylink 阅读(1273) 评论(0) 推荐(1) 编辑

2013年12月23日 #

FileInputStream和BufferedInputStream的区别

摘要: FileInputStream属于数据源BufferedInputStream属于FileInputStream的一个装饰BufferedInputStream有个内部缓冲区当read时会先把缓冲区填满(默认缓冲区是8192),然后下次读取是直接从缓冲区读取。当读取的位置大于缓冲区时会再一次加载缓冲区。read()和read(byte[]buf, intoff, intlen)处理方式一样,区别在于后者一次返回多个数据,但是同样都是先放入缓冲区,然后再读取。至于性能问题,我们都知道文件的物理读取性能肯定要大于内存读取,FileInputStream.read()相当于一次物理读取,而Buffe 阅读全文

posted @ 2013-12-23 11:56 skylink 阅读(1148) 评论(0) 推荐(0) 编辑

2013年12月17日 #

java - Stack栈和Heap堆的区别

摘要: 首先分清楚Stack,Heap的中文翻译:Stack—栈,Heap—堆。在中文里,Stack可以翻译为“堆栈”,所以我直接查找了计算机术语里面堆和栈开头的词语:堆存储: heapstorage 堆存储分配: heapstorage allocation 堆存储管理: heap storage management栈编址: stack addressing 栈变换:stack transformation 栈存储器:stack memory 栈单元: stack cell接着,总结在Java里面Heap和Stack分别存储数据的不同。 Heap(堆) Stack(栈)JVM中的功能内存数据区 内 阅读全文

posted @ 2013-12-17 11:05 skylink 阅读(188) 评论(0) 推荐(0) 编辑