当前位置: 首页 > article >正文

【Java基础入门篇】一、变量、数据类型和运算符

Java基础入门篇


一、变量、数据类型和运算符

1.1 变量

计算机中的数据表示方式是:“二进制(0/1)”,但是同时也可以兼容其他进制,例如八进制、十进制、十六进制等。

Java变量的本质是:存储在固定空间的内容,变量名是通过名字操作空间,数据是会变化的量。变量可以分为局部变量成员变量静态变量三类。

常量:是用final定义的,一次初始化后就不再更改(由final修饰的变量不能被修改,修饰的方法不能被重写,修饰的类不能被继承)

class Test{
	// 定义一个成员变量,属于对象,生命周期伴随对象的始终
	int t1 = 100;
	// 定义一个静态变量,属于类,生命周期伴随类的始终
	static int t2 = 10;
}

写一个简单的方法测试变量定义与输出:

    /*
    * 用于记录变量定义
     */    
public static void testDigital(){
        int age = 18;
        int b; //使用变量前必须初始化
        System.out.println("age: "+ age);
        b = 0;
        System.out.println("b: " + b);
        final double PI = 3.14;
        int r = 4;
        System.out.println("PI is: " + PI + " radius is: " + r + " area is: " + PI * r * r);
    }

在这里插入图片描述

1.2 数据类型

Java数据类型包括8种基本数据类型+3种引用类型

  • 8种基本数据类型:
    • 数值6种:
      • 整数类型:byte(1B),short(2B),int(4B),long(8B)
      • 浮点类型:float(4B),double(8B))
      • :1B = 8bit
    • 字符型:char
    • 布尔型:boolean
  • 3种引用类型:
    • 接口
    • 数组

byte表示一个字节,范围是-2^7 ~ 2^7-1,即-128 ~ +127,中间的0需要抛去。

Java语言定义整形常量的四种表示形式:

  • 二进制(e.g. 要求以0b或0B开头,0b01110011)。

  • 十进制整数(e.g. 99,-500,0);

  • 八进制整数(e.g. 要求以0开头,015);

  • 十六进制(e.g. 要求以0x或0X开头,0x15);

字符集发展-最早是ASCII(英文,数字,特殊字符,控制符),后来发展到了汉语,汉语用两个字节表示(2B)也就是2^16-65536,足以表示所有的汉字,目前汉语最常用的就是UTF-8。

布尔类型(true/false),用于帮助我们进行逻辑判断,通常占用一个字节(1B)或者4个字节(bool数组)

    /*
    * 用于记录不同进制数值
     */
public static void testInt(){
        int a = 100; //十进制
        int b = 015; //八进制
        int c = 0xff; //十六进制
        int d = 0b100110101; //二进制

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);

        int salary = 3000; //默认类型为int
        long yearSalary = 30000000;

        System.out.println(yearSalary);
    }

在这里插入图片描述

1.3 运算符

java提供了丰富的运算符来操作变量,e.g. *, /, %, ++, +=, ==,!=, instanceof, &, |, ?:。当使用算术运算的时候,如果两个操作数有一个为long,最后结果也为long。没有long的时候结构为int(即使操作数权威short,byte)。如果两个操作数其中一个为double,则结果为double,只有两个操作数都未float时,结果才为float。取模运算可以使用浮点数,但是一般使用整数,结果是“余数”,类型为整型,符号与左侧的操作数一致(7%3=1,-7%3=-1)。

    /*
    * 记录浮点数用法
     */
    public  static  void testFloat(){
        double d1 = 3.14;
        double d2 = 3.14E2; //科学计数

        System.out.println("d1: "+ d1+ " d2: " +d2);

        float f1 = 1.65F; //浮点数默认类型是double,改float需要在后面加F
        System.out.println(f1);

        //浮点数不精确,尽量不要直接比较
        float f2 = 0.1F;
        double d3 = 1.0/10;
        System.out.println(f2 == d3);

        float f4 = 324324324L; // 末尾加L表示为long类型
        float f5 = f4 + 1;
        System.out.println(f4 == f5);

    }

在这里插入图片描述

  /*
    * 记录字符串用法
     */
    public static void testChar(){
        char c1 = 'a';
        char c2 = '中';
        char c3 = '\u0061';

        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);

        //java种字符串不是基本数据类型,而是一个类
        String str = "我爱中国";
        System.out.println(str);

        //转义字符
        char c5 = '\n';
        System.out.println("a\nb\nc\n");
        System.out.println("this is a \'book\'");

    }

在这里插入图片描述

除此之外,还有输入/输出方法:

    /*
    * 记录输入/输出用法
     */
    public static void testScanner(){
        Scanner s = new Scanner(System.in);

        System.out.println("请输入姓名:");
        String name = s.nextLine();

        System.out.println("请输入年龄:");
        int age = s.nextInt();

        // 在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter等结束符过滤掉
        // 否则nextLine()会自动读取上一步next()去掉的回车作为自己的输入
        s.nextLine();
        System.out.println("请输入性别:");
        String sex = s.nextLine();

        System.out.println("请输入工资:");
        double salary = s.nextDouble();

        System.out.println("姓名: "+name +" 年龄: "+age+" 性别: "+sex+" 工资: "+salary);


    }

在这里插入图片描述


http://www.kler.cn/a/415532.html

相关文章:

  • 在Springboot项目中实现将文件上传至阿里云 OSS
  • ZooKeeper 基础知识总结
  • MTK 展锐 高通 sensorhub架构
  • 抓包之OSI七层模型以及TCPIP四层模型
  • 51c大模型~合集79
  • 爆改老旧笔记本---将笔记本改造为家用linux服务器
  • 数据结构---链表
  • PHP用正则把HTML中的js脚本过滤掉
  • 李春葆《数据结构》-查找-课后习题代码题
  • TiDB 架构
  • mysql集群NDB方式部署
  • 基于Java Springboot 易家宜超市云购物系统
  • Conda 管理python开发环境
  • npm和pnpm区别
  • CIKM23|基于会话推荐的因果关系引导图学习
  • OpenAI:2025年ChatGPT将成为“企业大脑”,并向Agent过渡
  • 【科研】9如何高效阅读和理解学术论文
  • Ps:存储 Adobe PDF - 输出
  • 零售餐饮收银台源码
  • 龙迅#LT8711GX适用于Type-C/DP1.4a 转 HDMI2.1 应用领域,分辨率高达8K30HZ,内置程序,可提供技术支持!
  • Linux 命令 pwd:探索当前工作目录的奥秘
  • Nginx篇之实现nginx转发兼容HTTP和Websocket两种协议
  • [CA] 尝试深入理解core.cpp -1
  • C++11-lambda表达式
  • mac maven编译出现问题
  • 回文链表(java)