JavaAPI常用类02

news2025/1/16 18:50:32

目录

基本数据类型封装类

 包装类常用属性方法

8中基本数据类型各自所对应的包装类

以下方法以java.lang.Integer为例

代码

 运行

装箱和拆箱

装箱

何为装箱

代码

范围问题

代码

运行 

拆箱

代码

String类

概述

代码

运行

创建形式

画图讲解

代码

运行 

构造方法

代码

运行 

成员方法

判断功能

代码

 运行

获取功能

代码

运行 

转换功能

代码

运行 

替换功能  去除字符串两侧空格

代码

运行

StringBuffer类与StringBuilder类

StringBuffer类

添加功能

代码

运行 

删除功能

代码

运行

替换功能

代码

运行

反转功能

代码

运行

StringBuilder类

代码

运行

String类 --StringBuffer类--StringBuilder类


基本数据类型封装类

对于包装类来说,这些类的用途主要包含两种:

● 作为和基本数据类型对应的类类型存在。

● 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操 作方法

 包装类常用属性方法

8中基本数据类型各自所对应的包装类

以下方法以java.lang.Integer为例

代码
package com.ffyc.javaapi.datatype;

import java.util.Scanner;

public class IntegerDemo1 {
    public static void main(String[] args) { 

        //如何获得一个int类型的包装对象
        //通过构造方法 new
        Integer a = new Integer(10);
        System.out.println(a);//10
        Integer b = new Integer("8");
        System.out.println(b);//8
        //通过valueOf()方法
        Integer c = Integer.valueOf(10);
        System.out.println(c);//10
        Integer d = Integer.valueOf("8");
        System.out.println(d);//8

        //非静态方法 直接对包装对象中的值操作
        int i = a.compareTo(b);//比较大小 返回-1 0 1
        System.out.println(i);//1
        System.out.println(a == b);//地址比:false
        System.out.println(a.equals(b));//数值比:false
        int j = a.intValue();//取出包装类型中的基本数据类型的值
        System.out.println(j);//10

        //静态方法 需要传参
        int e = Integer.compare(10, 8);
        System.out.println(e);//1
        String f = Integer.toHexString(12138);
        System.out.println(f);//返回16进制
        Integer.max(10, 8);

        int g = Integer.parseInt("20");//把字符串类型数值 转为基本类型int

    }
}
 运行

装箱和拆箱

装箱

何为装箱

         装箱:将基本类型可以自动转为包装类型
              int a = 10;
              Integer a1 = Integer.valueOf(a);
              Integer a2 = new Integer(a);

              Integer aa = a;自动装箱 直接把基本类型 赋值给包装类型
                                     底层是默认调用valueOf(a); 

代码
package com.ffyc.javaapi.datatype;

public class IntegerDemo2 {
    public static void main(String[] args) {
        int a = 10;
        Integer aa = a;
    }
}
范围问题

          public static Integer valueOf(int i) { 

             if (i >= IntegerCache.low && i <= IntegerCache.high)
                 return IntegerCache.cache[i + (-IntegerCache.low)];
             return new Integer(i);
          }
          自动装箱时,默认调用Integer类中valueOf(),
          这份方法内部对-128 -- +127之间进行缓存(数组),在此区间的自动装箱,不会创建新的Integer对象,直接从数组中获取即可
          超出此区间后,每次都会new 新的Integer对象 

代码
package com.ffyc.javaapi.datatype;

public class IntegerDemo3 {
    public static void main(String[] args) { 
        Integer a = 18;
        Integer b = 18;
        System.out.println(a == b);//true
        System.out.println(a.equals(b));//true

        Integer c = Integer.valueOf(128);
        Integer d = Integer.valueOf(128);
        System.out.println(c == d);//false
        System.out.println(c.equals(d));//true
    }
}
运行 

拆箱

         拆箱:将包装类型可以自动转为基本类型 型
                   底层用到的是intValue();

代码
package com.ffyc.javaapi.datatype;

public class IntegerDemo2 {
    public static void main(String[] args) { 
        int a = 10;
        Integer aa = a;

        int bb = aa;
    }
}

String类

概述

      Java.lang.String代表字符串
      Java中凡是""括起来的 都是String类的实例(对象)
      字符串的值不可改变的,一旦字符串对象被创建,它的值就不能改变了

      底层存储字符串内容的数组,是被final修饰的,必须在对象创建之处由构造方法去创建
      private final char value[];

      String s = "abc";   abc
             s += "aaa";  abcaaa
             s += "bbb";  abcaaabbb
             s += "ccc";  abcaaabbbccc  每次+= + 其实都是创建了一个新的字符串对象 

代码
package com.ffyc.javaapi.stringdemo;

public class StringDemo1 { 
    public static void main(String[] args) {
        String s = "abc";//[a,b,c]
        s += "aaa";
        s += "bbb";
        s += "ccc";
        System.out.println(s);
    }
}

运行

创建形式

      Java中字符串创建的两种方式
      方式一:
        String s1 = "abc";
        String s2 = "abc";
        在第一次创建s1变量时,会去内存中有一个叫字符串常量池的空间检索,有没有此内容的一个字符串对象,
        如果没有,就会在字符串常量池中创建一个字符串对象,把对象的地址赋给s1.
        在第二次创建s2变量时,会去字符串常量池中查找,如果有,直接将之前创建的字符串对象赋值给s2.
        一旦出现要创建的字符串对象内容一致,返回拿到的是同一个字符串对象的地址
      方式二:
        String s3 = new String("abc");
        String s4 = new String("abc");
        无论是否存在相同内容的字符串对象,都会创建一个新的字符串对象

画图讲解

代码
package com.ffyc.javaapi.stringdemo;

public class StringDemo2 { 
    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);//true
        System.out.println(s1.equals(s2));//true

        s1 += "aaa";
        System.out.println(s1);

        String s3 = new String("abc");
        String s4 = new String("abc");
        System.out.println(s3 == s4);//false
        System.out.println(s3.equals(s4));//true
    }
}
运行 

构造方法

     String 构造方法 
     String(); 无参
     String("abc");有参
     String(byte[] bytes);
     String(char[] bytes); 

代码
package com.ffyc.javaapi.stringdemo;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class StringDemo3 { 
    public static void main(String[] args) throws UnsupportedEncodingException {
        String s1 = new String();//  this.value = "".value;
        String s2 = new String("abc");

        String s3 = "abc你好";
        //把字符串转为byte类型  转码
        //byte[] bytes = s3.getBytes();
        //把字符串转为byte类型  转码
        byte[] bytes = s3.getBytes("utf-8");
        System.out.println(bytes);//[B@1b6d3586
        System.out.println(Arrays.toString(bytes));//[97, 98, 99, -28, -67, -96, -27, -91, -67]

        //String s4 = new String(bytes);解码
        String s4 = new String(bytes,"utf-8");//解码
        System.out.println(s4);//abc你好

        String s5 = "bced";
        //字符串--->转为char数组
        char chars[] = s5.toCharArray();
        Arrays.sort(chars);
        //char数组--->字符串
        String s6 = new String(chars);
        System.out.println(s6);//bcde

    }
}
运行 

成员方法

判断功能

      成员方法
      ● 判断功能
         boolean equals(Object obj)
         boolean equalsIgnoreCase(String str)
         boolean contains(String str)
         boolean isEmpty()D
         boolean startsWith(String prefix)
         boolean endsWith(String suffix) 

代码
package com.ffyc.javaapi.stringdemo;

public class StringDemo4 { 
    public static void main(String[] args) {
        String s1 = "abcd";
        String s2 = "";
        //null--->关键字  ""--->字符串对象的值是""
        //String s3 = null; 

        //判断值是否相等
        System.out.println(s1.equals("abcd"));//true
        //忽略大小写
        System.out.println(s1.equalsIgnoreCase("abcD"));//true 

        //判断是否包含子串(字串必须是连续的)
        System.out.println(s1.contains("ab"));//true
        System.out.println(s1.contains("ab"));//true
        System.out.println(s1.contains("ac"));//false  

        //判断是否是空串""
        System.out.println(s1.isEmpty());//false
        System.out.println(s2.isEmpty());//true 
        //System.out.println(s3.isEmpty());

        //判断是否以指定的子串开头
        System.out.println(s1.startsWith("ab"));//true  
        //判断是否以指定的子串结尾
        System.out.println(s1.endsWith("bd"));//false  
    }
}
 运行

获取功能

      成员方法 
      ● 获取功能
         int length()
         char charAt(int index)
         int indexOf(String str)
         int indexOf(String str,int fromIndex)
         String substring(int start)
         String substring(int start,int end) 

代码
 package com.ffyc.javaapi.stringdemo;

 public class StringDemo5 { 
    public static void main(String[] args) {
        String s1 = "abcdcde";
                   //0123456
        //获取长度
        System.out.println(s1.length());//4 
        //通过索引找位置
        System.out.println(s1.charAt(1));//b 
        //返回指定字符首次出现的位置
        System.out.println(s1.indexOf("c"));//2 
        //返回指定字符串首字母首次出现的位置
        System.out.println(s1.indexOf("c"));//2
        //从指定位置开始查找
        System.out.println(s1.indexOf("c", s1.indexOf("c")+1));//4 
        //从后向前查找
        System.out.println(s1.lastIndexOf("c"));// 4
        //从指定位置开始查找
        System.out.println(s1.lastIndexOf("c", 3));//2 

        /*//从指定的位置开始截取字符串,返回一个新的子字符串
        String s = s1.substring(3);
        System.out.println(s);//dcde*/
        //从指定的位置开始到指定的位置结束(不包含结束)截取字符串,返回一个新的子字符串
        String s = s1.substring(0,4);
        System.out.println(s);//abcd
    }
}
运行 

转换功能

      构造方法 
      ● 转换功能
         byte[] getBytes()
         char[] toCharArray()
         static String valueOf(char[] chs)
         String toLowerCase()
         String toUpperCase()
         String concat(String str)
         Stirng[] split(分割符); 

代码
package com.ffyc.javaapi.stringdemo;

import java.util.Arrays;

public class StringDemo6 { 
    public static void main(String[] args) {
        Integer a = null;
        //System.out.println(a.toString());
        //把其他类型转为字符串 建议使用的,避免出现空指针异常
        String s = String.valueOf(a);
        System.out.println(s);

        char[] c = {'a','b','c'};
        //基本数据类型转成字符串表示形式
        String s1 = String.valueOf(c);
        System.out.println(s1);//abc

        String s2 = "abcDEF你好";
        //将字符串的所有字符转换为小写字母。
        System.out.println(s2.toLowerCase());//abcdef你好
        //将字符串的所有字符转换为大写字母。
        System.out.println(s2.toUpperCase());//ABCDEF你好

        String s3 = s2.concat("wwwww");
        //将指定的字符串拼接到字符串末尾,返回一个新的字符串
        System.out.println(s3);//abcDEF你好wwwww

        String s4 = "abc;de;fg";
        //正则表达式  使用指定的一个字符,将字符串分割为一个String类型数组
        String[] strings = s4.split(";");
        System.out.println(Arrays.toString(strings));//[abc, de, fg]
    }
}
运行 

替换功能  去除字符串两侧空格

      构造方法 
      ● 替换功能
         String replace(char old,char new)
         String replace(String old,String new)
         replaceAll(String regex, String replacement)
         replaceFirst(String regex, String replacement)
      ● 去除字符串两空格
         String trim() 

代码
package com.ffyc.javaapi.stringdemo;

public class StringDemo7 { 
    public static void main(String[] args) {
        String s1 = "abcdecfg";
        //替换字符串中指定字符的所有值
        System.out.println(s1.replace('c', 'C'));//abCdeCfg
        System.out.println(s1.replace("cd", "jj"));//abjjecfg

        //replaceAll()使用正则表达式匹配需要替换的内容
        System.out.println(s1.replaceAll("c", "CC"));//abCCdeCCfg
        System.out.println(s1.replaceFirst("c", "o"));//abodecfg

        String s2 = " asd sax ";
        System.out.println(s2.length());//9
        //求字符串长度
        System.out.println(s2.trim().length());//7
        System.out.println(s2.replace(" ", "").trim().length());//6
    }
}
运行

StringBuffer类与StringBuilder类

StringBuffer类

     因为String声明的对象值一旦给定不能再改变
     每次拼接都会创建新的字符串对象,耗时占用空间

     StringBuffer是内容可以改变的字符串
     char[] value;没有使用final修饰,每次添加内容都是对此数组进行操作,不会创建新的字符串对象 

添加功能

代码
package com.ffyc.javaapi.stringdemo;

public class StringBufferDemo { 
    public static void main(String[] args) {
        //添加功能
        //创建一个内容长度+16的char数组 20
        StringBuffer s1 = new StringBuffer("abcd");
        System.out.println(s1.append("efg"));

        //空参的构造方法 指定底层数组的长度是16
        StringBuffer s2 = new StringBuffer();
        System.out.println(s2.append("cz"));

        //自定义容量  自动扩容
        StringBuffer s3 = new StringBuffer(10);
        s3.append("chjbp");
        s3.append("kl");
        System.out.println(s3.append("ffgg"));

        //指定位置添加元素
        StringBuffer s4 = new StringBuffer("abc");
        System.out.println(s4.insert(2, "A"));
    }
}
运行 

删除功能

代码
package com.ffyc.javaapi.stringdemo;

public class StringBufferDemo { 
    public static void main(String[] args) {
        //删除功能
        StringBuffer s1 = new StringBuffer("abcd");
        //删除指定位置元素
        System.out.println(s1.deleteCharAt(2));
        //删除指定位置的元素 包含开始位置,不包含结束位置
        System.out.println(s1.delete(0, 2)); 
    }
}
运行

替换功能

代码
package com.ffyc.javaapi.stringdemo;

public class StringBufferDemo { 
    public static void main(String[] args) { 
        //替换功能
        StringBuffer s1 = new StringBuffer("abcalkdswbc");
        //替换指定区间元素,包含开始位置,不包含结束位置
        System.out.println(s1.replace(0, 3, "aaa"));
    }
}
运行

反转功能

代码
package com.ffyc.javaapi.stringdemo;

public class StringBufferDemo { 
    public static void main(String[] args) { 
        //反转功能
        StringBuffer s1 = new StringBuffer("abcdefg");
        //将字符串逆序
        System.out.println(s1.reverse());
        //截取字符串,从StringBuffer中截取一个字符串副本,返回一个新的String对象,StringBuffer对象本身不变
        String str = s1.substring(0, 3);
        System.out.println(str);
    }
}
运行

StringBuilder类

StringBuilder类功能和StringBuffer功能完全一致, StringBuffer是线程 安全的

代码
package com.ffyc.javaapi.stringdemo;

public class StringBuilderDemo { 
    public static void main(String[] args) {
        StringBuilder s1 = new StringBuilder();
        StringBuilder s2 = new StringBuilder("abcd");
        StringBuilder s3 = new StringBuilder(10);
        System.out.println(s2.append("efg"));
        System.out.println(s2.insert(1, " "));
    }
}

运行

String类 --StringBuffer类--StringBuilder类

      String:是一个值不可以改变的字符串 
      StringBuffer:值可以改变且不需要创建新对象,方法上都加了锁,是在多线程(任务)执行时是线程安全的
      StringBuilder:值可以改变且不需要创建新对象,由于方法上都没有枷锁,在多线程(任务)执行时是线程不安全的,适合单线程 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1470489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang通过http访问外部网址

不同项目之前,通过http访问,进行数据沟通 先设定一个接口,确认外部能访问到 PHP写一个接口 public function ceshi_return() {$data $this->request->param();$id $data[id];$res Db::name(user)->field(id,status,price,name)->where([id>$id])->find…

数据可视化基础与应用-01-课程目标与职位分析

总结 本系列是数据可视化基础与应用的第01篇&#xff0c;主要介绍本门课程的课程目标与职位分析 教材 数据可视化基础与应用 课程教学方法 布鲁姆教学法 认知领域&#xff08;cognitive domain&#xff09; 1.知道&#xff08;知识&#xff09;&#xff08;knowledge&#…

Jitsi Meet 大型视频会议调优方案

jitsi meet 大型视频会议调优方案 在举办一些大型会议的时候,比如100个人会议,为了节约宽带和节省资源,我们并不会选择传输全部的音视频资源。 举个例子,比如100个人线下会议,如果大家都说话的情况下,大家要么听不清,要么听得是声音最大的那几个人。 视频会议也可以借…

数据结构之顺序表链表

一、线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直…

模型 OIIC(目标、障碍、洞察、挑战)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_总纲目录。沟通方案工具。 1 OIIC(目标、障碍、洞察、挑战)模型的应用 1.1 OIIC 驱动的汽车配件渠道优化 一家知名的汽车配件制造商&#xff0c;旗下品牌拥有众多产品&#xff0c;其销售渠道广泛&#xff0c;不仅在…

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(九)NodeJS入门——http模块

060_http模块_网页URL之绝对路径 hello&#xff0c;大家好&#xff0c;这一个小题的话我们来补充一个之前学习过的内容&#xff0c;就是网页当中的URL&#xff0c;咱们这个小题的话主要是来说一下绝对路径&#xff0c;有同学可能会说&#xff0c;这这这&#xff0c;不对劲&…

access数据库泄露与IIS短文件名利用

access数据库 Microsoft Office Access是微软把 数据库引擎 的图形用户界面和 软件开发工具 结合在一起的一个 数据库管理系统 它的数据库是没有库名的&#xff0c;都是表名。 (借用别的up的图)是不是感觉有点像excel access数据库的后缀是.mdb access数据库泄露漏洞 如果…

面向对象设计模式

一、单例 一个类只能创建唯一一个对象 利用限制构造、static完成 二、工厂模式 优势&#xff1a;规范接口&#xff08;纯虚函数&#xff09;&#xff1b;实现多态&#xff08;虚函数表&#xff09;&#xff1b;继承 1、简单工厂 一个工厂创建所有产品。 返回基类指针可…

你要不要搞副业

最近看到了几个网友关于年轻人要不要搞副业的一点讨论&#xff0c;学习到了很多。整理分享如下&#xff1a; plantegg 你要不要搞副业&#xff1f; 最近网上看到很多讨论搞副业和远程工作的&#xff0c;我也说点自己的经验看法 当然这完全是出于个人认知肯定不是完全对的、也…

Bluejay电调固件介绍和烧录Bluejay电调固件到BLHeli_S电调的方法

Bluejay电调固件介绍和烧录Bluejay电调固件到BLHeli_S电调的方法 Bluejay电调固件基本介绍Bluejay电调固件特点烧录Bluejay固件准备材料烧录过程 电调调参参数说明 Bluejay电调固件基本介绍 Bluejay是一种数字电调固件&#xff0c;用于控制多旋翼无人机中的无刷电机。 该电调固…

蓝桥杯算法赛 第 6 场 小白入门赛 解题报告 | 珂学家 | 简单场 + 元宵节日快乐

前言 整体评价 因为适逢元宵节&#xff0c;所以这场以娱乐为主。 A. 元宵节快乐 题型: 签到 节日快乐&#xff0c;出题人也说出来自己的心愿, 祝大家AK快乐! import java.util.Scanner;public class Main {public static void main(String[] args) {System.out.println(&qu…

QT day3 作业2.22

思维导图&#xff1a; 作业&#xff1a; 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到…

微信小程序自制动态导航栏

写在前面 关于微信小程序导航栏的问题以及解决办法我已经在先前的文章中有提到&#xff0c;点击下面的链接即可跳转~ &#x1f90f;微信小程序自定义的导航栏&#x1f90f; 在这篇文章中我们需要做一个这样的导航栏&#xff01;先上效果图 &#x1f447;&#x1f447;&#x1f…

如何将实景三维倾斜模型叠加到三维地球上?

​ 通过以下方法可以将实景三维倾斜模型叠加到三维地球上。 方法/步骤 下载三维地图浏览器 http://www.geosaas.com/download/map3dbrowser.exe&#xff0c;安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“倾斜模型”…

物麒平台根据入耳出耳状态使能或禁止触摸按键实现方法

是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资 料, 1 消息发送 2 消息处理 3 宏开关 4 代码 #include "app_main.h" #include &q…

Vue.js+SpringBoot开发生活废品回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案&#xff0c;旨在鼓…

FreeRTOS学习第8篇--同步和互斥操作引子

目录 FreeRTOS学习第8篇--同步和互斥操作引子同步和互斥概念实现同步和互斥的机制PrintTask_Task任务相关代码片段CalcTask_Task任务相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第8篇–同步和互斥操作引子 本文目标&#xff1a;学习与使用FreeRTOS中的同步和互斥操…

【vue3语法】开发使用创建项目等

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、vue3创建vue3v2函数式、v3组合式api响应式方法ref、reactive计算属性conputed监听属性wacthvue3 选项式生命周期父子通信父传子defineProps编译宏 子传父de…

linux 0.11 调试c代码

我们可以通过实验楼实验环境 来调试linux0.11的c代码。 cd ~/oslab/ tar -zxvf hit-oslab-linux-20110823.tar.gz -C ~ cd ~/oslab/linux-0.11/ make cd ~/oslab/ nohup ./dbg-c & nohup terminator & ls在新的窗口执行 ./rungdb,进入调试状态。 输入 set disassemb…

三 . 运算符和流程控制——Java基础篇

三 . 运算符和流程控制 1. 运算符 1 . 赋值运算符 1.2.1 基本语法 符号&#xff1a; 当“”两侧数据类型不一致时&#xff0c;可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。 扩展赋值运算符&#xff1a; 、 -、*、 /、% 赋值运算符符号解释将符号左…