美文网首页
Java基础

Java基础

作者: WilsonMing | 来源:发表于2018-06-30 16:55 被阅读14次
Java

"=="和equals区别

"=="是比较的内存地址,equals是Object的方法,默认是比较两个对象内存地址,具体看对象是否重写equals方法。

String、StringBuffer与StringBuilder

线程安全 序列化 默认长度 增长倍数 其他
String 线程安全 支持序列化 0 -
StringBuffer 线程安全 支持序列化 16 2n+2 动态数组实现优化String
StringBuilder 线程不安全 支持序列化 16 2n+2 动态数组实现优化String

集合

list

List子类

List 实现 默认容器大小 容量扩充 线程是否安全 元素是否可以为null 是否支持序列化 优势
Vector 数组实现 10 2倍 安全 可以 已经基本不再使用
ArrayList 数组实现 10 1.5倍 不安全 可以 查找效率高,插入或删除元素效率低
LinkedList 双向循环链表 0 不需要扩容 不安全 可以 插入删除效率高,查找效率低

Set子类

map

Map子类

Map 实现 默认容器大小 容量扩充 线程是否安全 元素是否可以为null 是否支持序列化 优势
HashMap 哈希表实现的 16 2倍 不安全 key和value都允许为null,如果key为null,则直接从哈希表的第一个位置table[0]对应的链表上查找。记住,key为null的键值对永远都放在以table[0]为头结点的链表中,当然value=null不一定是存放在头结点table[0]中, 支持 如果单链表中存在与目标key相等的键值对,则将新的value覆盖旧的value
LinkedHashMap 哈希表实现的 16 2倍 不安全 同HashMap 支持
Hashtable 哈希表实现的 16 2倍+1 安全 key,value不可以为null 支持
ConcurrentHashMap synchronized+CAS操作+Entry+红黑树(Jdk1.8) 16 2倍+1 安全 key,value不可以为null 支持

int-char-long各占多少字节数

类型 位数 字节
byte 8 1
char 16 2
short 16 2
int 32 4
long 64 8
float 32 4
double 64 8

网络

相关文章

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java 集合类原理

    Java基础——HashMap源码分析 Java基础——HashSet源码分析 Java基础——HashTable...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • java基础(一)-String、StringBuffer、St

    java基础-String、StringBuffer、StringBuilder java基础小白,初学java,...

网友评论

      本文标题:Java基础

      本文链接:https://www.haomeiwen.com/subject/nvwyyftx.html