Java面试题-API

API

Object

概念:所有对象的顶级父类。存在java.lang包中

toString

equals

hashCode

==与equals

        1. ==比较八大基本类型时:判断的是值

        2. ==比较对象时,比较的是对象的地址值

        3. equals用来比较对象存着的值

String

常用方法:

    length()
    charAt()//返回索引处的值
    
    lastIndexOf()
    substring()
        //截取//截取时含头不含尾[3,7)
        String s = "abcdefghijk";
        System.out.println(s.substring(3,7));//defg

    equals()
        //判断两个字符串的内容是否相同
        String s = "abcdefghijk";
        String s1 = "abc";
        System.out.println(s.equals(s1));//false

    startsWith()
        //是否以指定后缀开始
        String s2="1,2,3,4,5";
        System.out.println(s2.startsWith("1,"));//true

    endsWith()
        //是否以指定后缀结束
        System.out.println(s.endsWith("jk"));//true,是否以jk结束

    split()
        //根据指定切割字符串
        split(","),//根据,切割

    trim()
        //去除前后端空格

StringBuilder/StringBuffer

特点

        1. 封装了char[]数组

        2. 是可变的字符序列

        3. 提供了一组可以对字符内容修改的方法

        4.常用append()来代替字符串做字符串连接

        5. 内部字符数组默认初始化容量是16:initial capacity of 16 characters

        6. 如果大于16会尝试扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。int newCapacity = value.length * 2 + 2;

        7. StringBuilder 1.0 出道线程安全,StringBuilder 1.5 出道线程不安全

方法
    charAt()
    append()
StringBuilder和StringBuffer的区别

        1、 在线程安全上,

                --StringBuffer是旧版本就提供的,线程安全的。@since JDK1.0

                --StringBuilder是jdk1.5后产生,线程不安全的。@since 1.5

        2、 在执行效率上,StringBuilder > StringBuffer > String

        3、 源码体现:本质上都是在调用父类抽象类AbstractStringBuilder来干活,只不过Buffer把代码加了同步关键字,使得程序可以保证线程安全问题。

Java面试题-API_第1张图片

日期类Date

概述

        存在于java.util.Date包。

        用来封装一个毫秒值表示一个精确的时间点。

        从1970-1-1 0点开始的毫秒值。

创建对象

    new Date();//封装的是系统当前时间的毫秒值
    new Date(900000000000L);//封装指定的时间点

 常用方法

    getTime();//取内部毫秒值
    setTime();//存取内部毫秒值
    getMonth();//获取当前月份
    getHours();//获取当前小时
    compareTo(Date);//当前对象与参数对象比较。当前对象大返回正数,小返回负数,相同0。

日期工具SimpleDateFormat

概述:日期格式化工具,可以把Date对象格式化成字符串,也可以日期字符串解析成Date对象

创建对象:new SimpleDateFormat(格式)
    格式:yyyy-MM-dd HH:mm:ss     MM/dd/yyyy..
常见方法
    format(Date):把Date格式化成字符串
    parse(String):把String解析成Date

BigDecimal/BigInteger

概述:

        BigDecimal:常用来解决精确的浮点数运算

        BigInteger:常用来解决超大的整数运算

创建对象

    BigDecimal.valueOf(2);

常用方法

    add(BigDecimal bd);//做加法运算

    substract(BigDecimal bd);//减法

    multiply(BigDecimal bd);//乘法

    divide(BigDecimal bd);//除法

    divide(BigDecimal bd);//保留位数,舍去方式):除不尽时使用

    setScale(保留位数,舍入方式);//同上

    pow(int n);//求数据的几次幂

IO

概述:

        in/out 相对于程序而言的输入(读取)和输出(写出)的过程

        字节流:针对二进制文件(字节读写)

InputStream
    --FileInputStream
    --BufferedInputStream
    --ObjectInputStream

OutputStream
    --FileOutputStream
    --BufferedOutputStream
    --ObjectOutputStream

        字符流:针对文本文件(字符读写)

流的概念:

数据的读写抽象成数据,在管道中流动。

Ø 流只能单方向流动

Ø 输入流用来读取in

Ø 输出流用来写出Out

Ø 数据只能从头到尾顺序的读写一次

Java面试题-API_第2张图片

File文件流

概述:

封装一个磁盘路径字符串,对这个路径可以执行一次操作。可以用来封装文件路径、文件夹路径、不存在的路径。

创建对象

File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

常用方法

文件、文件夹属性
    length();//文件的字节量
    exists();//是否存在,存在返回true
    isFile();//是否为文件,是文件返回true
    isDirectory();//是否为文件夹,是文件夹返回true
    getName();//获取文件/文件夹名
    getParent();//获取父文件夹的路径
    getAbsolutePath();//获取文件的完整路径

创建、删除
    createNewFile();  //新建文件,文件夹不存在会异常,文件已经存在返回false
    mkdirs();    //新建多层不存在的文件夹\a\b\c
    mkdir();     //新建单层不存在的文件夹\a
    delete();     //删除文件,删除空文件夹

文件夹列表
    list();    //返回String[] ,包含文件名
    listFiles();   //返回File[],包含文件对象

BIO、NIO、AIO的区别

阻塞IO,BIO 就是传统的 java.io 包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用时可靠的线性顺序。它的有点就是代码比较简单、直观;缺点就是 IO 的效率和扩展性很低,容易成为应用性能瓶颈。

非阻塞IO,NIO 是 Java 1.4 引入的 java.nio 包,提供了 Channel、Selector、Buffer 等新的抽象,可以构建多路复用的、同步非阻塞 IO 程序,同时提供了更接近操作系统底层高性能的数据操作方式。

异步IO,AIO 是 Java 1.7 之后引入的包,是 NIO 的升级版本,提供了异步非堵塞的 IO 操作方式,所以人们叫它 AIO(Asynchronous IO),异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。但目前还不够成熟,应用不多。 

 

你可能感兴趣的:(笔记,java,面试,开发语言)