• Java并发编程:性能、扩展性和响应

    2016-02-21
    1、介绍 本文讨论的重点在于多线程应用程序的性能问题。我们会先给性能和扩展性下一个定义,然后再仔细学习一下Amdahl法则。下面的内容我们会考察一下如何用不同的技术方法来减...
  • 升级Java编程规范的6个约定

    2016-01-29
    作为Java开发人员,我们会遵循一系列的编码风格和开发习惯。习惯使然是一方面,另一方面,我们也从不停下脚步质疑这些习惯。一段时间以后,笔者养成了一些不同于常人的编码风格...
  • Java LinkedList源码分析

    2016-01-27
    简介 LinkedList 是一个常用的集合类,用于顺序存储元素。 LinkedList 经常和 ArrayList 一起被提及。大部分人应该都知道 ArrayList 内部采用数组保存元素,适合用于随机访问比较多的场景,而...
  • Java 反射机制详解

    2016-01-25
    Java 反射机制详解
    动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之...
  • 使用JDBC构建简单的数据访问层

    2016-01-19
    以下是如何使用JDBC构建一个数据访问层,包括数据转换(将从数据库中查询的数据封装到对应的对象中),数据库的建立,以及如何连接到数据库。 本教程的目的是使用Java编写的分离...
  • Java异常的深入研究与分析

    2016-01-13
    Java异常的深入研究与分析
    异常机制概述 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处...
  • Java程序员容易犯的10个错误

    2016-01-10
    Java程序员容易犯的10个错误
    1. Array 转 ArrayList 一般开发者喜欢用: ListString list = Arrays.asList(arr); Arrays.asList() 会返回一个ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类java.util.Arrays.ArrayList...
  • 如何计算Java对象占用了多少空间?

    2016-01-09
    在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小。 对象头 对象的头...
  • Java中对象的深复制和浅复制详解

    2016-01-07
    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的...
  • Java 实现单例的难点

    2015-12-27
    有简单又高效的方法可以实现单例模式,但没有一种方式能在任何情况下都确保单例的完整性。 单例模式是指某个类只被实例化一次,用来表示全局或系统范围的组件。单例模式常用于...
  • Java 线程池详细介绍

    2015-12-27
    Java 线程池详细介绍
    根据摩尔定律(Moores law),集成电路晶体管的数量差不多每两年就会翻一倍。但是晶体管数量指数级的增长不一定会导致 CPU 性能的指数级增长。处理器制造商花了很多年来提高时钟频...
  • 最全的Java新手问题汇总

    2015-12-27
    Java是目前最流行的编程语言之一它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在。 有超过30亿的设备是运行在Java之上的。根据...
  • Java 常见异常及趣味解释

    2015-12-27
    常见Java 异常解释:(译者注:非技术角度分析。阅读有风险,理解需谨慎:)) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达...
  • Java多维数组遍历详解

    2015-12-27
    数组是Java中的一种容器对象,它拥有多个单一类型的值。当数组被创建的时候数组长度就已经确定了。在创建之后,其长度是固定的。下面是一个长度为10的数组: public class ArrayDemo...
  • Java 自动装箱性能

    2015-12-27
    Java 的基本数据类型(int、double、 char)都不是对象。但由于很多Java代码需要处理的是对象(Object),Java给所有基本类型提供了包装类(Integer、Double、Character)。有了自动装箱,你可以...
  • Java动态代理机制分析及扩展

    2015-12-27
    Java动态代理机制分析及扩展
    引言 Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对...
  • 打造高性能Java应用需掌握的5大知识

    2015-12-27
    这篇文章节选自《java performance》,对java性能比较关心的同学大概都知道这本书,性能这个东西可能是很多同学在日常写java code的时候很少去关心的,但是在我们写code的过程中确又时时...
  • 一张图读懂Java多线程

    2015-12-27
    一张图读懂Java多线程
    1、带着疑问看图 1)竞争对象的锁和竞争CPU资源以及竞争被唤醒 2)何种情况下获取到了锁,何种情况下会释放锁 2、还是那张图 3、详细图解 1)Thread t = new Thread(),初始化一个线程,实...
  • Java多线程同步的五种方法

    2015-12-26
    为什么要线程同步 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举个例子,...
  • 10个实用的但偏执的Java编程技术

    2015-12-26
    10个实用的但偏执的Java编程技术
    1.将String字符串放在最前面 为了防止偶发性的 NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: // Badif (variable.equals(literal)) { ... }// Goodif...
  • Java修饰符关键词大全

    2015-12-26
    Java修饰符是你添加到变量、类和方法以改变其含义的关键词。它们可分为两组: 访问控制修饰符 非访问修饰符 让我们先来看看访问控制修饰符,以及如何使用它们的一些代码示例。...
  • 深入分析Java线程中断机制

    2015-12-26
    Thread.interrupt真的能中断线程吗 在平时的开发过程中,相信都会使用到多线程,在使用多线程时,大家也会遇到各种各样的问题,今天我们就来说说一个多线程的问题线程中断。在java中...
  • Java集合类操作优化经验总结

    2015-12-26
    在实际的项目开发中会有很多的对象,如何高效、方便地管理对象,成为影响程序性能与可维护性的重要环节。Java 提供了集合框架来解决此类问题,线性表、链表、哈希表等是常用的...
  • Java中最常见的5个错误

    2015-12-26
    在编程时,开发者经常会遭遇各式各样莫名错误。近日,Sushil Das在 Geek On Java上列举了 Java 开发中常见的 5 个错误,与君共「免」。 1、Null 的过度使用 避免过度使用 null 值是一个最佳实...