Java基础小问答

针对于前段时间Java的学习这里总结了几个小问题

一、Java中的数据类型

     1、基本数据类型

     (1)、整型

        byte:        

  • byte 数据类型是8位、含符号,二进制补码表示的整数;
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);

        short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

        int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般地整型变量默认为 int 类型;

        long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);

    (2)、浮点型

        float:

  • float 数据类型是单精度,32位;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 浮点数不能用来表示精确的值;

        double:

  • double 数据类型是双精度、64 位;
  • 浮点数的默认类型为 double 类型;
  • double类型同样不能表示精确的值;

     (3)、字符型

        char:

  • char 类型是一个单一的 16 位 Unicode 字符;
  • char 数据类型可以储存任何字符;

    (4)、布尔型

        boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false

     2、引用类型

        (1)、类

        (2)、接口

        (3)、数据

二、Java多态的实现

     1、多态产生的必要条件

        (1)、有继承关系 (2)、方法重写 (3)、父类引用指向子类对象。

     2、多态的实现

        (1)、方法重载

             同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表。      

  • 方法名称必须相同。
  • 参数列表必须不同。
  • 方法的返回类型可以相同也可以不相同。
  • 仅仅返回类型不同不足以称为方法的重载。

        (2)、接口实现

                通过在类名后跟随implements关键字并添加接口名字,达到接口实现的目的。

        (3)、继承

                在类名后通过extend关键字实现类的继承。

三、Java 中的 try-catch 机制是什么?有什么用处?

        1、Java中try-catch机制如下

        (1)、在程序中对可能会出现报错的语句进行try-catch环绕,用于捕获该语句执行时发生的错误。其中catch可以有多个,目的时用于匹配多个不同的异常。

        (2)、当发生无法处理的异常,在方法声明出抛出(throws)异常,并由上层的调用方法进行处理。

        2、异常捕获的用处

                在程序执行过程中异常可能随时发生,且发生的位置不同,可能在代码的中间,也有可能在末尾。但这些异常都有一个特点即,当异常出现时,程序就会在异常出现的位置终止。而我们有时候可能需要在程序出现异常时依然能够执行下去,并得到结果。因此异常捕获就可一解决这个问题。当我们将可能会发生异常的代码段通过try-catch进行环绕,即可保证运行的程序在抛出异常的情况下依然能够执行下去。

四、Java 中的泛型是什么?它的用处是什么?

        1、Java泛型

                泛型即在Java中的所有数据类型,本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,使代码可以应用于多种数据类型在类名后使用<E>或<T>声明即可。

        2、泛型的用处

        (1)、确保类型的安全性

                泛型的定义告诉编译器每个集合接收的对象类型是什么,编译器在编译期就会做类型检查,告知是否插入了错误类型的对象。

        (2)、消除强制转换

                消除源代码中的许多强制类型转换,这使得代码更加可读,并且减少了出错机会。

        (3)、避免非必要的装箱、拆箱,提高程序性能       

                泛型变量固定了类型,使用的时候就已经知道是值类型还是引用类型,避免了不必要的装箱、拆箱操作。

五、装箱与拆箱

        1、概述

               Java为每种基本数据类型都提供了对应的包装器类型,让基本类型具备对象的特征,实现更多的功能。

        2、装箱

              Java根据输入的数值自动创建对应的对象。

        3、拆箱

                拆箱就是自动将包装器类型转换为基本数据类型

        4、包装类型

byte(1字节)Byte
short(2字节)Short
int(4字节)Integer
long(8字节)Long
float(4字节)Float
double(8字节)Double
char(2字节)Char
booleanBoolean

六、Java多线程概述

        1、线程的创建

        (1)、继承Thread类并重写run方法

        (2)、继承Runnable接口并重写run方法

        2、线程启动

        (1)、继承Thread类

//需要线程启动的方法
public void test1(){
    new 线程名().start();

}


public void test2(){
    线程类 对象名 = new 线程类(参数);
    对象名.start();
}

        (2)、实现Runnable接口

 public void test3(){
   //初始化对象
    线程类 对象名 = new 线程类();
    Thread t = new Thread(对象名);
    t.start();

}

        3、总结

                 Java为每种基本数据类型都提供了对应的包装器类型,让基本类型具备对象的特征,实现更多的功能。

七、什么是面向对象? 面向对象的三大特征是什么?

        1、对象

                在Java中对象就是具有某些的特殊属性(成员变量)和行为方式(方法)的实体。

        2、面向对象

                面向对象是已对象为基础,完成各种操作主要强调对象、结果。是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

        3、面向对象的特征

                面向对象中,对象与消息传递分别表现事物及事物之间的相互关系。

                通过封装将对象的定义和实现分开。

                通过继承体现对象间的相互关系。

                以上特征使得实体能够有多态性,同时也构成了面向对象的基本特征。

八、什么是抽象类?它与接口有什么区别?

        1、抽象方法

                常见的方法体中有具体的执行过程,而抽象方法中则没有具体的执行方法、

        2、抽象类

                含有抽象方法的类即为抽象类

        3、总结

                普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、静态方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。

        4、实现过程

//定义抽象类
public abstract class Demo{

    public void A(){
        System.out.println("这是一个普通方法");

    }


    //抽象方法
    public abstract void B();

}

九、什么是静态代码块?它的用处是什么?

        1、静态代码块

                执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。

        2、静态代码块的作用

                静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。静态代码块随着类加载而加载,有多个静态代码块的,按代码块前后顺序加载。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。

十、super与this的作用

        1、this

                this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针

        2、super

                super 可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

(持续更新)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值