Java学习笔记03:核心类

4.1 基本类型的封装类

java 复制代码
// 字符串转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(参数) 构造函数,参数可以无、字符数组、字符串、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() 字符串转大写
[String类的常用方法]
"+"连接字符串
  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 复制代码
// 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示例------

java 复制代码
// 定义一个字符型数组
		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示例------

java 复制代码
// 键盘录入你的出生年月日 格式为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 *********/
相关推荐
晚安code几秒前
Java 异常与日志规范:错误码、异常处理、日志规约一次讲清
java
深海呐15 分钟前
仓颉语言是ArkTs的上层语言吗?就像kotlin和Java
java·开发语言·kotlin·仓颉
隔窗听雨眠20 分钟前
OceanBase旁路导入与自增主键冲突深度解析:原理、排查与解决方案
java·服务器·数据库
白露与泡影27 分钟前
聊聊物联网Java后端的核心技术难点(水表/电表/充电桩实战)
java·开发语言·物联网
九硕智慧建筑一体化厂家29 分钟前
直流照明|无尘风淋室照明,高均匀无频闪,适配洁净车间高频合规工况
大数据·人工智能·笔记·智慧城市
LATASA34 分钟前
【 从0到1构建 Agent Harness学习笔记】
网络·笔记·学习
lilian2331 小时前
Harmony os 技术实战|拼豆制图06:收藏 ID、生成记录与重启恢复怎么不打架
android·java·数据库·harmonyos
weixin_431600441 小时前
做 Agent 会用到的 Node API(3):异步与流
前端·学习·ai·agent·ai编程
FakeOccupational1 小时前
【电路笔记 仿真】SPICE仿真器软件 LTspice:绘制简单电路(新建图页+添加组件)并仿真+模型导入+SUBCKT (子电路)绘制与使用+特殊器件绘制
笔记
2601_955759621 小时前
ClaudeAPI成本中心与业务标签设计指南
android·java·数据库