JavaSE:整体总结

JavaSE:整体总结

目录

JavaSE:整体总结

数据类型与变量

数据类型

 变量

运算符

算术运算符

关系运算符

逻辑运算符

位运算符

逻辑控制

顺序结构

分支结构

循环结构

方法的使用

方法的定义

方法的重载

递归

数组

数组的定义

数组的使用

数组是引用类型

二维数组

类和对象

类定义和使用

类的实例化

this引用

封装

访问限定符

static成员

内部类

继承和多态

继承

继承的语法

super关键字

super和this

多态

多态的语法

多态实现条件

重写

重写和重载的区别

抽象类和接口 

抽象类

抽象类语法

抽象类特性

接口

接口的使用

String类

字符串构造

对象的比较

异常

异常的体系结构

异常的分类

异常的处理


数据类型与变量

数据类型

Java中的数据类型主要分为两类:基本数据类型引用数据类型

基本数据类型分为四类八种:

  1. 四类:整形、浮点型、字符型、布尔型。
  2. 八种:

 变量

变量指的是那些经常改变的内容。数据类型就是来定义不同种类的变量的

语法格式:

数据类型 变量名 = 初始值

 像是定义一个整型变量a

int a = 100;

数据类型的种类有上面四类,所以变量也可以分为四大类:

整型变量、浮点型变量、字符型变量、布尔型变量。

有的类中也还有细分。


运算符

Java中运算符可分为算数运算符、关系运算符、逻辑运算符以及位运算符等等。

算术运算符

基本的四则运算符:加减乘除模(+ - * / %)

注意:

  1. 都是二位运算符,使用时必须要有左右两个操作数。
  2. 做除法和取模(求余数)时,右操作数不能为0(除数不能为0)。

增量运算符 

增量运算符有+=  -=  *=  %=

int a = 1;
a += 2;    相当于a = a + 2;

 剩下三种增量运算符以此类推。不过要注意只有变量才能使用该运算符,常量不能使用。

自增/自减运算符

自增/自减运算符有++ --

++是给变量的值+1,--是给变量的值-1;

其中也分为前置和后置,以++为例

int a = 1;
System.out.println(a++)  输出1
后置++是先使用原先的a的值后,在+1


int a = 1;
System.out.println(++a)  输出2
前置++是先给a+1,然后使用a

可以根据++的位置来判断进行哪一步:
++在a的前面,先++;
++在a的后面,先用a再++。
关系运算符

关系运算符主要有六个:==  !=  <  >  >=  <=

其计算结果为true或者false。

逻辑运算符

逻辑运算符主要有三个:&&(与)、||(或者)、!(非),返回值都是布尔值。

&&(与),两边表达式都为真,结果才为真。

||(或者),两边表达式都为假,结果才为假。

短路求值

对于&&(与),如果左边的表达式为假,右边的表达式将不再进行;

对于||(或者),如果左边的表达式为真,右边的表达式将不再进行。

这其实就和生活中的并且和或者一样的,根据不同情况有不同的理解。

位运算符

位运算符主要有四个:& | ~ ^

按位与&

如果两个二进制位都是1,则结果是1,否则结果是0。

int a = 10;
int b = 20;
System.out.println(a & b);

输出结果是:0

按位或 | 

如果两个二进制位都是0,则结果是0,否则结果是1。

按位取反 ~

如果该位为0,则转为1;如果该位为1,则转为0。

按位异或 ^

如果两个数字的对应的二进制位上的数字相同,则取0,否则取1。

逻辑控制

做事要有逻辑性,效率才可能会提高,编写代码也应当如此。

逻辑结构包括顺序结构、分支结构和循环结构

顺序结构

顺序结构比较简单,就是按照代码的书写顺序一行行进行

分支结构

分支结构主要分为两种:if语句和switch语句。

if语句

语法形式有以下三种:

if(布尔表达式){

  //语句

}

if(布尔表达式){

  //语句1

}else{

  //语句2

}

if(布尔表达式){

  //语句1

}else if{

  //语句2

}else{

  //语句3

}

switch语句 

语法形式为:

switch(表达式){

   case 常量1:{

       语句1;

       break;

    }

   

 case 常量2:{

       语句2;

       break;

   }

   default:{

       内容都不满足时执行语句;

       break;

  }

}

循环结构

while循环

while循环语法格式为:

while(循环条件){

        循环语句;

}

只有当循环条件为true时,才会进行循环。

for循环

for循环语法格式为:

for(循环表达式①;循环表达式②;循环表达式③){

            循环表达式④

}

其中,①用于初始化变量,②是循环条件,③是循环变量的更新。

do while循环 

语法格式为:

do{
  循环语句;
}while(循环条件);

注意:do while循环最后的分号不要忘记。

 break和continue

break的功能是让循环提前结束;

continue的功能是跳过这次循环,直接进入下一次循环。

方法的使用

方法的定义

方法的定义格式为:

修饰符 返回值类型 方法名称(参数类型  形参){

  方法体代码;

  return 返回值;

}

实参和形参的关系

形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值。

在Java中,实参的值永远都是拷贝到形参中,形参和实参本质时两个实体

方法的重载

在Java中,如果多个方法的名字相同,参数列表不同,则称这几种方法被重载了。

方法重载的条件是:

  1. 方法名必须相同
  2. 参数列表必须不同(参数的个数不同、类型不同、次序必须不同)
  3. 与返回值的类型是否相同无关
递归

一个方法在执行过程中调用自身,就称为“递归”。

递归的必要条件:

  1. 将原问题划分为其子问题,注意:子问题必须要与原问题的解法相同。
  2. 递归出口。

数组

数组的定义

数组的创建为:

T[ ] 数组名 = new T[N];

T:表示数组中存放元素的类型

T[ ]:表示数组的类型

N:表示数组的长度  

数组的初始化

数组的初始化分为动态初始化和静态初始化

动态初始化:

int[] array = new int[10];

 静态初始化:

int[] arr = {1,2,3,4};
数组的使用

数组元素的访问

数组内元素的下标是从0开始的,可以通过其下标来访问素组。

数组元素的遍历

通过for循环来遍历数组,其中通过 数组对象.length来获取数组的长度

int[]array = new int[]{10, 20, 30, 40, 50};
 for(int i = 0; i < array.length; i++){
    System.out.println(array[i]);
 }
数组是引用类型

基本类型变量与引用类型类型变量的区别

基本类型变量其中存放的是其所对应的值;

引用类型变量其中存放的对象所在空间的地址。

二维数组

二维数组的语法格式为:

数据类型[][] 数组名称 = new 数据类型 [行数][列数] { 初始化数据 }

 本质上是一堆数组,其中的每个元素是一个一维数组。

类和对象

关于类和对象,更详细的内容可以看:Java 类和对象-CSDN博客

类定义和使用

类是用来对一个实体(对象)来进行描述的。

类的语法格式为:

class Animal{

  field;       // 字段(属性) 或者 成员变量

method;   // 行为 或者 成员方法   

}

 class为定义类的关键字,Animal为类的名字,{}中为类的主体。

类的实例化

用类创建对象的过程,称为类的实例化。Java中使用new关键字配合类名来实例化对象。

其中,同一个类可以创建多个实例。

this引用

this引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的操作,都是通过引用去访问。

注意:this引用的是调用成员方法的对象

封装

封装,简单来说就是套壳屏蔽细节,将细节隐藏起来,隐藏对性爱的属性和实现细节。

访问限定符

类可以将数据以及封装数据的方法结合在一起,访问权限用来控制方法或者字段能否直接在类外使用。

访问修饰限定符分为四种:

  1. private 只能在当前类使用

  2. default/空白 同一个包底下可以访问

  3. protected 同一个包底下都可以使用。但是,不同包下的只有子类才能使用

  4. public 哪里都可以使用

static成员

static修饰的成员变量,称为静态成员变量。

静态成员变量最大的特性:不属于某个具体的对象,是所有对象所共享的。

static修饰成员方法

被static修饰的成员方法称为静态成员,是类的方法,不是某个对象所特有的。静态成员一般是通过静态方法来访问的。

内部类

在Java中,可以将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者成为外部类。内部类也是封装的一种体现。

public class OutClass {
 class InnerClass{

 }

}

 OutClass是外部类
 InnerClass是内部类

继承和多态

继承

继承是专门用来共性提取,实现代码复用。

继承的语法

继承语法,要借助extends关键字

修饰符 class 子类 extends 父类 {

       // ...  

}

super关键字

super关键字主要作用:在子类方法中访问父类的成员。

注意:

  1. 只能在非静态方法中使用
  2. 在子类方法中,访问父类的成员变量和方法。
super和this

相同点:

  1. 都是Java中关键字
  2. 只能在类的非静态方法中,用来访问非静态成员方法和字段
  3. 在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在

不同点:

  1. this是当前对象的引用,当前对象即调用实例方法的对象,super相当于是子类对象中从父类继承下来部分成员的引用。
  2. 在非静态成员方法中,this用来访问本类的方法和属性,super用来访问父类继承下来的方法和属性。
多态
多态的语法

多态,其实就是多种状态,具体点就是去完成某个行为,当不同的对象去完成时会产生不同的状态。

多态实现条件

在Java中要实现多态,要满足下面三个条件:

  1. 必须在继承体系下
  2. 子类必须要对父类中方法进行重写
  3. 通过父类的引用调用重写的方法

多态体现:在代码运算时,当传递不同类对象时,会调用对应类中的方法。

重写

重写是子类对父类非静态、非private修饰,非final修饰,非构造方法等的实现过程进行重新编写,返回值和形参都不能变。即外壳不变,核心重写。

重写和重载的区别

抽象类和接口 

抽象类

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类语法

一个类如果被abstract修称为抽象类。语法格式为:

public abstract class Shape {

     // 抽象方法:被abstract修饰的方法,没有方法体

    abstract public void draw();

    abstract void calcArea();

    // 抽象类也是类,也可以增加普通方法和属性

    public double getArea(){

          return area;

    }

}

 臭腺肋也是类,内部方法可以包含普通方法和属性。

抽象类特性
  1. 抽象类不能直接实例化对象
  2. 抽象方法不能是private
  3. 抽象类方法不能被final和static修饰,抽象方法的子类要被重写
  4. 抽象类必须被继承,并且继承后子类要重写父类中的方法
接口

接口可以看作是,多个类的公共规范,是一种引用数据类型。

语法格式为:

public interface 接口名称{

public abstract void method1();    // public abstract 是固定搭配,可以不写

public void method2();

abstract void method3();

void method4();

}

// 注意:在接口中上述写法都是抽象方法,跟推荐方式4,代码更简洁

接口的使用

接口必须要有一个“实现类”来实现接口,实现接口中的所有抽象方法。

语法格式为:

public  class 类名称 implements 接口名称{

     // ...

}

String类

详细可以看JavaSE:String类-CSDN博客

字符串构造

分为常量串构造、直接newString对象、使用字符数组进行构造。

其中,String是引用类型,内部并不存储字符串本身。

对象的比较
  1. ==比较是否引用同一个对象
  2. equals方法比较内容是否一样
  3. compareTo方法比较字符串的大小
  4. compareToIgn方法也是比较字符串大小,只是忽略大小写比较。

字符串查找

采用charAt、indexOf和lastIndexOf方法来查找字符串。

字符串替换

采用replaceAll和replaceFirst方法来替换字符串中的内容。

异常

详细可以看:JavaSE:认识异常-CSDN博客

在Java中,将程序执行过程中发生的不正常行为称为异常。

异常的体系结构

Throwable:是异常体系的顶层类,其派生出两个重要的子类, Error 和 Exception。

异常的分类

编译时异常:在程序编译期间发生的异常。

运行时异常:在程序执行期间的发生的异常。

异常的处理

在Java中,异常的处理主要依靠5个关键字:throw、try、catch、finally和throws

  1. throw是用来抛出一个指定的异常对象,将错误信息告知给调用者。
  2. throws是用来声明异常的。
  3. try-catch-finally是用来处理异常的。

其中finally中的代码一定会执行,一般在finally中进行一些资源清理的扫尾工作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值