Java基础知识总结与回顾(1)---- 基础篇

(1)什么是面向对象?面向对象的三大基本特征和五大基本原则?

面向对象: 是通过一个类来描述对象,用类来建立实例与实例之间的关系,面向对象程序设计的基本构成是类和对象。

面向对象开发方法: 是一种以事物为中心的编程思想,用一种更符合人们认识客观世界的思维方式进行程序设计。

三大基本特征: 封装、继承、多态         

五大基本原则: 1. 单一职责原则(SRP)

                          2. 开放封闭原则(OCP)

                          3、里氏替换原则(LSP)

                          4、赖倒置原则(DIP)

                          5、接口隔离原则(ISP)

(2)封装、继承、多态?

封装:  指属性和方法的定义都封装在类定义中,然后通过对其可见性来控制外部对类成员的可访问性。

        隐藏对象内部的复杂性,只对外公开简单的接口,以便于外界使用,从而提高了系统的扩展性与可维护性。通过使用访问权限修饰符,来实现封装,Java用于限定其他对象对该类内部定义的访问权限有 public, protected, private , default 四个。

继承:  以原有的类为基础来创建一个新的子类,子类继承父类的所有特性,并可以扩充自己的特性,从而构造出更为复杂的类型。        Java采用继承机制来组织、设计软件系统中的类和接口,在java单继承树状结构中,除根父类java.lang.Object外,每个子类只能有一个直接父类,除最终类外的类都可以有多个子类。

         Java采用“extends父类名”的方式来实现单继承,采用“implements<接口列表>”的方式来实现多继承。继承可以大大提高代码的重用性和健壮性,提高编程效率,降低软件维护的工作量。

多态: 多态性是指程序中出现的方法或变量“重名”现象。

   在Java中提供了3种多态机制:  1. 方法的重载(Overload)

                                                      2. 成员方法和成员变量的覆盖(Override)

                                                      3. 对象的多态性

(3)Java如何实现平台无关性?

    平台无关性:  只要平台提供了Java的运行环境,用Java编写的软件就能在上面运行;

         Java经过编译之后生成的.class的字节码文件,这些字节码文件不面向具体的平台,只面向JVM,不同平台上的JVM是不同的,但他们都提供了相同的接口,因此只要不同平台实现了它们对应的JVM,编译后的.class字节码文件就可以在该平台上运行了。

(4)Java的基本数据类型:

 8种基本数据类型:byte, short, int, long, float, double, char, boolean.

                                                                        整型数据的数值范围:

      类型          占用内存大小      数值范围
      byte              1byte     -2^7 ~ 2^7-1
     short              2byte    -2^15 ~ 2^15-1
      int              4byte    -2^31 ~2^31-1
     long              8byte    -2^63 ~2^63-1

                                                                       浮点数内存结构

 类型位数符号位指数位尾数位
float321823
double6411152

(5)String的一点用法:

       字符串拼接的几种方式

      1.plus方式

//当左右两个变量其中有一个是String类型时,用plus可将两个变量转成字符串并拼接。
String a = "";
int b = 3;
String c = a + b;

        2.concat方式

//当两个变量都为String类型且值不为null时,可以用concat方式连接。
String m = "m";
String n = "n";
String p = m.concat(n);

      3.append方式

 

//当需要拼接至少三个量的时候,可以考虑用StringBuffer。
StringBuffer b = new StringBuffer();
b.append("a");
if(...){
    b.append("b");
}
b.append("c");
String d = b.toString();

(6)Java的一些关键字:

static:   static关键字用来区分成员变量、成员方法、内部类、初始化块是属于类的还是属于对象, 有static修饰的成员属于类,否则属于对象。static关键字不能用来修饰方法中的局部变量。

volatile:   易失, volatile关键字用于表示可以被多个线程异步修改的成员变量。

                一旦一个共享变量被volatile修饰了,就具备两层含义:

                1. 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。

                2. 禁止进行指令重排序。

instanceof 关键字用来确定对象所属的类。

transient短暂, 可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。

表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。

final:   有下面三种用法:

               1. final用在变量前面,该变量成为常量,只能赋值一次。

               2. final用在方法前面,该方法成为最终方法,不能被覆盖。

               3. final用在类前面,该类成为最终类,不能被继承。

abstract:  有下面两种用法:

                     1. abstract用作方法修饰符,表示该方法为抽象方法。抽象方法只有方法的定义,没有方法的实现。

                     2. abstract用作类修饰符,则该类为抽象类,抽象类可以不含有抽象方法, 但含有抽象方法的类、继承父类的抽象方法没有完全实现抽象方法、实现接口没有完全实现抽象方法时必须声明为抽象类。

特别注意:  抽象类不能被实例化为对象,只能被其他子类继承; 抽象类中的抽象方法必须在其子类中被实现,否则该子类只能声明为abstract class; 抽象方法不能为static。

(7)Java方法的调用总结:

在Java中,访问其他类中的方法和属性有3种方式:

1. 通过 “类.方法名” “对象.方法名” 的方式访问。

2. 通过继承的方式访问。

3. 通过组合或者聚合的方式, 让另外一个类作为本类的成员。 

 

(1)调用其他包其他类中的静态方法

        1. 用import语句引入要调用方法的类,用 类名.方法名的方式调用。

        2. 直接采用“包路径.类名.方法名”的方式调用。

(2)调用其他包其他类中的非静态方法

        1. 用import语句引入要调用方法的类所在的包。

        2. 生成该类的对象: 类名 对象名 = new 构造方法

        3. 对象名.方法名

 (3)父类中方法的调用

        1. 父类构造方法的调用: super

        2. 父类中被覆盖方法的调用: super.方法名

(4)父类中方法的调用

        1.本类构造方法的调用: this

        2. 非静态方法可以直接调用本类中的其他方法: 方法名

        3. 静态方法可以直接调用本类中的其他静态方法,但在调用非静态方法之前必须先生成当前类的对象,然后通过对象名.方法名 的方式调用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值