Java相关

一、继承

1、子类拥有父类非 private 的属性、方法。

2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

3、子类可以用自己的方式实现父类的方法。

4、Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

5、提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

二、重写与重载

1、方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。

2、方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。

3、方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。

三、静态方法和实例方法

静态方法会在程序运行的时候直接装载进入方法区。而实例方法会在new的时候以对象的方法装载进入堆中。
最大的区别在于内存的区别,由于main函数为static静态方法,会直接在运行的时候装载进入内存区,实例方法必须new,在堆中创建内存区域。再进行引用。

四、守护线程和非守护线程

Java虚拟机有两种线程,守护线程和非守护线程。

垃圾收集任务的线程,属于守护线程。Java可以将创建的任何线程定义为守护线程

main为非守护线程,当虚拟机中的所有非守护线程终止的时候,虚拟机实例将会自动退出。

五、运行数据区

分为本地方法区,堆,栈,寄存器,本地方法栈。

方法区

被称为静态区,和堆一样,会被所有线程共享。方法区会包含静态的class和static变量。在java虚拟机启动的时候会被装载。

储存对象,即new出的实例,会在堆中储存。会被所有线程共享,不存放基本类型和对象引用。

对象中会有一个指向方法区的指针,用来把堆中new出的对象和方法区的类和静态变量连接起来。

堆有两个部分,一个句柄池,一个对象池。

句柄池有两部分,一个指向对象变量的指针。还有一部分是指向方法区中的指针

对象锁

虚拟机中每个对象都有一个对象锁,用于协调多个线程访问同一个对象时的同步。

数组

数组即对象,对象即数组。数组是储存在堆中的。在调用方法的时候传入数组即传入了对象,这个时候(由于java中只有一个堆,用来储存对象)在方法中对数组的操作,即操作了堆中对象的操作。

每次启动一个新线程的时候,Java虚拟机会为其分配一个栈。

Java虚拟机只执行出栈和压栈的操作。

某个线程执行的方法称为该线程的当前方法,当前方法使用的栈帧属于当前帧。当前方法属于的类称为当前类,当前类的常量池称为当前常量池。
每个线程调用一个Java的方法的时候,会在该线程的Java栈中压入一个新栈,这个新栈称为当前帧,这个帧用来储存一些非静态变量的内容。当方法调用完成以后,会弹出帧,销毁内容。

方法调用传入数组和变量的的区别

数组,是一个对象,指向堆中的一块储存地址,变量,属于当前方法帧中的方法栈,调用的时候会直接压栈,调用完成以后会执行出栈操作。所以传入变量不会保存,传入数组会保存更改。

Java栈上的数据所有数据是此线程私有的。不能被其他线程共享。

堆会被共享,方法区会被共享。

六、单例模式

public class Singleton {
	private Singleton(){}
	private static Singleton singleton = new Singleton();
	public static Singleton getInstance(){
		return singleton;
	}

}

  

转载于:https://www.cnblogs.com/kingshine007/p/11588376.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值