Java 相关技术
文章平均质量分 86
Xurtle
俺的私人微博:http://weibo.com/hacker4long
展开
-
(个人笔记)Java 集合框架
Java 集合框架层级图Java Map 接口层级图HashMap 扩容与树化机制HashMap是一个装内部类 Node(它的) 的数组(bucket),数组初始大小为16, 加载因子(数组中元素个数/数组长度)默认为0.75. 大于加载因子就会 double 数组的大小。同时满足2个条件:1、当一个 bucket 中冲突的数量大于TREEIFY_THRESHOLD =...原创 2015-01-29 16:12:41 · 561 阅读 · 0 评论 -
深复制,浅复制和 Java Clone 方法
对于C语言,简单的来说就是,在有指针的情况下,浅复制只是增加了一个指针指向已经存在的内存,而深复制就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存。由于浅复制是多个指针指向同一块内存,在释放内存的时候不小心会出现重复释放同一块内存的错误,而采用深复制则不会出现这种情况。对于Java语言,简单的来说就是,浅复制是指复制对象时仅仅复制对象本身,而不复制对象中包含的引用类型指向的对象原创 2015-08-20 15:28:48 · 752 阅读 · 0 评论 -
Struts2获取Session的三种方式
1、Map<String,Object> map = ActionContext.getContext().getSession();2、HttpSession session = ServletActionContext.getRequest().getSession();3、让Action实现SessionAware接口,并实现public void setSession(M...原创 2014-12-10 18:58:02 · 15136 阅读 · 0 评论 -
Spring RequestMapping
1. 概述在这篇文章中,我们将讨论Spring MVC中主要的注解-@RequestMapping-通常用作web请求和Spring Controller方法的映射。整篇文章中,我们将通过简单的curl命令来测试每一个映射。2、RequestMapping 基础让我们开始一个简单的例子吧-用一个简单的方法将一个HTTP请求映射到一个方法。2.1. @RequestMapping – by P...翻译 2015-02-05 15:10:22 · 1247 阅读 · 0 评论 -
Java开发者最容易犯的十个错误
下面总结的十个错误是Java开发者最容易犯的。#1、赋值Array到ArrayList传递一个Array到ArrayList,开发者通常这样做:List<String> list = Arrays.asList(arr);Arrays.asList()返回的是一个在Arrays内部的一个私有的静态的ArrayList类,它并不是java.util.ArrayList类。Array...翻译 2015-02-02 23:16:58 · 457 阅读 · 0 评论 -
10个成为优秀程序员的有效方式
一个优秀的程序员在穿过单行道的时候总是会看到两条路。~Doug Linder在IT行业中的软件工程师,驱动我们每天工作的是沉醉在程序中的乐趣和激情。但是要想使程序成为乐趣并从中得到永久的喜悦,你需要学习还要附带着使你成为一个优秀程序员所需的基础知识。我并是在写一个成为一个优秀程序员的黄金法则,写这个真正的意图是整理一些我自己在这个行业中学到的和实现的好的结果的一些帮助提示。一个优秀的程序员没有...翻译 2015-01-26 22:48:28 · 776 阅读 · 0 评论 -
提高Java中锁的性能
两个月前,我们介绍完关于Plumbr的“检测线程锁”之后,我们就已经开始收到了与“hey,大牛,现在我已经知道了是什么影响我的性能问题,但是现在我应该怎么做呢?”这样相似的疑问。我们正在致力于在我们的产品中构建一个解决方案说明,但是在这篇文章中我将分享几个常用的技巧供你应用,您可以应用独立的工具用于检测锁。这些技巧包括锁分裂、并发数据结构、代替代码保护数据和减小锁范围。锁不是恶...翻译 2015-01-23 15:45:14 · 1017 阅读 · 0 评论 -
用正则表达式得到Java中所有的关键字
在一个Java应用程序中,我们可以用正则表达式可以得到所有的java关键字。那么关键就是正确地使用词边界。例如:在"static staticField"这个字符串当中,第一个单词应该被当作关键字识别,但是第二个不能。这是得到Java程序关键字的代码:package hxl.programmer.path;import java.util.regex.Matcher;...翻译 2015-01-20 09:10:15 · 3185 阅读 · 1 评论 -
java 泛型
引言这篇文章是对 The Java Programming Language 一书中第11章的总结。这本书是 Java 语言之父写的,每个 Java 从业人员都应该去看看这本书。为什么引入泛型举个例子就明白了!没有引入泛型之前,我们用单链表实现队列的代码如下,可以看到每个结点内部的元素是一个 Object 的引用。这给队列提供了很大的自由。然而,这样做会有2个缺陷。第一、假如你这个队列...原创 2014-11-02 19:14:25 · 1246 阅读 · 0 评论 -
Java并发系列 - Java Concurrency Utilities 之 Executor 框架
现在大部分的应用都需要并发,并且这些并发应用变得越来越复杂,因此Java最初给我提供的并发手段(比如:`synchronized` `volatile` `wait()` `notify()`)等越来越难以满足我们开发并发应用的需求。如果使用这些原始的并发手段,程序员需要更高的编程能力,增加开发时间,导致我们浪费很多精力在并发应用的正确性上,而不能只专注于我们自己手上的业务。原创 2017-01-28 19:08:15 · 770 阅读 · 0 评论 -
Java集合数据结构
集合类型Set集合:集合元素是不能重复的。元素是没有顺序的。所以它不能基于位置访问元素。TreeSet和HashSet是它的实现类。List集合: 集合元素是可以重复的。元素是有顺序的。所以它可以基于位置访问元素。ArrayList和LinkedList是它的实现类。Map:它包含键值对。Map的键是不能重复的。Map不能保证存储的顺序。HashMap和TreeMap是它的实现类。原创 2015-08-03 07:21:26 · 2944 阅读 · 0 评论 -
Servlet之存在安全隐患的域对象
我一直不愿意删除我几年前写的blog,这并不是因为我先前写的有多么的好,我只是认为它代表着每一阶段自己的技术水平,就像是一段记忆一样,等到过几年再次看到的时候能回忆起当时很多的事情。但是,随着自己技术水平的提高,我会发现自己先前写的文章(甚至有的不能算是文章,仅仅是几个API的功能)有很多错误的地方,而且一篇文章就能写完的东西却分散在几篇文章中。原创 2016-10-10 22:57:59 · 1293 阅读 · 1 评论 -
Hotspot虚拟机- 垃圾收集算法和垃圾收集器
当提到Java虚拟机的时候,我们首先应该区分2件事情。一个是抽象的[Java虚拟机规范](https://docs.oracle.com/javase/specs/jvms/se7/html/),另一个是根据这个规范具体的实现。市面上有很多根据这个规范实现的虚拟机,比如jRockit、IBM J9、Hotspot等。那么在这篇文章中,我只介绍关于Hotspot虚拟机的行为,以及它里面提供的垃圾收集器。原创 2016-10-19 13:38:14 · 1691 阅读 · 0 评论 -
Spring MVC源码剖析
想以源码的角度了解Spring MVC的世界吗?想了解Spring MVC内部是如何工作的吗?如果答案是yes,那么这篇文章适合你。原创 2016-10-30 11:09:18 · 1094 阅读 · 0 评论 -
Java应用缓存介绍与LRU(Least Recently Used)算法
对于大规模的Java Web应用来说,会有大量的数据和大量的用户,对于如何提升网站的响应速度成为了我们开发人员的一个挑战。对于缓存来说,它可以解决其中的一部分问题。在这篇文章中,我会介绍什么是缓存,它的工作流程是什么样的,被缓存的数据应该具有什么样的特性。最后我会介绍一个非常受欢迎的缓存算法 - LRU,并给出了一个具体的实现。原创 2016-11-17 17:27:31 · 1233 阅读 · 0 评论 -
深入理解 java 中的 Soft references & Weak references & Phantom reference
这篇文章中主要介绍了java中的Soft references、Weak references 和Phantom reference,通过讲解这些知识点,例举了几个经典的内存泄露问题。如果你正走在成为一名Java高级工程师的路上,那么这篇文章非常适合你。原创 2017-03-01 22:21:58 · 7781 阅读 · 3 评论 -
深入理解Java类加载
理解Java类加载你正在思考写一个类加载器吗?还是你正在面对一个意想不到的ClassCastException 异常或者是一个带有奇怪信息“loader constraint violation”的链接错误。好吧,是时候仔细研究一下Java类加载的过程了。加载器是什么和它是怎么加载的?java.lang.ClassLoader类的实例用来加载Java类。java.lang.ClassLoader是抽翻译 2015-07-17 17:38:40 · 1078 阅读 · 0 评论