百无聊赖之JavaEE从入门到放弃(十八)其他常用类

目录

一.Math 类

二.Random 类

三.File类

四.枚举


一.Math 类

java.lang.Math 提供了一系列静态方法用于科学计算;常用方法如下:
  • abs 绝对值
  • acos,asin,atan,cos,sin,tan 三角函数
  • sqrt 平方根
  • pow(double a, double b) a 的 b 次幂
  • max(double a, double b) 取大值
  • min(double a, double b) 取小值
  • ceil(double a) 大于 a 的最小整数
  • floor(double a) 小于 a 的最大整数
  • random() 返回 0.0 到 1.0 的随机数
  • long round(double a) double 型的数据 a 转换为 long 型(四舍五入)
  • toDegrees(double angrad) 弧度->角度
  • toRadians(double angdeg) 角度->弧度
【示例】Math 类的常用方法
public class TestMath {public static void main(String[ ] args) {//取整相关操作System.out.println(Math.ceil(3.2));System.out.println(Math.floor(3.2));System.out.println(Math.round(3.2));System.out.println(Math.round(3.8));//绝对值、开方、a 的 b 次幂等操作System.out.println(Math.abs(-45));System.out.println(Math.sqrt(64));System.out.println(Math.pow(5, 2));System.out.println(Math.pow(2, 5));//Math 类中常用的常量System.out.println(Math.PI);System.out.println(Math.E);//随机数System.out.println(Math.random());// [0,1)}
}

输出:

二.Random 类

Random 类: 专门用来生成随机数。

import java.util.Random;
public class TestRandom {public static void main(String[ ] args) {Random rand = new Random();//随机生成[0,1)之间的 double 类型的数据System.out.println(rand.nextDouble());//随机生成 int 类型允许范围之内的整型数据System.out.println(rand.nextInt());//随机生成[0,1)之间的 float 类型的数据System.out.println(rand.nextFloat());//随机生成 false 或者 trueSystem.out.println(rand.nextBoolean());//随机生成[0,10)之间的 int 类型的数据System.out.print(rand.nextInt(10));//随机生成[20,30)之间的 int 类型的数据System.out.print(20 + rand.nextInt(10));}
}
注意
Random 类位于 java.util 包下。

三.File类

File 类的基本用法
java.io.File 类:代表文件和目录,用于:读取文件、创建文件、删除文件、修改文件。
【示例】使用 File 类创建文件
File 类的常见构造方法:public File(String pathname)
以 pathname 为路径创建 File 对象,如果 pathname 是相对路径,则默认的当前路径在系统属性 user.dir 中存储。
import java.io.File;
public class TestFile1 {public static void main(String[ ] args) throws Exception {System.out.println(System.getProperty("user.dir"));File f = new File("a.txt"); //相对路径:默认放到 user.dir 目录下面f.createNewFile();//创建文件File f2 = new File("d:/b.txt");//绝对路径f2.createNewFile();}
}
user.dir 就是本项目的目录。上面代码执行后,在本项目和 D 盘下都生成了新的文件。
通过 File 对象可以访问文件的属性:
【示例】使用 File 类访问文件或目录属性

输出:

通过 File 对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)
【示例】使用 mkdir 创建目录
import java.io.File;
public class TestFile3 {public static void main(String[ ] args) throws Exception {File f = new File("d:/c.txt");f.createNewFile(); // 会在 d 盘下面生成 c.txt 文件f.delete(); // 将该文件或目录从硬盘上删除File f2 = new File("d:/电影/华语/大陆");boolean flag = f2.mkdir(); //目录结构中有一个不存在,则不会创建整个目录树System.out.println(flag);//创建失败}
}
【示例】使用 mkdirs 创建目录

import java.io.File;
public class TestFile4 {public static void main(String[ ] args) throws Exception {File f = new File("d:/c.txt");f.createNewFile(); // 会在 d 盘下面生成 c.txt 文件f.delete(); // 将该文件或目录从硬盘上删除File f2 = new File("d:/电影/华语/大陆");boolean flag = f2.mkdirs();//目录结构中有一个不存在也没关系;创建整个目录树System.out.println(flag);//创建成功}
}

 递归遍历目录结构和树状展现

【示例】使用递归算法,以树状结构展示目录树
import java.io.File;public class Test {public static void main(String[] args) {File f = new File("D:\\BaiduNetdiskDownload");printFile(f, 0);}/*** 打印文件信息** @param file  文件名称* @param level 层次数(实际就是:第几次递归调用)*/static void printFile(File file, int level) {//输出层次数for (int i = 0; i < level; i++) {System.out.print("-");}//输出文件名System.out.println(file.getName());//如果 file 是目录,则获取子文件列表,并对每个子文件进行相同的操作if (file.isDirectory()) {File[] files = file.listFiles();for (File temp : files) {//递归调用该方法:注意要+1printFile(temp, level + 1);}}}
}

四.枚举

JDK1.5 引入了枚举类型。枚举类型的定义包括枚举声明和枚举体。格式如下:
enum 枚举名 {
        枚举体(常量列表)
}

枚举体就是放置一些常量。我们可以写出我们的第一个枚举类型,如示例所示:  

【示例】创建枚举类型
enum Season {SPRING, SUMMER, AUTUMN, WINTER
}
所有的枚举类型隐性地继承自 java.lang.Enum。枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是 public static final 修饰的。可以直接通 过枚举类型名使用它们。
建议
  • 当你需要定义一组常量时,可以使用枚举类型。
  • 尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要 引入枚举,增加程序的复杂性!
【示例】枚举的使用
import java.util.Random;public class Test {public static void main(String[ ] args) {// 枚举遍历for (Week k : Week.values()) {System.out.println(k);}// switch 语句中使用枚举int a = new Random().nextInt(4); // 生成 0,1,2,3 的随机数switch (Season.values()[a]) {case SPRING:System.out.println("春天");break;case SUMMER:System.out.println("夏天");break;case AUTUMN:System.out.println("秋天");break;case WINTER:System.out.println("冬天");break;}}
}/**季节*/
enum Season {SPRING, SUMMER, AUTUMN, WINTER
}
/**星期*/
enum Week {星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日
}

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

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

相关文章

2401Idea用GradleKotlin编译Java控制台中文出乱码解决

解决方法 解决方法1 在项目 build.gradle.kts 文件中加入 tasks.withType<JavaCompile> {options.encoding "UTF-8" } tasks.withType<JavaExec> {systemProperty("file.encoding", "utf-8") }经测试, 只加 tasks.withType<…

后端——go系统学习笔记(不断更新中......)

数组 固定大小 初始化 arr1 : [3]int{1, 2, 3} arr2 : [...]int{1, 2, 3} var arr3 []int var arr4 [4]int切片 长度是动态的 初始化 arr[0:3] slice : []int{1,2,3} slice : make([]int, 10)len和cap len是获取切片、数组、字符串的长度——元素的个数cap是获取切片的容量—…

计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)

基于YOLOv5的无人机视频检测与计数系统 摘要&#xff1a; 无人机技术的快速发展和广泛应用给社会带来了巨大的便利&#xff0c;但也带来了一系列的安全隐患。为了实现对无人机的有效管理和监控&#xff0c;本文提出了一种基于YOLOv5的无人机视频检测与计数系统。该系统通过使用…

C++类和对象(3)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任…

Web3生态系统:构建去中心化的数字社会

随着科技的飞速发展&#xff0c;我们正处在迈向数字未来的道路上&#xff0c;而Web3生态系统则成为这一变革的中心。不仅仅是技术的演进&#xff0c;Web3代表着对传统互联网体系的颠覆&#xff0c;致力于构建一个去中心化的数字社会。本文将深入探讨Web3的核心特征、对金融、社…

数据可视化 pycharts实现地理数据可视化(全球地图)

自用版 紧急整理一点可能要用的可视化代码&#xff0c;略粗糙 以后有机会再改 requirements&#xff1a; python3.6及以上pycharts1.9 数据格式为&#xff1a; 运行结果为&#xff1a; import pandas as pd from pyecharts.charts import Map, Timeline from pyecharts im…

C#读取和保存INI文件配置

在C#应用程序中&#xff0c;读取和保存配置文件是常见的任务&#xff0c;而INI文件是一种轻量级的配置文件格式。在以下代码中&#xff0c;我们将探讨如何使用C#创建一个窗体应用程序&#xff0c;并通过读取和保存INI文件配置来实现一些基本的功能。 创建IniHelper类 首先&…

Node需要了解的知识

Node能执行javascript的原因。 浏览器之所以能执行Javascript代码&#xff0c;因为内部含有v8引擎。Node.js基于v8引擎封装&#xff0c;因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象&#xff0c;BOM是浏览器对象。但是node中提供了cons…

Arcgis10.3安装

所需软件地址 链接&#xff1a;https://pan.baidu.com/s/1aAykUDjkaXjdwFjDvAR83Q?pwdbs2i 提取码&#xff1a;bs2i 1、安装License Manager 点击License Manager.exe&#xff0c;默认下一步。 安装完&#xff0c;点击License Server Administrator&#xff0c;停止服务。…

时间序列预测 —— TCN模型

时间序列预测 —— TCN模型 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;在图像处理等领域取得了显著的成就&#xff0c;一般认为在处理时序数据上不如RNN模型&#xff0c;而TCN&#xff08;Temporal Convolutional Network&#xff09;…

autojs简介与对抗

前言 最近发现现在大多安卓工具很多都是autojs和按键精灵等这些非常易于开发的工具来做黑灰产自动化工具&#xff0c;此帖也是由此做为出发点来展开说说这个autojs&#xff0c;我们如何去做对抗。由于笔者对这块也是刚了解学习不久而且这篇帖子也会说的很简单&#xff0c;有很…

【数据结构】认识数据结构 (通俗解释)

目录 1.认识数据结构 1.1 什么是数据结构 1.1.1 什么是数据&#xff1f; 1.1.2 什么是结构&#xff1f; 1.1.3 通俗比喻&#xff1a; 1.1.4 标准概念概念定义&#xff1a; 1.2为什么需要数据结构&#xff1f; 1.认识数据结构 1.1 什么是数据结构 数据结构是由"数…

【Springcloud篇】学习笔记二(四至六章):Eureka、Zookeeper、Consul

第四章_Eureka服务注册与发现 1.Eureka基础知识 1.1Eureka工作流程-服务注册 1.2Eureka两大组件 2.单机Eureka构建步骤 IDEA生成EurekaServer端服务注册中心&#xff0c;类似于物业公司 EurekaClient端cloud-provider-payment8081将注册进EurekaServer成为服务提供者provide…

【QT】贪吃蛇小游戏 -- 童年回忆

成品展示 项目分析&#xff1a; &#x1f40d;基本元素如下 &#x1f40d;小蛇的设计&#xff0c;初始大小蛇头占一个方块&#xff0c;蛇身占两个方块。 &#x1f40d;关于小蛇的移动&#xff0c;采用蛇头前进方向增加一个方块&#xff0c;蛇尾减掉一个方块的实现方法。 &#…

yum命令下载出现Failed to synchronize cache for repo ‘AppStream‘, ignoring this repo.

修改下面的配置文件 问题&#xff1a; cd /etc/yum.repos.d 修改下面四个文件 vim CentOS-Base.repo vim CentOS-AppStream.repo vim CentOS-Extras.repo vim CentOS-PowerTools.repo测试yum是否正常 yum -y install wget

Linux 高并发服务器

多进程并发服务器 使用多进程并发服务器时要考虑以下几点&#xff1a; 父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符)系统内创建进程个数(与内存大小相关)进程创建过多是否降低整体服务性能(进程调度) server /* server.c */ #include <stdio…

8.DNS域名解析服务器

目录 1. 概述 1.1. 产生原因 1.2. 作用&#xff1a; 1.3. 连接方式 1.4. 因特网的域名结构 1.4.1. 拓扑&#xff1a; 1.4.2. 分类 1.4.3. 域名服务器类型划分 2. DNS域名解析过程 2.1. 分类&#xff1a; 2.2. 解析图&#xff1a; 2.2.1. 图&#xff1a; 2.2.2. 过…

Entity实体设计

Entity实体设计 &#x1f4a1;用来和数据库中的表对应&#xff0c;解决的是数据格式在Java和数据库间的转换。 &#xff08;一&#xff09;设计思想 数据库Java表类行对象字段&#xff08;列&#xff09;属性 &#xff08;二&#xff09;实体Entity编程 编码规范 &#x1f4a…

IDEA JDBC配置

一、在pom中添加依赖 <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency></dependencies> 然后同步一下 二、编写代码…

Ubuntu18.04安装Matlab流程笔记

提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 Ubuntu18.04 安装Matlab流程 下载安装包和破解文件安装Matlab注册并运行 下载安装包和破解文件 matlabR2019A源码 提取码:2ztb 下载的Linux matlab2018a文件夹内有三个文件&#xff1a; # 解压Matlab201…