【Java中this关键字的几种用法】教程文章相关的互联网学习教程文章

Java super关键字【代码】

注意子类调用父类的方法或变量,使用super关键字。 使用super()是必须放在构造函数的第一行;模型调用父类构造方法:super(参数,参数); 调用父类成员方法:super.成员方法名(参数,参数); 调用父类成员变量赋值:super.成员变量名 = 参数;实例代码 实现类 package project1;abstract class Person {String name;int age;public Person(){System.out.println("我是空参构造方法");}public Person(String n,int a){name = n;age = a;}...

java关键字——super、final

java关键字,也叫保留字(50个),是java有特殊意义的标识符,不能用作参数名、变量名、方法名、类名、包名等。 一、super关键字 1. 操作隐藏成员当父类的属性或方法被隐藏时,可以通过super.xxx调用。 2. 调用父类的构造方法因为子类不会继承父类的构造方法,但在子类的构造方法中,会有位于第一位置的默认super()语句调用父类的构造方法,除非显示定义super语句,因此,父类最好保留一个无参构造器。 二、final关键字 1. 修饰变量...

Java并发篇:volatile关键字吐血整理【代码】【图】

1.1 主内存与工作内存 在上一篇文章中我们已经知道线程是 通过主内存 去进行线程间的 隐式通信 的,而线程对共享变量的写操作在 工作内存 中完成,由JMM控制 共享变量由工作内存写回到主内存的时机 。 JMM提供了一个保证内存可见性的原则: happens-before原则 。这个原则可以保证线程对共享变量的写操作对其它线程可见。如果在多线程环境下需要满足happens-before原则,就必须对共享变量添加某种特定的读写规则,否则会导致多线程...

今天会是有offer的一天么-java中volatile关键字的使用【代码】【图】

写在前面 volatile关键字在面试中也算是高频问题了,基本上涉及到并发都会被问到这个问题。今天来简单的总结一下。先说一下volatile关键字的作用 一. 禁止指令重排 何为禁止指令重排?用一个代码简单解释一下 public class Singleton { //这里用volatile修饰的目的就是防止指令重排private static volatile Singleton singleton;private Singleton(){}public static Singleton getSingleton(){if(singleton==null){synchronized (S...

Java 高并发与多线程;:synchronized 关键字的实现原理【代码】

synchronzied 关键字应该是 Java 并发编程中最重要的内容了,甚至没有之一。在 JDK6 以前,synchronized 关键字还代表着一把重量级锁,因此在 JUC 包里还推出了 Lock 类来替代 synchronized,不过 JDK6 以后的 synchronized 经过优化,引入了偏向锁、轻量级锁和重量级锁的概念,从效率层面来说已经和 Lock 类不相上下了(当然 Lock 类有公平锁非公平锁和定时功能等)。本文将从内存对象、字节码和 JVM 层面去剖析 synchronized 关键...

java:this、super关键字【代码】【图】

1.this java 中this关键字表示的是某一个类当前的对象,主要用于一下两种情况: 1、形参与成员变量重名时,使用this来区分 2、当类中有多个构造方法时,一个构造方法调用另外一个构造方法(此时this只能放在这个构造方法的第一句) 2.super super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。 1.super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。 2.子类中...

Java——volatile关键字详解【代码】【图】

volatile介绍 volatile概述volatile是比synchronized关键字更轻量级的同步机制,访问volatile变量时不会执行加锁操作,因此不会使执行线程阻塞。 volatile保证可见性和禁止指令重排序,底层是通过“内存屏障”来实现,但不保证原子性。 写入volatile变量相当于退出同步代码块,读取volatile变量相当于进入同步代码块。volatile的使用场景对变量的写入操作不依赖变量的当前值,或能确保只有单个线程更新变量的值; 该变量不会与其他...

Java ------ this 关键字【代码】【图】

一、什么是 this 关键字 this 在 java 中是一个关键字, 翻译为 这个; this 在 java 中可以是引用,可以是变量,当为变量时,变量中保存的内存地址指向自身,this 存储在 JVM 堆内存 java 对象内部 二、this 关键字的作用是什么 1、this 关键字的第一种作用是当构造函数进行参数传递时,局部变量与成员变量重名时,为赋值时能将局部变量的值传给实例变量,在实例变量上加 this [ 语法格式:this. ]...

Java学习第十章 之 this、super关键字、构造方法【代码】

1 /*2 3 构造方法:方法名和类名必须相同,可以无参数,可以有参数,没有返回值4 5 构造方法和一般方法的区别:6 7 构造方法是在创建对象时,被调用,只执行一次8 9 一般方法是对象创建完成之后,被对象调用,可以被多次调用10 11 */12 13 14 15 //定义一个Person类16 17 public class Person{18 19 private String name;20 21 private int age;22 23 24 25 //无参构造2...

【转】Java this关键字详解(3种用法)【代码】

this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。下面我们根据示例分别讲解 this 关键字的作用。 this.属性名大部分时候,普通方法访问其他方法、成员变量时无须使用 this 前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,则必须使用 this 前缀。 例 1假设有一个教师类 Teacher 的定义如...

transient-java 关键字

一、概要介绍 Java中的transient关键字,transient是短暂的意思。对于transient 修饰的成员变量,在类实例的序列化处理过程中会被忽略。 因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里持久化。 (1)序列化 Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输...

Java学习day17-关键字static【代码】

一、关键字static当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存中只有一份,这时候就需要静态变量。package day14;public class Chinese {static String country;//类变量不用实例化,直接类名.属性名就可以...

Java面向对象--关键字(super、static、final)

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。本篇博客介绍super、static和final关键字的具体用法。目录: ? super关键字 ? static关键字? final关键字? super关键字 super关键字的使用 在Java类中使用super来调用父类中的指定操作: ?...

Java 中用于定义访问权限修饰符的关键字【代码】

用于定义访问权限修饰符的关键字 Java 中,可以使用访问控制符来保护对类、变量、方法和的构造方法的访问。修饰符 当前类 同一包内 子孙类(同一包) 子孙类(不同包) 其他包public Y Y Y Y Yprotected Y Y Y Y/N Ndefault Y Y Y N Nprivate Y N N N Npublic ? 对所有类可见。使用对象:类、接口、变量、方法。 注意:如果几个相互访问的 public 类分布在不同的包中,则需要导入相应 public 类所在的包。由于类的继承性,类所有的...

Java基础—标识符和关键字【图】

1.标识符关键字Java所有的组成都需要名字。类名、变量名以及方法名都被称为标识符2.标识符注意点所有的标识符都以字母(A-Z或者a-z),美元符($)、或下划线(_)开始 首字符之后可以是字母、数字、美元符、下划线等符号任意组合。 不能使用关键字作为变量名或方法名 标识符是大小写敏感的 合法标识符举例:age、$salary、_value、__1_value 非法标识符:123sss、-salary、#abc s、-salary、#abc 可以用中文命名,但不建议使用,拼...