java小记
文章平均质量分 67
编程艺术artist
这个作者很懒,什么都没留下…
展开
-
String和StringBuffer的区别
首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值 (2)String类对象的性能远不如StringBuffer类。 关于以上具体解释如下: 在java中有3个转载 2017-07-10 20:29:26 · 199 阅读 · 0 评论 -
volatile关键字
volatile概念 谈到volatile,理解原子性和易变性是不同的概念这一点很重要,volatile是轻量级的锁,它只具备可见性,但没有原子特性。如果你将一个域声明为volatile,那么只要对这个域产生了写操作,所有的读操作都可以看到这个修改,即便使用了本地缓存也一样,volatile会被立即写入到主内存中,而读的操作就发生在主内存中。在非volatile域上的原子操作不必刷新到主内存转载 2017-07-27 17:12:41 · 267 阅读 · 0 评论 -
重写与重载的区别
一、方法的重写。 1、重写只能出现在继承关系之中。当一个类继承它的父类方法时,都有机会重写该父类的方法。一个特例是父类的方法被标识为final。重写的主要优点是能够定义某个子类型特有的行为。 [java] view plain copy print? class Animal { public void eat(){转载 2017-07-19 18:17:13 · 225 阅读 · 0 评论 -
hashmap源码分析
1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,hashmap也不例外。Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之为“链表散列“),请看下图(横排表示数组,纵排表示数组元素【实际上是一个链表】)。转载 2017-07-19 01:15:41 · 147 阅读 · 0 评论 -
ArrayList和LinkedList的区别
ArrayList ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayList中添加对象时,数组的大小也相应的改变。这样就带来以下优缺点: 1.快速随机访问。你可以随机访问每个元素而不用考虑性能问题,通过调用get(i)方法来访问下标为i的数组元素。 2.向其中添加对象速度慢转载 2017-07-22 00:22:21 · 160 阅读 · 0 评论 -
java线程池
ava并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务原创 2017-07-30 17:10:44 · 204 阅读 · 0 评论 -
java乐观锁和悲观锁的实现
概念: 这里抛开数据库来谈乐观锁和悲观锁,扯上数据库总会觉得和Java离得很远. 悲观锁:一段执行逻辑加上悲观锁,不同线程同时执行时,只能有一个线程执行,其他的线程在入口处等待,直到锁被释放. 乐观锁:一段执行逻辑加上乐观锁,不同线程同时执行时,可以同时进入执行,在最后更新数据的时候要检查这些数据是否被其他线程修改了(版本和执行初是否相同),没有修改则进行更新,否则放弃本次操转载 2017-07-16 19:49:27 · 483 阅读 · 0 评论 -
j jvm内存管理
近期看了看Java内存泄露的一些案例,跟原来的几个哥们讨论了一下,深入研究发现JVM里面还是有不少以前不知道的细节,这里稍微剖析一下。先看一看JVM的内部结构—— 如图所示,JVM主要包括两个子系统和两个组件。两个子系统分别是Class loader子系统和Execution engine(执行引擎) 子系统;两个组件分别是Runtime data area (运行时数据区域)组件和Na转载 2017-06-27 17:14:11 · 399 阅读 · 0 评论 -
每日java基础
构造方法可以重载,可以有多个。 构造方法在类实例化对象时调用来初始化对象,自动调用。 构造方法必须和类名相同。 异常分为运行时异常和非运行时异常和error,error是系统异常,只能重启解决。非运行时异常需要我们自己捕获,运行时异常是 程序运行虚拟机帮助我们捕获,包括数组的溢出,内存的溢出和空指针,分母为零等。 静态变量会默认赋初值,而局部变量和final声明的变量必须初始化,不会进行原创 2017-06-27 16:39:56 · 171 阅读 · 0 评论 -
native关键字
今天研究Java基础类库,Object类的时候,发现了一个关键字:native 咦?这是个什么东东?它认识我,我可不认识它! 嘿嘿,没关系,baidu一下。 Java native关键字 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实转载 2017-07-13 21:25:40 · 166 阅读 · 0 评论 -
set,list,map的区别
Set,List,Map的区别 java集合的主要分为三种类型: Set(集)List(列表)Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存转载 2017-07-04 20:10:57 · 163 阅读 · 0 评论 -
按值传递和按引用传递的区别
前天在做系统的时候被Java中参数传递问题卡了一下,回头查阅了相关的资料,对参数传递问题有了新的了解和掌握,但是有个问题感觉还是很模糊,就是Java中到底是否只存在值传递,因为在查阅资料时,经常看到有人说Java只有值传递,但有人说既有值传递,也有引用传递,对于两个观点个人觉得应该是站的角度不同而得出两个不同的说法,其实两个说法其中的原理是一样的,只要咱们懂得其中的原理,那么至于叫什么也就无所谓了转载 2017-07-12 23:08:17 · 415 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap的区别
HashMap,LinkedHashMap,TreeMap的区别 标签: hashmap数据结构存储iteratorhashcode 2014-05-16 14:23 7415人阅读 评论(0) 收藏 举报 分类: 笔记(5) Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Ma转载 2017-07-11 20:55:19 · 283 阅读 · 0 评论 -
HashSet,linkedHashSet,TreeSet的区别
set不包含重复的元素,这也是使用set的一个主要原因,set有三个常用的实现,分别是HashSet、TreeSet和LinkedList。总之,对于这三个实现,何时使用是一个重要的问题,如果你需要一个快速的set,你应该使用hashSet;如果需要使用一个排序好的set,那么应该是TreeSet;如果需要一个保持插入顺序的set,那么LinkedHashSet是一个不错的选择。 Set接口转载 2017-07-11 20:32:38 · 242 阅读 · 0 评论 -
==和equals的区别
java程序中测试两个变量是否相等有两种方式,一种是==运算符,一种是equals运算符 ==: 1如果两个变量是基本类型的变量,且都是数值型(不一定要求数据类型严格相同),则只要两个变量的值相同,则通过==比较就会返回true 2如果是两个引用变量,则他们必须指向同一个对象,通过==比较才会返回true; 3==不可比较类型上没有父子关系的两个对象。 equals: 1string原创 2017-07-11 19:58:41 · 143 阅读 · 0 评论 -
hashmap和hashset的存储机制
有一篇关于hashmap存贮机制的文章地址:http://dxz.iteye.com/blog/2191911 下面是另一篇: http://blog.csdn.net/managermeng/article/details/41116847 通过分析 JDK 源代码研究 Hash 存储机制 HashMap 和 HashSet 是 Java Coll转载 2017-07-01 20:43:37 · 361 阅读 · 0 评论 -
StringBuilder > StringBuffer > String三者的区别
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。 关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String转载 2017-07-10 20:38:28 · 158 阅读 · 0 评论 -
hashmap和hashset的区别
HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis转载 2017-07-28 16:59:24 · 184 阅读 · 0 评论