1.Java程序中的的一个类Student
Student stu;
Student stu=null;
Student stu=new Student();
三个有什么不同,在内存中是怎样分配的?
2.堆和栈有什么不同,分别用来存储什么样的数据?
3.innerHTML有什么限制?
4.spring中的事务管理?

解决方案 »

  1.   

    Student stu; 
    知识声明一个对象,没有分配内存空间堆和栈有什么不同:
    堆是用来存放基本数据类型和引用数据类型的对象的.
    而栈是用来存放引用数据类型的引用变量的.
      

  2.   

    1. Student stu 未初始化.未分配内存 ,只给了引用变量
        Student stu = null 初始化为null,未分配内存,指向一个null地址
        Student stu = new Student(); 在内存中创建stu的指向地址,内存分配成功
    2.堆与栈都是线性数据结构,堆中用来给对像分配内存,也就是当一个对像创建后对像被存放在堆中,而对像的引用存放在
       栈中.
    3.innerHTML的限制,怎么会这样的题啊,不能包含引用对象的自身标签
    4.Spring 中的事务管理 主要用
      声明式事务管理 
      Spring 中进行事务管理的通常方式是利用AOP(面向切片编程)的方式,为普通java类封装事务控制,它是通过动态代理实现的,由于接口是延迟实例化的, spring在这段时间内通过拦截器,加载事务切片。
      

  3.   

    Student stu;   //1
    Student stu=null;  //2这两个好像没什么不同,都没有分配内存
    Student stu=new Student();  //这个已经分配了内存,
    这个问题感觉是最基本的问题,如果你曾认真学过一门编程语言的话, C /C++ /Delphi之类, 应该就知道的2.堆和栈有什么不同,分别用来存储什么样的数据?堆是用来分配动态数据的,栈,我忘了
      

  4.   

    补充下:
    1、Student stu和Student stu = null是相同的意义,都是在内存栈中指定对象指向地址的指针,他们都同样指向null,即没有指向任何地址。
    Student stu = new Student();为声明了一个Student对象的地址指针stu,然后在内存堆区中开辟new Student()的内存大小,此大小由Student类中的成员来确定。然后,将stu的指针指向开辟的对象的首地址。
    2、内存栈存放引用数据类型的指针地址,存储速度较快,但容易溢出。
       堆栈为对象提供存储空间。读取速度相对较慢,但容量大,不容易溢出。
    3、同上。
    4、同上