Day14 常用API
1. String
1.1 概述
java.lang.String :是字符串类 底层就是一个final修饰的char数组,所以String很多特性就是数组的特性,比如一旦确定,长度 不能更改
1 字符串一旦创建,这个字符串对象不能再更改
2 为了提升字符串的访问和存储效率,java虚拟机采用了一种缓存机制,把字符串都保存在了字符串常量池中
3 在程序执行过程中,假如要用到一个字符串a String s1 = "a"; 先去字符串常量池中检索,是否有a,如过没有就创建一份
假如 有了 String s2 = "a"; 就不再创建,把已有的这个a 返回
所以 导致 String s1 = "a" String s2 = "a" 此时 s1 == s2 他也是true,因为他们指向同一个字符串对象 就是a
1.2 基本使用
// 第一部分 创建1个对象,因为他们都指向常量池
String s1 = "a";
String s2 = "a";
// 比较值 true
System.out.println(s1.equals(s2));
// 比较地址 true
System.out.println(s1 == s2);
// String 一旦创建不能更改的意思,并不是这个s1变量不能更改,二十 变量指向的对象中的数据不能更改
s1 = "b";
// 第二部分,如果使用new的方式,那么会创建堆内存对象,该字符串对象会保存在堆内存中
String s3 = new String("a");
String s4 = new String("a");
// 因为s3和s4不指向常量池,二十分别指向了堆内存,所以地址不同,为false
System.out.println(s3 == s4);
// 但是String中覆写了equals方法.比较值,所以是true
System.out.println(s3.equals(s4));
1.3 不要频繁拼接
因为字符串创建之后不能更改,如果频繁拼接的话,效率很低,并且垃圾回收可能也会出现问题
1.4 构造方法
// 1 字面量
String s1 = "asda";
// 2
String s2 = new String("xxx");
// 3 字节数组
byte[] bytes = {97,98,99,100,101,102};
String s3 = new String(bytes);
//abcdef
System.out.println(s3);
// 字节数组,只截取一部分,4表示起始下标(包含),2表示个数
String s4 = new String(bytes,4,2):
// ef
System.out.println(s4);
// 5 字符数组
char[] chars = {'a','b','c','d'};
String s5 = new String(chars);
System.out.println(s5);
// 6 字符数组,只截取一部分,1表示起始下标(包含),2表示个数
String s6 = newsString(char,1,2);
System.out.println(s6):
1.5 常用方法
学习API:
1 功能是什么
2 入参和出参是什么
3 怎么用
// 1 charAt(int index): 返回该字符串中,指定位置的字符
String s1 = "qweqweqwe";
char c1 = s1.charAt(2):
// e
System.out.println(c1);
// 2 boolean endsWith(String suffix) : 判断该字符串是否以指定字符串结尾
// boolean startWith(String prefix) : 同上,判断开始
System.out.println("Hello.java".endWith(".java"));
// 注意空格 , 有空格就匹配不上了
System.out.println("Hello.java".endsWith(".java"));
// 3 boolean equalsIgnoreCas(String str): 不区分大小写比较两个字符串是否相等
System.out.println("abc".equalsIgnoreCase("aBc"));
// 4 byte[] getBytes(): 把字符串转换为字节数组并返回
byte[] bytes = "abc".getBytes();
for(int i = 0;i<bytes.length;i++){
System.out.println(bytes[i]);
}
// 5 char[] toCharArray(); 把字符串转换为字符数组并返回
char[] chars = "abc".toCharArray();
for(int i = 0;i<char.length;i++){
System.out.println(char[i]);
}
// 6 int indexOf(String str): 获取该字符串中指定字符串的起始索引,找不到返回-1
System.out.println("dasdsa".indexOf("sd"));// 2
System.out.println("asdasdas".indexOf("kda")); //-1
// 7 int indexOf(Sting str,int index);
// 从指定位置开始查找(包含),获取该字符串中指定字符串的起始索引,找不到返回-1
System.out.println("askasdasd".indexOf("a",5));// -1
// 8 index lastIndexOf(String str): 同上,最后一次出现的索引 找不到返回-1
System.out.println("asdasd".lastindexOf("a"));// 3
// 9 int length(): 返回该字符串的长度
System.out.println("abc".length());
// 10 String replaceAll(String regex . String replacement);
// 替换指定字符,支持正则表达式
// String replace (String str . String replacement); 不支持正则表达式
// 用 1 把 a 替换了并返回新的字符串
// 支持正则表达式,但是没有写正则表达式 是没有区别的
System.out.println("hucgasdqweasd".replaceAll("a", "1"));
System.out.println("dhiasdhias",replace("a","1"));
// 因为 . 在正则表达式中,代表任意字符
System.out.println("qwe.tre.nfoia.dasnm".replaceAll(".","."));
// 可以使用 \ 转义
System.out.println("qwe.try.yui.uio".replaceAll("\\",","));
System.out.println("qwe.try.yui.uio".replace(".",","));
// 11 String[] split(String regex): 分割字符串,返回字符串数组,支持正则表达式,注意.....
// 点,需要转义
String s2 = "2022.1.14";
String[] arr = s2.split("\\.");
for(int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
// 12 String substring(int begin); 获取该字符串中,以某下标起始的子字符串(包含)
System.out.println("abcdef".substring(2));// cdef
// 13 String substring(int begin , int end );
// 获取 该字符串中,以某个下标起始(包含)到某个下标结束的子字符串(不包含)
System.out.println("abcdef",substring(2,4));// cd
// 14 String trim(): 去除字符串两边的空格
System.out.println(" a dsadas ");
System.out.println(" a d asdas .trim()");
// 15 String toUpperCase(): 转大写
// String toLowerCase(); 转小写
System.out.println("asd".toUpperCase());
// 16 static String valueOf(Object obj);
// 调用该对象的toString 方法 , 如果为null, 则不再调用 toString 而是返回字符串null
String_05 s = null;
// 打印一个引用类型的时候,会自动调用 String 的valueOf 所有 会自动调用toString方法
System.out.println(s);
1.6 注意
// 1
String a = "a";
String b = "b";
String str = "ab";
// 字面量相加 在编译阶段,就把+去掉了
String d = "a" + "d";
//true
System.out.println(d == str);
//true
System.out.println(d.equals(str));
//变量相加,因为变量的值是可变的,运算之前没有办法确定变量的值,
//所以没有办法优化,只能转换为new的方式,重新创建并拼接字串符
String c = a + b ;
String e = a + "b";
//false
System.out.println(c==str);
//true
System.out.println(c.equals(str));
// 上面相加 因为变量的值 无法确定 , 如果声明为常量,则可以优化
String str1 = "ab";
final String a1 = "a";
final String b1 = "b";
String c1 = a1 + b1;
System.out.println(c1 == str1);
// 创建几个对象? 1个
String xx = "a"+"b"+"c"+"d";
2 StringBuffer和StringBuilder
2.1 概述
2.2 基本使用
2.3 常用方法
3. 包装类
3.1 概述
1. 装箱就是自动将基本数据类型转换为包装器类型
2. 拆箱就是自动将包装器类型转换为基本数据类型
3.2 使用
3.3 Integer
3.3.1 基本使用
3.3.2
3.3.3 常用方法
3.3.4 自动装箱和自动拆箱
3.3.5 深入整型常量池
// 判断当前这个数值 是否在 -128~127之间
如果不再范围内 就直接new对象
3.3.6 总结
4. System
4.1 概述
System类提供的public static long currentTimeMillis()用来返回当前时 间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
此方法适于计算时间差。
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。 该类位于java.lang包。
由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用。
成员变量
System类内部包含in、out和err三个成员变量,分别代表标准输入流
(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。
成员方法
native long currentTimeMillis():
该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时
间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
void exit(int status):
该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表
异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。
4.2 常用方法
5. Date
5.1 概述
获取时间和时间操作
5.2 构造方法
5.3 常用方法
5.4 格式化
5.5 Calendar
6. Random
6.1 概述
随机数 从 0 开始
6.2 使用
Day14 常用API相关推荐
- day-14 常用API
1.String 1.1 概述 java.lang.String:是字符串类,底层就是一个final修饰的char数组,所以String很多特性就是数组的特性 比如 一旦确定长度,不能更改 ①字符串一 ...
- c++ string replace_JAVA应用程序开发之String类常用API
[本文详细介绍了JAVA应用开发中的String类常用API,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 API ( Application Interface 应用程序接口)是类中提供的接口, ...
- 常用API(Object、String、StringBuffer、用户登陆注册)
常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...
- Selenium Web 自动化 - Selenium常用API
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作 1.1 用webdriver打开一个浏览器 1.2 最大化浏览器&关闭浏 ...
- 【Netty】NIO 网络通信 SelectionKey 常用 API 简介
文章目录 I . SelectionKey 简介 II . SelectionKey 事件简介 III . SelectionKey 常用 API 简介 I . SelectionKey 简介 1 . ...
- JavaScript一些常用 API整理汇总
JavaScript一些常用 API整理汇总 Array new Set() 数组去重 const arr = [3,4,4,5,4,6,5,7]; console.log(new Set(arr)) ...
- Math工具类常用API使用案例
对基础API的使用能够熟练掌握,能极大提高开发效率.有些知识是很简单,但并不是我们不学习和掌握它们的借口,越是简单的东西,在关键时刻越是能起到至关重要的作用,就好比我们花很长时间解决的一个BUG,结果 ...
- Hibernate一级缓存常用API
一级缓存特点: 当我们通过session的save,update saveOrupdate进行操作时,如果一级缓存中没有对象,会将这些对象从数据库中查询到,存储到一级缓存. 当我们通过session的 ...
- Object类、常用API
# [Object类.常用API] ## 主要内容 * Object类 * Date类 * DateFormat类 * Calendar类 * System类 * StringBuilder类 * 包 ...
最新文章
- JVM—垃圾回收与算法
- 安装memcached服务和PECL关于memcache的两个PHP扩展
- Handler用法总结
- Windows phone7 动态添加控件
- caffe和caffe-yolov3编译出错:fatal error: caffe/proto/caffe.pb.h: No such file or directory
- 图书馆学应掌握计算机知识,图书馆学专业基础知识点整理.doc
- android 开源 视频播放器,安卓视频播放器——ijkPlayer(Bilibili开源)
- SPSS实现两变量偏相关分析
- 随笔 M330华为盒子 4k播放
- matlab输出工作区,matlab保存工作区数据
- app邀请分享免填邀请码解决方案-邀请机制的要点、形式
- 数独游戏代码C++解法
- 天呐。怎么修改上传资源积分的?
- SpringBoot+OAuth2+Google关联登录
- CISSP 报名保姆级教程
- SSLOJ 1165.穹妹的求助
- 阿里DataV 2016双十一媒体大屏回顾技术分享
- KVstore 笔记【随时增】
- Ubuntu音乐播放器
- 解决WORD疑难之:设置节起始页码后出现诡异隐藏页/跳页、节首页页面边框丢失
热门文章
- 翟山鹰“生态宇宙”重磅首发 缔造超级共赢生态
- iOS 下载器实现-ASDownload
- Oracle域完整性约束
- 高考恋爱100天 完全攻略
- 兽医外科设备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- python爱意满满_抖音ohbaby你就是我最想要的是什么歌 歌曲分享
- [系统] Deepin系统常见问题解决(持续更新)
- js实现:百钱买百鸡, 求红白黑球的个数
- AI未来是什么样子,这些科幻电影里已经有了答案
- c语言中字母大写转小写,C语言中字母大小写转换的简单操作