概述:本文介绍以下java五种创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式。 2.使用Class类的newInstance方法 3.运用反射手段,调用java.lang.reflect.Constructor类的newInstance()实例方法。 4.调用对象的clone ...
分类:
编程语言 时间:
2017-05-28 16:52:29
阅读次数:
237
ArrayList和LinkedList最主要的区别是基于不同数据结构 ArrayList是基于动态数组的数据结构,LinkedList基于链表的数据结构,针对这点,从时间复杂度和空间复杂度来看主要区别: 1.时间复杂度 对于随机访问,ArrayList通过索引快速定位元素位置;而LinkedLis ...
分类:
编程语言 时间:
2017-05-25 00:09:14
阅读次数:
246
1.1 实例变量和类变量 成员变量和局部变量: 局部变量分为三大类: 1)形参:在方法签名中定义的局部变量,由方法调用者为其赋值,随方法的结束而消亡。 2)方法内的局部变量:在方法内定义的局部变量,随方法的结束而消亡。 3)代码块内的局部变量:在代码块内定义的局部变量,随代码块的结束而消亡。 局部变 ...
分类:
编程语言 时间:
2017-05-24 23:54:50
阅读次数:
143
内存溢出 产生原因 Android 的虚拟机是基于寄存器的Delvik,它的最大堆内存是16M,有的机器是24M,因此所能用的内存空间是有限的,如果我们的内存占用超过一定水平就会出现OOM异常 对象内存过大 保存了多个好用内存的过大的对象(比如Bitmap,XML文件),造成内存超出限制 图片过大导 ...
分类:
其他好文 时间:
2017-05-15 00:34:36
阅读次数:
163
问题 可以直接根据hashCode()方法产生的值判断两个对象是否相等吗? 解答 不能!根据Wikipedia(https://en.wikipedia.org/wiki/Java_hashCode())上对hashCode()方法的解释,它会根据这个对象内存储的数据及对象的一些特征来做散列,并返回 ...
分类:
编程语言 时间:
2017-05-14 12:18:57
阅读次数:
138
对象在内存中分为三个区域:1 对象头(Header) 2 实例数据(Instance Date) 3 对齐填充(Padding) 1 对象头: 1) 存储自身运行时的数据,如Hascode ,GC 分代年龄,锁状态标记,线程持有锁,偏向线程id,偏向时间戳。数据存放在32bit 和64bit 机中分 ...
分类:
其他好文 时间:
2017-05-01 19:02:57
阅读次数:
142
JVM对于操作系统来说是一种应用程序,JVM要运行的时候,操作系统会创建对应的进程而且分配一定大小的内存。 一、内存结构 当虚拟机得到系统分配的内存后,它在其内存空间中就是老大,管理对象内存的分配以及对象内存的回收,同时可以根据虚拟机的规范对其内存空间划分不同的区域。主要分为运行数据区、执行引擎、本 ...
分类:
编程语言 时间:
2017-04-29 15:07:13
阅读次数:
173
一、Java中的强、软、弱、虚引用在JDK中我们能够看到有一个java.lang.ref的包。这个包中就是Java中实现强、软、弱、虚引用的包,例如以下:PhantomReference虚引用:假设一个对象持有虚引用,就和没有持有引用一样,在不论什么时候都可能被垃圾回收器回收。虚引用主要用来跟踪对象 ...
分类:
编程语言 时间:
2017-04-24 23:11:14
阅读次数:
293
一、Java开发平台 JavaSE 标准版 Java应用程序 application 五子棋、计算器、qq JavaEE 企业版 Java企业级应用 JavaME 微型版 小型设备 Android取代了 二、Java 术语 jdk Java开发工具包 JRE java运行环境 JVM java虚拟机 ...
分类:
编程语言 时间:
2017-04-21 19:10:17
阅读次数:
207
java中判断字符串是否相等有两种方法:1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc";那么a==b将返回true。这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象 ...
分类:
编程语言 时间:
2017-04-20 19:56:51
阅读次数:
189