Android - 文章列表

  • 对Java类加载器(Class Loader)认识

    本文主要总结一下我对Java类加载器(Class Loader)认识,如有不准确之处还望大侠不吝赐教!关键字:Java,类加载器(Class Loader)主要从如下几个部分进行介绍:类加载的过程 类加载器的层级 类加载器的操作原则 为什么要个性化类加载器 其它相关问题类加载的过程类加载器的主要工作就是把类文件加载到JVM中。如下图所示,其过程分为三步:加载:定位要加载的类文件,并将其字节流装载到JVM中; 链接:给要加载的类分配最基本的内存结构保存其信息,比如属性,方法以及引用的类。在该阶段,该类还处于不可用状态; 验证:对加载的字节流进行验证,比如格

  • windows xp下配置JDK环境变量

    windows xp下配置JDK环境变量: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08;  2.安装完成后,右击“我的电脑”,点击“属性”; 3.选择“高级”选项卡,点击“环境变量”; 4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”; 5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:/java/jdk1.5.0_08,此路径下包括lib,bin,jre等文件

  • Java-栈与堆都是Java用来在Ram中存放数据的地方

    栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 栈的优势是,存取速度比堆要快,仅次于

  • 多核能带来性能的大幅增长-Java 构造高可扩展应用

    为什么性能没有增长? 多核能带来性能的大幅增长,这很容易通过简单的一些测试来观察到。如果我们写一个多线程程序,并在每个线程中对一个本地变量进行累加,我们可以很容易的看到多核和并行带来的成倍的性能提升。这非常容易做到,不是吗?然而,与我们的测试相反,我们很少在实际软件应用中看到这样完美的可扩展性。阻碍我们获得完美的可扩展性有两方面的因素存在。首先,我们面临着理论上的限制,其次软件开发过程中也经常出现实现上的问题。让我们看看 图 1 中的三条性能曲线:图 1. 性能曲线 作为追求完美的软件工程师,我们希望看到随着线程数目的增长程序的性能获得线性的增长,也就是

  • Java的内存管理就是对象的分配和释放问题

    1、Java的内存管理就是对象的分配和释放问题。 在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。 对象的释放是由GC决定和执行的。 在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法简化了程序员的工作。但也加重了JVM的工作。这也是Java程序运行速度较慢的原因之一。 GC释放空间方法: 监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等。当该对象不再被引用时,释放对象。 2、内存管理结构 Java使用有向图的方式进行内存管

  • Java内部类可以很好的实现隐藏,也就是封装性

    一、 定义 放在一个类的内部的类我们就叫内部类。 二、 作用 1.内部类可以很好的实现隐藏,也就是封装性。一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所有元素的访问权限 3.可是实现多重继承 4.可以避免修改接口而实现同一个类中两种同名方法的调用 三、 例子 1.实现隐藏 平时我们对类的访问权限,都是通过类前面的访问修饰符来限制的,一般的非内部类,是不允许有 private 与protected权限的,但内部类可以,所以我们能通过内部类来隐藏我们的信息。可以看下面的例子 Java代码 1.p

  • 读取当前路径以及“直接父路径”的所有Cookie对象

      测试环境:JDK1.5、Tomcat5.5  1.设置Cookie  1 Cookie cookie = new Cookie(\\\"key\\\", \\\"value\\\");  2 cookie.setMaxAge(60); //设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。  3 cookie.setPath(\\\"/test/test2\\\"); //设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request.getContextPath() + web.xml里配置的该Servl

  • Socket连接套接字,Java分别为TCP和UDP提供了相应的类

      127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问.  端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口.  网络应用中基本上都是TCP(Transmission Control Protocol传输控制协议)和UDP(User Datagram Protocol用户数据报协议),TCP是面向连接的通信协议,UDP是无连接的通信协议.  Socket连接套接字,Java分别为TCP和UDP提供了相应的类,TCP

  • ava的内存管理就是对象的分配和释放问题

      1、Java的内存管理就是对象的分配和释放问题。   在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。  对象的释放是由GC决定和执行的。  在Java中,内存的分配是由程序完成的,而内存的释放是有GC完成的,这种收支两条线的方法简化了程序员的工作。但也加重了JVM的工作。这也是Java程序运行速度较慢的原因之一。  GC释放空间方法:监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等。当该对象不再被引用时,释放对象。  2、内存管理结构Java使用有向图的方式进

  • Java中组件的摆放位置和大小事由布局管理器来决定的

    在Java中组件的摆放位置和大小事由布局管理器来决定的,容器对布局管理器的特定实例保持着一个引用,当容器要定位一个组件的时候,它将调用布局管理器来决定。我们在设置组件的大小的时候,也是通过这个完成的。 在Java中给我提供了五种布局管理器。BoraderLayout边界布局管理器,FlowLayout浮动布局管理器,GridLayout网格布局管理器,CardLayout卡片布局管理器,GridBagLayout布局管理器。 在Java中FlowLayout是Panel容器的默认管理器,其组件的放置规律是从上到下,从左到又。BoarderLayout是W