java基础总结

JAVA中程序初始化的顺序?
静态对象(变量)优于非静态对象(变量)
父类优于子类进行初始化
按照成员变量的定义顺序进行初始化
java程序可以由很多代码块来完成,他们的执行顺序是:父类静态变量->父类静态代码块->子类
静态常量->子类静态代码块->父类非静态变量->父类非静态代码块->父类构造函数->子类非静态变量->子类非静态代码块->子类构造函数
一个java文件中是否可以定义多个类
一个java文件中可以定义多个类,但是最多只能有一个类被public修饰,并且这个类的类名与文件名必须相同,若这个文件中没有public的类,则文件名顺便是一个类的名字即可。

什么是构造函数
构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量。特点:1》构造函数必须与类的名字相同;2》每个类可以有多个构造函数;3》构造函数总数伴随着new操作一起调用,且不能由程序的编写者直接调用,必须由系统调用;4》不能被继承,因此不能被覆盖,但是构造函数能过被重载。
注:普通方法是可以与构造函数有相同的方法名
为什么java中有些接口没有任何方法
为克服单继承的缺点,java中引入接口。接口是抽象方法定义的集合(接口中也可以定义一些常量值),是一种特殊的抽象类(注:成员作用域的修饰符都是public,常量值默认使用public static final 修饰)
没有任何方法的接口被叫作标识接口,标识接口对实现它的类没有任何语义上的要求,它仅充当一个标识的作用,用来表明实现它的类属于一个特定的类型(例如:Cloneable和Serializable)
浅复制:被复制对象的所有变量都含有与原来对象相同的值,而所有对其他对象的引用仍然指向原来的对象。
深复制:被复制对象的所有变量都含有与原来对象相同的值,除去应用对象的变量。深复制是把复制对象的所引用的对象都复制一遍。
package的作用
提供多层命名空间,解决命名冲突的问题
对类按功能进行分类,是项目的组织更加清晰
在java中没有指针的概念,可以利用接口与类来实现同样的效果。具体:定义一个接口-》接口中申明要调用的方法-》实现这个接口-》实现类的一个对象作为参数传递给调用程序-》调用程序通过参数来调用指定函数
面向对象和面向过程的区别:

面向对象的特征;
抽象:过程抽象、数据抽象
继承
封装
多态
面向对象的开发方式优点:
较高的开发效率(继承或组合实现代码的重用)
保证软件的鲁棒性(重用性)
保证了软件的高可维护性(可读性)

组合和继承的区别
继承和组合是面向对象两种代码复用的方式;组合是指在新类里面创建原有类的对象,重复利用已有类的功能。组合和继承都允许在新的类中设置字对象,只是组合是显示的,而继承是隐式的
对应关系:组合中的整体类和继承中的子类对应,组合中的局部类和继承中的父类对应
java中提供哪两种用于多态的机制:
编译时多态和运行时多态,编译时多态是通过方法的重载实现的,运行时多态是通过方法的覆盖实现的
抽象类与接口的异同:
相同点:1、都不能被实例化
2、接口的实现类或抽象类都只有实现了接口或抽象类中的方法后才能被实例化

不同点:1、接口只有定义,其方法不能在接口中实现,只有实现接口的类才能是实现接口中定义 的方法,而抽象类是可以有定义与实现的,即其方法可以在抽象类中被实现
2、接口需要实现,但抽象类只能被继承
3、接口强调特定功能的实现(设计理念“has-a”的关系),抽象类强调所属关系(设计 理念“is-a”的关系)
4、接口被应用于实现比较常用的功能,便于日后维护或者添加删除方法,而抽象类更倾 向于充当公共类的角色,不适合于日后重新对立面的代码进行修改
接口是一种特殊形式的抽象类,使用接口完全有可能实现与抽象类相同的操作
volatile
strictfp作用:
指的是精确浮点,它用来确保浮点数的运算的准确性

不可变类
指创建了这个类的实例后,就不允许修改它的值了,即一个对象一旦被创建,在其生命周期中,她的成员变量就不能被修改。
类中所有成员变量被private修饰
类中没有写或修改成员变量的方法
确保类中所有方法不会被子类覆盖,可以通过把类定义为final或者把类中的方法定义为final来达到这个目的
如果必要,可以覆盖Object类的equals方法和hashCode方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值