Java 6 问

1、如何区分静态存储器区和动态存储区?

静态存储方式:是指在程序运行期间分配固定的存储空间的方式。

所谓动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。常见的使用方法是指针,对将要寸的数据进行动态内存分配。

2、如何区分局部变量和全局变量?

局部变量:指在程序中,只在特定过程或函数中可以访问的变量,是相对与全局变量而言的。

全局变量:全局变量也称外部变量,是在函数外部定义的,作用域为从变量定义处开始,到本程序文件的末尾。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。

由于Java是面向对象语言,所有变量都是类成员,所以Java只有局部变量,没有全局变量。

3、什么是静态变量?

Java提供了关键字static来声明一个变量可以在多个实例间共享, 静态变量的类型说明符是static。 这种变量称为类变量或者静态变量,static成员不再属于每一个对象,而是由类来管理。该类的任何一个实例改变静态变量的值,其他实例将接收新值。

4、为什么不可以在方法中定义static

通俗点讲静态就是独立于类的实例而存在的方法或属性,所以他是基于类存在的,而非函数(方法)~~ 
方法之中的变量只是局部变量,并不能被方法之外所识别,所以并不能使用public,static,private,protected...之内的修饰符。
 
 
静态方法可以使用直接引用类的其他静态成员(包括变量和方法),但不能直接使用非静态成员。

5、如何理解静态全局变量和静态局部变量

静态局部变量定义

在局部变量的说明前再加上static说明符就构成静态局部变量。
  例如:
  static int a,b;
  static float array[5]={1,2,3,4,5};

静态全局变量定义

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。应予以注意。

6、在Java中setter和getter的作用是什么?

在java中经常是声明一个私有的变量,然后给出他们的公共的getter和setter方法。比如:
private String name;   public String getName() 
 {   return name;  }  public void setName(String name) 
 {   this.name = name;  }
请问:这样做的好处是什么?为什么要定义getter和setter呢。直接public String name;这样不是省去很多麻烦吗?
定义为private 是为了实现数据的隐藏和封装;  而set get 方法提供了类与外部的接口;  在大型软件中这是很有必要的,它有利于代码的维护  举个例子,  一个父类有多个子类(甚至还有间接子类),程序代码中,子类是不能直接访问父类的private属性的;这时提供的set get方法是很有必要的  诚然,若将父类的属性声明为protected,在子类中就可以直接访问了,但是这种方法破坏了数据的隐藏和封装原则,关键是不利于代码的维护,如果父类中的一个属性改名了,那么在子类中用到该属性名的代码,要发生大范围的修改,而前面的private,set,get方法就比较好,对代码只需小范围的修改,一般都是这么用的,这是一个良好的编程习惯 

7、区分实际参数和形式参数

实际参数:简称:‘实参’。在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”。
实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行 函数调用 时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
形式参数函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。
 
8、什么是MVC?

MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

9、什么是Hibernate?

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

10、什么是Spring?
Spring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
11、什么是Struts?

struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

12、什么是持久化?何谓“持久化” 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值