首页 > 编程语言 >java常用类:包装类

java常用类:包装类

时间:2022-09-23 17:22:14浏览次数:50  
标签:常用 java String 包装 System 字符串 println out

包装类

 

包装类对应

  • byte Byte

  • short Short

  • int Integer

  • long Long

  • float Float

  • double Double

  • boolean Boolean

  • char Character

 

类型转换与装箱、拆箱

 //自动装箱
       int num=1;
       Integer integer=num;
       System.out.println(integer);

       //自动拆箱
       int num2=integer;
       System.out.println(num2);
  }

基本类型存放在栈中,引用类型存放在堆中,包装类就是把栈中的基本类型转换成引用类型,也就是存放到堆中

 

Integer缓冲区

缓冲区范围: -128到127

public static void main(String[] args) {
       //面试题
       Integer integer1=new Integer(100);//new出了一个新对象,存放在堆中的100,两个100在堆中的地址不同
       Integer integer2=new Integer(100);
       System.out.println(integer1==integer2);

       Integer integer3=Integer.valueOf(100);//自动装箱,调用的Integer.valueOf方法   integer3==integer4,自动装箱没显示该方法而已
       Integer integer4=100;//自动装箱,调用的Integer.valueOf方法       Integer缓冲区为-128到127,因为integer3和integer4都为100,指向到缓冲区的100,所以两者相同
       System.out.println(integer3==integer4);

       Integer integer5=200;//自动装箱,调用的Integer.valueOf方法   Integer缓冲区为-128到127,因为integer5和integer6为200,超出了缓冲区范围,看源码得知超出范围则new了一个Integer对象,所以不同
       Integer integer6=200;//自动装箱,调用的Integer.valueOf方法
       System.out.println(integer5==integer6);


  }

 

String类

  • 字符串是常量,创建之后不可改变

  • 字符在字面值存储在字符串池中,可以共享

  • String s = "hello";产生一个对象,字符串池中储存

 

String name ="hello";//hello 进入字符串池中储存着
       name = "zhangsan";  //zhangsan 赋值给name,并没有把hello修改,而是在字符串池中新开辟了一个字符串值
       String name2="zhangsan";//name2可以直接获取字符串池中的字符串,不用新开辟一个字符串

       //另一种方式创建字符串
       String str=new String("java");
       String str2=new String("java");
       //==比较地址,equals比较值,equals重写后,没重写之前也是比较地址
       System.out.println(str==str2);
       System.out.println(str.equals(str2));

 

String类常用方法

  //常用方法
       String content="java是世界上最好用的语言,java,java";
       
       //length()方法
       System.out.println(content.length());//返回字符串长度
       //charAt()方法
       System.out.println(content.charAt(content.length()-1));//返回某个位置的字符
       //contains()方法
       System.out.println(content.contains("java"));//判断是否包含某字符串,有则返回true,没有返回false
       System.out.println(content.contains("php"));
       //toCharArray()方法
       System.out.println(Arrays.toString(content.toCharArray()));//返回字符串对应的数组,重写数组的方法
       //indexOf方法
       System.out.println(content.indexOf("java"));//返回字符串首次出现的位置
       System.out.println(content.indexOf("java",16));//fromindex:从该字符串的第几个下标开始寻找
       System.out.println(content.lastIndexOf("java"));//返回字符串最后一次出现的位置
       System.out.println("---------------");


       //trim(),toUpperCase(),toLowerCase()方法
       String content2=" Hello World ";
       System.out.println(content2.trim());//去掉字符串前后的空格
       System.out.println(content2.toUpperCase());//把小写转成大写
       System.out.println(content2.toLowerCase());//把大写转成小写

       System.out.println("---------------");
       //startsWith(),endsWith()方法
       String filename="hello.java";
       System.out.println(filename.startsWith("hello"));//判断是否以什么字符串开始
       System.out.println(filename.endsWith("java"));//判断是否以什么字符串结束

       System.out.println("---------------");
       //replace()方法
       System.out.println(content.replace("java","php"));//把一个字符串中指定的某个部位替换成新的字符串
       
       //split()方法
       String say="java is the best programing language,java   good";
       String[] arr=say.split("[ ,]+");//对字符串进行拆分,”【,】“可以对 ”字符串里的 逗号,“进行拆分,在加个+“可继续拆分空格
       System.out.println(arr.length);//打印数组长度
       for (String string: arr
            ) {
           System.out.println(string);//遍历输出每一个数组

      }

       System.out.println("-----------------");
       //equals拓展
       String s1="hello";
       String s2="Hello";
       System.out.println(s1.equals(s2));//区分大小写
       System.out.println(s1.equalsIgnoreCase(s2));//不区分大小写
       
       
       //compareTo()方法
       String s3="abc";
       String s4="xyz";
       System.out.println(s3.compareTo(s4));//比较首字母的编码大小,此处为a=97减去x=120 =-23
       
       String s5="abc";
       String s6="abcd";
       System.out.println(s5.compareTo(s6));//如果两者字符串编码一致,则比较字符串长度,长度编码一致为0


  }

 

可变字符串

StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。

StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全

public static void main(String[] args) {
       //StringBuffer 和   StringBuild 比String效率高,节省内存
       //以下所有方法把StringBuffer替换成StringBuild均可实现,效果一致
       StringBuffer sb=new StringBuffer();
       //append() 追加
       sb.append("java世界第一");
       System.out.println(sb);//可使用sb.toString方法,不管追加什么都使用字符串输出
       sb.append("java真香");
       System.out.println(sb.toString());
       sb.append("java真不错");
       System.out.println(sb.toString());

       //insert()添加
       sb.insert(0,"最前面");//在下标前添加
       System.out.println(sb.toString());


       //replace() 替换
       sb.replace(0,7,"hello");//从0到7,不包括7的下标替换成该字符串
       System.out.println(sb.toString());

       //delete() 删除
       sb.delete(0,5);//删除下标0开始到下标5结束,不包括5
       System.out.println(sb.toString());
       //清空sb
      // sb.delete(0,sb.length());

  }
 

标签:常用,java,String,包装,System,字符串,println,out
From: https://www.cnblogs.com/zwj2002/p/16723456.html

相关文章

  • JavaScript HTML DOM 元素 (节点)
    创建新的元素节点-appendChild():appendChild()方法:将元素添加到尾部创建新的元素节点-insertBefore():insertBefore()方法,将元素添加到开始位置移除已存在的元素:需要知......
  • 【Java】关于Maven仓库地址
    仓库如果你没有配置阿里云仓库镜像源,可以到这里来找https://mvnrepository.com/如果你配置了阿里云仓库镜像源,可以来这里找https://developer.aliyun.com/mvn/view我......
  • sql 常用语句
    常用sql语句1、建表createcreatetabletable_name(column_namedatatype[null|notnull],column_namedatatype[nu......
  • windows常用命令
    ifconfig/all获取获取域名、IP地址、DHCP服务器、网关、MAC地址、主机名nettime/domain查看域名、时间netview/domain查看域内所有共享netviewip查看对方局......
  • GPU常用命令
    在终端执行程序时指定GPU$CUDA_VISIBLE_DEVICES=1pythonrun_file.py查看一台服务器上所有显卡上的使用者和GPU占用情况首先安装gpustatpipinstallgpustat安装......
  • JavaScript HTML DOM EventListener
    可向指定元素添加事件句柄添加的句柄不会覆盖已存在的事件句柄可向一个元素添加多个事件句柄可向同个元素添加多个同类型的事件句柄,如两个“click”事件向DOM对象添加......
  • JavaWeb--MySQL约束、数据库设计、多表查询、事务--2022年9月22日
    第一节  约束1、概念A、约束是什么约束是作用于表中列上的规则,用于限制加入表的数据约束的存在保证了数据库中数据的正确性、......
  • 常用基本命令
    man获取帮助信息1)基本语法man[命令或配置文件]     (功能描述:获取帮助信息)2)显示说明信息功能NAME命令的名称和单行描述SYNOPSIS怎样......
  • 常用git命令
    1.命令行删除 node_modules 文件1)安装删除工具npm install rimraf -g2)执行删除命令rimraf node_modules2.更新远程分支git remote update origin --prune3.合......
  • Java SE 16 record 类型说明与使用
    JavaSE16record类型说明与使用作者:Grey原文地址:博客园:JavaSE16record类型说明与使用CSDN:JavaSE16record类型说明与使用说明record是JavaSE16的新特......