• Java基础


    1.JDK和JRE有什么区别

      JDK:简称Java Development kit,Java开发工具包,提供了Java开发环境和运行环境。

      JRE:简称Java Runtime Environment,Java运行环境,提供了Java运行时所需要的环境。

      JDK中包含了JRE、Javac(编译Java源码的编译器)、还包含了很多调试和分析Java程序的工具。

      运行Java程序只需要安装JRE就可以,只有需要编写Java程序的时候才需要安装JDK。

    2.==和equals有什么区别

      ==:基础数据类型比较的是值是否相等,引用数据类型比较的是内存地址是否相同。

      equals:默认情况下是引用比较,只有重写了equals方法(String、Integer)则比较的是值是否相等。

    3.两个对象的hashCode相同,则equals()也一定为true?

      两个对象的hashCode相同,equals不一定为true。

      在散列表中,hashCode()相等即两个键值对的哈希值相等,然而哈希值相等并不一定能得出键值对相等。

      示例如下

    public class Demo {
        public static void main(String[] args) {
            String str1 = "值1";
            String str2 = "值2";
            System.out.println(String.format("str1:%d | str2:%d",  str1.hashCode(),str2.hashCode()));
            System.out.println(str1.equals(str2));
        }
    }
    View Code

    4.final在Java中有什么作用

      final修饰的类叫最终类,该类不能被继承。

      final修饰的方法不能被重写。

      final修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

    5.Java中的Math.round()

      Math对象的方法可以在https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math查看。

      Math.round():表示四舍五入向上取整。

    6.String属于基础数据类吗?

      String不属于基础数据类型,基础数据有8种:byte、boolean、char、short、int、float、long、double。String属于对象是引用数据类型。

    7.Java操作字符串的有哪些类,他们之间有什么区别?

      操作字符串的类有:String、StringBuffer、StringBuilder。

      String和StringBuffer、StringBuilder的区别String声明的是不可变对象,每次操作都会生成新的String对象,然后指针指向新的String对象。而Stringbuffer、StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String。

      StringBuffer和StringBuilder的区别:StringBuffer是线程安全的,而StringBuilder则是线程不安全的,但StringBuilder的性能却高于StringBuffer,所以单线程环境建议使用StringBuilder,多线程环境建议使用StringBuffer。

    8.String str="1"与String str=new String("1")一样吗?

      不一样,String str="1"的方式,Java虚拟机会将其分配到常量池中,而String str=new String("1")则会被分配到堆内存中。

    9.如何将字符串反转?

      使用StringBuffer、StringBuilder的reverse()方法进行字符串反转。

    10.String类的常用方法有哪些?

      String的常用方法:

    • indexOf():返回知道字符串的索引。
    • charAt():返回知道索引处的字符。
    • replace():字符串替换。
    • trim():去除字符串两端空白。
    • split():分割字符串,返回分割后的字符串数组。
    • getBytes():返回字符串的byte数组。
    • length():返回字符串长度。
    • toLowerCase():将字符串转为小写字母。
    • toUpperCase():将字符串转为大写字母。
    • substring():截取字符串。
    • equals():字符串比较。

    11.抽象类必须要有抽象方法吗?

      抽象类不一定有抽象方法。

    12.普通类和抽象类有哪些区别?

      普通类不能包含抽象方法,抽象类可以包含抽象方法。

      抽象类不能实例化,普通类可以实例化。

    13.抽象类能用final修饰吗?

      不能,抽象类就是让其他类继承的,如果用final修饰则该类不能被继承,这样是彼此矛盾的,所以抽象类不能被final修饰。

    14.接口和抽象类有什么区别?

      实现:抽象类是extends来继承,接口则是使用implements实现。

      构造函数:抽象类可以有构造函数,接口不能有。

      实现数量:类可以实现多个接口,但只能继承一个类。

      访问修饰符:接口中方法默认用public修饰,抽象类中的方法有使用任意修饰符。

    15.Java中IO流分为几种?

      按功能分配:输入流、输出流。

      按类型分配:字节流、字符流。

      字节流和字符流的区别:字节流按8位传输以字节位单位输入输出数据,字符流按16位传输以字符为单位输入输出数据。

    16.BIO、NIO、AIO有什么区别?

      BIO:Block IO同步阻塞IO,就是我们平常使用的传统IO,它的特点是模式简单使用方便,并发处理能力低。

      NIO:New IO或Non Blocking IO同步非阻塞IO,是传统IO的升级客户端和服务器通过使用Channel(通道)通宵,实现多路复用。

      AIO:Asynchronous IO是NIO的升级,也叫NIO2,实现异步非阻塞IO,异步IO的操作基于事件和回调机制。

    17.files的常用方法有哪些?

      files的常用方法

    • exists():检测文件路径是否存在。
    • createFile():创建文件。
    • createDirectory():创建文件夹。
    • delete():删除文件。
    • copy():复制文件。
    • move():移动文件。
    • size():文件数量。
    • read():读取文件。
    • write():写入文件。
  • 相关阅读:
    idHTTP使用代理IP
    Delphi的TRegistry注册表类方法详解
    判断WebBrowser是否加载完成.
    vs2010 安装记
    Delphi中destroy, free, freeAndNil, release用法和区别
    IdHTTP处理HTTP 302遇到的问题
    passcal 多线程例子,线程管理,创建,暂停,中止,等待等。。。
    passcal try嵌套
    passcal 编写多线程程序
    用一个 Byte 数表示 8 个复选框的选择状态
  • 原文地址:https://www.cnblogs.com/bl123/p/14966900.html
Copyright © 2020-2023  润新知