java学习之路3

这篇是9.18那天的草稿,突然发现还没有发出去,所以抽出几十分钟的时间整理好再发出去吧,这次主要是围绕java里的7个重要关键字的整理,它们分别是transient、instanceof、final、static、this、super、void。接下来我将一一作介绍:

transient

在java里,transient常常用来对某些特定属性进行非序列化(就是不需要对它进行序列化),那么这里就引入了序列化的概念,所以我就再回顾一下序列化的概念:

序列化

参考博客:https://blog.csdn.net/u013256816/article/details/50474678

什么是序列化

serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。

什么时候需要序列化

  • 当你想把的内存中的对象保存到一个文件中或者数据库中时候(数据持久化);
  • 利用序列化实现远程通信,即在网络上传送对象的字节序列;

如何实现序列化

  • 将需要序列化的类实现Serializable接口就可以了,Serializable接口中没有任何方法,可以理解为一个标记,即表明这个类可以序列化.

总之,java 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。

instanceof

在java中,instanceof常常被用来测试它左边的对象是否是它右边的类的实例,类以于一个二元运算符,返回的是boolean的数据类型,用法是

boolean result = obj instanceof Class

下面就对常见的几种可能情况进行介绍:

  • obj必须是引用类型,基本类型会报错
    int i = 0;
    System.out.println(i instanceof Integer);//编译不通过
    System.out.println(i instanceof Object);//编译不通过
  • obj为null会永远判断为false
    System.out.println(null instanceof Object);//false
  • obj为class类的实例对象(最普遍的用法)
    Integer integer = new Integer(1);
    System.out.println(integer instanceof Integer);//true
  • obj为Class接口的实现类
    ArrayList arrayList = new ArrayList();
    System.out.println(arrayList instanceof List);//true
  • obj为class类的直接或间接子类
    Person p1 = new Person();//父类实例
    Person p2 = new Man();//父类引用指向子类实例
    Man m1 = new Man();//子类实例
    System.out.println(p1 instanceof Man);//false
    System.out.println(p2 instanceof Man);//true
    System.out.println(m1 instanceof Man);//true

PS:这里会涉及到类型转换,类型转换抛出的异常会影响返回的结果,具体原因我就不展出了。

final

在java里,final用来表示对象是最终形态的,是不可改变的,常用来修饰类、方法和变量:

  • final 用在变量的前面表示变量的值不可以改变,此时该变量可以被称为常量。
  • final 用在方法的前面表示方法不可以被重写(子类中如果创建了一个与父类中相同名称、相同返回值类型、相同参数列表的方法,只是方法体中的实现不同,以实现不同于父类的功能,这种方式被称为方法重写,又称为方法覆盖。)。
  • final 用在类的前面表示该类不能有子类,即该类不可以被继承。

static

直接给连接吧,static算是一个小point了:https://www.jb51.net/article/192456.htm

  • static 是Java中表静态的关键字,本质上是一个修饰符
  • 它可以用来修饰成员变量、成员方法、代码块
  • 被static修饰的成员变量或成员方法,将不再依赖于对象的创建而去使用,而是依赖类的存在,成为类成员或类方法,是共享的

this

在java中,this主要有两个用法:

  • this.方法名称:用来访问本类的成员方法。
  • this();访问本类的构造方法;如果()中带有参数,那么就是调用指定的有参构造函数

注意事项:1.this()不能使用在普通方法中,只能写在构造方法中。
2.必须是构造方法里的第一句话,否则会报错。

super

在java里,super主要用来访问父类的构造方法、普通方法和属性,主要功能有:

  • 在子类的构造方法里显式的调用父类的构造方法
  • 访问父类的成员变量和方法。

void

void的本质是java中一个不可实例化的占位符类,主要用来对函数参数以及函数返回值进行限定。


总结:今天对java里面比较基础的7个关键字进行了总结,我们知道java里面的关键字还有很多很多,它们的用处也是涵盖到了java编程的每个地方,所以在这条java之路上,只会任重而道远。

全部评论
在评论区留下一个有关数据库锁机制的链接,这也是一个要回顾的东西:https://www.cnblogs.com/wqtzhaoqiang/p/7704999.html
点赞 回复 分享
发布于 2020-09-21 16:44
加油
点赞 回复 分享
发布于 2020-10-04 21:21

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务