JavaSE19-常见类

news2024/11/16 9:32:37

文章目录

  • 一、Object
    • 1.概述
    • 2.常用方法
  • 二、String
    • 1.概述
    • 2.对象创建
      • 2.1 直接使用字面值
      • 2.2 使用构造方法
    • 3.常用方法
  • 三、包装类
    • 1.概述
    • 2.创建对象
      • 2.1 直接使用字面值
      • 2.2 使用构造方法
      • 2.3 使用静态方法valueOf
    • 3.常用方法
    • 4.自动装箱与自动拆箱
      • 4.1 自动装箱
      • 4.2 自动拆箱
      • 4.3 原理
  • 四、StringBuilder
    • 1.概述
    • 2.创建对象
    • 3.常用方法

菜鸟教程网址:https://www.runoob.com/java/java-tutorial.html

一、Object

1.概述

  1. 在JDK的java.lang包下定义了Object这个类。
  2. java中所有的类都直接或者间接的继承Object。所以任意类的对象都可以使用Object中定义的方法。不过方法内部的实现可能在不同的子类中有不同的重写。
  3. 我们可以直接使用空参构造创建Object的对象,但是一般我们不会直接创建Object对象,更多的是使用多态的写法。

2.常用方法

2.1 toString()

  • 取得对象信息,返回该对象的字符串表示。Object的toString方法返回值的是类的全类名对象hash值的拼接。
  • 正常情况下Object的toString的返回值对我们是没有什么意义的。所以如果有需要的话我们都会在自己的类中重写toString方法。
  public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

2.2 equals()

  • 比较两个对象是否相同。
  • 很多情况下判断两个对象是否相同的时候不能单纯的使用==去判断。这种情况下就可以重写equals方法。实现自己的判断逻辑。
    public boolean equals(Object obj) {
        return (this == obj);
    }

二、String

1.概述

  • Java提供的用于描述字符串的类。在JDK的java.lang包下定义了String这个类。
  • 一个字符串一旦创建其内容是永远不会变的。
  • 字符串效果上相当于是char[]字符数组,但是底层其实是byte[]字节数组。

2.对象创建

2.1 直接使用字面值

String name = "三更";String name = "三更";

2.2 使用构造方法

String()
String(byte[] bytes)  
String(byte[] bytes, int offset, int length)  offset:起始位置下标
String(char[] value)
String(char[] value, int offset, int count)
.....

演示如下:

 public static void main(String[] args) {
        //使用无参构造创建。字符串的内容为空 相当于 ""
        String s1 = new String();
    }
 public static void main(String[] args) {
        
        byte[] bytes = {97,98,99};
        String s = new String(bytes);
        System.out.println(s);//输出结果为  abc
    }
 public static void main(String[] args) {
        byte[] bytes = {97,98,99};
        String s = new String(bytes,0,2);
        System.out.println(s);//输出结果为ab
        String s2 = new String(bytes,0,1);
        System.out.println(s2);//输出结果为a
    }
public static void main(String[] args) {
        char[] chars = {'a','b','c'};
        String s = new String(chars);
        System.out.println(s);//输出结果为  abc
    }
 public static void main(String[] args) {
        char[] chars = {'a','b','c'};
        String s = new String(chars,0,1);
        System.out.println(s);//输出结果为  a
        String ss = new String(chars,0,2);
        System.out.println(s2);//输出结果为  ab
    }

3.常用方法

  • String[] split(String regex) 把一个字符串按照指定的分隔符切割成多个字符串,把多个字符串放在一个字符串数组中返回
  • char[] toCharArray(); 把一个字符串的内容转换成一个字符数组
  • byte[] getBytes(); 把一个字符串的内容转换成一个byte数组
  • String substring(int index); 把某个字符串从index索引开始截取到最后
  • String substring(int begin,int end) 把某个字符串索引begin到索引end截取出来
  • boolean equals(Object anObject) 判断两个字符串的内容是否相同

split方法演示

 public static void main(String[] args) {
        String s = "三更,15,男";
        String[] strs = s.split(",");
        for (int i = 0; i < strs.length; i++) {
            System.out.println(strs[i]);
        }
    }
输出:
三更
15

toCharArray方法演示

    public static void main(String[] args) {
        String s = "三更,15,男";
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }
    }
    
三
更
,
1
5
,
男

getBytes方法演示

public static void main(String[] args) {
        String s = "abcd";
        byte[] bytes = s.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }
    }
    
97
98
99
100

substring方法演示

 public static void main(String[] args) {
        String s = "abcd";
        String substring = s.substring(1);
        System.out.println(substring);   //bcd
    }
    
     public static void main(String[] args) {
        String s = "abcd";
        String substring = s.substring(1,2);
        System.out.println(substring);  //bc
    }

equals方法演示

    public static void main(String[] args) {
        String s = "abcd";
        String s2 = "abcd";
        boolean flag = s.equals(s2);
        System.out.println(flag);//输出true
    }

三、包装类

1.概述

  1. Java为每一个基本数据类型提供了对应的一个包装类。
  2. 包装类是一个类,这样Java就可以在包装类中提供常用的方法等供我们使用。
    在这里插入图片描述

2.创建对象

2.1 直接使用字面值

    public static void main(String[] args) {
        Integer i = 10;
    }

2.2 使用构造方法

    public static void main(String[] args) {
        Integer i = new Integer(10);
        Integer i2 = new Integer("11");
    }

2.3 使用静态方法valueOf

    public static void main(String[] args) {
        Integer i = Integer.valueOf(10);
        Integer i2 = Integer.valueOf("11");
    }

3.常用方法

  • static Integer valueOf(int i) 把int转换转换成Integer对象返回
  • static Integer valueOf(String s) 把字符串转换转换成Integer对象返回 要求字符串的内容必须为纯数字
  • static int parseInt(String s) 把字符串转换转换成int返回 要求字符串的内容必须为纯数字
    public static void main(String[] args) {
        Integer i = Integer.valueOf(10);
        Integer i2 = Integer.valueOf("11");

        int num = Integer.parseInt("123");
        System.out.println(num);
    }

4.自动装箱与自动拆箱

  • 在JDK1.5中就增加了自动装箱和自动拆箱。
  • 主要是让基本数据类和对应的包装类进行自动的转换,方便我们的使用。

4.1 自动装箱

  • 自动装箱就是基本数据类型可以自动转换为对应的包装类。
Integer i = 10;
int num = 20;
Integer i2 = num;

4.2 自动拆箱

自动拆箱就是包装类可以自动转换为基本数据类型。

Integer i = new Integer(10);
int num = i;

4.3 原理

自动装箱其实是通过包装类的静态方法valueOf来实现的转换。

四、StringBuilder

1.概述

StringBuilder是专门用来进行字符串拼接的。

2.创建对象

使用构造方法来创建对象

public static void main(String[] args) {
    StringBuilder sb = new StringBuilder("三更草堂");
    StringBuilder sb2 = new StringBuilder();//创建出来的对象的内容相当于空字符串
}

3.常用方法

  1. append方法 用于拼接内容
  2. reverse方法 可以翻转内容
  3. toString方法 把StringBuilder转换为String类型

append方法演示:

    public static void main(String[] args) {

        StringBuilder sb = new StringBuilder();
        sb.append("三更,");
        sb.append("三更草堂中");
        sb.append("三更在录制视频");
        System.out.println(sb);    //三更,三更草堂中三更在录制视频
    }

reverse方法演示:

    public static void main(String[] args) {

        StringBuilder sb = new StringBuilder();
        sb.append("三更,");
        sb.append("三更草堂中");
        sb.append("三更在录制视频");
        sb.reverse();
        System.out.println(sb);  //频视制录在更三中堂草更三,更三
    }

toString方法演示:

    public static void main(String[] args) {

        StringBuilder sb = new StringBuilder();
        sb.append("三更,");
        sb.append("三更草堂中");
        sb.append("三更在录制视频");
        sb.reverse();
        String s = sb.toString();
        System.out.println(s);
    }

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

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

相关文章

各类特殊开关电源问题解决方案

一、提高DCDC芯片电流 使用大功率三极管代替芯片内部开关管提高过流能力 二、BUCK电路实现负电压 将buck的地作为-Vout输出&#xff0c;原输出接地。 注&#xff1a;不要用LM2596跟LM2576 三、FLY-BUCK电路 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20808c03b126…

成功解决xshell7会话窗口只能显示一个的问题

文章目录前言一. 问题复现二. 问题解决方法一方法二三. 拓展3.1 自定义快捷键3.2 将当前shell中的代码内容复制到记事本中3.3 xshell配置密钥登录3.3.1 生成密钥3.3.2 将密钥上传到服务器并设置3.3.3 用xshell密钥登录服务器总结前言 重点强调&#xff1a; 本文是解决xshell的…

Linux系列 使用vi文本编辑器

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.vi文本编辑器 1.使用vi文本编辑器 2.vi编辑器的工作模式 3.命令模式中的…

【LeetCode】剑指 Offer(13)

目录 题目&#xff1a;剑指 Offer 31. 栈的压入、弹出序列 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;剑指 Offer 31. 栈…

重写toString()方法-课后程序(JAVA基础案例教程-黑马程序员编著-第十二章-课后作业)

【案例12-1】&#xff1a;重写toString()方法 【案例介绍】 1.案例描述 为了方便输出对象&#xff0c;Object类提供了toString()方法。但是该方法的默认值是由类名和哈希码组成的&#xff0c;实用性并不强。通常需要重写该方法以提供更多的对象信息。 本案例要求使用反射重…

3D可视化大屏制作真的那么难?没有好用的软件解决吗?

有多少人印象里的数据可视化大屏还是像这样的二维大屏&#xff1f;这种二维可视化大屏早就不能满足审美日益提高的大众了。 现在用的都是3D可视化大屏&#xff0c;这种结合了3D技术的可视化形式不仅让数据更加的清晰&#xff0c;也增加了美感&#xff0c;这观看体验&#xff…

【数据结构】单链表——增删查改【万字介绍】

目录 一&#xff0c;线性表 1&#xff0c;什么是线性表 2&#xff0c;线性表的结构 二&#xff0c;链表 1&#xff0c;什么是链表 2&#xff0c;链表的分类 3&#xff0c;单链表的特点 三&#xff0c;链表的实现 1&#xff0c;结构的定义 2&#xff0c;创建一个新结点 3&#…

ChatGPT 不是黑魔法,“替代搜索引擎”言之尚早

ChatGPT 火了。整个 LLM 和搜索领域都已经在过去几个月内发生了翻天覆地的变化。ChatGPT 不再是一个玩具&#xff0c;它开始被微软、谷歌集成在搜索以及各个 SaaS 服务中&#xff0c;且取得了令人惊叹的效果。我尝试着使用 ChatGPT 回答过去一个月搜索过的 30 个问题&#xff0…

10个必须知道的JavaScript技巧,让你成为更好的程序员

1.Promise回调地狱Promises 提供了一种优雅的方式来处理 JavaScript 中的异步操作。这也是避免“回调地狱”的解决方案之一。但是我并没有真正理解它的意思&#xff0c;所以我写了这段代码。我做了这些事情&#xff1a;先获取用户的基本信息。按用户信息获取所有文章的简要摘要…

SPI_Master驱动程序框架

SPI_Master驱动程序框架 文章目录SPI_Master驱动程序框架一、SPI传输概述1.1 数据组织方式1.2 SPI控制器数据结构二、 SPI传输函数的两种方法2.1 老方法2.2 新方法致谢参考内核源码: drivers\spi\spi.c 一、SPI传输概述 1.1 数据组织方式 使用SPI传输时&#xff0c;最小的传…

hutool日期工具类相关:获取某月所有周、某周的起止时间或所有日期、计算连续天数

目录前言实现1、获取当月的所有周2、根据指定的第几周&#xff0c;获取这周的开始、结束时间3、获取当前月某一周的所有日期4、多个日期中&#xff0c;计算最大的连续天数5、判断指定日期是否在某个范围内前言 最近做项目&#xff0c;碰到一个比较复杂的日期查询方式&#xff…

内网vCenter部署教程二,最全的了!

一、组网说明 vCenter组网最佳实践 每台服务器需要6个网口,需要三个分布式交换机,每个交换机分配2个物理网卡做冗余,分别做为管理网络、业务网络、高可用网络使用。另vsan网络和vmotion网络可以复用业务网络或管理网络,vcenter HA需要单独用一个网络。 二、创建管理网络…

Ubuntu通过rsync和inotify实现双机热备

Rsync Inotify双机热备 一、备份机操作 备份机&#xff1a;主服务器或主机文件将需要备份的文件同步到此服务器上&#xff0c;即从主服务器上同步过来进行备份。 1.1安装rsync sudo apt-get install rsync1.2修改/etc/dault/rsync文件 sudo vim /etc/default/rsync修改如…

二叉树——修剪二叉搜索树

669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即&#xff0c;如果没有被移除&#xff0c;原有的父代…

GPT:通用预训练语言模型

论文标题&#xff1a;Improving Language Understanding by Generative Pre-Training论文链接&#xff1a;https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf论文来源&#xff1a;OpenAI一、概述从无标注文本中高效学习的能力对于缓解对监督学习的依赖…

PLUMBER Boosting the Propagation of Vulnerability Fixes in the npm Ecosystem

PLUMBER: Boosting the Propagation of Vulnerability Fixes in the npm Ecosystem 1.背景 npm是JavaScript编程语言中最大的生态系统&#xff0c;截至2022年1月&#xff0c;它拥有超过180万个第三方软件包。2017年11月2日的npm快照进行的调查显示&#xff0c;在610,097个包中…

从16K跳槽到20K,最后算下来年薪却还降了,我笑了····

跳槽时薪资涨了 4000&#xff0c;但年薪总包算下来反而变少了&#xff0c;这是怎么回事&#xff1f; 上周&#xff0c;我星球里一个同学就遇到了这么一个问题&#xff0c;薪资涨了、总包降了&#xff0c;而且谈薪时把自己坑了。 作为一个案例&#xff0c;我觉得对很多人可能会…

【项目设计】高并发内存池 (四)[pagecache实现]

&#x1f387;C学习历程&#xff1a;入门 博客主页&#xff1a;一起去看日落吗持续分享博主的C学习历程博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 也许你现在做的事情&#xff0c;暂时看不到成果&#xff0c;但不要忘记&…

数据结构:堆的实现与建堆时间复杂度分析

目录 前言 一.堆的介绍 1.堆的本质 2.堆的分类 二.堆的实现(以小根堆为例) 1.关于二叉树的两组重要结论&#xff1a; 2.堆的物理存储结构框架(动态数组的简单构建) 3. 堆元素插入接口(以小根堆为例) 堆尾元素向上调整的算法接口: 4.堆元素插入接口测试 5.堆元素插入…

【chatgpt】教你如何创建一个Vue脚手架

要创建一个Vue脚手架&#xff0c;您可以使用Vue CLI。Vue CLI是一个命令行工具&#xff0c;可帮助您快速创建Vue项目并提供开发环境。 以下是使用Vue CLI创建Vue脚手架的步骤&#xff1a; 首先&#xff0c;您需要安装Node.js。您可以在Node.js官网上下载和安装它。安装Vue CL…