首页 > 编程语言 >java动手动脑-2024/9/27

java动手动脑-2024/9/27

时间:2024-09-27 22:35:10浏览次数:1  
标签:27 java 0.01 System 0.05 2024 println public out

public class EnumTest {

    public static void main(String[] args) {
        Size s=Size.SMALL;
        Size t=Size.LARGE;
        //s和t引用同一个对象?
        System.out.println(s==t);  //
        //是原始数据类型吗?
        System.out.println(s.getClass().isPrimitive());
        //从字符串中转换
        Size u=Size.valueOf("SMALL");
        System.out.println(s==u);  //true
        //列出它的所有值
        for(Size value:Size.values()){
            System.out.println(value);
        }
    }

}
enum Size{SMALL,MEDIUM,LARGE};

输出

false
false
true
SMALL
MEDIUM
LARGE

结论:

  1. 枚举类型的每个枚举值都是一个单例对象,不同的枚举值代表不同的对象。
  2. 枚举类型不是原始数据类型,它是一种特殊的类类型。
  3. Size.valueOf("SMALL")方法通过传入字符串 "SMALL" 来获取对应的枚举值。
  4. Size.values()方法返回一个包含所有枚举值的数组。

正数的原码 = 反码 = 补码
复数的补码 = 反码 + 1
计算机中的存储和计算都是以补码的形式进行的

public class a02Test2 {
    public static void main(String[] args) {
        int a = 100;
        int b = -50;
        System.out.println(a >> 1);
        System.out.println(b >> 1);
    }
}

输出

50
-25

java中的数是用二进制表示的


package TestCode3;

public class TestDouble {

    public static void main(String args[]) {
        System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
        System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
        System.out.println("4.015 * 100 = " + (4.015 * 100));
        System.out.println("123.3 / 100 = " + (123.3 / 100));
    }
}

输出

0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999

import java.math.BigDecimal;

public class TestBigDecimal
{
    public static void main(String[] args)
    {
        BigDecimal f1 = new BigDecimal("0.05");
        BigDecimal f2 = BigDecimal.valueOf(0.01);
        BigDecimal f3 = new BigDecimal(0.05);
        System.out.println("下面使用String作为BigDecimal构造器参数的计算结果:");
        System.out.println("0.05 + 0.01 = " + f1.add(f2));
        System.out.println("0.05 - 0.01 = " + f1.subtract(f2));
        System.out.println("0.05 * 0.01 = " + f1.multiply(f2));
        System.out.println("0.05 / 0.01 = " + f1.divide(f2));
        System.out.println("下面使用double作为BigDecimal构造器参数的计算结果:");
        System.out.println("0.05 + 0.01 = " + f3.add(f2));
        System.out.println("0.05 - 0.01 = " + f3.subtract(f2));
        System.out.println("0.05 * 0.01 = " + f3.multiply(f2));
        System.out.println("0.05 / 0.01 = " + f3.divide(f2));
    }
}

输出

下面使用String作为BigDecimal构造器参数的计算结果:
0.05 + 0.01 = 0.06
0.05 - 0.01 = 0.04
0.05 * 0.01 = 0.0005
0.05 / 0.01 = 5
下面使用double作为BigDecimal构造器参数的计算结果:
0.05 + 0.01 = 0.06000000000000000277555756156289135105907917022705078125
0.05 - 0.01 = 0.04000000000000000277555756156289135105907917022705078125
0.05 * 0.01 = 0.0005000000000000000277555756156289135105907917022705078125
0.05 / 0.01 = 5.000000000000000277555756156289135105907917022705078125

double 类型是采用二进制的科学计数法来存储数值的。具体来说:

  1. 它用 1 位表示符号位,11 位表示指数位,52 位表示尾数位。
  2. 这种存储方式决定了它不能精确表示所有的十进制小数。例如,十进制的 0.1 在二进制中是一个无限循环小数,只能用近似值来表示。

package TestCode3;

public class Test1 {
    public static void main(String[] args) {
        int X=100;
        int Y=200;
        System.out.println("X+Y="+X+Y);
        System.out.println(X+Y+"=X+Y");
    }
}

输出

X+Y=100200
300=X+Y
字符串拼接-从前往后


生成100以内随机算式

import java.util.Random;

public class randomMath {
    public static void main(String[] args) {
        Random ch = new Random();
        Random r = new Random();
        Character[] chArr = {'+','-','*','/'};

        for (int i = 0; i < 30; i++) {
            int first = r.nextInt(100);
            int second = r.nextInt(99)+1;
            char c = chArr[ch.nextInt(4)];
            System.out.print(first);
            System.out.print(c);
            System.out.println(second + " = ");
        }
    }
}

标签:27,java,0.01,System,0.05,2024,println,public,out
From: https://www.cnblogs.com/XYu1230/p/18436718

相关文章

  • JAVA连接HDFS操作
    JAVA连接HDFS操作一、引言在大数据时代,Hadoop分布式文件系统(HDFS)扮演着重要的角色。对于Java开发者来说,掌握如何使用Java连接和操作HDFS是一项基本技能。本文将介绍如何通过Java代码连接HDFS,并执行一些基本的文件操作。二、连接HDFS1、第一步:添加依赖要使用Java操作HDF......
  • JAVA连接HDFS使用案例
    JAVA连接HDFS使用案例一、引言Hadoop分布式文件系统(HDFS)是大数据存储的基础。对于Java开发者来说,能够通过Java代码操作HDFS是处理大数据任务的关键技能。本文将通过几个简单的示例,展示如何使用Java连接HDFS并执行一些基本的文件操作。二、连接HDFS1、第一步:添加依赖在M......
  • 三篇文章速通JavaSE到SpringBoot框架 (中) IO 进程线程 网络编程 XML MySQL JDBC相关
    文章目录IOfile类的作用I/O的作用将上篇文章综合项目使用IO流升级所需知识点进程线程创建线程的三种方式网络编程网络编程介绍IP地址端口号网络通信协议网络通信协议的分层演示代码XMLXML的作用是什么?xml特点注解什么是注解?注解的使用注解的重要性注解的使用实例M......
  • 9.27
    因为昨天部署成功服务器,所以把云服务器关机了,但是当我再重启时,更换了公网IP,再进行重新打包时,前端便库库报错,这次搞了好久才搞好,所以总结一下前后端都需要改哪里。前端1、部署在云服务器上的前后端通信时,前端向后端通信时需要的是公网IP。 2、部署时需要修改nginx的配置......
  • 2024/9/27
    第一个输出:X和Y会被转换成字符串"100"和"200",然后与前面的字符串连接起来,输出结果将是:X+Y=100200第二个输出:X和Y首先被相加得到300,然后300与字符串"=X+Y"连接。由于300是一个整数,它会被转换成字符串"300",然后与后面的字符串连接起来,输出结果将是:300=X+Yimpor......
  • 【2024计算机毕业设计】基于jsp+mysql+Spring+mybatis的SSM在线装潢家装材料进销存管
    运行环境:最好是javajdk1.8,我在这个平台上运行的。其他版本理论上也可以。IDE环境:Eclipse,Myeclipse,IDEA或者SpringToolSuite都可以,如果编译器的版本太低,需要升级下编译器,不要弄太低的版本tomcat服务器环境:Tomcat7.x,8.x,9.x版本均可操作系统环境:WindowsXP/7......
  • 【2024.09.27】NOIP2024 赛前集训-刷题训练(3)
    【2024.09.27】NOIP2024赛前集训-刷题训练(3)「NOIP2018提高组」铺设道路算法一:模拟正常人铺路的过程,每次找区间的最小值,最小值就是本次填的高度,由于出现了若干个0位置,就分裂成若干个子区间去重复上述过程,直到全部变成0。时间复杂度\(O(nlogn)\),瓶颈在预处理st表。算法二:若......
  • 2024/9/27日工作日志
    复习英语单词60个;完成数据结构pta选择题,函数第一题;includeincludeincludeincludeusingnamespacestd;defineOVERFLOW-2typedefintElemType;//ElemType为可定义的数据类型,此设为int类型defineMAXSIZE100//顺序表可能达到的最大长度typedefstruct......
  • java的类加载机制
    java的类加载机制  Java的类加载机制通过动态加载、内存管理、安全性和代码隔离等功能,为开发者提供了强大的支持,适应了现代应用的需求  一、类的生命周期  类的生命周期包括:加载、链接、初始化、使用和卸载,其中加载、链接、初始化,属于类加载的过程,我们下面仔细讲解。......
  • [Java手撕]生产者消费者模型
    importjava.util.LinkedList;importjava.util.Queue;importjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.ReentrantLock;publicclassMain{publicstaticfinalQueue<Integer>message=newLinkedList<>();......