zoukankan      html  css  js  c++  java
  • JavaSE基础笔记

    1、String、StringBuffer和StringBuffer的区别
    String:
    被final修饰、不可变类。拿 String str = "123";str=str+"456";举例
    每次拼接都会在堆内存创建新的String对象。栈内存的地址执行新的对象。
    适用于操作少量数据。
    StringBuffer:
    字符串可变、线程安全(方法被synchronized修饰)、适用于多线程字符串缓冲区操作大量数据。
    可通过toString()方法转换为String类型。
    StringBuider:
    字符串可变、线程不安全、适用于单线程字符串缓冲区操作大量数据。
    可通过toString()方法转换为String类型。

    2、说一下封装、继承、多态
    封装:
    将类的数据和方法进行封装,对外提供接口进行访问。简单来说,封装就是隐藏一切可以隐藏的东西,对外可以提供简单的接口。
    继承:
    从已有父类继承信息创建新类的过程。提供信息的类叫做父类,得到继承信息的类叫做子类。
    子类不仅可以具备父类所有属性,还可以新增自己的属性和方法。为程序提供可变因素。
    多态:
    不同子类对象对同一消息做出的不同响应。简单说就是不同子类对象调用相同方法却做了不同事情。
    编译时多态:
    方法重载,编译时多态性。
    运行时多态:
    方法重写,运行时多态性。
    实现运行时多态的两个条件:方法重写,对象造型(父类引用指向子类对象,父类引用执行子类对象,调用同样的方法却表现不同的行为)。

    3、说一下HashMap、LinkedHashMap和TreeMap的区别
    相同点:
    都实现了Map接口。Map及其实现类用来存键值对。不允许key重复,但允许value重复。
    HashMap:
    根据key的hashCode值存放数据,访问速度快,可允许一个key为null,多个value为null。
    线程不安全。
    LinkedHashMap:
    HashMap的子类,内部维持了一个双向链表,内部实现是插入排序:输入顺序和输出顺序相同。
    线程不安全。
    TreeMap:
    实现了NavigableMap接口和SortedMap 接口。
    底层通过红黑二叉树,采用中序遍历实现排序功能。
    treeMap 和HashMap 都继承自AbstractMap。
    实现 NavigableMap 接口让 TreeMap 有了对集合内元素的搜索的能力。
    实现SortMap接口让 TreeMap 有了对集合中的元素根据键排序的能力。默认是按 key 的升序排序

  • 相关阅读:
    【leetcode】1630. Arithmetic Subarrays
    【leetcode】1629. Slowest Key
    【leetcode】1624. Largest Substring Between Two Equal Characters
    【leetcode】1620. Coordinate With Maximum Network Quality
    【leetcode】1619. Mean of Array After Removing Some Elements
    【leetcode】1609. Even Odd Tree
    【leetcode】1608. Special Array With X Elements Greater Than or Equal X
    【leetcode】1603. Design Parking System
    【leetcode】1598. Crawler Log Folder
    Java基础加强总结(三)——代理(Proxy)Java实现Ip代理池
  • 原文地址:https://www.cnblogs.com/yuanziren/p/13333933.html
Copyright © 2011-2022 走看看