Java基础-----常用类
2021/12/5 12:48:17
本文主要是介绍Java基础-----常用类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java基础-----常用类
文章目录
- 一、Scanner类
- 二、包装类
- 2.1、包装类概述
- 2.2、包装类对应基本类型
- 2.3、包装类的用途
- 2.4、自动装箱和拆箱
- 2.4.1、自动拆箱/拆箱的本质
- 2.4.2、包装类的缓存问题
- 2.4.2.1 为什么两个100的对象使用== 相等,但是两个1000的对象使用 ==不等于
- 三、字符串相关类
- 3.1、String字符串
- 3.2、StringBuilder和StringBuffer可变字符序列
- 3.3、字符串和可变字符序列使用陷阱
- 四、 时间处理类
- 4.1、时间类图
- 4.2、时间类方法
- 4.3、DateFormat类和SimpleDateFormat类
- 4.3.1、字符串转换成Date
- 4.3.2、Date转换成字符串
- 4.3.3、格式化字符的意义
- 4.3.3、使用格式化字符
- 4.4、Calender类
- 五、其他类
- 5.1、Math和Randon类
- 5.2、File类
- 5.2.1、作用
- 5.2.2、创建目录或者文件
- 5.2.3、递归将一个文件夹中的所有文件复制到另外一个文件夹中
- 5.3、枚举
- 总结
一、Scanner类
(主要作用:用户交互)
package com.wr.oyc; import java.util.Scanner; public class System { public static void main(String[] args) { Scanner scanner = new Scanner(java.lang.System.in); java.lang.System.out.print("请输入您的年龄:"); int num = scanner.nextInt(); if(num < 18 ){ java.lang.System.err.println("禁止未成年上网!!!"); }else{ java.lang.System.out.println("去网吧耍吧"); } } }
二、包装类
2.1、包装类概述
2.2、包装类对应基本类型
类图:
2.3、包装类的用途
2.4、自动装箱和拆箱
定义:自动装箱和拆箱就是将基本数据类型就是和包装类自动转换
2.4.1、自动拆箱/拆箱的本质
自动装箱:
自动拆箱:
2.4.2、包装类的缓存问题
2.4.2.1 为什么两个100的对象使用== 相等,但是两个1000的对象使用 ==不等于
原因在valueof方法中 a、如果传入的数在缓存的区间就返回原来的数字(也就是同一个对象) 如果传入的数不在缓存区间就返回新的对象,那么就算两个数字相同 但是对象不同那么内存地址也就不同,使用==比较的就内存地址
三、字符串相关类
3.1、String字符串
对于"hello" + "java“ 和 "hellojava"是同一对象,由于字符串常量池 但是str3+str4 是不等于str5 因为在编译期间编译器是不知道str3 + str4是什么的 什么 str4 不等于 (str3 + str4)
3.2、StringBuilder和StringBuffer可变字符序列
3.3、字符串和可变字符序列使用陷阱
不要用String去拼接字符串,每一次拼接都是创建一个对象,占用空间
四、 时间处理类
4.1、时间类图
4.2、时间类方法
package com.wr.oyc.date; import java.util.Date; public class Demo1 { public static void main(String[] args) { Date date = new Date(100000000000003032L); System.out.println(date); System.out.println(date.getTime()); Date date1 = new Date(-21L*365*24*3600*1000); System.out.println(date1); } }
4.3、DateFormat类和SimpleDateFormat类
4.3.1、字符串转换成Date
4.3.2、Date转换成字符串
4.3.3、格式化字符的意义
4.3.3、使用格式化字符
4.4、Calender类
菜鸟教程中的时间类
五、其他类
5.1、Math和Randon类
菜鸟教程中Math类
5.2、File类
5.2.1、作用
5.2.2、创建目录或者文件
5.2.3、递归将一个文件夹中的所有文件复制到另外一个文件夹中
package wr.oyc; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class CopyCopyFileAndDirectory { public static void main(String[] args) { copyAll(new File("C:\\Users") , new File("E:\\")); } // 复制整个文件夹的方法 public static void copyAll(File source, File start) { if (!start.exists()) {// 目的地是否有bourn的文件或者目录 start.mkdir();// 没有就创建一个 File[] listFiles = source.listFiles();// 获取源文件当前目录下第一层的所有文件信息 for (File file : listFiles) {// 循环遍历 if (file.isFile()) {// 当前的元素时文件么 如果是 则直接进行拷贝 copyFile(new File(source + "\\" + file.getName()), new File(start+ "\\" + file.getName())); } else {// 如果不是 则是目录 递归调用自己的方法 实现多层级复制 copyAll(new File(source + "\\" + file.getName()), new File(start+ "\\" + file.getName())); } } } } // 复制一个文件的方法 public static void copyFile(File src, File newplace) { BufferedInputStream bis = null;// 创建输入输出缓存字节流 提高数据流通的性能 BufferedOutputStream bos = null; try { bis = new BufferedInputStream(new FileInputStream(src));// 把字节流和字节缓存流连接在一起,形成通路 bos = new BufferedOutputStream(new FileOutputStream(newplace)); byte[] b = new byte[1024];// 创建byte数组的中转站,缓存为1024byte int len = 0;// 接受读取时read方法的返回值 while ((len = bis.read(b)) != -1) {// 返回值为-1则读完了 停止读取和写入 bos.write(b);// 写出byte数组的数据 bos.flush();// 手动刷新输出的缓冲区 } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (bos == null) { try { bos.close();// 反向关闭高层流 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (bis == null) { try { bis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
5.3、枚举
总结
关于Scanner类的输出、包装类的装箱和拆箱、字符串String和可变字符序列StringBuffer、StringBuilder
再到Math类和Random类、枚举类、文件类、再到时间类Date SimpleDateFormat 字符串转时间 时间转字符串 Calender类 ,一起加油,每日一记
这篇关于Java基础-----常用类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南