2019/4/5

今日计划(已经完成的):

阅读了关于semantic segmentation的某一篇综述文献
《疯狂的java讲义》——169~183
  • 和equals之间的区别和联系
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述对于一般的equals()方法,使用的结果和
    是一样的,只是在String中重写了这个方法。
    equals()是来自Object的方法,因此我们可以自己重写这个方法,极端情况下可以使得dog对象和cat对象相等。

  • 类成员
    在这里插入图片描述在这里插入图片描述类变量的生存范围几乎等同于类的生存范围。
    2、通过对象访问类变量实质上是通过类在访问类变量。
    在这里插入图片描述3、
    在这里插入图片描述

  • 单例类
    1、如果一个类只能创建一个实例,那么他就是单例类。
    在这里插入图片描述在这里插入图片描述

  • final修饰符
    1、
    在这里插入图片描述

  • final成员变量
    在这里插入图片描述在这里插入图片描述在这里插入图片描述!!!!好好看看176面的例子,记住不能在普通方法中给final变量赋值。
    而且,系统不会对final变量进行隐式赋值,只会对普通变量进行隐式初始化。
    所以说,没有初始化之前不能访问,会报错。

-final局部变量
系统不会对局部变量进行初始化,必须由程序员进行初始化。
1、
在这里插入图片描述在这里插入图片描述

  • final修饰基本类型变量和引用类型变量的区别
    1、
    在这里插入图片描述看一个小例子:
    在这里插入图片描述在这里插入图片描述
    @@@@@@我想到了下面这种情况,试一试这种情况下会有什么变化:
public class Base2{
	public  static void main(String[] args) {
		final int a=5;
		int b=a;
		a=b;
	}
}

经过我的尝试,发现这种情况居然会报错,也就是说即使是同一个变量或者是引用也不行,使用String也不可以。

-6.4.4、可执行宏替换的final的变量
1、
在这里插入图片描述
2、
在这里插入图片描述
注意看一下179上面的那个例子
两个字符串相加,在编译的时候就会生成一个字符串,在常量池中。

179面上面的例子还说明了,需要调用类方法的也不会在编译的时候确定数值,也就不是宏变量。

如下面的例子:
在这里插入图片描述
3、
在这里插入图片描述
@@@按照我的理解需要这样进行验证,但是验证的结果表示没有问题啊~~~

public class Base2{
	final String s1;
	final String s2="cheng";
	public Base2(final String s) {
		s1=s;
	}
	public  static void main(String[] args) {
		String s="cheng";
		Base2 b=new Base2(s);
		System.out.println(b.s1==b.s2);

	}
	
}

//答案是True,下面的答案依然是True
public class Base2{
	final String s1;
	final String s2="cheng";
	public Base2() {
		s1="cheng";
	}
	public  static void main(String[] args) {
		String s="cheng";
		Base2 b=new Base2();
		System.out.println(b.s1==b.s2);

	}
	
}

  • final方法
    1、final修饰的方法不能被重写,但是能够被重载。180面上面
    private修饰的函数可以被重写,因此private final修饰的函数可以被重写。

  • 6.4.6、final类
    1、final修饰的类是不会有子类的。

  • 6.4.7、不可变类
    1、
    在这里插入图片描述在这里插入图片描述

@@@@@hashcode()是什么意思~~~~~~是干啥的,最后这一部分没有看明白啊

2、
在这里插入图片描述
仔细看一下183面上面的例题。

今天先到此结束~~~~

以上如有错误,欢迎批评指正,书籍《疯狂java讲义》

猜你喜欢

转载自blog.csdn.net/the_little_fairy___/article/details/89041582