学习java基础时急需注意的几个知识点

学习java基础时需要注意的几个知识点
        在朋友的辅导下,这几天我开始学习java基础知识,今天简单的写下需要注意到的几个知识点,如果写的有问题,希望前辈们看到多多指教!
1、初始化块:java类里出现的第四种成员(前三个有Field,方法和构造器)
     初始化块和构造器的作用类似,都是对java对象进行初始化操作,一个类中可以有多个初始化块,相同类型的初始化块之间有顺序,先定义的先执行。初始化块的修饰符只能是static,被称为静态初始化块。初始化块里的代码可以包含任何可执行语句,包括定义局部变量,调用其他对象的方法,以及使用分支循环语句等等。
初始化块的格式如下:
【static】{
//初始化块的可执行语句
}
 
2、Object类中的toString方法
       toString()方法返回该对象的字符串表示,当我们使用System.out.Println()方法输出一个对象时,或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的toString()方法返回该对象的字符串表示。

       Objectl类的toString()方法返回“运行时类型@十六进制hashCode值”格式的字符串。所以很多类都重写toString方法,用于表示可以表述该对象信息的字符串。
在类的定义中添加如下代码:
@Override
public String toString()
{
     //可以执行的代码语句
  }
例如:
该类对象就直接调用了toString方法,打印出以上格式的语句

3、定义方法来实现代码的复用
         当一个操作在其他几个操作中都会使用到的时候,就可以把这个操作提取出来,写成一个公用的方法,供其他方法使用,提高了代码的复用性,进一步优化了代码。
比如:查询ID号是否存在,这个操作在增删改查时都会用到,那就可以把这个提取出来写成一个方法。

//定义一个方法,用于查询id是否重复
public static boolean ifExist(int id){
for(Student st:arr){
if(id==st.getId()){
return true;
}
}
return false;
}
在用到这个操作时直接调用ifExist()方法就可以了!

4、”==“和equals()方法:两个都是比较两个对象是否相等
  [color=red]值类型是存储在内存中的堆栈(简称栈),
  引用类型的变量在栈中仅仅是存储引用类型变量的地址,而本身则存储在堆中。

  “==”操作值类型是比较两个变量的值是相等,对于引用型变量表示两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
      Equals()表示的是两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
    == 比较的是两个对象的地址,而equals()比较的是两个对象的内容。

         再说equals()方法是父类Object所定义的方法,用来实现两个对象内容是否相等的逻辑,说equals()方法要从两个方面:
(1)、从Object角度来说,==和equals是一样的,都是比较引用,因为Object类的equals()方法这样定义的,
Pubilc boolean equals(Object obj){rerurn (this==obj)}
方法内部实现就是比较引用地址,用的也是==号,所以对于Object来讲,equals与==是一样的
(2)、对于其他类来说,可以根据需要,在自定义的类中重写(Override)方法,实现内容是否相等的逻辑,因为String类重写了equals方法,所以我们才说String的equals比较的是两个字符串的内容
[/color]