java 常见编程错误

  • 重复定义

  • {
      int x=0;
    {
       int x=0;
    }
    }
    

  • 方法中参数传递,对与对象类型,传递的是对象的引用

  • public static  void Test_str(String str1){
    {
       String s = str1;
       s = new String("str test");
      
    }
    
    public static  void main(String[] args)
    {
       String s = "main str";
       Test_str(s);
        System.out.println(s);
    }


    输出为: main str
  • 比较运算符"==",与String类的方法equals(Object anObject)

  • public void Test(){
       String s1 = new String("junefsh");
       String s2 = new String("junefsh");
       if(s1==s2)
          System.out.println("s1==s2");
       if(s1.equals(s2))
          System.out.println("s1 equals s2");
    }


    输出: s1 equals s2

  • java中是没有sizeof()的

  • 对char、byte、short基本类型变量进行算术运算时,都会获得一个int结果,必须将其显示地类型转换为原来的类型;对足够大的int值执行乘运算,结果可能溢出

  • 将float或是double类型的值转换为int型,小数部分总是舍掉;Math.random()产生的数值范围:[0,1)

  • 缺省构造器的使用
  • class Test{
      public Test(String str){
        System.out.println(str);
      }
    }
    
    Test ts = new Test();

  • 类中,数据成员的初始化先于构造函数,且数据成员初始化顺序与定义顺序有关。

  • java 常见编程错误_第1张图片

  • 一个编译单元(*.java)文件,最多只有一个public 类;如果定义包名字,包名必须置于代码第一行

  • public class Test{
    }
    package com.junefsh.test //错误

    public class Test2{//错误
    }
  • 关键字:
  • final 修饰的成员变量,在定义时未初始化,必须要在构造函数中中初始化

    public class FinalTest{
    	private final int i = 0;
    	private final int k;//blank final
    	
    	public FinalTest(){
    	  k = 2;//如果不在构造中初始化,会报错
    	}
    
    
    }

  • 对类的private 成员变量,其潜在是final
  •    对final修饰的类而言,其所有方法被隐含式final的

  • Object对象的equals()方法,比较的是两个对象的引用是否相等;String对象比较的是两个String中的内容

  • 对集合处理时,潜在的错误
  •  public static void main(String[] args){
        Collection<String> cTmp = new ArrayList<String>();
        Iterator iTmp = cTmp.Iterator();
        cTmp.add("here is wrong!");//此处报错
        
      }

  • 声明局部变量时,只能加final 修饰符号

  • public void test(){
     static int a;//报错
     volatile int b;//报错
     int a;
    }


    后续更新...

    你可能感兴趣的:(java,编程)