JavaSE基础知识(7)—常用类
一、包装类
1、理解
java为八大基本数据类型一一对应提供了引用类型,方便使用里面的属性和方法
2、包装类型
byte——>Byte
short——>Short
int——>Integer
long——>Long
float——>Float
double——>Double
char——>Character
boolean——>Boolean
3、常用方法
(1)Integer/Byte/Short/Long/Float/Double/Boolean
以Integer为例:Integer i =127;
int a = i.intValue();//将Integer类型转换成int类型
Integer i2=Integer.valueOf(变量);//将其他类型转换成对应的包装类型
int b = Integer.parseInt(s);//将字符串转换成int
String s1 = Integer.toHexString(i);//将整数转换成对应的十六进制
String s2 = Integer.toOctolString(i);//将整数转换成对应的八进制
(2)Character类:
isLetter:判断是否为字母
isDigit:判断是否为数字
isUpperCase:判断是否为大写
isLowerCase:判断是否为小写
isWhiteSpace:判断是否为空格
toUpperCase:转换成大写
toLowerCase:转换成小写
4、注意事项
如果参数类型为基本类型,形参的改变不影响实参
如果参数类型为引用类型,形参如果改变的是地址,则不影响实参
形参如果改变的是成员(属性),则影响实参
对于八大包装类来讲,每次更改的只可能是地址,不可能是成员,(原因:里面维护的value成员是final修饰),所以,如果参数类型为包装类型,形参的改变不影响实参
二、String
1、String类的说明
String类是java.lang包中的一个用于保存字符串的类
2、创建对象★
方式一:
String s = "hello";
方式二:
String s = new String("hello");
区别:★
方式一:先去常量池判断是否有"hello"对象,如果有则直接指向,如果没有则需要创建,然后再指向
方式二:先去堆中创建String的对象,然后通过s引用指向该对象。该对象中维护了value的属性,接着判断常量池中是否有“hello”对象,如果有,则直接通过value指向,如果没有则创建好后,通过value指向
3、String类的不可变特性 ★
String类保存的是字符串常量,里面的值不能更改,每次看到的更改,实则是更改地址。原因:String中维护的value属性是final修饰的
4、String类的常见方法 ★
substring:截取子串
indexOf:查找字符或字符串第一次出现的索引,如果找不到,返回-1
lastIndexOf:查找字符或字符串最后一次出现的索引,如果找不到,返回-1
toUpperCase:转换成大写
equalsIgnoreCase:忽略大小写的判断相等
toLowerCase:转换成小写
toCharArray:转换成字符数组
trim:去前后空格
format:格式字符串
concat:拼接字符串
length:获取字符的个数
intern:判断常量池中是否有该对象,如果有直接指向,否则创建后再指向
split:分割字符串
compareTo:判断两个字符串大小,如果前者大,返回正数,如果前者小,返回负数,如果相等返回0
charAt:获取指定索引处的字符
startsWith:判断是否以xx开始
endsWith:判断谁以xx结尾
valueOf:将其他类型转换成字符串
equals:判断两个字符串的内容是否相等
toString:重写了Object类的toString,可以返回字符串内容
三、StringBuffer和StringBuilder
1、说明
StringBuffer属于java.lang包中的一关用于保存字符串的类,相当于String的增强版
2、StringBuffer创建对象
形式一:构建了一个StringBuffer对象,里面维护了初始容量为的char[] value
StringBuffer s = new StringBuffer();
形式二:构建了一个StringBuffer对象,里面维护了初始容量为指定capacity的char[] value
StringBuffer s = new StringBuffer(int capacity);
形式三:构建了一个StringBuffer对象,里面维护了初始容量为str.length()+16的char[] value
StringBuffer s = new StringBuffer(str);
3、StringBuffer和String的转换
(1)String——>StringBuffer
StringBuffer buffer = new StringBuffer(string);
(2)StringBuffer——>String
String s = buffer.toString();
或
String s = new String(buffer);
4、StringBuffer的常见方法 ★
append:追加任意类型的元素到buffer对象,返回StringBuffer类型
delete:删除指定范围内的元素,返回StringBuffer类型
replace:替换指定范围内容内的元素,返回StringBuffer类型
indexOf:查找字符串的索引,如果找不到,返回-1
insert:在指定索引处插入任意类型的元素,,返回StringBuffer类型
reverse:反转
length:长度
5、String、StringBuffer、StringBuilder对比
(1)String和StringBuffer的对比
相同点:
String和StringBuffer都是用于保存字符串的,都有对字符串处理和操作的方法,比如获取长度,查找、拼接等
不同点:
String类保存的是字符串常量,里面的值一旦配置好,则不能更改,每次更改都是更改地址,需要重新指向,效率较低
StringBuffer保存是字符串变量,里面的值哪怕配置好,也可以更改,不需要重新指向,增删改的效率较高
(2)StringBuffer和StringBuilder的对比
相同点:
StringBuffer和StringBuilder保存的都是字符串变量,创建对象和常用方法均相同
不同点:
StringBuffer版本为1.0,线程安全,效率较低
StringBuilder版本为1.5,线程不安全,效率较高
四、Math
1、说明
Math类是java.lang包中的一个用于处理和操作数值型的类,里面提供了一系列静态方法
2、常见方法
abs 绝对值
min 较小值
floor 向下取整
random 随机数
ceil 向上取整
max 较大值
round四舍五入:对于负数,先加0.5,然后向下取整
sqrt 求开方
pow 求幂
五、Arrays
1、说明
Arrays类是java.util包下的一个用于管理数组的类,里面提供了一系列的静态方法
2、常见方法
sort(数组名) :自然排序。根据数组元素本身的比较规则进行排序。
要求:数组元素必须实现Comparable接口,并实现里面的抽象方法compareTo
sort(数组名,comparator):定制排序。根据提供的comparator的比较规则进行排序
binarySearch(数组名,待查找的元素):通过二分搜索法进行查找。如果找到返回元素的下标,否则返回负数
要求:该数组已经排好序
binarySearch(数组名,带查找的元素,comparator)::通过二分搜索法进行查找。如果找到返回元素的下标,否则返回负数
要求:该数组已经排好序
copyOf(旧数组,新数组的长度):复制数组,返回一个指定长度的新数组
fill(数组名,待填充的元素):将指定的元素填充到数组中
equals(数组1,数组2):比较两个数组元素是否相等
toString(数组):将数组的各元素进行拼接,最终返回字符串
六、System
1、说明
System类是java.lang包中的一个和系统信息相关的类,保存了一系列静态的字段和方法
2、常见方法
gc:运行垃圾回收机制,jvm做了最大努力,但不一定立刻回收
arrayCopy:复制数组
exit:退出
currentTimeMillis:获取当前时间距离1970-1-1的毫秒数
getProperties:获取当前系统的属性列表
七、日期
1、第一代
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh小时mm分钟ss秒");
String dateString = sdf.format(d);
2、第二代
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calenar.SECOND);
String dateString = String.format("%d-%d-%d %d小时%d分钟%d秒",year,month,day,hour,minute,second);
3、第三代
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd hh小时mm分钟ss秒");
String dateString = dtf.format(ldt);
八、BigInteger和BigDecimal
1、BigInteger类
(1)说明
BigInteger属于java.math包下的一个用于保存较大整型的类,比Long保存的整型范围更大。
(2)常见方法
add 加
substract 减
multiply乘
divide除
max 较大值
min 较小值
2、BigDecimal
(1)说明
BigDecimal属于java.math包下的一个用于保存精度更高浮点型的类,比Double保存的浮点型精度更高,比较适合处理精度要求更高的货币运算
(2)常见方法
add 加
substract 减
multiply乘
divide除
max 较大值
min 较小值
JavaSE基础知识(7)—常用类的更多相关文章
- JavaSE基础知识总结
最近回顾了一下Java的基础知识,决定写成博客梳理一遍,主要是JavaSE部分最基础的知识,适合考前突击,学后回顾,不适合作为初学材料. 简单的列个目录吧: 一.数据类型和运算符 二.流程控制与数组 ...
- JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)
一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...
- Shell编程(二)——shell的基础知识及常用命令
shell的基础知识 一.bash有以下特点: 1.记录命令历史 2.指令和文件名补全 3.别名 alias rm='rm -i' 4.通配符 * 0个或多个字符 ?匹配一个字符 5 输入输出重定向 ...
- Java基础——6种常用类讲解
本文主要介绍几种Java中常用类的应用. 一.System类 从API当中我们可以看出,public final class System exends Object.System类包含一些有用的字段 ...
- JavaSE基础知识---常用对象API之String类
一.String类 Java中用String类对字符串进行了对象的封装,这样的好处在于对象封装后可以定义N多属性和行为,就可以对字符串这种常见的数据进行方便的操作. 格式:(1)String s1 = ...
- JavaSE基础知识(5)—面向对象(Object类)
一.包 java.lang包,属于java中的核心包,系统默认导入的,不用手动导入该包中的类:Object.System.String.Integer等 1.包的好处 ①分类管理java文件,查找和管 ...
- JavaSE基础知识(5)—面向对象(5.2类的成员)
一.属性 1.语法 数据类型 属性名 [= 属性值]; 2.特点 ①属性的数据类型可以为任意类型,包含基本类型或引用类型②属性可以不用手动赋值,有默认值 int——0 double——0.0 char ...
- JavaSE基础知识(5)—面向对象(5.1类和对象概念、创建及内存分配)
一.类和对象的相关概念 1.面向对象和面向过程的理解 面向对象和面向过程都属于解决问题的思考方式.面向过程:以执行者的角度思考问题,侧重于“怎么做”,比较适合解决小型项目面向对象:以指挥者的角度思考问 ...
随机推荐
- day1.接口测试(概念、Postman、SoapUI、jmeter)
一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...
- java 字节编码学习
位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头.UTF-8最多可用到6个字节. 如表: 1字节 0xxxxxxx 2字节 110xxxxx 10xxxxxx 3字节 11 ...
- linux服务器后台运行服务
linux 后台运行一个服务 难免会遇到在Linux,后台执行任务.下面,总结了一下关闭窗口任然在后台执行的方法,例如 #执行一个打包命令 tar czf /data/backup.tgz /data ...
- mint linux 18.3 遇到“已安装的 post-installation 脚本 返回了错误号 127 ”问题的解决
From https://blog.csdn.net/ropai/article/details/27171687 ubuntu 14.04遇到“已安装的 post-installation 脚本 返 ...
- AET PN结
电场方向 电场方向和正电荷受力方向相同 飘移运动和扩散运动 多子和电场方向互相抵制,而多子是扩散运动,而对少子则是促进作用,当扩散和漂移达到动态平衡时,我们称PN结形成 PN结特性 单项导电性
- c博客作业01--顺序、分支结构
1.本章学习总结 1.1思维导图 1.2本章的学习体会及代码量学习体会 1.2.1学习体会 本周学习的感受:原先基础是0的,所以本周学习起来并不是很轻松,有很多知识运用的 不是很熟,但是基本的知识是能 ...
- LeetCode 104. Maximum Depth of Binary Tree二叉树的最大深度 C++/Java
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- Burpsuite Sqlmap Nmap入门总结
burpsuite sqlmap nmap 简介 sqlmap基础 五种独特sql注入技术: 基于布尔类型的盲注 基于时间的盲注 基于报错注入 联合查询注入 堆查询注入 sqlmap入门 1.判断是否 ...
- Could not read document: Can not deserialize instance of java.lang.String out of START_ARRAY
线上问题: { "timestamp": "1544510665", "status": 400, "error": & ...
- azkaban使用--指定executor
PS:局限,虽然可以指定在一台节点上执行,但是失去了高可用的优势,如果有不同类型的任务建议用多套azkaban 假如二台executor,下图中的4,5,我想将任务运行在hadoop02上,因为只有这 ...