zoukankan      html  css  js  c++  java
  • JavaSE复习_1 Java的基本格式和运算符

    △.代表在当前目录.classpath能在任何路径下访问类文件.
    △单行注释可以嵌套,多行注释不能嵌套
    △java中的标识符只能有数字,字母,$和_,其他的符号都是错误的,不合法的.其中数字不能是开头.
    △快捷打开命令窗口.按住shift,右键此处打开命令窗口.
    △跨平台原理:只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
    △字符常量:''单引号中必须放的是单个数字(0~9),10代表的是2个字符.''不放字符也不可以.
    △计算机内部以源码的形式存储,在运算的时候以补码的形式去运算.
    △java中,除了char和boolean其他数据类型都是从负数开始取到正数,如int -2^31~2^31 byte:-128~127
     char占两个字节:0~65535,boolean没有明确指定大小.(sun官方文档),float占四个字节,double占8个字节.
    △>>>运算符将用0填充高位,而>>用符号位填充高位.在对于整数进行移位运算符的操作的时候,需要对移位运算符右侧的参数进行模以32的运算.例如:1<<35和1<<3和8是相同的.
    △整数默认的类型是int类型,因此不能直接用long x=999999999;这样会显示数据类型错误(out of range).需要long x=9999999999l才可以.标识最好加L.
    △小数的默认类型是double类型.因此如果float f=1.32;会直接报错.显示可能会损失精度.需要标识float f=3.12f;
    △输出一个整数除以0的数值将会报错ArithMeticException异常.但是用浮点数除以0则不会报异常,会得到NAN或者Infinity.
    △byte b=2;不会出现和float/double一样的错误,这是因为整数类型(常量在编译的时候就能确定了.但是如果是变量的话另当别论(short同理).如:
     byte b=3+4;          //编译时已经确定,不会报错.直接数字相加直接转换为byte.注意!!float不同.
     byte b1=3;
     byte b2=4;
     b=b1+b2;          //报错,两个byte变量相加会直接转化为int.java编译器有常量优化机制.
    另外:
    int x=32;
    byte b=32;
    b=b+x;
    System.out.println(b);     //编译错误.这是因为b+x后转化为了int字节.再转换为byte会出现错误.
    △小的数据类型在和大的数据类型运算时会补成大的数据类型.
    △byte b=1;b+=1;//编译通过,隐藏了一个类型的转换,b++同理,不会报错.而b=b+1;则是将int类型转换为byte类型,会报错(Can not convert from int to byte)
     byte b=(byte)129;会得到负数.因为截断.
    而byte b=(byte)300;不会得到负数,因为300>256,因此最高位是0
    △float f=123l; //编译成功,因为float比long大.因此倒过来也是不对的. float使用ieee754格式存储。只有24位精度,两个float之间的距离可能很大。 
    举个简单的例子,2000000000和2000000050用float表示的话这两个数是相同的 。 
    整数是精确表示的。0位代表符号位,8位代表指数位,23位代表尾数位.
    △System.out.println('a'+1);     //输出98.因为在转换为int
     System.out.println("hello"+'a'+1)//输出helloa1
     System.out.println('a'+1+"hello")//输出98hello
    △System.out.println((float)(10/3))//输出3.0,因为10/3已经事先算好
    △当两个数值进行想加的操作的时候,先将两个操作数转化为同一种类型,再进行计算.
    • 如果两个操作数中有一个是double类型,另一个操作数会转化为double类型.
    • 否则,如果有一个是float类型,另一个操作数会被转化为float类型.
    • 否则,如果有一个是long类型,另一个操作数将会被转化为long类型.
    • 否则,两个操作数均被转化为int类型(终点).
    △Math.round方法方法代表对浮点数采用最接近的整数的舍入运算.如果参数是double类型,返回long.如果参数是float类型,返回int.
    △常见的结合性从右向左的运算符:+=,-=,*=,/=,=.对于这类运算符,从右向左进行计算.a+=b+=c等价于a+=(b+=c).
    △异或^:两边相同就是false两边不同则为true,&&是短路的,同时单与也有位运算符的作用.
    △if语句和三元运算符的区别,a?b:c;三元运算符的b和c必须要要有明确的结果,因为三元运算符是运算符,要有明确的结果.
    if(x<2)
         int z=3;//错误.因为int z=3;实际上是两个语句.
    △switch(表达式){
         case 语句:语句1;
                        break;
    }
    在switch括号内的表达式byte,short,char,int 枚举(jse 1.5),字符串(jse 1.7).
    case一旦成功匹配,其后的语句都不在判断.default:即使放在任意位置,也是最后去执行.
            
     int x =4;
              switch(x )
              {
                   case 1:System.out.println("a");
                   case 2:System.out.println("c");
                          
                   case 3:System.out.println("b");
                   default:System.out.println("d");
                           
              }
    此时输出d.当default在最后面时,没有break也可以正常结束.
    当default在最前面时,执行完default后,会继续向下.直到碰到break或者大括号
    case 1:
    case 2:
    case 3:
              语句;
    这样的格式也是可行的.
    △break可以带标签: 
              
     U:
                for( int x=0; x<=4; x++) {
                     for( int y=0; y<=3; y++) {
                          if( y==2)
                                break U;
                         System. out.println( "x="+ x+ ",y="+ y);
                    }
               }
       实际上带break的标签可以用在if语句中,跳出if语句块.
       还有带标签的continue语句,其作用与break近似.
    △静态导入:将类导入,以便使用类中的静态方法或者静态变量,如:import static java.lang.math.*;
    △UTF-8一个中文三个字节,GBK码表一个中文两个字节.
    加油
  • 相关阅读:
    [android] AndroidManifest.xml
    [android] AndroidManifest.xml【 manifest -> permission-tree 和 manifest -> permission-group】
    [android] AndroidManifest.xml
    [android] AndroidManifest.xml【 manifest -> uses-permission】
    [android] AndroidManifest.xml -【manifest】
    [maven] 详解
    [velocity] velocity详解
    [Java] java调用wsdl接口
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/hlhdidi/p/5574295.html
Copyright © 2011-2022 走看看