JAVA基础
进击的路飞
add oil!
展开
-
java-特性之多态
多态的实现方式:重载(overload): 同一个类里面两个或者是多个方法的方法名相同但是参数不 同(参数类型,参数个数或者两者都不同)的情况,和返回值无关实现的是编译时的多态性(前绑定)1.可以在一个类中也可以在继承关系的类中;2.名相同;3.参数列表不同(个数,顺序,类型) 和方法的返回值类型无关重写(override): 子类重新定义了父类的方法。方法覆盖必须有相同的方 法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问实现的是运行时的多态性(后绑定)重写一般发生在父类和原创 2020-07-31 10:19:49 · 214 阅读 · 0 评论 -
java静态代理和动态代理
代理:代理是设计模式的一种,代理类为委托类提供消息预处理,消息转发,事后消息处理等功能,代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。值得注意的是,代理类和被代理类应该共同实现一个接口,或者是共同继承某个类三个角色:代理类(ProxySubject)委托类(RealSubject)接口(Subject)静态代理:概念:静态代理要求代理类(ProxySubject)和委托类(RealSubject)都实现同一个接口(Subject)。由程序员创建代理类或特定工原创 2020-07-21 15:28:38 · 215 阅读 · 0 评论 -
静态与实例的区别?
1.语法上的区别,静态需要static2.使用:实例变量:输入对象的属性,必须创建了实例对象(如 new)才会被分配空间,才可以使用实例变量,静态变量:不属于某个实例对象,而是属于类,也叫类变量,只要程序加载了类的字节码,不用创建任何实例对象就会被分配空间,就可以被使用3.调用方式:静态:类名.方法名(变量名)实例:初始化new该类之后才可以调用1.存储区域不同:静态变量存储在静态存储区,普通变量存储在堆中;2.静态变量与类相关,普通变量则与实例相关3.内存分配方式不同。4.生命周期不同原创 2020-06-08 19:46:46 · 2825 阅读 · 1 评论 -
static修饰符
最先加载:在java代码运行的时候,首先在jvm中将方法Loader进内存中,在jvm加载类的时候,要对类进行装载,链接,初始化,在初始化的阶段首先加载static修饰的方法和变量。实际原理:使用static修饰的方法和变量,实际上是指定变量存到内存中的“固定位置”-staticstorage。既然有“固定位置”那他们的“大小”似乎可以固定啦,有固定的大小和固定的位置的特征,在堆中或栈中开辟空间就非常方便。静态标识内存的共享,就是每一个实例都制定一个内存地址,使用static拿来,就是告诉jvm他是一原创 2020-06-08 09:32:53 · 196 阅读 · 0 评论 -
java-特性之继承
从已有类得到继承信息创建新的类的过程,提供继承信息的类称之为父类,得到继承信息的类称为子类,继承让软件系统有一定的延续性,同时也是封装程序可变因素的重要手段特性:子类拥有父类非 private 的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父原创 2020-06-05 14:34:29 · 100 阅读 · 0 评论 -
java-特性之封装
概念:隐藏一切可以隐藏的东西,只像外界提供最简单的接口,通常认为封装就是把数据和操作数据的方法绑定起来,对数据的访问只能通过已经定义的接口。面向对象的本质就是将现实生活描述成一系列自治的对象,编写的方法就是对细节的一种封装,编写的类就是对数据和操作数据的方法的一种封装。一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问优点:良好的封装能够减少耦合。类内部的结构可以自由修改。可以对成员变量进行更精确的控制。隐藏信息,实现细节。应用:bean封装…方法对细节的隐藏.原创 2020-06-03 14:23:53 · 98 阅读 · 0 评论