五、java的面向对象程序设计(类和对象)
五、java的面向对象程序设计(类和对象)
/**
* 面向对象之一
* 类与对象
*/
/**
* 对象的实例化过程:
* 1,java中所有类型在内存的分配情况
* a,基本类型"变量"char,byte,short,int,long,float,double,boolean存储在堆栈中
* 堆栈是通过堆栈指针按照先进先出的读取方式存储数据,存取速度快.
* 堆栈位于RAM(随机访问存储器,可读可写)
* b,"常量"(主要指通过final static关键字定义的常量)存储在ROM(只读存储器)中
* c,"对象"存储在堆中
* 堆按照先进后出的存储方式存储数据,存储速度较慢.堆同样位于RAM.
* d,"引用"存储在堆栈中,存储的是对象的首地址,并通过地址指针指向位于堆中的对象.
*
* 2,对象的实例化过程
* 创建一个类的引用时,如Person p1这时将在堆栈中创建一个引用p1,
* 当p1 = new Person()时,在堆中创建了一个Person类型的对象,并且将该对象在堆中的首地址赋值给p1这个引用.
*
* 3,引用的比较
* 我们创建两个对象:
* Person p1 = new Person(); Person p2 = new Person();
* 这时,堆内存中存放了两个Person类型的对象,这两个对象的首地址不相同,
* 所以,第一个对象的引用p1和第二个对象的引用p2(p1,p2存储着对象的首地址)的值不相同.
*
* 4,对象和引用的生命周期:
* 大体来说,创建对象的引用和创建一个变量一样,都是分配在堆栈中的,
* 在方法中我们按照先后顺序定义的变量和引用,将在该方法结束后,同样按照先定义先释放的方式结束其生命周期.
* 但是对于一个引用,由于存放的是堆中对象的首地址,所以,在方法中当我们将null赋值给这个引用时,例如p1 = null,同样可以提前结束p1的生命周期.
* 当p1 = null后,结束的是引用的生命,但是堆中的对象并没有结束,而这个对象将等待java的垃圾回收器,在一个特殊的时间将其清除.
*/
class Person
{
private int age;
public void setAge(int age)
{
this.age = age;
}
public void shout()
{
int age = 23;//方法中定义的局部变量会覆盖类中定义的同名的成员变量;
/*
{
int age = 30;//错误,java中不允许在方法中定义与全局变量同名的局
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。
1. 原始单据与实体之间的关系
&nbs ......
在这个页面上http://rymden.nu/exceptions.html,你会看到Java的各种异常,不过,你看看各个异常的解释,你会发现非常有趣,下面例举几个吧:
java.lang.ArithmeticException
你正在使用计算解决一个你不能自己解释的数学问题,请你重新读一下你的程序,然后,再试一次。
java.lang.ClassNotFoundException
你应该是发� ......
问个问题 最近在学习Flex。。。照着网上资料,在MyEclipse中完成了Flex与web项目整合
在做普通Flex运行测试是是没有问题的,但如果想调用java类,按照网上的做法,是要更改该目
录下的remoting-config.xml,但是我自动生成的WebRoot/WEB_INFO/flex目录下面仅仅只有
services-config.xml一个文件,这是什么原因??我的是 ......
//Java的IO的一个实例
import java.io.*;
import java.util.zip.*;
public class abc5{
String temp=new String();
String t=new String();
public void readByLinefromConsoleAndPrint(){
System.out.println("==从控制台获得输入==");
try{
BufferedReader in=new ......