十一. 常用类

ops/2024/10/22 16:40:00/

文章目录

  • 一、包装类
    • 1.1 包装类的继承关系
    • 1.2 包装类和基本数据类型的转换
    • 1.3 包装类与String之间的转换
    • 1.4 包装类的常用方法
  • 二、String类
    • 2.1 String类的理解和创建对象
    • 2.2 String的创建方式
    • 2.3 字符串的特性
    • 2.4 String的常用方法
  • 三、StringBuffer和StringBuilder类
    • 3.1 StringBuffer类
      • 3.1.1 StringBuffer类基本介绍
      • 3.1.2 String VS StringBuffer
      • 3.1.3 StringBuffer的构造器
      • 3.1.4 String与StringBuffer之间的转换
      • 3.1.5 StringBuffer类常见方法
    • 3.2 StringBuilder类
    • 3.3 String、StringBuffer与StringBuilder的比较
  • 四、Math类
  • 五、Date日期类、Calender日历类以及新的日期
    • 5.1 第一代日期类
    • 5.2 第二代日期类
    • 5.3 第三代日期类
  • 六、System类
  • 七、Arrays类
  • 八、BigInterger类和BigDecimal
  • 九、经典例题
    • 9.1 Integer的创建机制
    • 9.2 String 相关题

一、包装类

1.1 包装类的继承关系

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2 包装类和基本数据类型的转换

在这里插入图片描述

java">public class Test{public static void main(String[] args){int n1 = 12;Integer n2 = n1; // 底层使用 valueOf 方法int n3 = n2; // 底层使用 intValue 方法}
}

1.3 包装类与String之间的转换

java">public class WrapperVSSring{public static void main(String[] args){// 包装类 (Integer) -> StringInteger i = 100; // 自动装箱// 方式1String str1 = i + "";// 方式2String str2 = i.toString();// 方式3String str3 = String.valueOf(i);// String -> 包装类(Integer)String str4 = "12345";Integer i2 = Integer.parseInt(str4); // 使用到自动装箱Integer i3 = new Integer(str4);}
}

1.4 包装类的常用方法

在这里插入图片描述

二、String类

2.1 String类的理解和创建对象

在这里插入图片描述

在这里插入图片描述

java">package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class String01 {public static void main(String[] args) {// 1. String 对象用于保存字符串,也就是一组字符序列// 2. "jack" 字符串常量,双引号括起来的字符序列// 3. 字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节// 4. String 类有很多构造器,构造器的重载//    常用的有 String s1 = new String();//    String s2 = new String(String original);//    String s3 = new String(char[] a);//    String s4 = new String(char[] a,int startIndex,int count)//    String s5 = new String(byte[] b)// 5. String 类实现 接口 Serializable 【String 可以串行化:可以在网络传输】//                 接口 Comparable [String 对象可以比较大小]// 6. String 是final类,不能被其他类继承// 7. String 有属性 private final char value[];用于存放字符串内容// 8. 一定要注意: value 是一个final类型,赋值后,不可以修改(需要功力):// 即:value不能指向新的地址,但是单个字符内容是可以变化的String name = "jack";name = "tom";final char[] value = {'a','b','c'};char[] v2 = {'t','o','m'};value[0] = 'H'; // 可以修改堆中字符数组空间中的元素
//        value = v2; // 不能修改value的指向}
}

2.2 String的创建方式

在这里插入图片描述

在这里插入图片描述

2.3 字符串的特性

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

java">package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class String02 {public static void main(String[] args) {String a = "a"; // 在常量池中创建"a"对象String b = "b"; // 在常量池中创建"b"对象// 解读// 1. 先 创建一个 StringBuilder sb = new StringBuilder();// 2. 执行 sb.append("a");// 3. sb.append("abc");// 4. String c = sb.toString()// 最后其实 c 指向堆中的对象(String),value[] -> 池中 "ab"String c = a + b;String d = "ab";System.out.println(c == d); // false}
}

2.4 String的常用方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

三、StringBuffer和StringBuilder类

3.1 StringBuffer类

3.1.1 StringBuffer类基本介绍

在这里插入图片描述

java">package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class StringBuilder01 {public static void main(String[] args) {// 老韩解读// 1. StringBuilder 的直接父类 是 AbstractStringBuilder// 2. StringBuilder 实现了 Serializable,即StringBuffer的对象可以串行化// 3. 在父类中 AbstractStringBuilder 有属性 char[] value,不是final!// 该 value 数组存放 字符串内容,指向堆中的对象(不同于String 的 value 指向常量池)// 4. String 是 final 类,不能被继承// 5. 因为 StringBuffer 字符内容是存在 char value, 所以在变化(增加/删除)// 不用每次都更换地址(即不是每次创建新对象),所以效率高于 StringStringBuilder stringBuilder = new StringBuilder;}
}

3.1.2 String VS StringBuffer

在这里插入图片描述

3.1.3 StringBuffer的构造器

在这里插入图片描述

3.1.4 String与StringBuffer之间的转换

在这里插入图片描述

3.1.5 StringBuffer类常见方法

在这里插入图片描述

3.2 StringBuilder类

在这里插入图片描述

在这里插入图片描述

java">package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class StringBuilder01 {public static void main(String[] args) {// 1. StringBuilder 继承 AbstractStringBuilder 类// 2. 实现了 Serializable ,说明 StringBuilder对象时可以串行化(对象可以网络传输,可以保存到文件)// 3. StringBuilder 是final类,不被继承// 4. StringBuilder 对象字符序列是存放在其父类 AbstractStringBuilder 的 char[] value;// 5. StringBuilder 的方法,没有做互斥的处理,即没有synchronized 关键字,因此在单线程的情况下使用// StringBuilderStringBuilder stringBuilder = new StringBuilder();}
}

3.3 String、StringBuffer与StringBuilder的比较

在这里插入图片描述

在这里插入图片描述

四、Math类

在这里插入图片描述

五、Date日期类、Calender日历类以及新的日期

5.1 第一代日期类

在这里插入图片描述

在这里插入图片描述

5.2 第二代日期类

在这里插入图片描述

在这里插入图片描述

5.3 第三代日期类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

六、System类

在这里插入图片描述

七、Arrays类

在这里插入图片描述

在这里插入图片描述

八、BigInterger类和BigDecimal

在这里插入图片描述

在这里插入图片描述

九、经典例题

9.1 Integer的创建机制

java">public void main(String[] args){Integer i = new Integer(1);Integer j = new Integer(1);System.out.println(i == j); // 创建两个对象空间,falseInteger m = 1; // 底层 Integer.valueOf(1)Integer n = 1; //  底层 Integer.valueOf(1)System.out.println(i == j); // -128 ~ 127 范围内返回的是缓存中的 Integer 对象,trueInteger x = 128;Integer y = 128;System.out.println(x == y); //  -128 ~ 127 范围内返回的是缓存中的 Integer 对象,falseInteger i1 = 127; // 底层 Integer.valueOf()int i2 = 127;System.out.print(i1 == i2); // 只要有基本数据类型,判断的是值是否相等(即:转换为基本数据类型相比较)
}

9.2 String 相关题

  • String.intern方法解读
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

java">package com.str_;/*** @author Gao YongHao* @version 1.0*/
public class String02 {public static void main(String[] args) {String a = "a"; // 在常量池中创建"a"对象String b = "b"; // 在常量池中创建"b"对象// 解读// 1. 先 创建一个 StringBuilder sb = new StringBuilder();// 2. 执行 sb.append("a");// 3. sb.append("abc");// 4. String c = sb.toString()// 最后其实 c 指向堆中的对象(String),value[] -> 池中 "ab"String c = a + b;String d = "ab";System.out.println(c == d); // false}
}

http://www.ppmy.cn/ops/103838.html

相关文章

go+gin+vue入门

后端框架 1、安装go、goland 2、创建空项目 3、下载要用的包:命令行输入go get -u github.com/xxxx 4、安装mysql数据库,使用navicat创建数据库。 5、按照项目框架搭建目录、文件、代码:如router、model… 6、运行测试,go run ma…

如何进行网站性能优化:从内容到服务器、前端与图片的全面指南

在当今竞争激烈的互联网环境中,网站性能优化变得尤为重要。快速的加载时间不仅能提升用户体验,还能提高搜索引擎排名。以下是从内容优化、服务器配置、前端技术、Cookie处理到图片优化等方面的全面指南,以帮助你提升网站的整体性能。 内容方…

Spring Boot集成Stripe快速入门demo

1.什么是Stripe? 一体化全球支付平台,开启收入增长引擎,针对不同规模业务打造的支付解决方案,满足从初创公司到跨国企业的多维度需求,助力全球范围内线上线下付款。 转化更多客户: 通过内置的优化功能、100 多种支付…

WPF中使用Echarts显示图表

在WPF中使用ECharts来显示图表,你需要将ECharts嵌入到WPF应用程序中。我们这里介绍两种方法显示图表: 目录 一、ECharts是一个基于JavaScript的开源可视化图表库,因此我们需要使用WebView控件来承载一个嵌入式浏览器,这样就可以…

Idea_服务器自动化部署_傻瓜式教程

使用Alibaba Cloud Toolkit 在 IntelliJ IDEA 中一键部署项目到服务器 1. 安装 Alibaba Cloud Toolkit 插件 确保 IntelliJ IDEA 版本为 2018.3 或以上。打开 IntelliJ IDEA,进入 File -> Settings -> Plugins,搜索并安装 Alibaba Cloud Toolkit…

asio之服务的理解

服务组件 asio中的服务抽象为io_service::service #mermaid-svg-artyBUb0hnZdT3xh {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-artyBUb0hnZdT3xh .error-icon{fill:#552222;}#mermaid-svg-artyBUb0hnZdT3xh .er…

Redis高可用方案:使用Keepalived实现主备双活

注意:请确保已经安装Redis和keepalived,本文不在介绍如何安装。 1、使用版本说明 Redis版本:5.0.2 Keepalived版本:1.3.5 Linux 版本:Centos7.9 查看Redis版本: /usr/local/redis/bin/redis-cli -v查…

HarmonyOS NEXT 实战开发:实现日常提醒应用

为什么要开发这个日常提醒应用? 最近鸿蒙热度一直不减,而且前端的就业环境越来越差,所以心里面萌生了换一个赛道的想法。HarmonyOS NEXT 是华为打造的国产之光,而且是纯血版不再是套壳,更加激起了我的好奇心。ArkTS是…