【java学习之路】java基础知识点总结归纳

  1. 标识符必须以【字母】、【$】、【_】这三种开始。
  2. java修饰符分为两大类,一种是访问修饰符(default、public、private),一种是非访问修饰符(final、abstract、synchronized) 。
  • 默认访问修饰符:同一个包内的类可见,用于修饰:类、接口、变量、方法。
  • private:对同一个类可见,用于修饰:方法、变量。 不能修饰类
  • protected:对同一个包和所有子类可见,用于修饰:方法、变量。  不能修饰类。接口及接口的方法、变量都不能使用protected修饰。
  • public: 对所有类可见,用于修饰:类、方法、变量、接口。

    访问权限和继承的规则:(一句话就是子类的访问权限不能低于父类)

  • 父类中声明为 public 的方法在子类中也必须为 public。

  • 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

  • 父类中声明为 private 的方法,不能够被继承。

     static修饰符:静态的意思

       用于修饰:变量。局部变量不能用static修饰。

       用于修饰:方法。该静态方法不能使用类的非静态变量。

       直接用类名来访问静态变量和方法。

    final修饰符:最终的意思

       用于修饰:类。final修饰的类不能被继承。

       用于修饰:方法。修饰的方法不能被继承类重新定义。

       用于修饰:变量。 修饰变量一旦赋值后不可以修改     

   abstract修饰符:抽象的意思

      用于修饰:类。抽象类不能用来实例化对象,声明抽象类的目的是为了对该类进行扩充。一个类不能同时被abstract和final修饰。抽象类可以包含抽象方法和非抽象方法。

      用于修饰:方法。抽象方法是一种没有具体实现的方法,该方法的具体实现由子类提供。抽象方法不能被声明成final和static。包含抽象方法的类必须也声明成抽象类。任何继承抽象类的子类必须实现父类中所有抽象方法,除非该子类也是抽象类。抽象类可以不包含抽象方法,但是抽象方法必定在抽象类中。

 


 

  1. java变量分三种:局部变量、类变量(静态变量)、成员变量(非静态变量)。 
  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。访问修饰符不能用于局部变量,局部变量在栈上分配存储空间(引用类型引用地址在栈,存储在堆)。局部变量没有默认值所以声明后必须初始化才能使用。
  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化(值确定了),在对象被销毁的时候销毁。成员变量可以被类中方法、构造方法和特定类的语句块访问。成员变量可以声明在使用前或者使用后。成员变量的值应该至少被使用一次。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。所有该类的对象公用一个类变量,在第一次被访问时创建,在程序结束时销毁。存储在堆中的静态存储区中。直接使用className.variableName的方式来访问。
  • 变量作用域详解

 

  1. 枚举可以单独声明,也可以在类中声明(使用的时候需要创建该类的对象),方法、变量、构造函数都可以作为枚举中定义的值。
  2. java类只能单继承、接口可以多继承。 接口是对象之间相互通信的协议。
  3. java源程序先编译成字节码程序,字节码程序再通过解析器解释执行。
  4. 每一个类都至少有一个构造方法,因为java编译器都会提供应该默认的无参数构造函数。当用户自己定义构造函数的时候,这个默认构造函数将消失。
  5. 一个源文件中只能有一个public类,文件名字必须和public类名相同。
  6. 包是对类和接口进行分类,包主要有以下3点作用:
  • 一般是把功能相似或相关的类和接口组织在一个包中,方便类的查找和使用。
  • 包采用树形目录的存储方式,同一个包中类名字不同,不用的包类名可以相同。因此包可以避免类名字冲突。
  • 包限定了访问权限。

     

  1. 一旦创建变量,内存管理系统就会根据变量的类型来分配存储空间,分配的空间只能用来存储该类型的数据。
  2. java 有两大数据类型,一种是基本数据类型,一种是引用数据类型。他们都有对应的默认值。
  3. 不能对boolean类型进行类型转换,大转小必须强制类型转换,转换过程会导致精度损失或者溢出。
  4. 小转大的时候可以自动类型转换,整数默认是int类型,浮点型要在数字后面加f或F来加以确定。
  5. 接口中的方法默认是public abstract 修饰,变量默认是public static final ,因为接口是多继承,可防止同名变量混淆。接口不能修改,但是可以对其进行扩展(Implements),这体现了开闭原则。

  1. 逻辑运算符存在短路效应。
  2. instanceof运算符,其作用是检查该对象是否是一个特定类型(或接口)。返回值是boolean。
string name="zuoyueer";
boolean resule = name instanceof String;//因为name是String类型,所以返回true。
//自定义类的类型也是可以来判断的
  1. 将各种类型的数组直接输出,不用遍历,直接使用Arrays.toString(Object [] obj) 就能输出.
  2. String类中的split(正则表达式)方法可以把字符串按照自定义规则分割成字符串数组,sunString(int start)方法把字符串从指定字符索引的位置开始切割,返回的是指定索引到最后的字符串.
  3.  

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(笔记)