分类:Java初级

Java基础知识

Java内存泄露

内存泄露是指当不再使用的对象没有得到释放,还占有内存,从而造成内存浪费的情况。 在C++中,内存是由程序员进行管理的,从内存的创建、使用和释放都是程序员去操作。很多时候因为疏忽忘记对对象的释放,从而导致无用对象不断增加,导致内存不足,产生内存泄露的现象。 原因 一般产生内存泄露的原因主要有如下两种:第一种,没有释放掉不...

yan 2016 年 4 月 21 日 443℃ 0评论 6喜欢

java中的四种引用

从jdk1.2以后,为了更好的控制对象的生命周期,从而定义了四中级别:强引用、软引用、弱引用和虚引用。不同的引用对于JVM的垃圾回收以及内存泄露等有着重要的影响。 强引用 正常的使用中,声明的对象都是强引用,是最普遍的引用。强引用是不能被回收机制所回收的,即使达到一定程度之后,报出OutOfMemoryError异常也...

yan 2016 年 4 月 21 日 495℃ 0评论 7喜欢

详细阐述集合类

Collection接口,是集合类的最基本接口。集合类(Collection)顾名思义,代表一组元素(Elements)的集合。继承该接口的主要是List、Set和Queue三个接口,不提供直接继承的类。 由此可知,Set、List或Queue都是集合类,是一组元素的集合,与Map有本质性的区别。Map是键值对的形式...

yan 2016 年 4 月 19 日 365℃ 0评论 3喜欢

JAVA中的接口和抽象类

抽象是面向对象设计的几大特点之一,在JAVA中的体现则是抽象类和接口。这两者十分的相似,想很多初学者甚至接触java几年的人也很难分清他们。今天笔者在查看集合类相关的代码的时候,发现了有部分是接口如List、Map等,有部分是抽象类如AbstractList、AbstractSet等,由于对两者不是十分的清楚,比较迷惑...

yan 2016 年 4 月 18 日 442℃ 0评论 4喜欢

Java中sleep()和wait()的区别

在JAVA的学习中,不少人会把sleep和wait都搞混,认为都是做线程的等待。比如方法sleep(long)和wait(long)就分不清,下面主要介绍下这俩者是什么,区别在哪。 首先需要明白很重要的一点! sleep是Thread的方法,wait是Object的方法 由此可知,它俩的本质是不相同的。 区别一,sle...

yan 2016 年 3 月 28 日 492℃ 0评论 1喜欢

Java中Auto Box/Unbox容易踩到的“坑”,Integer

Java中的Auto Box/Unbox对写代码带来了便利性,但也挺容易就踩进“坑”里,主要是NPE,对象比较还有内存浪费。 自动装箱、拆箱 先解释下什么是自动装箱、拆箱,基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 这是最典型的Auto Box/Unbo...

yan 2016 年 1 月 5 日 1108℃ 2评论 1喜欢

Java 线程生命周期,状态转换和优先级

当线程被创建并启动之后,它既不是一启动就进入执行状态,也不是一直处于执行状态,在其生命周期中,要经过“新建(New)”、“就绪(Runnable)”、“运行(Running’)”、“阻塞(Blocked)”和“死亡(Dead)”五种状态。线程在创建之后,不可能一直霸占着CPU独立运行,需要在多个线程之间切换...

yan 2015 年 7 月 23 日 805℃ 1评论 10喜欢

JAVA高级——集合类

集合的概念: Java中集合类是用来存放对象的 集合相当于一个容器,里面包容着一组对象 —— 容器类 其中的每个对象作为集合的一个元素出现 Java API提供的集合类位于java.util包内 Java中数组与集合的比较: 数组也是容器,它是定长的,访问较快,但是数组不会自动扩充 数组可以包含基本数据类型或引用类型的...

yan 2015 年 1 月 22 日 978℃ 0评论 1喜欢