java
AndroidExplorer
Android交流:http://azenhuang.github.io/
展开
-
Java堆、栈、内存分配
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存 中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放 掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由J转载 2013-09-24 21:08:39 · 833 阅读 · 0 评论 -
Java反射初步
一.概念 反射就是把Java的各种成分映射成相应的Java类。 Class类的构造方法是private,由JVM创建。Class 没有公共构造方法。 反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很转载 2013-11-01 23:57:14 · 1484 阅读 · 0 评论 -
java中的各种数据类型在内存中存储的方式
1.java是如何管理内存的java的内存管理就是对象的分配和释放问题。(其中包括两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工转载 2015-03-06 13:42:55 · 679 阅读 · 0 评论 -
Java数组及引用类型内存分配
在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点。数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然保留,因此数组长度将不能被改变。当仅定义一个数组变量(int[] numbers)时,该变量还未指向任何有效的内存,因此不能指定数组的长度,只有对数组进行初转载 2015-03-19 10:50:38 · 3165 阅读 · 0 评论 -
Java中的构造方法总结
构造方法和实例方法的区别:一、主要的区别在于三个方面:修饰符、返回值、命名1、和实例方法一样,构造器可以有任何访问的修饰符,public、private、protected或者没有修饰符 ,都可以对构造方法进行修饰。不同于实例方法的是构造方法不能有任何非访问性质的修饰符修饰,例如static、final、synchronized、abstract等都不能修饰构造方法。解释:构造原创 2013-11-05 19:20:18 · 40995 阅读 · 7 评论 -
Java的GC机制
Java的GC机制 1.Java中finalize()的作用一主要是清理那些对象(并非使用new)获得了一块“特殊”的内存区域。程序员可以用finalize()来操作。 程序员都了解初始化的重要性,但常常会忘记同样也重要的清理工作。毕竟,谁需要清理一个int呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器负责回收无用对象占转载 2014-08-21 10:22:22 · 532 阅读 · 0 评论 -
原子性与可见性 volatile与synchronized关键字
一、定义1.可见性在多核处理器中,如果多个线程对一个变量(假设)进行操作,但是这多个线程有可能被分配到多个处理器中运行,那么编译器会对代码进行优化,当线程要处理该变量时,多个处理器会将变量从主存复制一份分别存储在自己的片上存储器中,等到进行完操作后,再赋值回主存。(这样做的好处是提高了运行的速度,因为在处理过程中多个处理器减少了同主存通信的次数);同样在单核处理器中这样由于“备份”造成的问转载 2014-04-11 23:16:18 · 1970 阅读 · 0 评论 -
JAVA NIO 简介
Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区)标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓转载 2014-04-09 22:58:22 · 764 阅读 · 0 评论 -
java内存分配
栈、堆、常量池虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,详细讲解Java内存分配方面的知识。Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆转载 2014-03-16 23:46:43 · 621 阅读 · 0 评论 -
Java 单例模式详解
Java 单例模式详解概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算转载 2014-03-16 13:47:27 · 471 阅读 · 0 评论 -
Java 线程池学习
Java 线程池学习Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor使用和思考》[6][1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),转载 2014-03-11 10:20:12 · 645 阅读 · 0 评论 -
Java输入输出流
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java.io是大多数面向数据流的输入/输出类的主要软件包。转载 2014-03-04 10:03:17 · 752 阅读 · 0 评论 -
浅谈HTTP中Get与Post的区别
先简单的介绍一下get与postl Get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。l Post:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项,Post被设计成用统一的转载 2013-11-06 19:52:33 · 1216 阅读 · 0 评论 -
详解Java反射机制实例
在 Java 运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息,以及动态调用对象的方法的功能来自于Java 语言的反(Reflection)机制。AD:在 Java 运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它转载 2013-11-01 23:57:10 · 804 阅读 · 0 评论 -
Java反射机制详解
首先,我们在开始前提出一个问题:1.在运行时,对于一个java类,能否知道属性和方法;能否去调用它的任意方法? 答案是肯定的。本节所有目录如下:什么是JAVA的反射机制JDK中提供的Reflection APIJAVA反射机制提供了什么功能获取类的Class对象获取类的Fields获取类的Method获取类的Constructor新建类的实例转载 2013-11-01 23:22:13 · 821 阅读 · 0 评论 -
java的反射机制(简单解释)
//留着以后参考,简单复制代码总共两个类一个Person,一个reflectDemo(用来反射Person类),出处(javaweb老方的视频)Person类 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536转载 2013-10-23 09:50:20 · 813 阅读 · 0 评论 -
字符串 —— String?StringBuffer?StringBuilder?
字符串常用的操作就是拼接,特别是SQL语句的拼接。做了个简单的试验,它们之间的差别惊人! StringBuffer: 1 public void testStringBuffer() { 2 long start = System.currentTimeMillis(); 3 StringBuffer sb = n转载 2013-09-25 21:18:50 · 697 阅读 · 0 评论 -
初步认识java泛型
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的(不需要前加转载 2014-02-27 15:24:44 · 952 阅读 · 0 评论