java无难事笔记(一)

来源:互联网 发布:中国式父母 知乎 编辑:程序博客网 时间:2024/05/18 15:52

1,编译成功,生成字节码文件,但是java虚拟机加载类的时候报错,说“找不到或无法加载主类”,原因是classspath配置最后没有加上“分号".

2,各种数据类型

            byte分配一个字节,有符号,short分配两个字节,有符号!这两种数据类型在参加运算的时候会强制转换为int,然后再进行运算,这样可以确保精度

所以这种写法是错误的,byte b; b = b*3; b*3的结果是int型,但是b是一个字节类型,所以编译器会报错,必须这样书写b = (byte)(b*3),括号不要忘记添加,如果写成b=(byte)b*3,则强制转换类型的优先级比*高,b本来就是byte类型,再转换为byte没有意义!

          char分配两个字节,在C中仅仅分配一个字节,char='a' 也可以写成 char=97;

3,数组声明:

      一:  数组声明和C语言不通,java的数组声明有点类似于C++的动态分配;

如果按照C语言方式来写

     int []num;

   num[0]=1;
   num[1]=2;
   num[2]=3;
   System.out.println(num[0]);
   System.out.println(num[1]);
   System.out.println(num[2]);

这C看起来是正确的,对于java其实是错误的  编译报错”错误: 可能尚未初始化变量num“

所以这样写int []num = new int[3];

   二:

  int []num ={1,2,3};
   System.out.println(num[0]);
   System.out.println(num[1]);
   System.out.println(num[2]);可以在声明的时候就直接初始化

   int []num =new int[]{1,2,3};
   System.out.println(num[0]);
   System.out.println(num[1]);
   System.out.println(num[2]);

 也可以在动态分配的时候直接用大括号赋值,但是注意不要去指明数组的个数int []num =new int[3]{1,2,3};,否则编译器报错

四:二维数组

java二维数组比较有特色,一个二维数组中列数可以不一样

常规: int [][] num;
  num=new int[3][4];
  num[0][1]=12;
  num[2][3]=34;
  
 列数不一样: int [][] num;
  num=new int[3][];
  num[0]=new int[5];
  num[1]=new int[3];
  num[2]=new int[2];
  
  num[0][4]=45;
  num[1][2]=34;
  num[2][1]=21;
  System.out.println(num[0][4]);
  System.out.println(num[1][2]);
  System.out.println(num[2][1]);
  System.out.println(num[2][2]);

 

也可以在声明的时候就初始化数组

int [][] num = new int[][]{ {1,2,3},{4,5,6},{7,8,9}};

int [][] num = new int[2][]{{1,2,3}{4,5,6},{7,8,9}};这是错误的,和一位数组在声明的时候初始化一样,不要指定维数;

 

4,自增自减操作,常规与C++一样,编译器实现

  int i=3;
 int count=(i++)+(i++)+(i++); count结果是3+4+5等于12
  int count=(++i)+(++i)+(++i);count结果是4+5+6等于16 ,i自然就是6了
  System.out.println(i);
  System.out.println(count);

 

 

原创粉丝点击