Java常用类

包装类(Wrapper )

针对八种基本数据类型相应的引用类型

包装类转String

com.learn.Wrapper_.ChangeWIthString

一些常用的方法

Integer

  1. MIN_VALUE 返回最小值
  2. MAX_VALUE 返回最大值

Character

  1. isDigit('1') 判断是不是数字
  2. isLetter('a') 判断是不是字母
  3. isUpperCase('A') 判断是不是大写
  4. isLowerCase(’a') 判断是不是小写
  5. isWhitespace(' ') 判断是不是空格
  6. toUpperCase('a') 转成大写
  7. toLowerCase('A') 转成小写

经典面试题

com.learn_STL.Wrapper_.ClassicTest

常用类

String 类

本质仍然是 char 数组

方法

具体查操作手册

  • intern()

    当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。

  • equals()

  • equalsIgnoreCase()

  • length()

  • IndexOf() //字符串第一次出现的位置,找不到返回 -1

  • lastIndexOf //字符串最后一次出现的位置,找不到返回-1

  • substring //截取字符串

  • trim //去除前后空格

  • charAt //获取指定位置的字符

  • toUppeCase

  • toLowerCase

  • concat //拼接字符串

  • replace

  • split

转义字符 /

  • compareTo //比较字符串大小

返回 正、负数、0

  • toCharArray //转换成字符数组
  • format //格式字符串

一些解释

  1. String 对象用于保存字符串,也就是一组字符序列

  2. 字符串常量对象是用双引号括起的字符序列

  3. 字符串的字符使用Unicode编码,一个字符(不管汉字还是字母)占两个字节

  4. String 实现了 Serializable 接口,所以可以串行化:可以在网络传输

  5. 有属性 private final char value[] 用于存放数据

  6. value 是一个 final 类型,不可修改

    不是内容不可修改,而是地址不可修改

常用构造器

new String(String original);

new String(char[] a);

new String(char[] a,int startIndex,int count);

new String(byte[] b);

面试题

com.learn_STL.String_.ClassicTest

StringBuffer

  • 效率较高,线程安全

可变长度字符串,更新的是内容而不像 String 一样更新地址,效率高

StringBuffer 方法

  • append

向字符串后端增加新的 str

  • toString()

转换成 String 对象 || String s = new String(StringBuffer 对象) 也可以实现 StringBuffer 对 String 的转换

  • delete(start,end)

对 [start,end) 的内容进行删除

  • replace(start,end,string)

对 [start,end) 的内容进行替换,替换成 string 字符串的内容

  • indexOf(String str)

返回 str 第一次在该容器中出现的位置

  • insert(int index,String str)

在 index 处插入字符串 str 中的内容

  • length

返回长度

StringBuilder

  • 效率最高,线程不安全
  • 和StringBuffer类似,方法一样
  • 原则上,字符串对象不常改变用 String,常改变的时候单线程用 StringBuilder ,多线程用 StringBuffer

Math

  • 包含用于执行基本数学操作的方法

方法

  • abs 绝对值
  • pow 求幂
  • ceil 向上取整
  • floor 向下取整
  • round 四舍五入
  • sqrt 开平方
  • random() 返回一个 [0,1) 之间的一个随机整数

Arrays

  • 用于操作、管理数组

方法

  • toString 返回数组的字符串形式
  • sort 排序
  • binarySearc(arr,3) 二分在 arr 数组里搜索 3
  • copyOf(arr,arr.length) 数组复制

int newArr = Arrays.copyOf(arr,arr.length)

  • fill 数组元素的填充
int[] num = new int[] {1,2,3};
Arrays.fill(num,99);
  • equals 比较两个数组的元素是否完全一致
  • asList 将一组值转换成List

System

方法

  • exit 退出当前程序
  • arraycopy 复制数组元素,比较适合底层调用
  • gc() 运行垃圾回收机制

BigInteger & BigDecimal

  • 分别保存比较大的整形和精度较高的浮点型

BigInteger

  • 过大的数据赋值可以用字符串赋值

BigInteger bigInteger = new BigInteger("999999999999");

  • BigInteger 的加减乘除要用对应的方法而不能直接 + - * /来进行操作

BigDecimal

  • 在使用 divide 的时候传参 BigDecimal.ROUND_CEILING 可以保留精度,不会陷入死循环

加减乘除

  • add
  • subtract
  • multiply
  • divide

Date

  • 用到再差即可

Calendar

  • 第二代日期类,用到再说

集合

collection

  • 实现子类可以存放多个元素
  • 是接口

常用方法

  1. add
  2. remove
  3. contains:查找某个元素是否存在
  4. size
  5. isEmpty
  6. clear
  7. addAll:同时添加多个元素
  8. contiansAll:同时查询多个元素是否存在
  9. removeAll:同时删除多种元素

iterator类

  • 作为迭代器使用

快捷键生成迭代器循环

  • ctrl + J
  • 或 输入itit

增强 for 循环

  • 可以用来替代 iterator 来循环遍历集合
  • for(个体类型 obj : objs){}
  • 如 for(Student student : students){}
  • 底层仍是迭代器

List

  • List中元素有序,取出顺序等于存放顺序,并且数据可重复
  • List中每个元素都有对应的索引顺序,即支持索引
  • 是接口

方法

  • indexOf(s):返回s在集合中最后出现的位置
  • set(int index,String s):将s替换到index的位置
  • subList(int st,int ed):返回从st到ed的子集合

ArryList

  • 线程不安全,没有synchronized

底层操作机制

  1. 维护了一个Object类型的数组elementData

    transient Object[] elementData; //transient 表示短暂的、瞬间的,表示该属性不会被序列号

  2. 当船舰ArryList对象时,如果使用的是无参构造器则初始容量为0,第一次添加则扩容elementData为10,如需再次扩容则扩容为1.5

  3. 如果使用的是指定大小的构造器,则初始容量为指定大小,如果需要扩容则直接扩容到1.5倍

Vector

  • Vector底层也是一个对象数组,protected Object[] elementData;
  • Vector是线程同步的,即线程安全,操作方法带有synchronized
  • 在开发中,需要线程同步安全时,考虑使用Vector

扩容机制

  • 无参默认是10
  • 扩容按两倍扩容

LinkedList

  • 底层实现了双向链表和双端队列特点
  • 可以添加任意元素(元素可以重复),包括null
  • 线程不安全,没有实现同步

底层操作机制

  1. 底层维护了一个双向链表
  2. 维护了两个属性first和last分别指向首节点和尾节点
  3. 每个节点(Node对象),里面又维护了prev、next、item三个属性,其中通过prev指向前一个,next指向后一个,以此实现双向链表
  4. 所以LinkedList的元素的添加和删除,不是通过数组完成的,相对来说效率较高

image-20220309165733983

Set

  • 是接口
  • 和List一样也是collection的子接口,因此常用方法和collection接口一样
  • 不能有重复对象

遍历方式

  1. 可以迭代器
  2. 可以增强for
  3. 不可以索引方式

HashSet

  • 实现了Set接口
  • 实际上是HashMap
  • 可以存放null但是只能有一个null
  • 不保证元素是有序的,取决于hash后再确定缩影的结果
  • 不能有重复对象

扩容机制

image-20220309212648949

Map

  • 是接口
  • Key-Value映射
  • key不可重复,value可重复
  • key和value都可以为null,但key只能有一个null而value可以有多个
  • 常用String类作为Map的key
  • key和value存在单向一对一关系,即通过指定的key找到对应的value
  • 为了方便遍历,还会创建 EntrySet 用来传递 k-v

方法

  • put(key,value)
  • containsKey :查找键是否存在
  • keySet :获取所有的键
  • values :获取所有的值

遍历方式

com.learn_STL.Map_.LoopMap

posted @   Xuuxxi  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示