摘要: Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者 阅读全文
posted @ 2016-03-21 15:38 ljdgm 阅读(254) 评论(0) 推荐(0)
摘要: 这篇文章解释了Java 虚拟机(JVM)的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件,第二章节讨论了线程无关组件。 线程 JVM 系统线程 每个线程相关的 程序计数器 栈 本地栈 栈限制 栈帧 局 阅读全文
posted @ 2016-03-21 15:35 ljdgm 阅读(237) 评论(0) 推荐(0)
摘要: 写在前面:Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的,loadClass使用双亲委派模式。 为了更好 阅读全文
posted @ 2016-03-21 15:31 ljdgm 阅读(270) 评论(0) 推荐(0)
摘要: 本文是异常内容的集大成者,力求全面,深入的异常知识研究与分析。本文由金丝燕网独家撰写,参考众多网上资源,经过内容辨别取舍,文字格式校验等步骤编辑而成,以飨读者。对于本文的内容,建议小白需要多多思考力求掌握,对于老手只需意会温故知新。对于本文的内容,属于基础知识研究范畴,切勿以为读完此文就能将异常知识 阅读全文
posted @ 2016-03-21 15:30 ljdgm 阅读(246) 评论(0) 推荐(0)
摘要: HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至 阅读全文
posted @ 2016-03-21 15:28 ljdgm 阅读(170) 评论(0) 推荐(0)
摘要: DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: publicstaticfianl…… .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public 阅读全文
posted @ 2016-03-21 15:27 ljdgm 阅读(151) 评论(0) 推荐(0)
摘要: create table t1(id int, feild int);insert into t1 values(1 , 1);insert into t1 values(1 , 2);insert into t1 values(1 , 3);insert into t1 values(1 , 4) 阅读全文
posted @ 2016-03-21 15:25 ljdgm 阅读(1340) 评论(0) 推荐(0)
摘要: 有这样的一个问题mysql查询使用mysql中left(right)join筛选条件在on与where查询出的数据是否有差异。 可能只看着两个关键字看不出任何的问题。那我们使用实际的例子来说到底有没有差异。 例如存在两张表结构 表结构1 Sql代码 drop table if EXISTS A; C 阅读全文
posted @ 2016-03-21 15:23 ljdgm 阅读(1899) 评论(0) 推荐(0)
摘要: 序言数据库的优化方法有很多种,在应用层来说,主要是基于索引的优化。本次秘笈根据实际的工作经验,在研发原来已有的方法的基础上,进行了一些扩充,总结了基于索引的SQL语句优化的降龙十八掌,希望有一天你能用其中一掌来驯服客服业务中横行的‘恶龙’总纲建立必要的索引这次传授的降龙十八掌,总纲只有一句话:建立必 阅读全文
posted @ 2016-03-21 15:21 ljdgm 阅读(12336) 评论(0) 推荐(4)
摘要: Android里,在不同的线程(假设子线程已经创建了Looper)中创建Handler时,并不需要显式指定Looper,系统能自动找到该线程自己的Looper。不同线程的Looper相互独立,之所以能做到这一点,就是借助ThreadLocal来实现的。下面结合源码来分析ThreadLocal的使用及 阅读全文
posted @ 2016-03-21 15:20 ljdgm 阅读(393) 评论(0) 推荐(0)
摘要: 通过上面的分析知道通过ThreadLocal保存的值是线程隔离的。其实在Thread对象中,还有一个ThreadLocal.ThreadLocalMap类型的成员变量inheritableThreadLocals。inheritableThreadLocals其实是一个InheritableThre 阅读全文
posted @ 2016-03-21 15:19 ljdgm 阅读(472) 评论(0) 推荐(0)
摘要: 基本概念 kafka的工作方式和其他MQ基本相同,只是在一些名词命名上有些不同。为了更好的讨论,这里对这些名词做简单解释。通过这些解释应该可以大致了解kafka MQ的工作方式。 Producer (P):就是网kafka发消息的客户端 Consumer (C):从kafka取消息的客户端 Topi 阅读全文
posted @ 2016-03-21 15:14 ljdgm 阅读(470) 评论(0) 推荐(0)
摘要: 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最 阅读全文
posted @ 2016-03-21 15:13 ljdgm 阅读(268) 评论(0) 推荐(0)
摘要: Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(larg 阅读全文
posted @ 2016-03-21 15:07 ljdgm 阅读(285) 评论(0) 推荐(0)
摘要: 一、基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133http://ifeve.com/jmm-faq/ 1.1.2. 了解JVM各种参数及调优 1.1.3. 学习使用Ja 阅读全文
posted @ 2016-03-21 15:05 ljdgm 阅读(914) 评论(0) 推荐(0)
摘要: 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。 一、Java编程入门类 对于没有Java编程经验的程序员要入门,随便读什么入 阅读全文
posted @ 2016-03-21 15:04 ljdgm 阅读(11441) 评论(0) 推荐(0)
摘要: 本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTT 阅读全文
posted @ 2016-03-21 15:01 ljdgm 阅读(241) 评论(0) 推荐(0)
摘要: 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步 阅读全文
posted @ 2016-03-21 13:45 ljdgm 阅读(211) 评论(0) 推荐(0)
摘要: 最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具。 这是一个系列,主题为: 语言 web框架 应用服务器 SQL数据访问工具 SQL数据库 大数据 构建工具 云提供商 今天我们就要说说大数据。根据维基百科,大数据是数据集的一个广义的术语,并且该数据集是如此庞大和复杂,以致于 阅读全文
posted @ 2016-03-21 13:39 ljdgm 阅读(1095) 评论(0) 推荐(0)
摘要: 序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等。在网络传输过程中,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象。这个相反的过程又称为反序列化。 Jav 阅读全文
posted @ 2016-03-21 13:38 ljdgm 阅读(229) 评论(0) 推荐(0)
摘要: 不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求。线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的。本文主要介绍Java线程池的使用和如何正确的配置线程池。 我们先从基础开始。无论使用哪种应用服务器或者框架(如Tomcat、Jetty等),他们都有类似 阅读全文
posted @ 2016-03-21 13:14 ljdgm 阅读(3405) 评论(0) 推荐(0)
摘要: 长生剑、孔雀翎、碧玉刀、多情环、离别钩、霸王枪、拳头是古龙笔下的七种武器,而本文打算将Redis的几种使用方式 Strings、Hashs、Lists、Sets、Sorted Sets、Pub/Sub、Transactions 也比作七种武器,为大家讲解Redis的七种特性,并列举其适合的应用场景。 阅读全文
posted @ 2016-03-21 13:08 ljdgm 阅读(224) 评论(0) 推荐(0)
摘要: 传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memca 阅读全文
posted @ 2016-03-21 13:07 ljdgm 阅读(278) 评论(0) 推荐(0)
摘要: java做的系统给人的印象是什么?占 内存!说道这句话就会有N多人站出来为java辩护,并举出一堆的性能测试报告来证明这一点。其实从理论上来讲java做的系统并不比其他语言开发出来的 系统更占用内存,那么为什么却有这么N多理由来证明它确实占内存呢?两个字,陋习。(1)别用new Boolean()。 阅读全文
posted @ 2016-03-21 13:01 ljdgm 阅读(23853) 评论(0) 推荐(1)
摘要: 了解Java虚拟机的运行时数据区之后,大致知道了虚拟机内存的概况,内存中都放了些什么,接下来将了解内存中数据的其他细节,如何创建、如何布局、如何访问。这里虚拟机以HotSpot为例,内存区域以Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。 (一)对象的创建 阅读全文
posted @ 2016-03-21 13:01 ljdgm 阅读(397) 评论(0) 推荐(0)
摘要: Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存 阅读全文
posted @ 2016-03-21 12:59 ljdgm 阅读(671) 评论(0) 推荐(0)
摘要: 对于JAVA多线程的应用非常广泛,现在的系统没有多线程几乎什么也做不了,很多时候我们在何种场合如何应用多线程成为一种首先需要选择的问题,另外关于java多线程的知识也是非常的多,本文中先介绍和说明一些常用的,在后续文章中如果有必要再说明更加复杂的吧,本文主要说明多线程的一下几个内容: 1、在应用开发 阅读全文
posted @ 2016-03-21 12:51 ljdgm 阅读(217) 评论(0) 推荐(0)
摘要: 在程序中你可能时常会需要将别的类型转化成String,有时候可能是一些基础类型的值。在拼接字符串的时候,如果你有两个或者多个基础类型的值需要放到前面,你需要显式的将第一个值转化成String(不然的话像System.out.println(1+’a')会输出98,而不是”1a”)。当然了,有一组St 阅读全文
posted @ 2016-03-21 12:07 ljdgm 阅读(451) 评论(0) 推荐(0)
摘要: 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。 以 阅读全文
posted @ 2016-03-21 12:01 ljdgm 阅读(269) 评论(0) 推荐(0)
摘要: 四、JMS消息服务 讲消息队列就不得不提JMS 。JMS(JAVA Message Service,java消息服务)API是一个消息服务的标准/规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。 在EJB架构中,有消息bea 阅读全文
posted @ 2016-03-21 12:00 ljdgm 阅读(284) 评论(0) 推荐(0)
摘要: 本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值。 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多 阅读全文
posted @ 2016-03-21 11:58 ljdgm 阅读(191) 评论(0) 推荐(0)
摘要: 前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。 阅读全文
posted @ 2016-03-21 11:54 ljdgm 阅读(274) 评论(0) 推荐(0)