Java基础知识

符号类型
      1.在C和C++中,int表示的整型与目标机器相关。在16位cpu上整型占2字节,在32位上占4字节;而在intel pentium的cpu上,
        C和C++整型依赖于具体的OS,对于DOS和Windows3.1,整型占2字节,当Windows使用32位模式时,整型占4字节。java
        没有无符号类型。
      2.float类型的数值有一个后缀F。没有的浮点数值默认为double类型(也可以在后面添加后缀D以示区分).
      3.char采用UTF-16编码,占2字节,建议不要在程序中使用char类型
    
代码点:
     与一个编码表中的某个字符对应的代码值。在Unicode标准中,代码点采用16进制表示,并加上前缀U+,如U+0041表示字母A的代码点。
  Unicode的代码点分成17个代码级别.基本的多语言级别(BMP):U+0000~U+FFFF(包括经典的Unicode代码),每个字符用16位表示,称为
  代码单元;剩余的16个附加级别:U+10000~U+10FFFF(包括一些辅助字符),采用一对代码单元编码(第一个代码单元:U+D800~U+DBFF,
  第二个代码单元:U+DC00~U+DFFF).例如:对于整数集合的数学符号,它的代码点是U+1D56B,并且是用两个代码单元U+D835和U+DD6B
  编码的。

类型转换
     下图为合法的类型转换,3个虚箭头表示可能有精度损失的转换。
     

 

     1.两个数值进行二元操作时,有一个是double、float、long类型时,另外一个自动提升为对应类型;其他的类型转换都提升为int型;
     2.如果想对浮点数进行舍入运算,以便得到最接近的整数,就应使用Math.round方法:
       double x=9.99;
       int nx=(int)Math.round(x);

字符串:不可变字符串String的含义:不能修改字符串中的某个字符,但可以进行拼接等操作(其实也是调用StringBuild来操作).
  优点:编译器可以让字符串共享。
  注:java字符串不是C字符型数组,而更像char *指针。
 
  ==与equals方法的区别:
     ==只能确定两个字符串是否放在同一个位置(地址);而equals检测两字符串的值(即内容)是否相等。只有字符串常量是共享的,
     可以用==;而+或substring操作的结果不是共享的。

在java中不允许嵌套定义一个变量。

多维数组:数组的数组(不规则)
可变参
     printf方法定义:
          public class PrintStream
          {
               public PrintStream printf(String fmt,Object... args){return format(fmt,args);}
          }
     实际上,printf方法接收两个参数:一个是格式字符串,另一个是Object[]数组(等同于Object...),其中保存着所有的参数(整型
数组或基本类型自动打包转换成对象)。然后扫描fmt字符串,并将第i个格式说明符与args[i]的值匹配起来。
posted on 2012-03-12 20:53  Seiyagoo  阅读(440)  评论(0编辑  收藏  举报