java开发
文章平均质量分 74
ba拉扒la
这个作者很懒,什么都没留下…
展开
-
HashMap提高篇(2)--HashMap的存取方法的源码实现
HashMap是如何在JDK中存取的。原创 2017-02-27 20:04:49 · 408 阅读 · 0 评论 -
深入理解Java虚拟机(6)--String.intern()方法
String str1 = new StringBuilder("计算机").append("软件").toString();System.out.println(str1.intern() == str1);//jdk1.6 false jdk1.7 trueString str2 = new StringBuilder("ass").append("ert").toString();Sy原创 2017-06-26 17:28:39 · 340 阅读 · 0 评论 -
深入理解Java虚拟机(5)--对象的访问定位
建立对象是为了使用对象,我们的Java程序需要通过栈上的reference数据来操作堆上的具体对象。由于reference类型在Java虚拟机规范中之规定了一个指向对象的引用,并没用定义这个引用因该通过何种方式去定位、访问队中的对象的具体位置,所以对象的访问方式也是通过虚拟机实现而定的。访问方式分类:1、直接指针: reference 中存储的直接就是对象地址,对象实例数据中有一块区域存储原创 2017-06-24 15:24:09 · 379 阅读 · 0 评论 -
深入理解Java虚拟机(4)--对象的创建(虚拟机再遇到一条new指令时,会怎么做?)
我们在编写程序的时候经常使用new指令来创建一个对象,那么虚拟机再遇到一条new指令创建对象(仅限于简单对象,不包括数组和Class对象等)的时候,在虚拟机的内部到底是一个怎么样的过程。首先介绍几个在创建对象的过程中使用到的几个生词。1、Java分配内存的方式:1.1、 指针碰撞: 假设Java堆中内存是绝对完规整的,所有用过的内存都放在一边,空闲的内存都放在另一边,中间放着一个指针作为分界点原创 2017-06-22 16:35:38 · 794 阅读 · 1 评论 -
深入理解Java虚拟机(3)--Java内存区域的划分及作用
Java虚拟机在执行Java程序的过程中会把它所管咧内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和小会的时间,有的区域随着虚拟机的启动而存在,有些区域再依赖用户线程的启动和结束而建立和销毁。根据Java虚拟机规范Java虚拟机所管理的内存包括以下几个运行区域:1、程序计数器1.1、简述: 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器原创 2017-06-22 16:07:51 · 363 阅读 · 0 评论 -
深入理解Java虚拟机(2)--JDK、JRE、JVM的区别
很多程序员已经干了一段时间java了依然不明白jdk、jre以及jvm的区别,尤其是jdk与jre之间的区别。JDK(Java Development Kit)Java 语言的软件开发工具包(SDK),是面向Java开发人员的使用者,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。JRE是Java Runt原创 2017-06-21 13:36:33 · 959 阅读 · 0 评论 -
深入理解Java虚拟机(1)--java的发展历史
Java虚拟机之Java的发展历史原创 2017-06-21 13:02:27 · 2577 阅读 · 0 评论 -
为什么使用HashSet储存对象时必须重写equals和hashcode方法
对于 Set 接口的实现类 HashSet,它是按照哈希算法来存取集合中的对象,并且因为其继承了 Set 接口,所以不允许插入相同的数据。但是当我们在储存自定义的类的时候会出现相同的对象,我们来查看下面一个示例。示例一:User.java/** * Created by MGL on 2017/4/22. */public class User { private String numbe原创 2017-05-04 13:39:23 · 4554 阅读 · 0 评论 -
HashMap(5)--HashMap和Hashtable的区别
HashMap 和 HashSet 的区别,以及几个常见的线程安全的集合和类原创 2017-04-11 19:27:58 · 440 阅读 · 0 评论 -
HashSet解析
我们已经花了很长的一段时间来学习了HashMap的一些底层原理,以及简单了解了Hashtable和HashMap两种集合的区别,现在我们从HashSet源码入手,来学习HashSet更细节的地方。1.HashSet概述:HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素2.类的定义publi原创 2017-04-22 09:01:56 · 621 阅读 · 0 评论 -
HashMap基础篇(1) 之Hash算法、Hash表以及冲突的处理
HashMap是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。在学习HashMap之前先来了解几个概念。Hash的定义:Hash,一般翻译做“散列”,也有直接音译为“哈希原创 2017-02-26 11:08:14 · 607 阅读 · 0 评论 -
对大数(BigInteger)进行开方运算
对BigInteger进行开方处理原创 2017-04-21 19:45:35 · 5458 阅读 · 0 评论 -
HashMap(4)--动手实现HashMap
自己动手写个HashMap小程序原创 2017-03-17 12:07:28 · 917 阅读 · 0 评论 -
HashMap(3)进阶篇--HashMap扩容机制
1.什么是resize:resize就是重新计算容量;当我们不断的向HashMap对象里不停的添加元素时,HashMap对象内部的数组就会出现无法装载更多的元素,这是对象就需要扩大数组的长度,以便能装入更多的元素;当然Java里的数组是无法自动扩容的,方法是使用一个新的数组代替已有的容量小的数组;就像我们用一个小桶装水,如果想装更多的水,就得换大水桶。2.什么时候需要resize():当向容器添加元原创 2017-03-05 13:21:52 · 9098 阅读 · 0 评论 -
log4j的使用--IDEA创建maven项目
log4j的配置和使用原创 2017-02-14 12:27:25 · 7617 阅读 · 2 评论 -
回溯算法的使用
回溯算法的介绍以及使用。案例有八皇后问题以及举证中的路径问题原创 2017-02-23 19:54:53 · 505 阅读 · 0 评论 -
Log4j的配置
log4j简介Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。原创 2017-02-14 12:06:16 · 1313 阅读 · 0 评论 -
使用@Value无法注入
使用 @Value 时, spring容器无法正确注入。原创 2017-02-21 11:28:42 · 7345 阅读 · 0 评论