Java学习16

目录

一.StringBuffer类:

1.基本介绍:

2.StringBuffer的构造器:

3.String与StringBuffer的相互转换:

(1)String->StringBuffer

(2)StringBuffer->String

4.StringBuffer的方法:

二.StringBuilder:

1.基本介绍:

2.String、StringBuilder、StringBuffer的比较:

三.Math类:

1.基本介绍:

2.Math的常用方法:

四.Arrays类:

1.基本介绍:

2.Arrays的基本方法:


一.StringBuffer类:

1.基本介绍:

  • StringBuffer代表可变的字符序列,可以对字符串内容进行增删。StringBuffer是可变长度的。StringBuffer是一个final类,不能被继承。
  • StringBuffer实现了Serializable,即StringBuffer的对象可以串行化(串行化:可以在网络中传输)。
  • StringBuffer的直接父类是AbstractStringBuilder,在父类中有属性char [ ] value,不是final ,该value数组存放字符串内容,引出存放在堆中的。
  • StringBuffer的更新不用每次更改地址,效率较高。因为StringBuffer的字符序列是存在char [ ] value,不是每次都创建新的对象。(String的value数组更新时,value指向的常量池的地址会发生改变,value自己本身的地址不会发生改变,会产生一个新的对象去指向value)

2.StringBuffer的构造器:

3.String与StringBuffer的相互转换:

(1)String->StringBuffer

方式一:返回的是才StringBuffer对象,对String本身没有影响。

方式二:使用的是append方法

(2)StringBuffer->String

方式一:使用StringBuffer提供的toString方法

方法二:使用构造器

4.StringBuffer的方法:

String str = nill;
StringBuffer sb = new StringBuffer();
sb.append(str);//底层调用的是AbstractStringBuilder的appendNull方法,将null添加到字符数组里面
System.out.println(sb.length());//4
StringBuffer sb = new StringBuffer(str);//底层源码super.(str.length()+16);抛出空指针异常。

二.StringBuilder:

1.基本介绍:

  • StringBuilder是一个可变的字符序列,用在字符缓冲区被单个线程使用的时候。(但是不可以保证线程安全,在单线程的时候使用)。
  • StringBuffer实现了Serializable,即StringBuffer的对象可以串行化(串行化:可以在网络中传输,也可以保存到文件)。
  • StringBuffer是一个final类,不能被继承。StringBuffer的直接父类是AbstractStringBuilder,在父类中有属性char [ ] value,不是final ,该value数组存放字符串内容,引出存放在堆中的。

2.String、StringBuilder、StringBuffer的比较:

三.Math类:

1.基本介绍:

Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

2.Math的常用方法:

  • ceil向上取整,返回大于等于该参数的最小整数(double)
  • floor向上取整,返回小于等于该参数的最大整数(double)
  • random返回的是0-1之间的随机小数(0<=x<1),获取a-b之间的随机整数:(int)(a+Math.random()*(b-a+1));

四.Arrays类:

1.基本介绍:

Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和收缩)。

2.Arrays的基本方法:

Integer [] integer = {1,20,90};
//遍历数组:
for(int i=0;i<integer;i++){System.out.pritln(integer[i])
}
System.out.pritln(Arrays.toString(integer));//[1,20,90]//sort排序
Integer arr [] = {1,-1,7,0,89};
//冒泡排序:
public static bubble02(Integer [] arr,Comparetor c){Integer temp = 0; for(int i = 0;i<arr.length();i++){for(int j= 0;j<arr.length-1-i;j++){//if(arr[j]>arr[j+1]){//从小到大if(c.compare(arr[j],arr[j+1])>0){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}
bubble02(arr,new Comparator){public int compare(Object o1,Object o2){int i1 = (Integer)o1;int i2 = (Integer)o2;return i1-i2;//升序//return i2-i1-降序}
)};
Arrays.sort(arr);//数组为引用类型,通过方法排序后会影响到实参 
System.out.pritln(Arrays.toString(arr));默认为升序
//可以通过传入一个接口Comparator实现定制排序
Arrays.sort(arr,new Compatator(){
public int compare(Object o1,Object o2){Integer i1 = (Integer) 01;Integer i2 = (Integer) 02;return i2-i1;}
});
//binarySearch--通过二分搜索进行查找,要求必须排好序Integer [] arr = {1,2,35,67};int index = Arrays.binarySearch(arr,1);//0,返回数组索引的值
//copyOf数组元素的复制:Integer [] arr = {1,2,35,67};Integer [] newarr = Arrays.copyOf(arr,arr.length);Integer [] newarr = Arrays.copyOf(arr,arr.length-1);//{1,2,35}Integer [] newarr = Arrays.copyOf(arr,arr.length+1);//{1,2,35,67,null}System.out.println(Arrays.toString(newArr));//{1,2,35,67}
//数组填充:Integer [] arr = {1,2,35,67};
//fill数组元素的填充Integer [] num = new Integer[]{9,3,2};Arrays.fill(num,5);System.out.println(Arrays.toString(num));//[5,5,5]
//equals比较两个数组元素内容是否完全一致,一致返回true,不一致返回falseInteger [] arr1 = {1,2,3,6};Integer [] arr2 = {1,2,90,123};boolean equals = Arrays.equals(arr1,arr2);System.out.println(equals);
//aslist将一组数据转换为ListList aslist = Arrays.asList(2,3,4,5,6);System.out.println("aslist"+ aslist);//[2,3,4,5,6]System.out.println("aslist的运行类型"+aslist.getClass());//Array类的一个静态内部类ArrayList,编译类型为List

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

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

相关文章

Redis篇 数据的编码方式和单线程模型

编码方式和单线程模型 一.redis中的数据类型二. Redis中查询编码方式命令三. 单线程模型四. 经典面试题,redis为何这么快?什么是IO多路复用? 一.redis中的数据类型 在redis中,数据类型大致分为5种 1.字符串类型 2.哈希 3.列表 4.集合 5.有序集合 redis底层在实现这些数据结构…

防火墙技术基础篇:NAT转发之——NAPT(同时转换地址和端口)

NAT转发之——NAPT&#xff08;同时转换地址和端口&#xff09; 网络地址端口转换NAPT 网络地址端口转换NAPT&#xff08;Network Address Port Translation&#xff09;是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中&#xff0c;它可以将中小型的网络隐藏在一个合…

Vue2和Vue3生命周期的对比

Vue2和Vue3生命周期的对比 Vue2 和 Vue3 生命周期对照表Vue2 和 Vue3 生命周期图示 Vue2 和 Vue3 生命周期对照表 触发时机Vue2.xVue3.x组件创建时运行beforeCreate setup createdsetup 挂载在DOM时运行beforeMountonBeforeMountmountedonMounted响应数据修改时运行beforeUpdat…

x264 码率控制原理:x264_ratecontrol_end 函数

x264_ratecontrol_end 函数 原理 函数功能:编码完一帧数据后,保存状态并更新 ratecontrol 状态。函数参数:x264_t *h:编码器上下文结构体int bits:编码该帧所用的比特数int *filler:用于返回一个填充比特数函数调用关系: 函数内部执行流程:初始化x264_ratecontrol_t结…

关于DDos防御...别在听别人瞎扯了.....

前言 无意间刷文章的时候看到一篇文章&#xff0c;写的是遇到ddos&#xff0c;怎么用iptables封IP....... 然后我就百度搜了一下&#xff0c;好多都是这么说的&#xff0c;但是我发现&#xff0c;大多数人只要遭受过长期Ddos的&#xff0c;就不会再信网上的文章 文笔不太好&…

在64位程序中调用SetWindowLong指定窗口处理过程失效问题排查(附C++编译器数据模型)

C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#xff09;https://blog.csdn.net/chenlycly/article/details/125529931C/C基础与进阶&#xff08;专栏文章&#xff0c;持续更新中...&#xff09;https://blog.csdn…

手把手实现AVL——二叉平衡搜索树

概述&#xff1a;本文介绍AVL树的实现&#xff0c;从零构建一颗AVL树&#xff0c;以及对应的插入、删除、旋转操作 什么是AVL树&#xff1f; AVL树是带有平衡条件的二叉查找树&#xff0c;二叉查找树又区别于二叉树&#xff1a;保证有序 这个平衡条件是每个节点的左右子树高…

[数据集][目标检测]红外人狗检测数据集VOC+YOLO格式185张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;185 标注数量(xml文件个数)&#xff1a;185 标注数量(txt文件个数)&#xff1a;185 标注类别…

Python数据分析常用函数

Python基础 数字处理函数 Python提供了用于数字处理的内置函数和内置模块(math)&#xff0c;使用内置模块&#xff0c;需要先导入 import math。 内置函数math模块abs(-5)返回绝对值math.ceil(2.3)返回不小于x的最小整数divmod(9,4)返回商和余数math.floor(2.3)返回不大于x的…

GLCM 特征和LBP特征提取

GLCM 特征 GLCM&#xff08;灰度共生矩阵&#xff09;特征用于描述图像中像素灰度级之间的空间关系&#xff0c;常用于纹理分析。GLCM特征通过统计图像中各个灰度级对之间的出现频率来描述图像的纹理特征。GLCM特征包括能量&#xff08;ASM&#xff09;、对比度&#xff08;Co…

对于创建相关项目时,项目出现红色感叹号,且无jre环境显示,应该怎么解决?

首先&#xff0c;假设你已经下载好了相关你的jre环境&#xff0c;注意&#xff1a;如果你的jre不想用之前用的默认的话&#xff0c;你应该新建一个新的文件路径来存储你的新的jre环境下的项目文件。 先直接new->project->javaproject 点击next: 显示如下&#xff1a;&…

JavaScript表达式语句二

异常处理语句 异常标识一种非中正常得信息&#xff0c;它提示程序在运行过程中发生了意外或错误&#xff0c;然后JavaScript通过一定的方式把它暴露出来&#xff0c;这叫做抛出异常。抛出异常操作表示系统告诉我们当前程序出现了问题&#xff0c;JavaScript使用异常处理语句来…

以一道简单的例题计算灵敏性分析

在例1.1中&#xff0c;全部的变量包括&#xff1a;猪的重量w(磅),从现在到出售猪期间经历的时间t(天),t天内饲养猪的花费C(美元),猪的市场价格p(美元/磅),售出生猪所获得的收益R(美元),我们最终获得的净收益P(美元).这里还有一些其他的有关量&#xff0c;如猪的初始重量(200磅)…

Python 全栈体系【四阶】(五十四)

第五章 深度学习 十二、光学字符识别&#xff08;OCR&#xff09; 3. 文字识别技术 3.1 CRNNCTC(2015) CRNN&#xff08;Convolutional Recurrent Neural Network&#xff09;即卷积递归神经网络&#xff0c;是DCNN和RNN的组合&#xff0c;专门用于识别图像中的序列式对象。…

掌握常用的域信息收集的方法和域控制器攻击的方法(渗透课程)

域信息收集 【实验目的】 通过利用PsExec命令远程连接内网主机&#xff0c;分别收集查询域用户信息和域控制器相关信息&#xff0c;了解并掌握如何收集域内的信息命令。 【知识点】 域信息收集 【实验原理】 NET命令是功能强大的以命令行方式执行的工具。它包含了管理网络…

Nginx企业级负载均衡:技术详解系列(11)—— 实战一机多站部署技巧

你好&#xff0c;我是赵兴晨&#xff0c;97年文科程序员。 工作中你是否遇到过这种情况&#xff1a;公司业务拓展&#xff0c;新增一个域名&#xff0c;但服务器资源有限&#xff0c;只能跟原有的网站共用同一台Nginx服务器。 也就是说两个网站的域名都指向同一台Nginx服务器…

过滤器Filter

目录 概述 Filter快速入门 概述 概念&#xff1a;Filter过滤器&#xff0c;是JavaWeb三大组件&#xff08;Servlet,Filter,Listener&#xff09;之一。 过滤器可以把对资源的请求拦截下来&#xff0c;从而实一些特殊的功能。 过滤器一般完成一些通用的操作&#xff0c;比如…

MySQL(二)基本SQL语句以及基本函数应用

1、基本SQL语句 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型&#xff0c;大致可以分为三类&#xff1a;数值、日期/时间和字符串&#xff08;字符&#xff09;类型。 - 函数应用在sql语句中 -- 临时表 select now() from dual;-- 数…

活动预告|与 Zilliz 共探亚马逊云科技中国峰会

亚马逊云科技中国峰会是由全球云计算的开创者和引领者亚马逊云科技举办的一年一度的科技盛会。 参与者将有机会了解云计算推动行业发展的新趋势与解决方案、生成式 AI 等前沿技术的落地实践&#xff0c;通过大量成功案例解析&#xff0c;获得灵感及经验来解决实际问题&#xff…

民国漫画杂志《时代漫画》第26期.PDF

时代漫画26.PDF: https://url03.ctfile.com/f/1779803-1248635183-9832d2?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!