自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱上Java8

深入Java研究JVM

  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

转载 Node.js 未来会超越 Java 吗?

我是不会认同的,虽然每种语言都有自己的优势,但要是像被取代或取代别人,则相当滴困难。

2016-04-12 15:52:52 993

原创 关于Java8函数式编程你需要了解的几点

函数式编程与面向对象的设计方法在思路和手段上都各有千秋,在这里,我将简要介绍一下函数式编程与面向对象相比的一些特点和差异。

2016-03-31 22:52:22 2403

转载 Java8中的简易并发

我们在《实战Java高并发程序设计》一书中,专门介绍过java 8中对并发的改进。这里我通过转载一篇博客来说简单介绍下。

2016-03-17 10:59:21 1458

原创 【实战Java高并发程序设计 7】让线程之间互相帮助--SynchronousQueue的实现

SynchronousQueue与其说是一个队列,不如说是一个数据交换通道。那SynchronousQueue的其妙功能是如何实现的呢?

2016-03-04 11:09:51 914

原创 【实战Java高并发程序设计6】挑战无锁算法

相对于有锁的方法,使用无锁的方式编程更加考验一个程序员的耐心和智力。但是,无锁带来的好处也是显而易见的,第一,在高并发的情况下,它比有锁的程序拥有更好的性能;第二,它天生就是死锁免疫的。就凭借这2个优势,就值得我们冒险尝试使用无锁的并发。

2016-02-29 16:55:23 2156

原创 【实战Java高并发程序设计5】让普通变量也享受原子操作

有时候,由于初期考虑不周,或者后期的需求变化,一些普通变量可能也会有线程安全的需求。如果改动不大,我们可以简单地修改程序中每一个使用或者读取这个变量的地方。但显然,这样并不符合软件设计中的一条重要原则——开闭原则。

2016-02-18 16:48:14 1103

转载 小米网技术架构变迁实践

“先卖10000台再说!”2011年8月9日,小米网负责人黎万强在公司内部大会上这样说道。时间回到4年多前,在小米“标配”产品发布日8月16日前几天,小米公司100多号人沉浸在即将到来的第一款产品诞生的亢奋中,但是,没有人能告诉我们:未来,我们将能走多远\做多大。彼时,小米网仅有三位开发工程师,在经过两个多月的紧张开发后,小米网将要第一次面对公众在线销售产品,接受大考。由于工程师资源极度紧张,我们甚至考虑过使用ECSHOP之类的开源系统搭建小米网,不过幸好我们很快放弃了这一想法。因为在3个月之后,我们就发现

2016-02-17 11:34:42 894

原创 《实战Java高并发程序设计》问答录,看这些问题解决你所有java并行难题

《实战Java高并发程序设计》尽量避免采用过于理论的描述方式,简单的白话文风格贯穿全书,配图基本上为手工绘制,降低了理解难度,并尽量做到读者在阅读过程中少盲点、无盲点。大家提的问题也很尖锐。

2016-01-22 17:24:15 822

转载 【转】成为Java顶尖程序员 ,看这10本书就够了

很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书,其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。

2016-01-08 15:28:30 3615

原创 【实战Java高并发程序设计 4】数组也能无锁:AtomicIntegerArray

除了提供基本数据类型外,JDK还为我们准备了数组等复合结构。当前可用的原子数组有:AtomicIntegerArray、AtomicLongArray和AtomicReferenceArray,分别表示整数数组、long型数组和普通的对象数组。

2015-12-08 16:10:01 2551 3

原创 【实战Java高并发程序设计 3】带有时间戳的对象引用:AtomicStampedReference

AtomicReference无法解决上述问题的根本是因为对象在修改过程中,丢失了状态信息。

2015-11-30 17:05:52 4945

原创 一图搞定【实战Java高并发程序设计】

只用一张图,了解Java高并发程序设计的所有技术点

2015-11-26 15:22:30 3262 1

原创 【实战Java高并发程序设计 2】无锁的对象引用:AtomicReference

AtomicReference和AtomicInteger非常类似,不同之处就在于AtomicInteger是对整数的封装,而AtomicReference则对应普通的对象引用。也就是它可以保证你在修改对象引用时的线程安全性。在介绍AtomicReference的同时,我希望同时提出一个有关原子操作的逻辑上的不足。

2015-11-26 15:07:21 2826

原创 【实战Java高并发程序设计 1】Java中的指针:Unsafe类

Java中的指针有你看不到的一面。

2015-11-25 16:25:14 2736

原创 如何提高Java并行程序性能

在Java程序中,多线程几乎已经无处不在。与单线程相比,多线程程序的设计和实现略微困难,但通过多线程,我们却可以获得多核CPU带来的性能飞跃,从这个角度说,多线程是一种值得尝试的技术。那么如何写出高效的多线程程序呢?

2015-11-24 15:08:21 1055

原创 Java高并发是不是你的菜??

自从JAVA5.0增加了最初由DougLea编写的高质量的、广泛使用的、并发实用程序util.concurrent并变成了JSR-166的新包之后,在Java内置所提供的类库中,就提供了越来越多的并发编程的实用工具类。学习并掌握这些技术对于专注于Java并发编程的开发人员来讲是基本的公里,随着Java版本的不断更新与改进,开发人员可以通过Java新版本所带来的新特性,无需从头重新编写并发程序工具类。

2015-06-15 14:27:12 1636

原创 《实战Java虚拟机》参加京东买200-100的活动,又可以买很多好书了

#京东满200—100单# 图书放血大卖了,本书也参加活动。

2015-06-01 14:45:39 1087

原创 NIO的Buffer类族和Channel

在NIO的实现中,Buffer是一个抽象类。JDK为每一种Java原生类型都创建了一个Buffer

2015-05-08 13:59:17 953

原创 【Java】实战Java虚拟机之五“开启JIT编译”

Java虚拟机有3种执行方式,分别是解释执行、混合模式和编译执行,但是哪种方式最快呢?

2015-04-28 14:19:22 1842

原创 【Java二十周年】我比Java大10岁

20年中,Java在不断成长,从Oak到JDK1.0,从Classic VM到HotSpot,从薄弱到完善再到强大。20年里,我从接触Java到爱上Java,感慨万千……

2015-04-23 16:06:02 4660 6

原创 实战Java虚拟机之四:提升性能,禁用System.gc() ?

默认情况下,System.gc()会显式直接触发Full GC,同时对老年代和新生代进行回收。而一般情况下我们认为,垃圾回收应该是自动进行的,无需手工触发。如果过于频繁地触发垃圾回收对系统性能是没有好处的。

2015-04-21 11:00:02 5233

原创 实战Java虚拟机之三“G1的新生代GC”

新生代GC的主要工作是回收eden区和survivor区。一旦eden区被占满,新生代GC就会启动。新生代GC收集前后的堆数据如图5.6所示,其中E表示eden区,S表示survivor区,O表示老年代.

2015-04-14 11:09:16 2263

原创 实战Java虚拟机之二“虚拟机的工作模式”

目前的Java虚拟机支持Client和Server两种运行模式。使用参数-client可以指定使用Client模式,使用参数-server可以指定使用Server模式。默认情况下,虚拟机会根据当前计算机系统环境自动选择运行模式。

2015-04-08 11:11:47 1881

原创 实战Java虚拟机之一“堆溢出处理”

在Java程序的运行过程中,如果堆空间不足,则有可能抛出内存溢出错误(Out Of Memory),简称为OOM。那么出现内存溢出的原因是什么呢?

2015-04-02 11:12:28 1696

原创 学习实战java虚拟机的计划图

春天了,不能让java有瓶颈,来本jvm脑补一下。

2015-04-02 11:06:16 1090

转载 【转发】关于Java性能的9个谬论

转载请注明出处,感谢大家的支持!本文来自优优码:http://www.uucode.net/201502/9%e4%b8%aa%e8%b0%ac%e8%ae%baJava的性能有某种黑魔法之称。部分原因在于Java平台非常复杂,很多情况下问题难以定位。然而在历史上还有一种趋势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理。在这篇文章中,我希望拆穿一些最荒谬的技术神

2015-02-06 15:03:54 664

转载 【爱上Java8】使用gdb调试jvm,观察轻量级锁的获得

阅读本文前,你需要对轻量级锁有所了解。轻量级锁在ObjectSynchronizer::slow_enter里尝试获取,所以要先加个断点。当他进来的时候,可以看到:123Breakpoint 2, ObjectSynchronizer::slow_enter (obj=..., lock=0x7ffff7fe16e8, __the_thr

2015-01-23 14:22:12 1107

原创 推荐大学生看一本全是例子的《Arduino开发从零开始学》---自己动手写机器人了

推荐给大学生看看全是例子的《Arduino开发从零开始学》

2014-10-30 11:22:21 5275

原创 用Java这么久,你能说出Java启动过程嘛?别吹了,来看看

学了这么久Java,你肯定也不懂JVM,能说上JAVA启动总过程的,在面试时真没有几个!我们就错在学会知识很快,但掌握知识很难!

2014-09-03 16:50:22 1937

原创 【爱上Java8】ACC_SUPER和早期的invokespecial

class文件中的access flag记录了一个类的相关信息,比如public abstract final等等。其中有一个值ACC_SUPER。现理解如下:ACC_SUPER是用来表示如何调用父类的方法。在jdk1.1之前,jvm使用一种invokenonvirtual的指令,调用父类方法。这个方法就是现在的invokespecial 前身。既然连名字都改过了,他们的实现差距可以认为已经比较大了。invokenonvirtual是不会进行虚函数查找的,也就是总是静态绑定。

2014-08-27 16:39:37 3319 1

原创 【爱上Java8】BigInteger在Java8中的改进

BigInteger是什么?BigInteger如何使用?BigInteger在Java8中做了哪些改变?不知道不行,知道了也不一定行!

2014-08-21 16:26:38 1416

原创 【深入JVM内核—原理、诊断与优化】第2期开课了

百度搜大数据开发人才要求信息,发现大部分都需要有 JVM知识,虽然使用Java的人很多,但真正有几个人懂JVM呢?如果jvm你都不懂,那java你又能怎么提高呢?程序的性能又能怎么优化呢?所以,JVM是必须要学习的!

2014-08-18 10:56:38 1776

原创 做个JAVA 8的调查?

有多少公司已经用上 java8?都是什么样的公司用上了java8?java7到java8

2014-08-17 13:00:27 837

原创 【爱上Java8】Java8函数式方法的方法引用

函数式语言为什么越来越多了,如何使用?java8的函数式方法又有哪些亮点?

2014-08-17 12:59:44 849

原创 【爱上Java8】一步一步走进 java8 lambda表达式

Java的lambda表达式可以大大简化Java的代码,Java令人诟病的一个地方就是,代码太繁琐,同样的功能使用pythong语言实现,可能只需要1/10的代码就可以完成,但是使用Java写,却会有一段的“废话”,令人很不爽,因此,java8引入了lambda表达式,致力于解决这个问题。12

2014-08-17 12:57:40 662

原创 用Java实现简单的遗传算法

遗传算法是解决复杂问题的一种搜索策略,是一种智能计算。他模拟自然界中的种群进化。从这点看,它和神经网络这些算法的起源很像,都是使用计算机去模拟一些自然法则和运作规律。同样,和神经网络一样,遗传算法也是一种基于概率的算法。当然,在现代启发式算法中,很多算法都都是基于概率的,比如神经网络,粒子群算法,模拟退火等。这类方法的要解决的一个问题就是NP问题,要求得结果是满意解,而非最优解。理解这点,我觉得很

2014-08-17 12:55:52 1361

原创 慎用自动装箱

Java的自动装箱和自动拆箱确实提供了一点小方便。但是一旦出问题,还是很痛苦的。123    int x;    HashMapString,Integer> map = new HashMapString,Integer>();    x = map.get("hello");看上面的代码,看起来还算简介

2014-08-17 00:30:26 1457

原创 java substring内存泄露的解决

在《Java程序与性能优化》一书中提到过Java的substring方法有内存泄露的问题。其原因是一个String的构造函数引起的。12345    String(int offset, int count, char value[]) {    this.value = value;    this.offset

2014-08-17 00:26:51 1141

原创 java 8 使用Lambdas, Paths and Files

Java 8引入了Lambda表达式,流式的API,这里可以用这个新的东东来遍历文件夹。1234567891011121314151617181920212223242526272829303132333435363738

2014-08-17 00:25:31 3937 2

原创 【爱上Java8】Java 8 不在需要ORM了

首先,我要对ORM做一些吐槽,以hibernate为代表的ORM简直见识开发者的噩梦呀。本人对此深恶痛绝。什么one-to-many, many-to-many ,搞死人不说,还特别麻烦,该死的延迟加载等等,用起来就是非常不爽。这里我还是觉得MyBatis靠谱一点。很早就想吐槽Hibernate

2014-08-17 00:23:37 3629

实战Java虚拟机——JVM故障诊断与性能调优

实战Java虚拟机——JVM故障诊断与性能调优的部分内容,所有java人和groovy人必须看的一本书,值得分享!

2015-04-17

Drupalbible

Drupal,强大的网站建设系统<br><br><br><br>大名鼎鼎的Bruce Eckel(《Thinking In C++》和《Thinking In Java》的作者)曾建议他的朋友使用Drupal。<br>他说:“我的一个朋友Nancy Nicolaisen表示她希望搭建一个旅游网站,我建议她看一下Drupal。<br>她听取了我的建议并最终选择了它,只进行了轻微的改动就使她的网站上线了,用她的话来说,<br>这个用户社区吸引她的地方是它的强大和易用。”听了大师的推荐,是不是也想尝试一下Drupal了呢?<br><br>在过去的几年里面,我们公司接到了好几个网站设计项目,大多数都是国外的外包项目。<br>客户点名要求采用Drupal架构系统,可以说,我们积累的深厚的Drupal应用和开发经验,在国内应该是领先水平。<br>经我们调查,国内还没有人写作过Drupal方面的图书,我们想成为中文Drupal图书的第一人,同时也是为了提高了国内应用Drupal的水平,<br>我们总结项目开发经验,写作了一本Drupal方面的图书,

2008-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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