static char f = '\65';这么写为什么不报错啊

解决方案 »

  1.   

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */package exp1;/**
     *
     * @author szhu5
     */
    public class NewClass {
        static char f= '\65';
        public  void a(){
            //static char f= '\65';
            System.out.println(f);
        //这么写为什么不报错啊
    }
    }单从你说的那句上没有任何语法或逻辑错误,当然不报错,但static数据成员不能写在方法里面,只能写在类里
      

  2.   

    好象是有点问题了,,,
    static char f= '\67'; 只要这个值是'\0'-'\67'之间就不会错,
    其它就会错。
      

  3.   

    变量char f= '\65';自身定义的有问题。应该不是方法的问题
      

  4.   

    这样,java编译器会吧‘\67’看成一个字符,所以不会报错!
      

  5.   

    我小研究了一下,应该是这样的:
    定义 char f = '\65' 时,这里的'\65'是八进制的数字表示,换算成十进制就是53,
    所以输出的时候,就是ASCII码里面 53 对应的字符:5因为是八进制表示的字符编码,所以也就出现了6楼所说的“有些值会错”。
      

  6.   

    对于JAVA中的转义字符,可以参考一下,下面的文档~~
    http://blueram.javaeye.com/blog/251839
      

  7.   

    八进制转义哦,一共有三种形式:\[0-7]
    \[0-7][0-7]
    \[0-3][0-7][0-7]即从 \0 到 \377 表示 \u0000~\u00ff 的字符。
      

  8.   

    参考:Java Language Specification, 3.10.6 Escape Sequences for Character and String Literals
    http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#101089