当前位置:  编程技术>java/j2ee

Java中的小知识点总结

    来源: 互联网  发布时间:2014-10-27

    本文导语:  一、声明局部变量是的一些特性和规则(1)声明的局部变量是不会被默认初始化的,成员变量则是会被默认初始化的。例如: 代码如下:class Demo {         public static void main(String[] args) {           String s;          ...

一、声明局部变量是的一些特性和规则
(1)声明的局部变量是不会被默认初始化的,成员变量则是会被默认初始化的。例如:

代码如下:

class Demo {  
      public static void main(String[] args) {
           String s;
           System.out.println(s);
     }
}

上面的这段示例代码中,直接输出s是错误的,连编译都不同通过,因为在main方法中声明s,这时s是局部变量,不会被默认初始化值,因此在下面直接输出是有错误的。代码改写如下即可:
代码如下:

class Demo {  
      String s;
      public static void main(String[] args) {
           System.out.println(s);
     }
}

这样输出的话就是null了,因为s被声明为成员变量,因此默认会被初始化值null。
(2)声明局部变量的前面不能有任何权限访问修饰符(public、protected和private),只能是friendly的默认友好的,但是可以使用final来修饰局部变量。

二、使用final来修饰基本类型局部变量和引用类型局部变量的区别
(1)final修饰基本类型局部变量的时候,不能对其基本类型的数据值进行修改。因为final修饰的变量是最终的,不能被改变。如下代码:

代码如下:

public class Something {
   public int addOne(final int x) {
       return ++x;
   }
}

这里addOne方法中使用final int x作为参数,下面再对其进行自增是错误的。

(2)final修饰引用类型的局部变量的时候,也就是对象。这时可以修改对象中的属性信息,但是不能修改对象的引用。比如下面的代码:

代码如下:

public class Something {
   public static void main(String[] args) {
       Other o = new Other();
       new Something().addOne(o);
   }
   public void addOne(final Other o) {
       o.i++;
   }
}
class Other {
   public int i;
}

这里addOne方法接收的参数是一个对象,而在方法体中自增了对象中的属性 i 的值,而对象的引用地址没有被修改,因此不会发生错误。而如果在方法体中写上:o = new Other(); 这时就会报错了。

(3)在类中被final修饰声明的成员变量不会默认初始化值。因此必须在构造器之前就得给定一个具体值。例如下面的代码:

代码如下:

class Something {
    final int i;// 这行就已经报错了,编译不能通过,没有初始化值
    public void doSomething() {
        System.out.println("i = " + i);
    }
}

final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i =0;"。

    
 
 

您可能感兴趣的文章:

  • Java知识点归纳总结
  • java获取时间的方法总结
  • Java Map的几种循环方式总结
  • JAVA读取属性文件的几种方法总结
  • java map遍历的四种方法总结
  • java中的移位运算符心得总结
  • java中的十个大类总结
  • java中的正则操作方法总结
  • 基于java中正则操作的方法总结
  • 浅析java程序中hibernate的应用总结
  • 浅析JAVA常用JDBC连接数据库的方法总结
  • java中的匿名内部类详细总结
  • Java命名规则详细总结
  • Java中instanceof关键字的用法总结
  • 基于Java堆内存的10个要点的总结分析
  • java对XML文件的解析、节点的增加、删除操作总结
  • Java 反射获取类详细信息的常用方法总结
  • java解析xml常用的几种方式总结
  • java中的内部类详细总结
  • java中String的常见用法总结
  • java中的Io(input与output)操作总结(二)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 考个SUN的JAVA认证值不值?能学到东西吗?是理论知识还是实践知识
  • Java知识协作平台 KiWi
  • 学习JAVA应具备什么知识?
  • 请问哪里有 《JAVA核心技术--基础知识》的电子书下载,谢谢!
  • java能做短信息发送软件吗?接口是什么?谁能明确说说这方面知识
  • 请问如何有效的学习java.io这一块知识
  • 要成为Linux下的java开发员或者Lixun服务器管理员要学哪些知识?
  • 请问谁有《java2核心技术 卷I:基础知识》书中例子的源代码?急需!!!
  • 关于《java2核心技术卷I:基础知识》 这本书中例子在jcreator2.5运行的问题.
  • 谁能给我《Java 2 核心技术 卷I:基础知识》的源代码,本人的随书光盘丢了,谢谢了!急
  • 我是学习web开发的,主要是java开发SSH开发框架和ajax等。我想知道有没有必要学习一下linux相关知识。
  • 提议:开个新版,把ejb/j2ee从java划出去。专门讨论ejb/j2ee方面的知识。
  • 用java语言做一个银行和ATM,需要用到哪些知识???哪位教我具体的过程,步骤给200分.
  • 小弟正学JAVA,请问我需要了解多少关于数据库的知识啊
  • 提个问题:我想自己做一个CRM系统(就是所谓的客户管理流程)这会应用到那些JAVA方面的知识?
  • 上哪去找corejava?java2核心技术(卷Ⅰ:基础知识)配套光盘的corejava可以吗?若可以该如何设置?
  • 学习Java是从基础知识开始学习好还是直接学习JBuilder好?
  • java多线程入门知识及示例程序
  • 请教各位高手,学习JAVA应该具备怎样的知识,我的C++基础不是很好。
  • java基础知识I/O流使用详解
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3