更多课程 选择中心


Web培训

400-111-8989

Web培训

JAVA基础学习笔记分享

  • 发布:李培勇
  • 来源:成都ATA中心
  • 时间:2015-07-28 16:07

1.成员变量与局部变量的区别: ①定义的位置不同:

成员变量定义在类中;

局部变量定义在方法中;

②在内存中的位置不同:

成员变量在堆中

局部变量在栈中

③生命周期不同:

成员变量随着对象的出现而出现,随着对象的消失而消失

局部变量随着方法的调用而出现,随着方法的弹栈而消失

④初始化不同:

成员变量随着对象的出现而分配空间,有默认值

局部变量随着被使用而分配空间,若只声明不开辟内存空间,没有默认值

2.传说中的匿名对象假设有个Car类,有num,color 2个成员变量,和一个run()方法可以打印num的值,这里有2中写法:

①:Car car = new Car();

car.color="red";

car.num="5";

car.run();

②new Car().color="red";

第二种写法就是匿名对象

局限性:第②句执行完后该对象就变成了垃圾,因为并没有引用指向该对象,垃圾回收器将回收该对象所占内存。

使用匿名对象的场景:当对对象的方法进行调用,并且只需要调用一次时,可以使用之

3.继承的实质:继承的实质是拷贝一份父类所有的成员变量和方法到自己里面,其中包括父类的私有成员变量和方法。然后便与原本的父类没有了任何关系,子类的super()方法,构造的实际也只是拷贝到自己内部的父类的代码构造出的对象。如图:

当在main函数中执行:

Student s= new Student();

s.printNum();

Person p =new Person();

p.printNum();

会发现p.printNum()的结果仍然是10;子类中的super.num=20并不能改变原本父类的num属性,改变的只是拷贝到自己内部的父类代码构造出来的对象的num属性.

而且,若父类Person有一个私有的成员变量,子类继承时也会一起拷贝过去,只是受访问权限控制,子类不能直接访问,但若父类提供一个公有的get方法,就可以通过该方法获取该私有属性,同样获得的也是拷贝的代码构造的对象所拥有的该属性。总之,无论如何,子类与它的继承的那个父类已经没有了联系,它不能改变原本那个父类的状态,它对父类的操作实际上都只是在操作它拷贝的那个副本而已。

当子类与父类有重名的成员或者方法时,并且访问权限不是private时,子类继承时会隐藏它们,若想调用之,可以用super关键字

4.构造代码块和局部代码块构造代码块:存放各个构造函数中的相同函数,每次构造对象,构造代码块中的代码都会被执行,在类中用{}包括的代码就是构造代码块

局部代码块:可以控制局部变量的生命周期,用于优化内存空间,在main中用{}包括的代码就是构造代码块

5.基本数据类型转换为包装类及与String之间的转化JAVA中有8中基本数据类型,因为是基本数据类型,不是引用类型,所以不能像String类型一样调用很多JAVA提供的方法,但若想使用,可以使用包装类包装这8中基本数据类型,然后可以使用各自对应的方法。 见jdk api java.lang包下

我们知道,要将int类型转化为String类型,可以使用如:String str = 10+"";这样的方式。除此之外,我们可以使用String提供的许多重载的valueOf()方法,由于JAVA有自动装/拆箱功能,这个方法中可以传入基本数据类型或者其包装类,如:

String str1 = String.valueOf(10);//直接传基本数据类型

Integer num = 10;

String str2 = String.valueOf(num);//传入包装类

附图:

file:///C:/Users/Administrator/Desktop/MyPicture/%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E8%BD%AC%E5%8C%96.PNG

6.抽象类继承抽象类的子类可以是抽象类,它可以不实现或者部分实现父类的抽象方法,继续将抽象方法声明为抽象方法传递下去,但是该子类也必须声明为抽象类了,也不可以创建对象,所以说有abstract的类必定是抽象类是正确的

7.类间关系类之间有4种关系:继承(泛化),关联,聚合,组合。

继承: 是指子类继承父类,以扩展自身功能,实现代码重用

关联: 是一种较弱的类间关系,是一种模型元素之间的语义联系,比如一个类作为另一个类方法的参数。

聚合: 是指一种整体与部分的关系,先分析出整体类,再去找组成类,它们的关系如一台计算机和鼠标,拿掉计算机,鼠标依然存在,还可以插在其他电脑计算机上

组合: 也是指一种整体与部分的关系,但这是一种皮之不存,毛将焉附的关系,比如人和心脏。

8.继承的缺点和多用聚合,少用继承原则继承有两种目的,一种是衍生类继承基类的接口并重新实现(override),这样可以用操作基类的代码操作衍生类,也就是常说的IS-A的概念。另一种是衍生类的实现要用到基类的实现,继承是为了利用基类的代码而不是为了体现IS-A,这时用继承不如用组合更好。

继承的缺点:第一、子类对父类的继承是全部的公有和受保护的继承,这使得子类可能继承了对子类无用甚至有害的父类的方法。比如equals()方法换句话说,子类只希望继承父类的一部分方法,怎么办?第二、实际的对象千变万化,如果每一类的对象都有他们自己的类,尽管这些类都继承了他们的父类,但有些时候还是会造成类的无限膨胀。

第三、 继承的子类,实际上需要编译期确定下来,这满足不了需要在运行内才能确定对象的情况。而组合却可以比继承灵活得多,可以在运行期才决定某个对象。

9.static静态的优势在于可以直接由类名引用,弊端在于访问有局限性

静态方法中不能出现super,this等

原理:

1.静态是随着类的加载就加载,随着类的消失而消失。

2.静态优先于对象存在,被对象共享,即静态可以被类调用,也可以被对象调用

3.因为静态优先存在于内存中,无法访问后来对象中的数据,所以静态无法访问非静态,内部无法书写this,因为此时对象可能不存在

4.静态代码块:

用static{}包括的代码就是静态代码块,执行顺序是在静态变量显式初始化之后,作用是加载资源,初始化类

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:初学者怎么学习JAVA入门知识
下一篇:Javascript算术运算函数

初学者怎么学习JAVA入门知识

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

贵州省

云南省

广西省

海南省