花几千上万学习Java,真没必要!(二十七)

news2024/9/21 14:43:23

1、Math类:

package mathtest.com;
public class MathDemo {  
	  
    public static void main(String[] args) {  
        // 定义圆的半径  
        double radius = 5.0;  
          
        // 计算并打印圆的周长  
        double circumference = 2 * Math.PI * radius;  
        System.out.printf("圆的周长: %.2f%n", circumference);  
          
        // 计算并打印圆的面积  
        double area = Math.PI * Math.pow(radius, 2);  
        System.out.printf("圆的面积: %.2f%n", area);  
          
        // 假设要计算以该圆为底面的球体的体积和表面积  
        // 球的半径与圆的半径相同  
          
        // 计算并打印球体的体积  
        double volume = (4.0 / 3) * Math.PI * Math.pow(radius, 3);  
        System.out.printf("球体的体积: %.2f%n", volume);  
          
        // 计算并打印球体的表面积  
        double surfaceArea = 4 * Math.PI * Math.pow(radius, 2);  
        System.out.printf("球体的表面积: %.2f%n", surfaceArea);  
          
        // Math.round()和Math.floor()的使用  
        double number = 123.456;  
        System.out.println("Math.round(number): " + Math.round(number)); // 四舍五入  
        System.out.println("Math.floor(number): " + Math.floor(number)); // 向下取整  
          
        // Math.max()和Math.min()的使用  
        int a = 10, b = 20;  
        System.out.println("Math.max(a, b): " + Math.max(a, b));  
        System.out.println("Math.min(a, b): " + Math.min(a, b));  
          
        // Math.abs()的使用  
        int negativeNumber = -5;  
        System.out.println("Math.abs(negativeNumber): " + Math.abs(negativeNumber));  
          
        // Math.sqrt()和Math.pow()的使用  
        double squareRoot = Math.sqrt(16);  
        System.out.println("Math.sqrt(16): " + squareRoot);  
          
        double power = Math.pow(2, 3); // 2的3次方  
        System.out.println("Math.pow(2, 3): " + power);  
        
  
        double angleRadians = Math.toRadians(45); // 将角度转换为弧度  
 
        // 计算并打印指定角度的正弦、余弦和正切值  
        double sinValue = Math.sin(angleRadians);  
        double cosValue = Math.cos(angleRadians);  
        double tanValue = Math.tan(angleRadians);  
        System.out.printf("sin(%d°) = %.2f%n", (int) Math.toDegrees(angleRadians), sinValue);  
        System.out.printf("cos(%d°) = %.2f%n", (int) Math.toDegrees(angleRadians), cosValue);  
        System.out.printf("tan(%d°) = %.2f%n", (int) Math.toDegrees(angleRadians), tanValue);  
  
        
        // 计算e的x次幂和a的x次幂  
        double expE = Math.exp(1); // e的1次幂,即e本身  
        double expA = Math.pow(2, 3); // 2的3次幂  
        System.out.println("e^1 = " + expE);  
        System.out.println("2^3 = " + expA);  
  
        
        // 计算自然对数和以10为底的对数  
        double logE = Math.log(Math.E);  
        double log10 = Math.log10(100); 
        System.out.println("ln(e) = " + logE);  
        System.out.println("log10(100) = " + log10);  
    }  
}

运行结果如下:

 

2、System类:

package mathtest.com;
import java.util.Arrays;

public class SystemDemo {  
	  
    public static void main(String[] args) {  
        // 使用System.out.println打印欢迎信息  
        System.out.println("欢迎来到System类演示程序!");  
  
        // 设置和获取系统属性  
        // 设置一个自定义的系统属性  
        System.setProperty("my.custom.property", "Hello, World!");  
        // 获取并打印设置的系统属性  
        String customProperty = System.getProperty("my.custom.property");  
        System.out.println("自定义系统属性: " + customProperty);  
  
        // 获取一个不存在的系统属性,并处理NullPointerException(实际上System.getProperty不会抛出此异常,而是返回null)  
        String nonExistentProperty = System.getProperty("non.existent.property");  
        if (nonExistentProperty == null) {  
            System.out.println("指定的系统属性不存在。");  
        }  
  
        // System.currentTimeMillis()  
        long startTime = System.currentTimeMillis();  
        // 耗时操作  
        try {  
            Thread.sleep(2000); // 休眠2秒  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
        }  
        long endTime = System.currentTimeMillis();  
        System.out.println("耗时操作执行了大约 " + (endTime - startTime) + " 毫秒。");  
  
        // System.exit()的使用,用于在程序遇到严重错误时退出  
        //实际应用中,通常会在捕获到严重错误或异常情况时调用System.exit()终止程序。
        try {  
            // 假设有一个条件判断,如果满足则抛出异常  
           // throw new Exception("发生了一个严重的错误,程序将退出。");  
        } catch (Exception e) {  
            e.printStackTrace();  
            System.out.println("由于发生错误,程序将退出。");  
            //System.exit(1); // 非零值通常表示异常退出  
        }  
  
        // 以下代码在上面的System.exit(1)之后不会执行  
        System.out.println("这行代码不会执行,因为程序已经退出了。");  
  
        // Arrays.copyOf和System.arraycopy的使用  
        int[] originalArray = {1, 2, 3, 4, 5};  
        // 使用System.arraycopy复制数组
        int[] copiedArray = new int[originalArray.length];  
        System.arraycopy(originalArray, 0, copiedArray, 0, originalArray.length);  
        // 使用Arrays.copyOf 
        int[] anotherCopiedArray = Arrays.copyOf(originalArray, originalArray.length);  
  
        // 打印复制后的数组
        System.out.println("使用System.arraycopy复制的数组: " + Arrays.toString(copiedArray));  
        System.out.println("使用Arrays.copyOf复制的数组: " + Arrays.toString(anotherCopiedArray));  
        // 如果移除System.exit(1)的调用,那么所有打印语句都将执行。  
    }  
}  

运行结果如下:

 

3、Object类:

测试代码1:

package mathtest.com;
public class ObjectClass {  
    private String data;  
  
    // 构造方法  
    public ObjectClass(String data) {  
        this.data = data;  
    }  
  
    public String getData() {
		return data;
	}

	public void setData(String data) {
		this.data = data;
	}

	// 重写 toString 方法打印类名和哈希码  
    @Override  
    public String toString() {  
        // 使用 Integer.toHexString 将哈希码转换为十六进制字符串 。 
        // 为了保持哈希码的正数表示,可以使用 | 0x00000000FFFFFFFFL 与操作 。 
        // 对大多数用途来说,直接转换通常就足够。  
        return getClass().getName() + "@" + Integer.toHexString(hashCode());  
    }  
  
    public static void main(String[] args) {  
    	ObjectClass obj = new ObjectClass("Hello, World!");  
        //调用 toString() 方法打印对象的类名和哈希码。
    	//哈希码是基于对象的内存地址计算得出的。
    	//当多次运行程序或创建同一个类的多个实例时,哈希码可能会不同。
        System.out.println(obj); 
    }  
}

运行结果如下:

 

测试代码2:

package mathtest.com;
public class Person {  
    private String name;  
    private int age;  
  
    // 构造方法 
    public Person(String name, int age) {  
        this.name = name;  
        this.age = age;  
    }  
  
    public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

	@Override  
    public String toString() {  
        // 使用StringBuilder构建字符串
		//Person类重写toString()方法,返回一个包含name和age信息的字符串。
        StringBuilder sb = new StringBuilder();  
        sb.append("Person{name='").append(name).append('\'');  
        sb.append(", age=").append(age);  
        sb.append('}');  
        return sb.toString();  
    }  
  
    public static void main(String[] args) {  
        Person person = new Person("Alice", 30);  
        //使用重写后的toString()方法  
        //在控制台打印Person对象,得到一个更有意义的输出,而不是默认的哈希码。
        System.out.println(person); 
    }  
}

 运行结果如下:

 

4、equals方法:

package mathtest.com;
import java.util.HashSet;
//equals方法首先检查obj是否是this的引用(即比较两个引用是否指向同一个对象),
//然后检查obj是否为null或者obj是否属于与this相同的类型。
//它将obj转换为Cup类型(这是安全的,因为已经检查了类型),并比较两个Cup对象的material和volume属性。
//在比较字符串时,使用material == cup.material检查引用是否相同。
//使用material != null && material.equals(cup.material)检查字符串内容是否相同。
//这是处理字符串比较时的常见做法,以避免NullPointerException。
//如果material字段在逻辑上不应该为null,可能还需要添加对null的检查来确保类的健壮性。
public class Cup {  
    private String material; // 杯子材质  
    private int volume; // 杯子容量,以毫升为单位  
  
    // 构造方法  
    public Cup(String material, int volume) {  
        this.material = material;  
        this.volume = volume;  
    }  
  
    public String getMaterial() {
		return material;
	}

	public void setMaterial(String material) {
		this.material = material;
	}

	public int getVolume() {
		return volume;
	}

	public void setVolume(int volume) {
		this.volume = volume;
	}


	// 重写equals方法  
    @Override  
    public boolean equals(Object obj) {  
        // 检查是否为同一个对象的引用  
        if (this == obj) return true;  
        // 检查是否为null或者类型是否相同  
        if (obj == null || getClass() != obj.getClass()) return false;  
        // 转换类型  
        Cup cup = (Cup) obj;  
        // 比较属性值  
        return volume == cup.volume &&  
               (material == cup.material || (material != null && material.equals(cup.material)));  
    }  
  
    // 重写hashCode方法以保持equals和hashCode的一致性  
    @Override  
    public int hashCode() {  
        int result = material != null ? material.hashCode() : 0;  
        result = 31 * result + volume;  
        return result;  
    }  
  
    // 重写toString方法  
    @Override  
    public String toString() {  
        return "Cup{" +  
               "material='" + material + '\'' +  
               ", volume=" + volume +  
               '}';  
    }  
  
    public static void main(String[] args) {  
        Cup cup1 = new Cup("Ceramic", 300);  
        Cup cup2 = new Cup("Ceramic", 300);  
        Cup cup3 = new Cup("Glass", 300);  
  
        // equals方法  
        System.out.println(cup1.equals(cup2)); // 输出 true,因为材质和容量相同  
        System.out.println(cup1.equals(cup3)); // 输出 false,因为材质不同  
        System.out.println(cup1.equals(null)); // 输出 false,因为obj为null  
        // 通常不会直接与Object类型的null进行比较。
  
        // hashCode方法(通过添加到HashSet间接演示)  
        HashSet<Cup> cups = new HashSet<>();  
        cups.add(cup1);  
        System.out.println(cups.contains(cup2)); // 输出 true,因为hashCode和equals都表明cup1和cup2相等  
        // toString方法  
        System.out.println(cup1); // 输出 Cup{material='Ceramic', volume=300}  
    }  
}

运行结果如下:

 

 

 

 

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

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

相关文章

Vue 状态管理 Vue CLI

Vue 状态管理 & Vue CLI 1、状态管理2、集中状态管理2.1 Vuex2.1.1 Vuex核心概念2.1.2 Vuex Store实例2.1.3 Vuex Getter2.1.4 Vuex Mutation2.1.4 Vuex Actions2.1.4 Vuex Module 2.2 Pinia2.2.1功能增强 3、Vuex 实现原理4、Pinia 实现原理5、CLI5.1 实现 1、状态管理 将…

【机器学习】激活函数:神经网络的灵魂

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 激活函数&#xff1a;神经网络的灵魂什么是激活函数?常见激活函数类型1. Sigmo…

Linux环境安装KubeSphere容器云平台并实现远程访问Web UI 界面

文章目录 前言1. 部署KubeSphere2. 本地测试访问3. Linux 安装Cpolar4. 配置KubeSphere公网访问地址5. 公网远程访问KubeSphere6. 固定KubeSphere公网地址 前言 本文主要介绍如何在Linux CentOS搭建KubeSphere并结合Cpolar内网穿透工具&#xff0c;实现远程访问&#xff0c;根…

UE4调试UE4Editor-Cmd.exe

在工作中&#xff0c;我们看到这样的构建命令&#xff1a; %EnginePath%\Binaries\Win64\UE4Editor-Cmd.exe %ClientPath%\%ProjectName%.uproject -runHotPatcher {其它参数} 我们应该如何调试UE4Editor-Cmd.exe呢&#xff1f;其实调试 UE4Editor.exe 就可以了&#xff08;参考…

Mac安装Hoomebrew与升级Python版本

参考 mac 安装HomeBrew(100%成功)_mac安装homebrew-CSDN博客 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 安装了Python 3.x版本&#xff0c;你可以使用以下命令来设置默认的Python版本&#xff1a; # 首先找到新安…

IDEA安装并使用通义灵码

IDEA安装并使用通义灵码 通义灵码介绍安装通义灵码 通义灵码介绍 在数字革命的前沿&#xff0c;阿里云技术团队匠心独运&#xff0c;倾力打造“通义灵码”——一个融合尖端科技的智能编码助手&#xff0c;旨在革新软件工程的未来。 实时代码扩展 通义灵码具备深度理解代码脉络的…

opencascade AIS_Line源码学习

前言 AIS_Line 是 OpenCASCADE 库中的一个类&#xff0c;用于表示和操作三维直线。它可以通过几何线&#xff08;Geom_Line&#xff09;或者两个几何点&#xff08;Geom_Point&#xff09;来初始化。 方法 1 //! 初始化直线 aLine。 Standard_EXPORT AIS_Line(const Handl…

8.0.32 mysql 配置主从数据库

配置前提&#xff1a; 两台服务器都需要安装同一版本的mysql数据库 我的版本是8.0.32 数据库参数修改 主数据库my.cnf(linux)或my.ini(win)配置&#xff1a; 这里需要注意&#xff1a;server-id必须唯一主从两个库必须要不一样 log_binmysql-bin server-id24 gtid-modeON …

yolov8训练自己的实例分割数据集

参考&#xff1a; 1、官方教程&#xff1a;https://docs.ultralytics.com/zh/tasks/segment/ 2、YOLOv8制作自己的实例分割数据集保姆级教程&#xff08;包含json转txt&#xff09; 下载最新yolov8代码 git clone https://github.com/ultralytics/ultralytics.git一、制作自…

vue学习day12-声明式导航续、路由重定向、Vue路由-404、Vue路由-模式设置、编程式导航

34、声明式导航续 &#xff08;4&#xff09;跳转传参 1&#xff09;跳转传参 ①语法&#xff1a; 传递&#xff1a;to“/path?参数名值” 接收&#xff1a;如果在模版里&#xff0c;通过$route.query.参数名获取&#xff0c;如果在js代码里&#xff0c;通过this. $route…

代码随想录算法训练营第六十四天|Floyd 算法、A * 算法、最短路算法总结

97. 小明逛公园 Floyd 算法 Floyd-Warshall算法是一种用于求解图中所有节点对之间最短路径的经典算法。它的时间复杂度为O(n^3)&#xff0c;适用于节点数量不多&#xff08;通常不超过几百个&#xff09;的密集图。该算法不仅能处理带权有向图&#xff0c;还能处理带权无向图。…

模拟建造游戏:城市:天际线2(都市天际线2)中文免安装,解压即撸

《城市&#xff1a;天际线2》&#xff08;Cities: Skylines II&#xff09;是一款模拟经营游戏&#xff0c;由Colossal Order开发&#xff0c;Paradox Interactive发行。 下载地址&#xff1a;https://pan.quark.cn/s/84e69332ec3e 更多游戏&#xff1a;https://kdocs.cn/l/cuH…

vue3引入openlayers

安装ol包 OpenLayers作为 ol npm包提供&#xff0c;它提供了官方支持的API的所有模块。 官方地址&#xff1a;ol npm install ol模块和子模块约定 具有CamelCase名称的OpenLayers模块提供类作为默认导出&#xff0c;并且可能包含其他常量或函数作为命名导出&#xff1a; i…

HarmonyOS Next 省市区级联(三级联动)筛选框

效果图 完整代码 实例对象 export class ProvinceBean {id?: stringpid?: stringisSelect?: booleandeep?: objectextName?: stringchildren?: ProvinceBean[] }级联代码 import { MMKV } from tencent/mmkv/src/main/ets/utils/MMKV import { ProvinceBean } from ..…

MLIR的TOY教程学习笔记

MLIR TOY Language 文章目录 MLIR TOY Language如何编译该项目ch1: MLIR 前端IR解析ch2: 定义方言和算子 (ODS)1. 定义方言2. 定义OP3. OP相关操作4. 定义OP ODS (Operation Definition Specification)1. 基本定义2. 添加文档3. 验证OP4. 新增构造函数5. 定义打印OP的格式 ch3:…

【数据结构】:用Java实现链表

在 ArrayList 任意位置插入或者删除元素时&#xff0c;就需要将后序元素整体往前或者往后搬移&#xff0c;时间复杂度为 O(n)&#xff0c;效率比较低&#xff0c;因此 ArrayList 不适合做任意位置插入和删除比较多的场景。因此&#xff1a;java 集合中又引入了 LinkedList&…

电脑怎么恢复删除的文件?8个方法,简单搞定文件恢复!(强力推荐)

电脑怎么恢复删除的文件&#xff1f;随着如今几乎每个人都拥有或使用计算机&#xff0c;文件丢失和误删已成为我们在日常计算机使用中难以避免的问题之一。在我们使用计算机的过程中&#xff0c;经常会遇到各种问题&#xff0c;有些可以轻松解决&#xff0c;而有些可能需要专业…

键盘是如何使用中断机制的?当打印一串字符到显示屏上时发生了什么???

当在键盘上按下一个键时会进行一下操作&#xff1a; 1.当按下任意一个键时&#xff0c;键盘编码器监控会来判断按下的键是哪个 2.键盘控制器用将解码,将键盘的数据保存到键盘控制器里数据寄存器里面 3.此时发送一个中断请求给中断控制器&#xff0c;中断控制器获取到中断号发送…

Spring Security认证授权介绍

一、目标 真正控制系统权限的&#xff0c;需要引入专门的安全框架才行&#xff0c;所以&#xff0c;我们今天重点来学习Spring家族中的一员Spring Security安全框架。最终呢&#xff0c;我们会使用Spring Security框架来控制养老项目的后台管理系统 能够熟悉常见的权限控制的方…

释疑 803-(1)概述 精炼提纯版

目录 习题 1-01计算机网络可以向用户提供哪些服务? 1-02 试简述分组交换的要点。 1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。 1-05 互联网基础结构的发展大致分为哪几个阶段?请指出这几个阶段最主要的特点。 1-06 简述互联网标准制定的几个阶段…