zoukankan      html  css  js  c++  java
  • 40个知识点

    31.假设数组内有5个元素,如果对数组进行反序,该如何做?

    创建一个新数组,从后到前循环遍历每个元素,将取出的元素依次顺序放入新数组中

    32.形参与实参

    形参:全称为“形式参数”,是在定义方法名和方法体的时候使用的参数,用于接收调用该方法时传入的实际值;实参:全称为“实际参数”,是在调用方法时传递给该方法的实际值。

    33.构造方法能不能显式调用?

    不能构造方法当成普通方法调用,只有在创建对象的时候它才会被系统调用

    34.构造方法能不能重写?能不能重载?

    可以重写,也可以重载

    35.什么是方法重载?

    方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要它们的参数个数或者类型不同即可。在这种情况下,该方法就叫被重载了,这个过程称为方法的重载(override)

    36.内部类与静态内部类的区别?

    静态内部类相对与外部类是独立存在的,在静态内部类中无法直接访问外部类中变量、方法。如果要访问的话,必须要new一个外部类的对象,使用new出来的对象来访问。但是可以直接访问静态的变量、调用静态的方法;

    普通内部类作为外部类一个成员而存在,在普通内部类中可以直接访问外部类属性,调用外部类的方法。

    如果外部类要访问内部类的属性或者调用内部类的方法,必须要创建一个内部类的对象,使用该对象访问属性或者调用方法。

    如果其他的类要访问普通内部类的属性或者调用普通内部类的方法,必须要在外部类中创建一个普通内部类的对象作为一个属性,外同类可以通过该属性调用普通内部类的方法或者访问普通内部类的属性

    如果其他的类要访问静态内部类的属性或者调用静态内部类的方法,直接创建一个静态内部类对象即可。

    37.Static关键字有什么作用?

    Static可以修饰内部类、方法、变量、代码块

    Static修饰的类是静态内部类

    Static修饰的方法是静态方法,表示该方法属于当前类的,而不属于某个对象的,静态方法也不能被重写,可以直接使用类名来调用。在static方法中不能使用this或者super关键字。

    Static修饰变量是静态变量或者叫类变量,静态变量被所有实例所共享,不会依赖于对象。静态变量在内存中只有一份拷贝,在JVM加载类的时候,只为静态分配一次内存。

    Static修饰的代码块叫静态代码块,通常用来做程序优化的。静态代码块中的代码在整个类加载的时候只会执行一次。静态代码块可以有多个,如果有多个,按照先后顺序依次执行。

    38.Final在java中的作用

    Final可以修饰类,修饰方法,修饰变量。
    修饰的类叫最终类。该类不能被继承。
    修饰的方法不能被重写。
    修饰的变量叫常量,常量必须初始化,一旦初始化后,常量的值不能发生改变。

    39.Java中操作字符串使用哪个类?

    String,StringBuffer,StringBuilder

    40.StringBuffer,Stringbuilder有什么区别?

    StringBuffer与StringBuilder都继承了AbstractStringBulder类,而AbtractStringBuilder又实现了CharSequence接口,两个类都是用来进行字符串操作的。

    在做字符串拼接修改删除替换时,效率比string更高。

    StringBuffer是线程安全的,Stringbuilder是非线程安全的。所以Stringbuilder比stringbuffer效率更高,StringBuffer的方法大多都加了synchronized关键字

    41.String str=”aaa”,与String str=new String(“aaa”)一样吗?

    不一样的。因为内存分配的方式不一样。
    第一种,创建的”aaa”是常量,jvm都将其分配在常量池中。
    第二种创建的是一个对象,jvm将其值分配在堆内存中。

    42.String str=”aa”,String s=”bb”,String aa=aa+s;一种创建了几个对象?

    一共有两个引用,三个对象。因为”aa”与”bb”都是常量,常量的值不能改变,当执行字符串拼接时候,会创建一个新的常量是” aabbb”,有将其存到常量池中。

    43.将下java中的math类有那些常用方法?

    Pow():幂运算
    Sqrt():平方根
    Round():四舍五入
    Abs():求绝对值
    Random():生成一个0-1的随机数,包括0不包括1

    44.String类的常用方法有那些?

    charAt:返回指定索引处的字符
    indexOf():返回指定字符的索引
    replace():字符串替换
    trim():去除字符串两端空白
    split():分割字符串,返回一个分割后的字符串数组
    getBytes():返回字符串的byte类型数组
    length():返回字符串长度
    toLowerCase():将字符串转成小写字母
    toUpperCase():将字符串转成大写字符
    substring():截取字符串
    format():格式化字符串
    equals():字符串比较

    45.判断两个对象是否相同,能使用equlas比较吗?

    不能。Equlas大多用来做字符串比较,要判断基本数据类型或者对象类型,需要使用==

    46.==与equlas有什么区别?

    ==可以判断基本数据类型值是否相等,也可以判断两个对象指向的内存地址是否相同,也就是说判断两个对象是否是同一个对象,Equlas通常用来做字符串比较。

    47.如何将字符串反转?

    Stringbuilder或者stringbuffer的reverse方法

    48.面向对象的语言有那些特征?

    封装、继承、多态

    49.Java中的继承是单继承还是多继承

    Java中既有单继承,又有多继承。对于java类来说只能有一个父类,对于接口来说可以同时继承多个接口

    50.什么是重写?什么是重载?

    重载和重写都是java多态的表现。

    重载叫override,在同一个类中多态的表现。当一个类中出现了多个相同名称的方法,但参数个数和参数类型不同,方法重载与返回值无关

    重写叫overwrite,是字符类中多态的表现。当子类出现与父类相同的方法,那么这就是方法重写。方法重写时,子类的返回值必须与父类的一致。如果父类方法抛出一个异常,子类重写的方法抛出的异常类型不能小于父类抛出的异常类型。

    51.构造方法能不能重载?能不能重写?

    可以重载,必须重写

    52.如果父类只有有参构造方法,那么子类必须要重写父类的构造方法吗?

    必须重写

    53.创建一个子类对象的时候,那么父类的构造方法会执行吗?

    会执行。当创建一个子类对象,调用子类构造方法的时候,子类构造方法会默认调用父类的构造方法。

    54.什么是父类引用指向子类对象?

    是java多态一种特殊的表现形式。创建父类引用,让该引用指向一个子类的对象

    55.当父类引用指向子类对象的时候,子类重写了父类方法和属性,那么当访问属性的时候,访问是谁的属性?调用方法时,调用的是谁的方法?

    子类重写了父类方法和属性,访问的是父类的属性,调用的是子类的方法

    56.Super与this表示什么?

    Super表示当前类的父类对象
    This表示当前类的对象

    57.抽象的关键字是什么?

    Abstract

    58.抽象类必须要有抽象方法吗

    不是必须。抽象类可以没有抽象方法。

    59.如果一个类中有抽象方法,那么这个一定是抽象类?

    包含抽象方法的类一定是抽象类

    60.抽象类可以使用final修饰吗?

    不可以。定义抽象类就是让其他继承的,而final修饰类表示该类不能被继承,与抽象类的理念违背了

    61.普通类与抽象类有什么区别?

    普通类不能包含抽象方法,抽象类可以包含抽象方法
    抽象类不能直接实例化,普通类可以直接实例化

    62.什么是接口?

    接口就是某个事物对外提供的一些功能的声明,是一种特殊的java类

    63.JAVA为什么需要接口?

    接口弥补了java单继承的缺点

    64.接口有什么特点?

    接口中声明全是public static final修饰的常量
    接口中所有方法都是抽象方法
    接口是没有构造方法的
    接口也不能直接实例化
    接口可以多继承

    65.接口与抽象类有什么区别?

    抽象类有构造方法,接口没有构造方法
    抽象类只能单继承,接口可以多继承
    抽象类可以有普通方法,接口中的所有方法都是抽象方法
    接口的属性都是public static final修饰的,而抽象的不是

    66.Java中异常分为哪两种?

    编译时异常
    运行时异常

    67.说几个常见的编译时异常类?

    NullPointerException:空指针异常
    ArrayIndexOutOfBoundsException:数组下标越界
    NumberFormatException:数字转换异常
    IllegalArgumentException:参数不匹配异常
    InstantiationException:对象初始化异常
    ArithmeticException:算术异常

    68.异常的处理机制有几种?

    异常捕捉:try…catch…finally,异常抛出:throws。

    69.如何自定义一个异常

    继承一个异常类,通常是RumtimeException或者Exception

    70.在异常捕捉时,如果发生异常,那么try.catch.finally块外的return语句会执行吗?

    会执行,如果有finally,在finally之后被执行,如果没有finally,在catch之后被执行

  • 相关阅读:
    设计模式学习——代理模式(Proxy Pattern)之 强制代理(强校验,防绕过)
    设计模式学习——代理模式(Proxy Pattern)
    设计模式学习——抽象工厂模式(Abstract Factory Pattern)
    最长字符串系列汇总
    窗口的最大值与最小值更新结构(滑动窗口)
    归并排序和归并排序应用(逆序对+小和)
    位运算在编程题的一些作用
    链表的排序(归并排序+快慢指针)
    Manacher算法解决最长回文子串长度问题
    回文数字的验证
  • 原文地址:https://www.cnblogs.com/mjhjl/p/13583853.html
Copyright © 2011-2022 走看看