基础常用API总结2
String
java.lang包下
| 返回值类型 | 方法 | 功能 |
|---|---|---|
| boolean | matches(String regex) | 如果匹配当前字符串中regex(正则表达式)所表示的字符,如果有返回ture没有返回false |
| String | replaceAll(String regex, String replacement) | 用给定的新字符串替换与给定的 regular expression匹配的此字符串的每个子字符串 |
| int | compareTo(String anotherString) | 按字典顺序比较两个字符串(实际比的时码点值) 得到int的值有三种情况 >0(排序放右边) <0 (排序放左边) =0(位置不变) |
| void | toUpperCase() | 将所有在此字符串的所有字符使用默认语言环境的规则大写。 |
| void | toLowerCase() | 将所有在此字符串的所有字符使用默认语言环境的规则小写 |
Tips:因为String是一个不可变的长度的字符串 replaceAll(参数列表)得到是一个新的字符串 原串不变
StringBuilder
| 返回值类型 | 方法 | 功能 |
|---|---|---|
| StringBuilder | append(String str) | 返回的是StringBuilderl类对象是他自己 |
StringBuilder和String的区别
String 中定义 的char[]数组是用final修饰的 所以String是不可变字符序列
StringBuilder中定义 的char[]数组 没有被final修饰的 是可变字符序列
StringBulider 比 String拼接快的原因:
String: String str="aa"+"bb"
每次 ""+" 都会创建两个对象
StringBulider sb= new StringBuilder("aa").append("bb")
String str=sb.toString
StringBuilder:
StringBulider sb= new StringBuilder("aa").append("bb")
append()方法返回的是this 也就是说是new 出来的它自己 一个对象 可以一直拼接
频繁的向堆申请空间是个比较耗时的操作
补充:
- StringBuilder初始化时默认字节数组初始化容量大小为16,当容量大于当前字节数组容量时会自动进行1倍扩容再加2,每次扩容都会开辟新空间,并且进行新老字符数组的复制:源码底层通过调用System的一个native本地方法arraycopy实现新老字符数组的复制,该native方法底层会直接操作内存,比一般的for循环遍历复制数组的效率要快很多;
- 每一次对String声明的对象的内容进行修改,得到的都是另外一个新的字符串常量对象,如果字符串常量池中已经存在该字符串常量对象,则不会再创建~
- StringBuffer 有 锁机制 可以保证线程安全 并且有个缓存区
- 在某些情况下(数据量小) 缓存带来的优势 使得StringBuffer 比 StringBuilder 要快
- 在某些情况下(数据量大) 缓存带来的优势 不足以消除锁带来的影响时 使得StringBuilder 比 StringBuffe 要快
Arrays
Java.util包下数组操作的工具类
没有变量 私有无参构造 方法全部静态
| 返回值类型 | 方法 | 功能 |
|---|---|---|
| int | binarySearch(基本数据类型[] a, 基本数据类型 key) | 查找key 在数组中的位置 返回索引 |
| void | sort(基本数据类型[] a) | 排序基本数据类型的数组(升序) |
| int[] | copyOf(int[] original, int newLength) | 复制一个数组 到一个新数组,长度不够的不够的0填充 老数组超"长"的截取 |
| List | asList(T... a) | 返回由指定数组支持的固定大小的列表(参数是任意数量相同类型) |
Date
java.util包下 快被Calendar类取代了
Date 对象里面封装的有到当前的毫秒值 这个毫秒值还可以改变的
你创建对象后 每次打印的内容都不一样
| 返回值类型 | 方法 | 功能 |
|---|---|---|
| long | getTime() | 返回自1970年1月1日以来,由此 Date对象表示的00:00:00 GMT的毫秒 数 |
| long | setTime() | 设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点 |
getTime()得到的是毫秒值 进行精度确定 (类似保留了多少位小数)
比如两次调用getTime()的值是一样的 程序执行也是需要的时间的按说不应该一样
(cpu 主频量级:Ghz-->ns 1ms = 10^6 ns)
SimpleDateFormat
"占位符" a 表示12小时制 配合 h---> 表示1-12的形式表示 12小时制
System
java.lang包下 构造私有化 方法全部静态
| 返回值类型 | 方法 | 功能 |
|---|---|---|
| long | currentTimeMillis() | 返回当前时间(以毫秒为单位) |
| void | exit(int status) | 终止当前运行的Java虚拟机status!=0 非正常终止 |
| void | arraycopy(Object src, int srcPos, Object dest, int destPos, int length) | 将指定源数组中的数组从指定位置复制到目标数组的指定位置。 |
BigDecimal
java.math 包下
用途: 用于精确计算 用于精确计算的话 请使用字符串参数创建对象
类比:超大数计算int存不下了 BigInteger ...
构造方法:
BigDecimal(double val) 参数为double
BigDecimal(String val) 参数为String
常用方法
public BigDecimal add(另一个BigDecimal对象) 加法
public BigDecimal subtract (另一个BigDecimal对象) 减法
public BigDecimal multiply (另一个BigDecimal对象) 乘法
public BigDecimal divide (另一个BigDecimal对象) 除法
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) 除法
常用摄入模式:
BigDecimal.ROUND_UP 进一法
BigDecimal.ROUND_FLOOR 去尾法
BigDecimal.ROUND_HALF_UP 四舍五入
Math
java.lang包下
常用来进行数学计算
math类常用方法
1.public static int abs(int a) 返回绝对值
2.public static double ceil(double a) 返回大于等于参数的最小double值,等于一个整数
3.public static double floor(double a) 返回小于等于参数的最小double值,等于一个整数
4.public static int round(float a) 按照四舍五入返回最接近参数的int
5.public static max(int a, int b) 返回最大值
6.public static min(int a, int b) 返回最小值
7.public static double pow(double a, double b) 返回a的b次幂
8.public static double random() 返回值为double的正值 [0.0, 1.0)随机数
Object
java.lang包下
- 所有类的父类 没有写继承的类 都继承自Object
- equals():让子类重写比较 子类定义的内容
- toString():让子类重写 子类定义的要返回的信息内容
- System.out.print()打印方法中传入引用数据类型时调用的是 Obeje.toString()得到的返回值
//没有重写该方法的类都是比较的地址值
public boolean equals(Object obj) {return (this == obj);}
//没有重写该方法的类都是返回的都是对象的"地址值--哈希值"
public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}
几个面试题的原因
- StringBuilder没有重写equals 比较的是地址值
- String的equals重写了方法 也是先比较地址值 然后比较类型
// 看程序,分析结果
String s = “abc”;
StringBuilder sb = new StringBuilder(“abc”);
s.equals(sb); //---false
sb.equals(s); //---false
基础常用API总结2的更多相关文章
- Java 基础 常用API (Object类,String类,StringBuffer类)
Java API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底 ...
- NodeJS:(二)基础常用API
node.js中文网:http://nodejs.cn/api/ (path.Buffer.events.fs) ①path路径-----const {resolve} = require('path ...
- Java 基础 常用API (System类,Math类,Arrays, BigInteger,)
基本类型包装类 基本类型包装类概述 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类 ...
- Java 基础 常用API ( 正则表达式,Date类,DateFormat类,Calendar类 )
正则表达式 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex). 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个 ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API
森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397 文章- 0 评论- 78 JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...
- Java基础第四天--常用API
常用API 基本类型包装类概述 将基本数据类型封装成对象的好处可以在对象中定义更多的功能方法操作该数据 常用的操作之一:用于基本数据类型与字符串之间的转换 基本数据类型 包装类 byte Byte s ...
- Java基础第三天--内部类、常用API
形参和返回值 抽象类名作为形参和返回值 方法的形参是抽象类名,其实需要的是该抽象类的子类对象 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象 接口名作为形参和返回值 方法的形象是接口名,其实需 ...
- 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...
随机推荐
- JQUERY选择器大全(转载)
在Web应用程序中,大部分的客户端操作都是基于对象的操作,要操作对象就必须先获取对象,jQuery提供了强大的选择器让我们获取对象.我人为地将jQuery选择器分为两大部分:选择对象和筛选条件.选择对 ...
- 艾思软件app开发公司帮您分析:开发一个APP多少钱?
首先你要知道你所要开发的APP, 是不是已经成熟的相同的产品, 如果有的话那还是建议直接购买, 这种已经能满足你需求的成品APP价格会很便宜, 总成本一般也就1到2万的级别. 如果没有那就需要定制开发 ...
- C 系列的暂停
由于Mooc上有关C 的课程并不是很全面,网络上有关于C 的消息过于杂糅,所以暂时停止C的学习,重启时间暂定,等什么时候需要的时候再做重启.
- CentOS7带图形界面不能扫描网卡。
CentOS7在带有图形界面,在配置/sysconfig/network-script/ifcfg-ens*后不能识别到网卡,有可能是NetworkManager打开导致,可以使用systemctl ...
- SQL Server 2014 启动时提示:无效的许可证数据,需要重新安装
路径:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 双击运行DDConfigCA.exe后,Sql Server 20 ...
- 6-SSRF漏洞
1.SSRF漏洞介绍 SSRF是一种由攻击者构造请求,由服务端发起请求的安全漏洞.一般情况下,ssrf攻击的目标是外网无法访问的内部系统. 2.SSRF原理 Ssrf的形成大多是由于服务端提供了从其他 ...
- Mac下python2升级3
1.下载python最新版本 链接:https://www.python.org/downloads/mac-osx/ 安装默认位置为: /Library/Frameworks/Python.fram ...
- redis windows版本安装
1.redis3.0-win版本微软已停止更新 链接:https://github.com/microsoftarchive/redis 非官方在持续更新 链接:https://github.com/ ...
- 痞子衡嵌入式:盘点国内RISC-V内核MCU厂商(2018年发布产品)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商(2018). 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量 ...
- 看了还不懂b+tree的本质就来打我
看了还不懂b+tree的本质就来打我 大家好,我是蓝胖子. 今天我们来看看b+tree这种数据结构,我们知道数据库的索引就是由b+tree实现,那么这种结构究竟为什么适合磁盘呢,它又有哪些缺点呢? 我 ...