Java学习笔记03:核心类

4.1 基本类型的封装类

// 字符串转int
Integer obj = new Intreger("10");
int n = new Integer("10");
int num = Integer.parseInt("10");
// 字符串转float
float fl = loat.parseFloat("10.0");
float f2 = new Float("10.0");// int转字符串
String n = "" + 10;
String n = Integer.toString(10);
String n = String.valueOf(10);

4.2 装箱和拆箱

装箱是将栈中的数据封装成类的对象存储到堆中。拆箱是将对象转换成基本类型数据值,放到栈中。

4.3 Object 类

Object类是顶级父类,所有类都直接或间接继承了Object类,故而所有类都可调用其中的方法,都可以赋值给Object。

方法功能描述
protected clone()copy
public equals(object)比较二者内容是否相等
protected finalize()清理资源
public final getClass()返回运行时对象类型
public hashCode()返回哈希代码值
public String toString()返回其字符串表示
  1. 注意“==”比较的是两个对象的地址是否相同,而equals比较内容是否相同,然而如果一个类没有重写equals方法,那么二者运行结果相同。
  2. toString()如果没有被重写,默认返回:类名@哈希代码值。

4.4 字符串类

  1. String创建的字符串是不可变的。
  2. StringBuffer创建的字符串是可变的,最终可以通过toString()的方式转换成一个String对象。
  3. StringBuilder也是可以创建可变字符串,然而它并不像StringBuffer一样是线程安全的(多线程并发的时候,对数据进行保护,防止同时对数据进行操作,数据是安全了,但是相对的运行速度会变慢),所以不涉及线程安全、同步方面的问题,应优先考虑ta。

4.4.1 String类

String类的常用方法
方法功能描述
String(参数)构造函数,参数可以无、字符数组、字符串、StringBuffer、StringBuilder
charAt(int)获取指定下标字符

compareTo(String)

比较字符串大小,返回不等字符编码值的差
endsWith(String)是否以某字符串结尾
equals(Object)比较字符串内容是否相等
indexOf(String s)找出指定子字符串在字符串中出现的第一次位置
lastIndexOf(String s)找出指定子字符串在字符串中出现的最后一次位置
length()长度
subString(int begin, int end)截取字符串
valueOf(X x)将其他类型转换成字符串类型
toUpperCase()字符串转大写
“+”连接字符串
  1. 加号前面是字符串的时候,会将后面的类型自动转换成字符串,于是如果放一个语句是不能执行后再将结果转换成字符串的
  2. 但是如果将语句放在加号前面,就可先执行语句再将结果转换成字符串类型,然后再实现连接

4.2.2 StringBuffer类

方法功能描述
append(String s)末尾追加字符串
capacity()返回返回缓冲区容量
delete(int start, int end)删除指定位置区间子字符串
insert(int offset, String s)指定位置插入字符串
setCharAt(int index, char ch)设置指定下标字符
setLength(int newLength)设置长度
replace(int start, int end, String s)

替换

reverse()反转字符串
toString()输出缓冲区字符串

4.4.3 StringBuilder类

除去线程安全,至于方法都一致。

4.5 Scanner类

方法功能描述
hasNext(Pattern pattern)判断输入的数据是否符合指定的正则标准
next()接受输入的内容并以字符串形式返回
next(Pattern pattern)接受输入的内容,并进行正则验证
nextInt()接受输入整数
useDelimiter(String pattern)设置读取的分隔符
// Java中本身的next()方法就相当于C++中的cin
// 而如果特意设置useDelimitet("\n"),就相当于getline()方法Scanner sc = new Scanner(System.in);
sc.useDelimiter("\n"); // 设置读取的分隔符为回车
String s = sc.next();

4.6 Math类

方法名

描述

abs(double)绝对值
ceil(double) floor(double)得到不大于/小于的最小/大整数
round(double)四舍五入返回int或long
sqrt(double)开方
pow(double, double)第一个参数的第二个参数次幂
random()返回在区间[0.0, 1.0)内的数

Random示例—— 

// 定义一个字符型数组char[] pardStore = new char[62];// 把所有的大写字母放进去 把所有的小写字母放进去 把0到9放进去/********* Begin *********/int size = 0;for(char i = 'A'; i <= 'Z'; i++) {pardStore[size++] = i;}for(char i = 'a'; i <= 'z'; i++) pardStore[size++] = i;for(char i = '0'; i <= '9'; i++) pardStore[size++] = i;/********* End *********/// 分别以1、2、3作为种子数 生成6位随机密码Scanner sc = new Scanner(System.in);int seed = sc.nextInt();/********* Begin *********/Random random = new Random(seed);for(int i = 0; i < 6; i++) System.out.print(pardStore[random.nextInt(62)]);/********* End *********/

4.7 Date类

Date示例——

// 键盘录入你的出生年月日 格式为yyyy-MM-dd// 把该字符串转换为一个日期// 通过该日期得到一个毫秒值// 获取2020年10月1日的毫秒值// 两者想减得到一个毫秒值// 把该毫秒值转换为天 打印输出Scanner sc = new Scanner(System.in);String line = sc.nextLine();/********* Begin *********/SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");Date d = ft.parse(line);long n = d.getTime();Date d2 = ft.parse("2020-10-01");long now = d2.getTime();long gap = now - n;System.out.print("你的出生日期距离2020年10月1日:");System.out.println(gap / 86400000 + "天");/********* End *********/

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

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

相关文章

【论文笔记】ResRep: Lossless CNN Pruning via Decoupling Remembering and Forgetting

Abstract 提出了ResRep&#xff0c;一种无损通道修剪的新方法&#xff0c;它通过减少卷积层的宽度&#xff08;输出通道数&#xff09;来缩小CNN的尺寸。 建议将CNN重新参数化为记忆部分和遗忘部分&#xff0c;前者学习保持性能&#xff0c;后者学习修剪。通过对前者使用常规 …

[BT]BUUCTF刷题第16天(4.12)

第16天 Web [MRCTF2020]Ezpop 打开网站就是一段泄露的源代码&#xff1a; <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack…

「49」一拆为九,探索直播内容的商业价值

「49」拆分变现:一拆为九探索直播内容的商业价值 直播已经成为现代社交互动的热门方式,然而,直播内容一经结束,是否可以为我们带来更多的价值? 这篇文章将探究如何发挥创意,将直播内容变现为多种形式,例如电子书、实体书、课程和短视频、文章、音频等,让我们一起来一…

数字化转型(二)-华为发布的数字化转型:从战略到执行

个人认为这是一篇很好&#xff0c;值得看的文章&#xff0c;但是没啥大用&#xff0c;可供参考。 数字化转型是一个复杂而全面的过程&#xff0c;它涉及到从战略规划到具体执行的多个层面。根据提供的信息&#xff0c;我们可以从以下几个方面来理解和探讨数字化转型的从战略到执…

文件名乱码危机:数据恢复全攻略

在数字化时代的浪潮中&#xff0c;电脑文件成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;有时我们会突然遭遇一个令人头疼的问题&#xff1a;原本清晰易读的文件名突然变成了乱码。这些乱码文件名不仅让我们无法准确识别文件内容&#xff0c;更可能意味着数据丢…

时间序列分析 # 平稳性检验和ARMA模型的识别与定阶 #R语言

掌握单位根检验的原理并能解读结果&#xff1b;掌握利用序列的自相关图和偏自相关图识别模型并进行初步定阶。 原始数据在文末&#xff01;&#xff01;&#xff01; 练习1、根据某1971年9月-1993年6月澳大利亚季度常住人口变动&#xff08;单位&#xff1a;千人&#xff09;的…

一个开源跨平台嵌入式USB设备协议:TinyUSB

概述 TinyUSB 是一个用于嵌入式系统的开源跨平台 USB 主机/设备堆栈&#xff0c;设计为内存安全&#xff0c;无需动态分配&#xff0c;线程安全&#xff0c;所有中断事件都被推迟&#xff0c;然后在非 ISR 任务函数中处理。查看在线文档以获取更多详细信息。 源码链接&#xff…

Redis从入门到精通(十五)Redis分布式缓存(三)Redis分片集群的搭建和原理分析

文章目录 前言5.4 分片集群5.4.1 搭建分片集群5.4.2 散列插槽5.4.3 集群伸缩5.4.3.1 需求分析5.4.3.2 创建新的Redis实例5.4.3.3 添加新节点到Redis集群5.4.3.4 转移插槽 5.4.4 故障转移5.4.4.1 自动故障转移5.4.4.2 手动故障转移 5.4.5 RedisTemplate 5.5 小结 前言 Redis分布…

kali工具----枚举工具

一、枚举工具 枚举是一类程序&#xff0c;它允许用户从一个网络中收集某一类的所有相关信息。本节将介绍DNS枚举和SNMP枚举技术。DNS枚举可以收集本地所有DNS服务和相关条目。DNS枚举可以帮助用户收集目标组织的关键信息&#xff0c;如用户名、计算机名和IP地址等&#xff0c;…

【Qt】界面优化

目录 一、QSS 1.1 基本语法 1.2 QSS设置方法 1.2.1 指定控件样式设置 1.2.2 全局样式设置 1.2.3 从文件加载样式表 1.2.4 使用Qt Designer编辑样式 1.3 选择器 1.3.1 介绍 1.3.2 子控件选择器 1.3.3 伪类选择器 1.4 样式属性(盒模型) 1.5 代码示例(登录界面) 二、…

OSCP靶场--Banzai

OSCP靶场–Banzai 考点(ftp爆破 webshell上传web1访问403web2可以访问webshell反弹mysql udf提权) 1.nmap扫描 ## nmap扫描一定要使用 -p- 否则容易扫不全端口 ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.158.56 -Pn -p- --min-rate 2500Starting Nmap 7.…

机器学习前导——PyCharm PyTorch Python3 机器学习

机器学习前导——PyCharm & pytorch & Python3 & 机器学习 文章目录 前言PyCharmPyTorchPython3机器学习联系 前言 这学期选了《机器学习》&#xff0c;第一次接触&#xff0c;对一些专有名词很陌生。 PyCharm PyCharm是一款由JetBrains开发的软件&#xff0c…

STM32 串口接收定长,不定长数据

本文为大家介绍如何使用 串口 接收定长 和 不定长 的数据。 文章目录 前言一、串口接收定长数据1. 函数介绍2.代码实现 二、串口接收不定长数据1.函数介绍2. 代码实现 三&#xff0c;两者回调函数的区别比较四&#xff0c;空闲中断的介绍总结 前言 一、串口接收定长数据 1. 函…

SpringBoot3 + Vue3 + Uniapp + uView + Elenment 实现动态二级分类以及二级分类的管理

SpringBoot3 Vue3 Uniapp uView Elenment 实现动态二级分类以及二级分类的管理 1. 效果展示1.1 前端显示效果1.2 后台管理一级分类1.3 后台管理二级分类 2. 后端代码2.1 GoodsCategoryController.java2.2.1 GoodsCategoryMapper.java2.2.2 GoodsCategorySonMapper.java2.3.…

Zookeeper的集群搭建和ZAB协议详解

Zookeeper的集群搭建 1&#xff09;zk集群中的角色 Zookeeper集群中的节点有三个角色&#xff1a; Leader&#xff1a;处理集群的所有事务请求&#xff0c;集群中只有一个LeaderFollwoer&#xff1a;只能处理读请求&#xff0c;参与Leader选举Observer&#xff1a;只能处理读…

数仓维度建模

维度建模 数仓建模方法1. 范式建模法&#xff08;Third Normal Form&#xff0c;3NF&#xff09;2. 维度建模法&#xff08;Dimensional Modeling&#xff09;3. 实体建模法&#xff08;Entity Modeling&#xff09; 维度建模1. 事实表事实表种类事务事实表周期快照事实表累计快…

强大的数据分析计算软件:Stata 15 for Mac 激活版

Stata 15 for Mac是一款高级统计分析软件&#xff0c;具有强大的数据管理和数据提取工具。以下是其功能和特点的详细介绍&#xff1a; 软件下载&#xff1a;Stata 15 for Mac 激活版版下载 数据管理&#xff1a;Stata 15 for Mac支持多种数据库、数据格式和计算机语言&#xff…

salesforce apex判断用户的登录网址

在Salesforce Apex中判断用户的登录网址可以通过使用User和LoginHistory对象来实现。以下是一种可能的方法&#xff1a; // 导入必要的命名空间 // 注意&#xff1a;需要为该类启用“Use With Sharing”或者使用无法设置为“Use With Sharing”的类 // 以便访问LoginHistory对…

如何在淘~宝接单和解决别人问题-java开发

如下这是一个连接&#xff1a;https://s.tb.cn/c.0vDtL3https://s.tb.cn/c.0vDtL3 解决各种问题。可付费咨询

【JAVA基础篇教学】第四篇:Java条件语句

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第四篇&#xff1a; Java条件语句。 在Java中&#xff0c;条件语句用于根据不同的条件执行不同的代码块。Java提供了if、else if和else等关键字来实现条件判断。 一、if语句 if语句用于执行一个代码块&#xff0c;如果给…