jvm语言
扫大街的程序员
爱思考、爱沟通、爱review、爱总结、爱读史记、爱跑步、还爱翻墙
展开
-
hive 启动方式及执行流程
启动方式cli bin/hive或者bin/hive --service cli 命令行方式默认,使用最简单,也最麻烦,功能最强大。 RunJar $HIVE_HOME/lib/hive-service-0.11.0.jar org.apache.hadoop.hive.service.HiveSer原创 2013-12-04 01:01:44 · 6088 阅读 · 0 评论 -
面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
在 前一篇文章 中,我讨论了构建并发代码的重要性(无论是否是 Scala 代码),还讨论了在编写并发代码时开发人员面对的一些问题,包括不要锁住太多东西、不要锁住太少东西、避免死锁、避免生成太多线程等等。这些理论问题太沉闷了。为了避免读者觉得失望,我与您一起研究了 Scala 的一些并发构造,首先是在 Scala 中直接使用 Java 语言的并发库的基本方法,然后讨论 Scala API 中转载 2014-06-18 20:33:00 · 890 阅读 · 0 评论 -
深入理解Java内存模型(四)——volatile
本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-4volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面我们通过具体的示例转载 2014-07-14 16:58:39 · 755 阅读 · 0 评论 -
深入理解Java内存模型(六)——final
深入理解Java内存模型(六)——final本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-6与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把转载 2014-07-14 17:03:15 · 781 阅读 · 0 评论 -
java并发编程实践(公司讲座)
http://share.csdn.net/slides/5433原创 2014-06-28 10:53:20 · 1292 阅读 · 1 评论 -
关于synchronized与volatile的一点认识
贪婪是一种原罪,不要再追求性能的路上离正确越来越远。内存模型java内存模型重排序锁synchronized什么是锁独占锁分拆锁分离锁分布式锁volatile内存模型java内存模型提到同步、锁,就必须提到java的内存模型,为了提高程序的执行效率,java也吸收了传统应用程序的多级缓存体系。在共享内存的多处理器体系架构中,每原创 2014-06-16 13:04:23 · 1556 阅读 · 0 评论 -
深入理解Java内存模型(七)——总结
处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处理器的内存模型划分为下面几转载 2014-07-14 17:02:20 · 666 阅读 · 0 评论 -
关于thread的几点认识
线程生命周期线程api详解线程执行start() - 使该线程开始执行,java虚拟机调用其run方法。run() - 如果该线程是使用独立的Runnable运行对象构造的,则调用其Runnable对象的run方法;否则该方法不执行任何操作并返回。线程阻塞sleep() - 让当前正在执行的线程休眠指定的时间(暂停执行)yiel原创 2014-06-16 13:08:03 · 728 阅读 · 0 评论 -
深入理解Java内存模型(五)——锁
本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-5锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExamp转载 2014-07-14 16:57:36 · 680 阅读 · 0 评论 -
Java调优之jvm和线程的内存分析
这几天因为自己开发的一个网站在768M内存的机器上撑不起100多个用户的运行,因为每个用户启用功能后,系统将为每个用户分配8个左右的独立线程,我的这篇文章http://www.mzone.cc/article/311.html也有介绍的。在内存小的机器上经常出现的问题就是Cann’t allocate memory和OutOfMemoryError错误,这个要从jvm的内存结构来进行分析了。在转载 2014-08-16 09:23:51 · 867 阅读 · 0 评论 -
Google Java编程风格指南
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。目录前言源文件基础源文件结构格式命名约定编程实践Javadoc后记前言这份转载 2014-11-16 13:00:47 · 754 阅读 · 0 评论 -
jvm之内存管理
jvm体系结构简要介绍jvm运行时数据区这一块。jvm有堆、jvm栈、本地方法栈、方法区、pc寄存器。堆:所有通过new创建的对象及数组都在堆中分配,其大小可通过-Xmx和-Xms参数来控制。堆被划分为新生代和旧升代,新生代有进一步被划分为Eden Space和Survivo Space(通常又称为S0和S1或From和To)结构图如下:原创 2014-03-15 21:49:47 · 2025 阅读 · 1 评论 -
用JStack和Top分析Java进程CPU占用率
1、top查找出哪个进程消耗的cpu高 top -H 2、top中shift+h查找出哪个线程消耗的cpu高 top -H -p PID top -H -p 26514top -p PID,shift + h top -p 26514,线程按cpu排序3、.jstack原创 2014-05-06 13:04:57 · 1753 阅读 · 0 评论 -
spring mvc4.3源码分享
spring mvc 源码技术分享1.spring mvc初始化 2.http映射方法执行 3.http响应渲染及输出 4.spring4.3新特性原创 2016-08-17 11:20:17 · 1048 阅读 · 0 评论 -
深入理解Java内存模型(二)——重排序
数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位置。写后写a = 1;a = 2;写一个变量之后,再写这个变量。读后写a = b;b = 1;读一个变量之后转载 2014-06-18 20:30:00 · 700 阅读 · 0 评论 -
深入理解Java内存模型(一)——基础
并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必转载 2014-06-18 20:29:08 · 662 阅读 · 0 评论 -
java反射机制的实现原理
反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。下面具体介绍一下java的反射机制。这里你将颠覆原来对java的理解。 Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;其中class代表的时类对象,Constructor-类的构造器对象,F转载 2014-02-18 14:10:56 · 801 阅读 · 0 评论 -
jstack线程分析
1,JVM线程在线程中,有一些 JVM内部的后台线程,来执行譬如垃圾回收,或者低内存的检测等等任务,这些线程往往在 JVM初始化的时候就存在,如下所示: "Low Memory Detector" daemon prio=10 tid=0x081465f8 nid=0x7 runnable [0x00000000..0x00000000] "原创 2014-04-04 13:22:26 · 4381 阅读 · 0 评论 -
csdn写博客用户体验真搓
csdn写博客用户体验真搓原创 2014-05-06 13:13:47 · 803 阅读 · 0 评论 -
happens-before俗解
happens-before俗解学习Java并发,到后面总会接触到happens-before偏序关系。初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人有帮助。如有不正确之处,欢迎指正。synchronized、大部分锁,众所周知的一个功能就是使多个线程互斥/串行的(共享锁允许多个线程同时访问,如读锁)访问临界区,但他们的第转载 2014-06-24 10:33:12 · 596 阅读 · 0 评论 -
深入理解Java内存模型(三)——顺序一致性
深入理解Java内存模型(三)——顺序一致性本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-3数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排转载 2014-06-24 10:41:13 · 799 阅读 · 0 评论 -
双重检查锁定与延迟初始化
双重检查锁定的由来在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码:public class UnsafeLazyInitialization { private static I转载 2014-06-24 10:36:24 · 583 阅读 · 0 评论 -
定时器UNIX crontab vs Quartz
Using cron seems to add another entry point into your application, while Quartz would integrate into it. So you would be forced to deal with some inter-process communication if you wanted to pass翻译 2014-07-19 10:38:58 · 1924 阅读 · 0 评论 -
JAVA多线程与并发学习总结
非常不错的一篇we1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协转载 2014-07-25 10:33:55 · 795 阅读 · 0 评论 -
java并发体系结构
并发编程线程通信共享内存和消息传递线程同步控制不同线程的执行顺序java并发基于共享内存模型指令重排序编译器重排序处理器重排序cpu重排序写缓存区(cache、寄存器)内存屏障顺序一致性与Happens-before执行结果有序性volatile解决内存可见性问题锁lock 显示锁可中断可定时原创 2014-07-24 23:35:18 · 1546 阅读 · 0 评论 -
java-String中的 intern()
1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;3. String str=”kvill”;String str=n转载 2014-07-25 08:16:09 · 767 阅读 · 0 评论 -
java.util.concurrent并发包一览
并发容器阻塞队列BlockingQueue,阻塞队列接口BlockingDeque,双端阻塞队列接口ArrayBlockingQueue,数组构成的有界阻塞队列LinkedBlockingQueue,链表构成的有界阻塞队列LinkedBlockingDeque,链表结构的双端阻塞队列DelayQueue,使用优先级实现的无界阻塞队列,并且元素原创 2014-06-16 13:08:39 · 1480 阅读 · 0 评论 -
几种线程池的实现算法分析
几种线程池的实现算法分析转载 2014-07-25 19:12:32 · 998 阅读 · 0 评论 -
深入理解java内存模型系列文章
深入理解java内存模型系列文章是本人在InfoQ发表的并发编程的连载文章。深入理解java内存模型(一)——基础深入理解java内存模型(二)——重排序深入理解java内存模型(三)——顺序一致性深入理解java内存模型(四)——volatile深入理解java内存模型(五)——锁深入理解java内存模型(六)——final深入理解java内存模型(七)——总结提纲jav转载 2014-06-18 20:28:21 · 972 阅读 · 0 评论 -
mybatis-spring工作浅析
核心类SqlSessionFactoryMapperFactoryBean流程配置文件加载初始化SqlSessionFactoryBean —> SqlSessionFactory —> Configuration —> XMLMapperBuilder —> XMLStatementBuilder —> MappedStatementbean...原创 2016-12-09 22:06:49 · 477 阅读 · 0 评论