当前位置: 首页 > news >正文

简单的手机网站模板下载安装百度 搜索热度

简单的手机网站模板下载安装,百度 搜索热度,学做衣服的网站有哪些,国外乡村建设网站StringBuffer类 String和StringBuffer的区别 String 不可变性:String 类是不可变的,这意味着一旦创建了一个 String 对象,其值就不能改变。每次对 String 进行修改(如连接、替换等操作)都会产生新的 String 对象&…

StringBuffer类

String和StringBuffer的区别

String

  • 不可变性String 类是不可变的,这意味着一旦创建了一个 String 对象,其值就不能改变。每次对 String 进行修改(如连接、替换等操作)都会产生新的 String 对象,原来的对象不会被改变。

  • 线程安全性:由于 String 的不可变性,它是线程安全的,可以被多个线程共享而无需担心数据一致性的问题。

  • 性能:因为每次修改都会创建新的对象,所以在频繁进行字符串操作时,String 的效率较低。

StringBuffer

  • 可变性StringBuffer 是一个可变的字符序列,可以被多次修改而不创建新的对象。这意味着如果需要对字符串进行大量的修改操作,使用 StringBuffer 比使用 String 更加高效。

  • 线程安全性StringBuffer 是线程安全的。它的方法都是同步的(即加了 synchronized 关键字),这使得 StringBuffer 可以在多线程环境中安全地使用,但是也导致了它的性能相比非线程安全的 StringBuilder 要差一些。

  • 性能:当需要在一个单线程环境下进行大量字符串操作时,StringBuffer 仍然不是最优选择,因为它的线程安全特性会带来额外的开销。在这种情况下,应该考虑使用 StringBuilder

使用场景

  • 使用 String:当你不需要修改字符串内容时,或者修改次数非常少的时候,使用 String 是合适的。此外,String 的不可变性和线程安全性使其成为多线程环境中的首选。

  • 使用 StringBuffer:如果你的应用程序需要在多线程环境中频繁地修改字符串,那么 StringBuffer 是一个很好的选择,因为它提供了线程安全的操作。

  • 使用 StringBuilder:对于单线程环境下的频繁字符串操作,推荐使用 StringBuilder,因为它比 StringBuffer 性能更高,同时又保持了可变性的优点。

StringBuffer介绍

String类自身有一个最大的缺陷:内容一旦声明则不可改变,JDK为了方便用户修改字符串内容提供了StringBuffer类

StringBuffer类不像String类那样可以直接通过声明字符串常量方式进行实例化,而是必须像普通类对象使用一样,首先通过构造方法进行对象实例化,而后才可以调用方法进行处理。

No.方法类型描述
1public StringBuffer()构造创建一个空的StringBuffer对象
2public StringBuffer(String str)构造将接受到的String内容变为StringBuffer内容
3public StringBuffer append(数据类型 变量)普通内容连接,等价于String中:”+”操作
4public StringBuffer insert(int offset,数据类型 变量)普通在指定索引位置处插入数据
5public StringBuffer delete(int start,int end)普通删除指定索引范围之内的数据
6public StringBuffer reverse()普通内容反转

示例

public class JavaDome{public static void main(String args[]){StringBuffer buf = new StringBuffer("hello");change(buf);String data = StringBuffer.toString();  //将StringBuffer变为String实例System.out.println(data);}
}
​
public static void change(StringBffer temp){temp.append("world").append("!");
}
实际上使用:
String strB = "hello"+"world"+"!"
程序编译后的结果全部等价于以下操作:
StringBuffer buf = new StringBuffer();
buf.append("hello").append("world").append("!");
所有的"+"编译之后都变成了StringBuffer中append()方法

除了可以修改内容的能力外,还提供了一些String类所不具备的方法

插入删除数据

StringBuffer buf = new StringBuffer();
buf.append("hello world").delete(6,12).insert(6,"!");

字符串反转

StringBuffer buf = new StringBuffer();
buf.append("hello");
System.out.println(buf.reverse());

CharSequence接口

常见子类

String、StringBuffer、StringBuilder

常见的方法

No.方法类型描述
1public char charAt(int index)普通获取指定索引字符
2public int length()普通获取字符串长度
3public CharSequence subSequence(int start,int end)普通截取部分字符串

使用示例

CharSequence str = "hello"; 
//子类实例向父类接口转型
CharSequence sub = str.subSequence(4,8);
//截取部分子字符串
​
//String类是CharSequence接口子类,所以本程序利用对象向上转型的操作通过字符串的匿名对象实现了CharSequece父接口对象实例化,随后调用subSequence()方法实现了子字符串的截取操作

注:

开发中优先考虑String类,只有在频繁操作修改这一操作中才会考虑使用StringBuffer或StringBuilder

AutoCloseable接口

该接口的主要功能是结合异常处理结构在资源操作完成后实现自动释放功能

public interface AutoCloseale{public void close() throws Exception;//资源释放
}

Runtime类

Runtime描述的是运行时的状态,在每一个JVM进程中都会提供唯一的一个Runtime类实例化对象。

可以利用Runtime类对象获取与JVM有关的运行时状态。

由于Runtime类中只存在一个实例化对象,所以在Runtime类中默认将默认将其构造方法封装(单例设计模式),这样就必须用Runtime类中提供的getRuntime()方法(为static方法)来获取实例化对象,随后就可以获取一些系统相关的信息。

No.方法类型描述
1public static Runtime getRuntime()普通获取Rintime类的实例化对象
2public int avaliableProcessors()普通获取可用的CPU处理器数量
3public long maxMemory()普通取得最大可用内存量
4public long totalMemory()普通取得总共可用内存量
5public long freeMemory()普通取得空闲内存量
6public void gc()普通运行垃圾收集器,释放垃圾空间

获取本机CPU处理器数量

public class JavaAPIDemo{public static void main(String args) throws Exception{Runtime runtime = Runtime.getRuntime(); //获取Runtime实例化对象System.out.println(runtime.avaliableProcessors()); //获取处理器数量}
}

注: long型数据主要有两种情况,表示文件大小和表示日期时间

System类

No.方法类型描述
1public static void arraycopy(Object src,int srcPos,Object destPos,int length)普通数组复制操作
2public static long currentTimeMillis()普通取得当前的日期时间,以long型数据返回
3public static void gc()普通执行GC操作

Cleaner类

在java中对象的整个生命周期大致可以分为七个阶段:

创建阶段(Created)

应用阶段(In Use)

不可见阶段(Invisible)

不可达阶段(Unreachable)

收集阶段(Collected)

终结阶段(Finalized)

释放阶段(Free)

Math数学计算

程序开发本质就是数据处理,java提供有java.lang.Math类来帮助开发者进行常规的数学计算处理。

例如,四舍五入,三角函数,乘方处理等

Math.abs(-10.9)  //绝对值 10.9
Math.max(10.2,20.3) //获取最大值
Math.log(5) //对数:1.60943...
Math.round(15.1) //四舍五入 15
Math.round(-15.5) //四舍五入 -15
Math.round(-15.51) //四舍五入 -16
Math.pow(10.2,20.2) //乘方:2.36441...

Rondom随机数

import java.util.Random

设置一个随机数的范围边界就可以随机生成不大于此边界范围的正整数

方法(随机生成正整数):public int nextInt(int bound)

Random rand = new Random();
rand.nextInt(100);

大数字处理类

BigInteger

No.方法类型描述
1public BigInterger(String val)构造将一个字符串变成BigInterger类型数据
2public BigInterger add(BigInterger val)普通加法计算
3public BigInterger substract(BigInterger val)普通减法计算
4public BigInterger multiply(BigInterger val)普通乘法计算
5public BigInterger divideBigInterger val)普通除法计算
6public BigInterger max(BigInterger val)普通返回两个大数字中的最大值
7public BigInterger min(BigInterger val)普通返回两个大数字的最小值
8public BigInteger[] divideAndRemainder(BigInterger val)普通除法操作,数组的第一个元素为除法的商,第二个元素为除法的余数

BigDecimal

No.方法类型描述
1public BigDecimal(double val)构造将double表示形式转换为BigDecimal
2public BigDecimal(int val)构造将int表示形式转换为BigDecimal
3public BigDecimal(String val)构造将字符串表示形式转换为BigDecimal
4public BigDecimal add(BigDecimal augend)普通加法计算
5public BigDecimal subtract(BigDecimal subtrahend)普通减法计算
6public BigDecimal multiply(BigDecimal multiplicand)普通乘法计算
7public BigDecimal divide(BigDecimal divisor)普通除法计算
8public BigDecimal divide(BigDecimal divisor,int scale,RoundingMode roundingMode)普通除法计算设置保留下小数位与进位模式

Date日期处理类

No.方法类型描述
1public Date()构造实例化Date对象
2public Date(long date)构造将数字变为Date类对象,long为日期时间数据
3public long getTime()普通将当前的日期时间变为long型

SimpleDateForrmat日期格式化

正则表达式

Arrays数组操作类

import java.util.Arrays

public class JavaApIDemo{public static void main(String[] args) throws Exception{int dataA[] = new int[] {1,2,3};int dataB[] = new int[] {1,2,3};System.out.println(Arrays.compare(dataA,dataB));System.out.println(Arrays.equals(dataA,dataB));int data[]C = new int[10];Arrays.fill(dataC,3); //内容填充System.out.println(Arrays.toString(dataC)); //数组转为字符串输出}
}
No.方法类型描述
1public static void sort(数据类型[] 变量)普通数组排序
2public static int binarySearch(数据类型[] 变量,数据类型 key)普通利用二分查找算法进行数据查询
3public static int compare(数据类型[] 变量,数据类型[] 变量)普通比较两个数组的大小,返回3类结果:大于(1)、小于(-1)、等于(0)
4public static boolean equals(数据类型[] 变量,数据类型[] 变量)普通数组相等判断
5public static void fill(数据类型[] 变量,数据类型 变量)普通数组填充
6public static String toString(数据类型[] 变量)普通数组转为字符串

异常结构

以后慢慢遇到再补充吧!

http://www.hengruixuexiao.com/news/38717.html

相关文章:

  • 网页设计模板素材代码惠州seo代理商
  • 温州 网站建设电影站的seo
  • 简洁个人wordpress模板企业网站seo多少钱
  • 网站备案抽查公司seo营销
  • 怎样做网站的当前位置栏杭州专业seo
  • 网站数据链接怎么做运营推广计划怎么写
  • 在别人网站上建设频道或栏目相关法律规定独立站seo建站系统
  • 彩票网站里的统计怎么做西安seo学院
  • 网站开发的完整流程全球搜索引擎排行榜
  • 用vs2012做网站首页沈阳seo关键词排名
  • 网站加载进度条陕西省人民政府
  • 浙江省交通建设工程监督管理局网站站长工具亚洲
  • 中小型企业网站优化推广徐州百度快照优化
  • 企业网站的完整性包括哪些数据指数
  • 做网站需要每年都缴费吗电子商务营销的概念
  • 镇江网站百度竞价排名系统
  • 做一般的公司网站需要多少钱海外网络推广方案
  • 衢州做网站seo关键词优化推广外包
  • 怎麽做网站寻找外贸客户的网站
  • 网站模板wordpress东莞网站建设推广平台
  • 专业制作网站电脑关键词英文
  • 秦皇岛手机网站制作多少钱电商seo优化是什么
  • 工厂网络设计方案网站优化企业排名
  • 中小企业网站制作费用关键词百度指数查询
  • 惠阳东莞网站建设上海百度竞价点击软件
  • 专业网站建设公司b站视频推广网站400
  • 如何做网站广告图片免费建自己的网址
  • 微站图片网站收录批量查询
  • 调查问卷在哪个网站做谷歌浏览器手机版
  • 搭建网站需要学什么排名函数rank怎么用