java学习总结

来源:互联网 发布:罗技鼠标知乎 编辑:程序博客网 时间:2024/05/18 20:51

java的跨平台性是依靠java虚拟机的不跨平台性来实现的

java的跨平台性是依靠java的中间的class字节码文件跨平台的

java的内存空间的管理(回收)是自动的,不用程序去管理

java和javac放在bin目录下面


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1.关键字class定义一个类

2.java中所有语句都必须放在一个类中

3.类中的成员都包含在一对{....}中

4.定义类的语法
  class 类名 {

  }

5.程序必须是从main函数开始执行的  main函数格式是固定的

6.关键字void声明无返回值

7.java语句以 “;" 作为一句的结束标记

8.java语言严格区分大小写

9.java以//表示单行注释   以/**/作为多行注释   以/** */作为文档注释

10.java中类名以驼峰法表示,首字母大写

11.java中可以包含多个类,但只有一个pubic声明的类,并且文件名要与public声明的类名相同

12. SDK:软件开发工具包
    JDK:java开发工具包
    JRE:java运行时环境
    IDE:集成开发环境

13.java的字符类型占用2个字节

14.局部变量的作用范围是从声明位置开始到此局部变量块结束为止
   成员变量的作用范围是整个类

15.java中的八种基本类型:byte/short/int/long/boolean/float/double/char

16.自动类型转换
 16.1 类型转换是发生自动类型转换的必要条件
 16.2 目标类型大于源类型(自动提升)

17.switch是可以返回整形的表达形式

18.java中所有对象都存储在内存堆中,java中字符串和数组是对象,所有也存储在堆中

19.在32位的系统中,整形的引用类型变量在内存中占有4个字节,而64位是8个字节

20.从控制台接收输入语句:
   Scanner in = new Scanner(System.in);

21.当java中的对象不在被任何引用时,该对象可以被回收,回收时间不确定

========================================================================================================================

   OOP面向对象编程

1.成员变量在内存堆中,局部变量在内存栈中

2.当在java类中没有定义构造方法时,java编译器会自动生成一个无参的构造方法,但是当在java类中自定义了构造方法,java编译器
 将不会自动生成无参的构造方法。(注:当java类中自定义了有参的构造方法,请注意最好在自定义一个无参的构造方法)


3.在java类中,一般会java成员变量定义为private,而成员方法定义为public(不是绝对的)。

4.因为main方法是由java虚拟机来调用的,所有会将main方法声明为public

5.构造方法与类同名,但是它不是类的成员

6.一个源文件中最好只定义一个类

7.类和对象的关系:类是具有相同成员(属性和方法)的一类对象的集合,而对象是类中的一个具体实例

8.封装一般是java成员变量定义为private的访问权限,并提供public的get/set方法

9.一个类中如果有存在两个方法名和参数列表(参数类型,个数,顺序)相同,就会认为是同一个方法,会报错,否则就会认为不是
   同一个方法。并如果方法名相同,参数列表不同,这时就构成了“方法重载”。

10.java 方法体中的this关键字指向的是当前调用该方法的对象。

11.当局部变量和成员变量的名字相同时,局部变量就会覆盖成员变量,这时就要用this关键字来区分,this指向的是成员变量。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1.java类中的成员分:成员变量 和 成员方法

      成员变量 分:静态成员变量 和 实例成员变量
      成员方法 分:静态成员方法 和 实例成员方法

  所有实例成员都属于对象调用  所有静态成员最好用类本身调用

A.实例方法可操作类中所成员
B.静态方法只能操作静态成员
C.对象可以访问类中所有成员,但不建议直接访问类中的静态成员,静态成员可以通过类名直接访问,反过来说类名不能访问实例成员,只能访问静态成员
D.实例方法内部隐含调用实例方法的对象this,静态方法内部隐含存在调用该静态方法的类


类中的静态代码块,在类被加载时执行一次,只执行一次

静态代码块一个类中可以有多个,执行顺序从上而下执行

注:在java虚拟机中,类中的静态代码块被加载到client()方法中执行;
注:构造方法不能被定义为静态的

面向对象的程序设计的三大特征

1.封装:实现了代码安全性
2.继承:实现了代码的重用
3.多态:提高了代码的扩展

java中父类中的构造方法不能被子类继承(构造方法不属于类成员)

注:当实例化子类对象时,必须先执行父类的构造方法,然后在实例化子类。如果父类中构造方法执行失败,那么子类对象将无法实例化成功

当父类中的成员名与子类中的成员名相同时,那么 super.成员名 来调用父类的成员,但默认调用子类自己的成员

在构造方法中,this(),super()都放在第一层,所有构造方法中不能同时有this() 和 super() 

在父类中被final修饰的方法,子类中不能被重写。子类中重写方法的访问权限必须大于或等于父类中的访问权限


方法重载与方法重写的区别

方法重载是在同一个类中,方法名相同,但参数列表不同的两个方法。而方法重写是在继承关系中,子类重写父类中方法名和参数列表相同的方法啊(重写必要条件是要有继承)

final
1. final修饰的类不可被继承
2. final修饰的方法不可被重写
3. final修饰的变量为常量

多态的3个必要条件
1.要有继承
2.要有重写
3.父类引用指向子类对象

上转型(自动):父类引用指向子类对象(动态绑定)
向下转型(需强制转型)

注:abstract与final  static不能同时使用
注:1,子类重写父类方法要抛出与父类一致的异常,或者不抛出异常
 
    2,子类重写父类方法所抛出的异常不能超过父类的范畴