首页 > 编程语言 >韩顺平java基础-13-常用类

韩顺平java基础-13-常用类

时间:2024-01-24 21:35:18浏览次数:32  
标签:13 java String StringBuffer 数组 stringbuffer Integer 方法 顺平

韩顺平java基础-13-常用类

常用类

包装类

分类

装箱和拆箱

//自动装箱
int n1 = 100;
Integer integer = int n1;
//自动调用Integer.valueOf(n1)的方法

//自动拆箱
int n2 = integer;
//自动调用integer.intValue的方法

包装类与String转换

包装类型--->String类

  1. toString()
  2. String.valueOf()
  3. i + ""

String类--->包装类型

  1. Integer()构造器
  2. Integer.valueOf()

包装类的常用方法

Integer创建对象辨别

  1. new Integer 不相等
  2. Integer 判断范围 在-128~127中,是直接从数组中返回。超出范围是new的对象
  3. ==两边有基本数据类型(int)时,就是判断值是否相等

String类

结构剖析

  1. 实现了Serializable,说明可以串行化,可以在网络传输
  2. 实现了Comparable,说明String对象可以比较
  3. String时final类,不能被继承
  4. String有属性:char[] 用于存放字符串内容,(final)不可修改(不是指内容不可修改,只是地址不能改变)

String类创建

  1. 直接赋值
  2. 调用构造器

区分 == 和 equals:

equals仅仅比较对象的内容,而==还要看地址是否相同。

intern()方法:

intern方法返回常量池对象

关键

搞清楚创建过程中:是直接调取常量池中的变量,还是先在堆中创建对象然后再指向常量池

字符串的特性

String a = "hello" + "abc" --> String a = "helloabc" 只会创建一个对象

编译器会在底层进行优化,判断创建的常量池对象是否有引用指向

String a = "hello";
String b = "abc";
String c = a + b;
String d = "hello" + "abc";
System.out.println(c == d);//False

String类的常用方法

熟悉用法


StringBuffer

与String类比较

  1. String保存的是字符串常量,里面的值不能更改,
  2. StringBuffer保存的是字符串变化,里面的值可以更改,不用每次更新地址,效率更高

构造器

  1. 默认方法,构造大小为16个字符的缓冲区空间
  2. 指定char[]大小
  3. 给一个String创建一个StringBuffer对象,大小是String长度+16

StringBuffer类型转换

//1.使用构造器
StringBuffer stringbuffer = new StringBUffer(str);
//并没有改变str类型,而是用stringbuffer接收
//2.使用append方法
stringbuffer = stringbuffer.append(str);
//StringBuffer --》 String
//1.toString方法
stringbuffer.toString();
//2.使用构造器
String s1 = new String(stringbuffer);

StringBuffer方法

  1. 增 append()
  2. 删 delete(begin, end) 范围:[begin, end)
  3. 改 replace()
  4. 查 indexOf 查找指定字串在字符串第一次出现的索引
  5. 插入 insert(cur, string) 在索引处插入字符串
  6. 获取长度 length()

StringBuilder类

基本介绍

  1. 提供StringBuffer兼容的API,但不保证同步。用在单个线程使用时

对比

  1. String效率低,复用率高
  2. StringBuffer 效率高,线程安全
  3. StringBuilder 效率最高,线程不安全
  4. 如果我们对String做大量修改,不要使用String。
  5. 效率:StringBuilder > StringBuffer > String

使用原则

  1. 如果存在大量修改,使用StringBuffer 或者StringBuilder
  2. 如果存在大量修改,且是单线程的情况,使用StringBuilder
  3. 如果存在大量修改,且是多线程的情况,使用StringBuffer
  4. 如果字符串修改较少,且被多个对象引用,使用String

Math类

常用方法


Arrays类

常用方法

  1. toString:遍历数组

  2. sort:默认排序,从小到大进行排序;定制排序,匿名内部类重写方法。

  3. binarySearch:二分查找,查找元素序号,需要按从小到大的顺序

  4. copyOf:数组复制

  5. fill:数组填充

  6. equals:判断数组是否相等,元素完全一致

  7. asList:将数组转换成List


System类

常用方法

  1. exit:退出程序
  2. arraycopy:复制数组,更加偏向底层,一般复制数组还是用Arrays.copyOf
  3. currentTimeMillis:返回当前时间,距离1970-1-1

BigInteger类和BigDecimal


Date类

第一代日期类:Date

SimpleDateFormat类 将Date类格式化

parse() 将格式化后的日期转化成Date

第二代日期类:Calender

没有提供对应的格式化类,需要自己组合输出。

Calender是抽象类,不能直接创建实例,要通过getInstance获取实例

第三代日期类:LocalDate、LocalTime、LocalDateTime

now()方法 获取当前时间

plus()、minus() 对日期进行加减

DateTimeFormatter类 进行格式化

标签:13,java,String,StringBuffer,数组,stringbuffer,Integer,方法,顺平
From: https://www.cnblogs.com/forest-pan/p/17985893

相关文章

  • linux 安装多版本java,并可切换版本
    我多版本切换,省事操作。配置:/etc/profileexportJAVA_HOME=/usr/java/jdk/jdk1.8.0_201exportJRE_HOME=/usr/java/jdk/jdk1.8.0_201/jreexportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH#切换1.8......
  • Java抛出异常且没有被捕捉的情况下,后面的代码还能运行吗?
    Java有try-catch-finally的异常处理机制,包括以下几种情况:1、不抛出异常,try里面的代码、finally里面的代码、finally以后的代码都将正常执行,而catch里面的代码不会执行。2、抛出异常且被catch捕获,try里面的代码部分执行,catch里面的代码、finally里面的代码、finally以后的代码都将......
  • java反射&代理面试知识
    java反射何为反射?如果说大家研究过框架的底层原理或者咱们自己写过框架的话,一定对反射这个概念不陌生。反射之所以被称为框架的灵魂,主要是因为它赋予了我们在运行时分析类以及执行类中方法的能力。通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。......
  • Java将数字转换为人民币大写
    Java将数字转换为人民币大写十千亿以内:RMBConversion.javapublicclassRMBConversion{privatestaticfinalString[]CN_NUM={"零","壹","贰","叁","肆","伍","陆","柒","捌",......
  • P1321 单词覆盖还原
    1.题目单词覆盖还原题目描述一个长度为\(l\)的字符串中被反复贴有boy和girl两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个boy几个girl?输入格式一行被反复贴有boy和girl两单词的字符串。输出格式......
  • Java中为什么hashcode与equals要一起重写?
    首先,hashcode与equals并不是一定要一起重写的。先说结论:在用到哈希相关的集合时,作为key的类一定要重写hashcode与equals方法,因为这些集合在计算下标时,使用到了key的hashcode方法,并且在判断key是否已经存在时,使用到了equals方法。如果不重写会允许多个相同的key插入,因此需要同......
  • 数据挖掘||利用SQL Server 2012或者Excel 2013采用聚类和时序挖掘模型和算法,对自行车
    1.实验要求 利用SQLServer2012或者Excel2013(二者选择其一即可)进行数据挖掘实验,采用聚类和时序挖掘模型和算法,可以对附件中给定的excel数据进行聚类和时序挖掘实验,也可以采用自己采集的数据(如采用自选请说明数据来源)。 2.实验环境 操作系统:windows11;软件:Excel2019;SQLServer......
  • 基于javaweb的学生二手书籍交易平台的设计与实现
    1.立题意义随着互联网技术的快速发展,网络时代的到来,网络信息也将会改变当今社会。各行各业在日常企业经营管理等方面也在慢慢的向规范化和网络化趋势汇合[1]。校园二手书交易系统的信息化程度体现在将互联网与信息技术应用于经营与管理,以现代化工具代替传统手工作业[2]。无疑,使用......
  • 基于java的水果网上商城的开发与设计
    一、研究背景和意义(一)研究背景随着互联网技术的迅猛发展,现在互联网已从单纯的学术科研向综合性商业网络发展,人们对于互联网技术的要求已不单单是浏览一下网页、收发电子邮件等简单的网络应用。高速发展的互联网技术为在线购物的发展提供了强大的动力,同时,在线购物的环境已经逐步得......
  • java代码通过百度获取第一条搜索结果代码以及注意事项
    导入依赖:<dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>4.4.3</version></dependency><de......