• Java SE基础知识


    Java SE面试题

    Java SE基础

    基本语法

    数据类型

    1. Java的八种基本数据类型包括
      • 字符型char
      • 布尔型boolean
      • 数值类型
        1. byte
        2. short
        3. int
        4. long
        5. float
        6. double

    另外Java中还存在另一种数据类型void,不过我们无法对他进行直接的操作

    1. 大小和表示范围

    1Byte = 8bit

    名称 字节数 最大存储量 表示范围
    byte 8 255 -128到127
    short 16 65536 -32768到32767
    int 32 2^32-1 2^31到2^31-1
    long 64 2^64-1 2^63到2^63-1
    float 32 3.4e-45到1.4e38
    double 64 4.9e-324到1.8e308
    boolean 资料 truefalse
    char 16 存储Unicode码,用单引号赋值

    关键字

    Java关键字

    1. 访问控制
    权限 private default protected public
    当前包当前类
    当前包其他类 --
    其他包其他类有继承关系 -- --
    其他包其他类没有继承关系 -- -- --

    关于protected

    1. 子类可以继承,但是不能访问父类的成员变量/方法(一般来说,可以访问就可以继承)。
    2. 有继承关系说明访问对象所在的类是父类。

    面向对象

    面向对象有以下特征

    1. 封装
    2. 继承
    3. 多态

    集合

    集合类概述

    Collection接口

    Collection接口是层次结构中的根接口,通常不能直接使用,该接口提供了添加,删除,管理元素的方法,由于List与Set都继承自该接口,所以他们也可以使用这些方法。

    方法 功能描述
    add(A a) 将指定对象添加到该集合中
    remove(A a) 将指定对象从该集合删除
    isEmpty() 返回boolean类型的返回值,判断该集合是否为空
    iterator 返回在此Collection的元素上进行迭代的迭代器,用于遍历集合中的对象
    size() 返回int类型的值,获取该集合中元素的个数

    List

    List接口扩展自Collection,他定义了一个允许重复的有序集合,从List接口中的方法来看,List主要是增加了面向位置的操作,允许在指定位置上操作元素,同时增加了一个能双向迭代线性表的新列表迭代器。

    1. ArrayList:
    • 通过查看源码知道,它是用数组存储元素的,这个数组可以动态的创建,如果元素个数超出数组容量,它就会创建一个更大的数组,并将原来的数据赋值到新数组中,
    • 线程同步不安全:ArrayList不提供线程保护,当多个线程读取数据时可能会先后修改数据造成获得的数据是脏数据。
    1. LinkedList:
    • 底层为双向链表
    • 线程不安全
    List<Integer> list = new LinkedList<>();// 在创建一个LinkedList对象时一般将其向上转型为List,
    		// 在定义时,建议加上泛型
    		list.add(9);
    		list.add(5);
    		list.add(2);
    		list.set(2, 7);// List 独有方法 ,将下标为2的元素修改为7.
    		System.out.println(list.get(1));
    
    1. Vector:
    • 底层为数组
    • 效率低,不常用

    总结

    • 如果是增加删除比较多的一般使用LinkedList,如果是随机访问次数比较多的使用ArrayList,对线程安全要求比较高的使用Vector
    • 加载方式:ArrayList使用的是懒加载,在第一次插入数据的时候才会创建数组,Vector在使用的时候会直接创建一个数组。
    • 如果List需要存储引用类型,并且使用到 .remove() , contains() 等方法,建议复写该引用类型的.equals() 方法。

    Set

    set不允许元素重复,本质为没有value的Map

    1. HashSet
      底层为数组,Hash表,实际上就是HashMap,允许为null,乱序存储,不允许重复。

    2. TreeSet
      底层为红黑二叉树,实际上就是TreeMap,
      不允许为null,不能重复,有序存储。

    Map

    存储键值对,可以通过key找到value,key不可重复,value可以重复。

    常用方法
    put(k,v)
    get(k)
    KeySet()
    Values()
    entrySet()
    1. HashMap
    2. TreeMap
    3. HashTable
    4. ConcurrentHashMap
  • 相关阅读:
    TVB西游记-观音的眼泪化作金河送唐僧回长安
    天下没有免费的午餐是什么意思
    什么样的经历、体验或者行为等能彻底的改变一个人
    看人先看什么
    python字符串中查找指定子字符串
    字符串的分隔及连接
    流媒体服务器音视频直播平台的开发为什么需要CDN?
    微信公众号小程序如何做流媒体视频直播?
    搭建专属于自己的视频流媒体直播/点播平台都需要注意哪些事项?
    音视频流媒体服务器的虚拟直播推流失败断流无法播放如何解决?
  • 原文地址:https://www.cnblogs.com/charlottepl/p/12905150.html
Copyright © 2020-2023  润新知