java
文章平均质量分 83
qqqq724
这个作者很懒,什么都没留下…
展开
-
深入理解java虚拟机[垃圾回收算法]
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的内存。 常用的垃圾回收算法有: (1).引用计数算法: 给对象中添加一个引用计数器,每当有一个转载 2014-04-24 10:55:30 · 568 阅读 · 0 评论 -
Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置
由浅入深,主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)、用法(Archetype意义及创建各种项目)、maven常用参数和命令以及简单故障排除、maven扩展(eclipse、cobertura、findbugs、插件开发)、maven配置。 较长,可根据个人需要有选择性的查看,比如先看用法再回过头来看核心概念转载 2015-01-30 18:02:04 · 620 阅读 · 0 评论 -
Java抽象类与接口的区别
很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。 抽象类 抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例:转载 2014-10-06 20:04:21 · 456 阅读 · 0 评论 -
如何在Java中使用双重检查锁实现单例
单例类在Java开发者中非常常用,但是它给初级开发者们造成了很多挑战。他们所面对的其中一个关键挑战是,怎样确保单例类的行为是单例?也就是说,无论任何原因,如何防止单例类有多个实例。在整个应用生命周期中,要保证只有一个单例类的实例被创建,双重检查锁(Double checked locking of Singleton)是一种实现方法。顾名思义,在双重检查锁中,代码会检查两次单例类是否有已存在的实例转载 2014-08-28 16:46:02 · 578 阅读 · 0 评论 -
spring和hibernate中的性能优化
很多网站中使用spring处理业务ceng转载 2014-09-01 14:11:04 · 502 阅读 · 0 评论 -
Spring @Transactional工作原理
本文将深入研究Spring的事务管理。主要介绍@Transactional在底层是如何工作的。之后的文章将介绍: propagation(事务传播)和isolation(隔离性)等属性的使用 事务使用的陷阱有哪些以及如何避免 JPA和事务管理 很重要的一点是JPA本身并不提供任何类型的声明式事务管理。如果在依赖注入容器之外使用JPA,事务处理必须由开发人员编程实现。转载 2014-08-29 15:24:46 · 802 阅读 · 0 评论 -
Java中弱引用、软引用、虚引用及强引用的区别
本文由 ImportNew - 人晓 翻译自 javarevisited。欢迎加入Java小组。转载请参见文章末尾的要求。 很早Java API就添加了弱引用(WeakReference)和软引用(SoftReference),但并不是所有的程序员都熟悉这两个概念。知道弱引用和软引用的概念与如何使用它们是两码事,引用类在垃圾回收工作的过程中有重要作用。我们都知道垃圾回收器会回收符合回收条转载 2014-04-21 14:11:55 · 702 阅读 · 0 评论 -
Visitor设计模式
Visitor模式,在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升。 Visitor模式的组成结构: 1) 访问者角色(Visitor):声明一个访问接口。接口的名称和方法的参数标识了向访问者发送请求的元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。 2) 具体访问者角色(Concrete Visitor):转载 2014-08-27 15:22:26 · 514 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点) Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。J转载 2014-07-13 18:20:05 · 487 阅读 · 0 评论 -
8张图理解Java
一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。 1、字符串不变性 下面这张图展示了这段代码做了什么 1 2 String s = "abcd"; s = s.concat("ef");转载 2014-07-12 11:05:55 · 529 阅读 · 0 评论 -
为什么String类是不可变的?
String是所有语言中最常用的一个类。我们知道在Java中,String是不可变的、final的。Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类。 String类不可变性的好处 只有当字符串是不可变的,字符串池才有可能实现。字符串池的实现可以在运行时节约很多heap空间,因为不同的字符串变量都指向池中的同一个字符串。但如果字符转载 2014-06-12 19:16:25 · 475 阅读 · 0 评论 -
关于Spring的69个面试问答——终极列表
这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的。下次你再也不用担心你的面试了,Java Code Geeks这就帮你解答。 大多数你可能被问到的问题都列举在下面的列表中了。所有的核心模块,从基础的Spring功能(如Spring Beans)到上层的Spring MVC框架,文章中都会进行简短的讲解。看完这些面试问题,你应该看看我们的Spri转载 2014-06-05 15:10:33 · 527 阅读 · 0 评论 -
java虚拟机结构与机制
本文旨在给所有希望了解JVM(Java Virtual Machine)的同学一个概念性的入门,主要介绍了JVM的组成部分以及它们内部工作的机制和原理。当然本文只是一个简单的入门,不会涉及过多繁杂的参数和配置,感兴趣的同学可以做更深入的研究,在研究JVM的过程中会发现,其实JVM本身就是一个计算机体系结构,很多原理和我们平时的硬件、微机原理、操作系统都有十分相似的地方,所以学习JVM本身也是加深自转载 2014-05-13 20:38:28 · 538 阅读 · 0 评论 -
什么是字符串常量池?
在理解字符串常量前,我们先熟悉一下如何创建一个字符串,在Java中有两种方法可以创建一个字符串对象: 使用new运算符。例如: 1 String str = new String("Hello"); 使用字符串常量或者常量表达式。例如: 1 2 String str="He转载 2014-05-01 16:03:02 · 496 阅读 · 0 评论 -
Kafka深度解析
背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输同时支持离线数据转载 2015-01-28 13:04:13 · 75519 阅读 · 9 评论