Java 基础学习第二节: Java 变量与数据类型

news2024/12/25 18:05:47

第二节

001.回顾

  • 1.Java开发环境
    • 1.Java编译运行过程
      • 编译期:.java源文件,经过编译,生成.class字节码文件
      • 运行期:JVM加载.class文件并运行
      • 跨平台,一次编程,到处使用
    • 2.名词解释
      • JVM:java虚拟机,加载并运行.class
      • JRE:java运行环境,JVM+java系统类库
      • JDK:java开发工具包,JRE+开发java程序的必须命令工具
    • 3.配置环境变量
  • 2.Eclipse
    • IBM,开源的,免费的,java开发的IDE集成开发环境
    • 开发步骤
      • 1.创建java项目
      • 2.创建java
      • 3.创建java
    • 注释:解释性文本,计算机不会执行
      • 单行注释 //
      • 多行注释 /* */
      • 文档注释 /** */

002.什么是变量

最早期的计算机是用来帮我们算数的(数字)

现在的计算机,还是用来算数的(数字,文字,图片,音频,视频等)转换为01

  • 举例:淘宝网

输入 www.taobao.com 一个数据

淘宝首页 一堆数据

搜索手机壳 交给淘宝处理的一个数据

返回搜索结果页面 一堆数据

详情页面 一堆数据

购物车 一堆数据

结算 一堆数据

  • 总结

计算机的本质就是 Input(输入数据)+Output(输出数据)

  • 引出

变量就是用来存数据的.

变量是指在内存中开辟的存储空间,用于存放在运算过程中要用到的数据

003.变量的声明

  • 当需要使用一个变量时,必须对该变量进行声明
  • 变量的声明包含两点:变量类型和变量名
  • 一条语句可以声明多个同类型的变量
package com.lxgzhw;

public class Variable01 {

	public static void main(String[] args) {
		//声明一个整型的变量,名为a
		int a;
		//声明三个整型的变量,名为b,c,d
		int b,c,d;//注意,是用逗号隔开
	}

}

004.变量的初始化

package com.lxgzhw;

public class Variable02 {

	public static void main(String[] args) {
		// 声明整型变量a并赋值为220
		int a = 220;
		int b;// 声明整型变量b
		b = 333;// 给变量b赋值为333
		int sum = 0;
		sum = a + b;
		System.out.println("a+b=" + sum);
	}

}
  • 1.声明的同时初始化
  • 2.先声明,后初始化

005.变量的使用

  • 1.对变量的操作,就是对它所存的那个数的操作
package com.lxgzhw;

public class Variable03 {

	public static void main(String[] args) {
		int a = 5;
		// 取出a的值,然后+10,再赋值给b
		int b = a + 10;
		// 打印b的值,这个时候 b=5+10
		System.out.println("a+10=" + b);
	}

}
  • 2.变量的操作必须与数据类型匹配
    • 整数只能与整数相加
    • 浮点数只能与浮点数运算
  • 3.变量在使用执行必须声明并初始化

006.变量的命名

  • 1.只能包含字母,熟悉,_下划线和$符,不能以数字开头
  • 2.严格区分大小写
  • 3.不能使用关键字,如public,class,static
  • 4.不建议使用中文名,最好是英文名,见名知意,驼峰命名法
    • 除了首字母小写外,其他单词首字母都大写,适合变量名,方法名
    • 大驼峰命名法也叫帕斯卡命名法,所有单词首字母都大写,适合类名
package com.lxgzhw;

public class Variable04 {

	public static void main(String[] args) {
		// 1.变量的声明
		int a;
		int b, c, d;

		// 2.变量的初始化
		int age = 22;
		System.out.println("年龄是:" + age);
		int score;
		score = 99;
		System.out.println("分数是:" + score);

		// 3.变量的使用
		age = age + 1;
		System.out.println("他今年又长了一岁,现在的年龄是:" + age);
		score = score - 10;
		System.out.println("老师很不开心,决定扣10分,他现在的分数是:" + score);
	}

}

007.基本数据类型

  • 1.int整型:4个字节,只能装整数,-21亿到21个多亿
  • 2.long长整型:8个字节,只能装整数,很大很大很大
  • 3.double浮点型:8个字节,只能装小数,很大很大很大
  • 4.boolean布尔型:1个字节,只能装true和false
  • 5.char字符型,2个字节

在这里插入图片描述

008.计算机基本单位转换

1G=1024M(兆)
1M=1024KB(千字节)
1KB=1024B(字节)
1B=8Bit(位)

009.int类型

int是最常用的整数类型,一个int类型的变量占用4个字节(32位)

所谓整数直接量(literal)就是直接写出的整数

例如:

int age=22;

这里的22就是直接量

关于整数直接量,需要注意:

  • 整数的直接量类型默认为int类型
  • 除了通常的十进制书写形式,整数直接量也经常写16进制的形式(0x0X开头)或八进制(0开头)
  • 两个整数相除,会舍弃小数的部分(不是四舍五入),结果也是整数
  • 两个整数进行运算时,其结果可能会超出整数的范围而溢出
package com.lxgzhw.datatype;

public class Int01 {

	public static void main(String[] args) {
		// 1.整数直接量默认为int类型,不能超范围
		// 2.两个整数相除,小数部分直接舍弃,不会四舍五入
		// 3.整数运算时,若超出范围,则发生溢出(需要避免)
//		int salary=10000000000;//编译错误
		int salary = 100000000 * 1000;// 超过范围,不报错,溢出
		System.out.println("当前的工资是:" + salary);
	}

}
  • 案例:数据溢出演示
package com.lxgzhw.datatype;

public class Int02 {

	public static void main(String[] args) {
		// 数据溢出案例演示
		int num = 2147483647;
		num += 1;
		System.out.println(num);

		num += 2;
		System.out.println(num);

		num += 3;
		System.out.println(num);
		
	}

}

010.long类型

  • 在表示整数时,如果int类型的范围不够,可以使用long类型
  • long有8字节64位
  • 如果要表示long的直接量,直接在后面加上lL即可
package com.lxgzhw.datatype;

public class Long01 {
	public static void main(String[] args) {
		System.out.println("定义一个Long类型的整数:");
		long salary = 30000000000L;
		System.out.println("当前工资为:" + salary);
	}
}

long类型可以和int类型进行计算,结果是long类型

package com.lxgzhw.datatype;

public class Long02 {
	public static void main(String[] args) {
		// int和long类型进行运算,自动转换为long类型
		int salary = 1000000000;
		long num = 1000L;
		long result = salary * num;
		System.out.println(result);
	}
}
  • 案例:统计时间
package com.lxgzhw.datatype;

public class Long03 {
	public static void main(String[] args) {
		// 计算一年所用的毫秒数
		long year = 365 * 60 * 60 * 24;
		System.out.println("去年今天到今年今天的毫秒数为:" + year);

		// 计算1970年1月1日零点到现在的毫秒数
		long now = System.currentTimeMillis();
		System.out.println("1970年1月1日零点到现在的毫秒数为:" + now);
	}
}

011.double类型

浮点型,8个字节,只能装小数,范围很大很大

  • 1.浮点数,就是小数,包括floatdouble
  • 2.double类型的精度值是float类型的两倍,这正是其名称双精度的来由
  • 3.大多数场合使用double来表示浮点数
  • 4.默认的浮点直接量为double类型,如果需要表示float类型,需要在后面加fF
  • 5.浮点数的直接量有两种写法
    • 通常写法
    • 科学计数法 1.33E3相当于1.33乘上10的3次方
十进制:
1/2  0.5
1/4  0.25
以上称为精确表示
1/3  0.333333....
2/3  0.666666....
以上无法精确表示,称为无限循环小数

二进制:
二进制也有很多不能精确表示的数
  • 6.二进制系统中无法精确的表示1/10,就好像十进制无法精确表示1/3,所以,double类型的运算有时候会出现误差,所以,精确运算场合不能使用double类型,例如财务,这种时候可以使用BigDecimal

  • 案例:浮点型数据的定义方法

package com.lxgzhw.datatype;

public class Double01 {

	public static void main(String[] args) {
		// 创建一个double类型
		double salary = 30000.00;
		// 创建一个float类型
		float salary01 = 30000.00F;// 后面加F
		// 科学计数法表示
		double sunSalary = 3.33E4;
		// 打印测试
		System.out.println("唐唐的工资为:" + salary);
		System.out.println("八戒的工资为:" + salary01);
		System.out.println("悟空的工资为:" + sunSalary);
	}

}

012.练习

声明整型变量a并赋值为250

声明整型变量b并赋值为100亿

输出5/2

输出2/5

输出2.0/5

声明整型变量c并赋值为2147483647(int最大值),然后加1,输出c

声明长整型变量d并赋值为100亿

声明长整型变量e并赋值为10亿*2*10L,输出e

声明长整型变量f并赋值为10亿*3*10L,输出f

声明长整型变量g并赋值为10亿L*e*10,输出g

声明长整型变量h并赋值为System.currentTimeMillis(),输出h

声明浮点型变量pi并赋值为3.14

声明浮点型变量i和j,并分别赋值为6.0和4.9,输出i-j

013.练习参考答案

package com.lxgzhw.datatype;

public class Practice01 {
	public static void main(String[] args) {
		// 声明整型变量a并赋值为250
		int a = 250;
		// 声明整型变量b并赋值为100亿
		// int b=10000000000;
		// 输出5/2
		System.out.println("5/2=" + (5 / 2));
		// 输出2/5
		System.out.println("2/5=" + (2 / 5));
		// 输出2.0/5
		System.out.println("2.0/5=" + (2.0 / 5));
		// 声明整型变量c并赋值为2147483647(int最大值),并加1,然后输出
		int c = 2147483647;
		c += 1;
		System.out.println("c=" + c);
		// 常量长整型变量d并赋值为100亿
		long d = 10000000000L;
		long e = 1000000000 * 2 * 10L;
		long f = 1000000000 * 3 * 10L;
		long g = 1000000000L * 3 * 10;
		System.out.println("e=" + e);
		System.out.println("f=" + f);
		System.out.println("g=" + g);
		long h = System.currentTimeMillis();
		System.out.println("h=" + h);

		// 浮点型
		double pi = 3.14;
		double i = 6.0, j = 4.9;
		System.out.println("i+j=" + (i + j));
	}
}

014.boolean类型

  • 只允许取值为truefalse

015.char类型

  • 每一个char字符,都对应一个int类型的Unicode
  • 字符直接量需放在单引号中,只能有一个字符
  • 常用码a-97 A-65 0-48
  • 特殊的符号需要通过\来转义
  • Java字符类型采用Unicode编码,字符类型实际上是一个16位的无符号整数
  • 赋值方式有三种
    • 字符直接量 a
    • 整型直接量 97
    • Unicode形式 \u097

016.练习

声明布尔型变量

b1并赋值为true

b2并赋值为false

b3并赋值为3.14

声明字符型变量

c1并赋值为男

c2并赋值为m

c3并赋值为5

c4并赋值为空格

c5并赋值为空字符

017.练习参考答案

package com.lxgzhw;

public class Demo01 {
    public static void main(String[] args) {
        System.out.println("哈哈哈");
        boolean b1 = true;
        boolean b2 = false;
//        boolean b3=3.14;


        //字符型
        char c1 = '男';
        char c2 = 'm';
        char c3 = '5';
        char c4 = ' ';
        //char c5='';
        //char c6='男性';
        char c7 = 98;
        System.out.println(c7);
        char c8 = '\'';
        System.out.println(c8);
    }
}

018.基本数据类型直接的转换

  • 1.两种方式
    • 1.自动类型转换:小类型到大类型
    • 2.强制类型转换:大类型到小类型
      • 格式: (要转换的类型)转换的数据
      • 注意:强制转换有可能会丢失精度
  • 2.两种规则
    • 1.整数直接量可以直接赋值给byte,short,char,但不能超出范围
    • 2.byte,short,char类型数据参与运算时,先一律转换为int再运算

数据类型从小到大依次为:

byte  short int long float double char
  • 案例:数据类型转换
package com.lxgzhw;

public class Demo02 {
    public static void main(String[] args) {
        //基本数据类型转换

        //1.自动转换 小->大
        byte num1 = 3;
        int num2 = num1;

        //2.强制类型转换 大->小
        double num3 = 33.33;
        int num4 = (int) num3;

        System.out.println("num2=" + num2);
        System.out.println("num4=" + num4);
    }
}
  • 案例:char类型的运算
package com.lxgzhw;

public class Demo03 {
    public static void main(String[] args) {

        //正常情况下能够运行
        System.out.println(2 + 2);

        //char,byte,short类型需要先转换为int类型再运行
        //字符从加法运算,实际上加的是Unicode编码
        System.out.println('2' + '2');

        char num1 = '3';
        int num2 = (int) num1;
        System.out.println(num2);
        //将字符转换为int类型,得到的也是Unicode编码值


        System.out.println((int) '2' + (int) '2');
    }
}

019.练习

声明整型变量a并赋值为6

声明长整型变量b并赋值为a

声明整型变量c并赋值为b

声明长整型变量d并赋值为100亿

声明整型变量e并赋值为d,输出e

声明浮点型变量f并赋值为66.9999

声明整型变量g并赋值为f,输出g

声明byte类型变量b1b2,分别赋值为6和8

声明byte类型变量b3并赋值为b1+b2

输出2+2

输出2+‘2’

输出’2’+‘2’

020.练习参考答案

package com.lxgzhw;

public class Practice1 {
    public static void main(String[] args) {
        //1
        int a = 6;
        long b = a;
        int c = (int) b;


        //2
        long d = 10000000000L;
        int e = (int) d;
        System.out.println(e);

        float f = 58.8855F;
        int g = (int) f;
        System.out.println(g);

        //3
        byte b1 = 6, b2 = 8;
        byte b3 = (byte) ((int) b1 + (int) b2);
        System.out.println(b3);

        //4
        System.out.println(2 + 2);
        System.out.println(2 + '2');
        System.out.println('2' + '2');

    }
}

021.Scanner的用法

给变量赋值

  • 1.给一个固定的值
  • 2.接收用户输入的值
  • 3.系统随机生成的值

案例:接收用户输入的值

  • 1.导入录入依赖库
  • 2.创建录入对象
  • 3.录入用户输入
package com.lxgzhw;
//1.导入录入依赖库

import java.util.Scanner;

public class Scanner1 {
    public static void main(String[] args) {
        //2.创建录入对象
        Scanner sc = new Scanner(System.in);
        //录入数据
        System.out.println("请输入年龄:");
        //3.接收用户输入
        int age = sc.nextInt();
        System.out.println("您输入的年龄是:" + age);
    }
}

022.练习

1.创建类AgeRange,要求:
	接收用户输入的年龄age,并输出
	
2.创建LeapYear,要求:
	接收用户输入的年份,并输出

023.练习参考答案

第一题

package com.lxgzhw;

import java.util.Scanner;

public class AgeRange {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年龄:");
        int age = sc.nextInt();
        System.out.println("您的年龄是:" + age);
    }
}

第二题

package com.lxgzhw;

import java.util.Scanner;

public class LeapYear {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();
        System.out.println("您输入的年份是:" + year);
    }
}

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

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

相关文章

【计算机网络】期末实验答辩

注意事项: 1)每位同学要在下面做过的实验列表中选取三个实验进行答辩准备,并将自己的姓名,学号以及三个实验序号填入共享文档"1(2)班答辩名单"中。 2)在答辩当日每位同学由老师在表…

Dify 零代码 AI 应用开发:快速入门与实战

一、Dify 介绍 Dify 是一个开源的大语言模型 (LLM) 应用开发平台。它结合了后端即服务 (Backend-as-a-Service) 和 LLMOps (LLMOps) 的概念,使开发人员能够快速构建生产级生成式 AI (Generative AI) 应用。即使是非技术人员也可以参与 AI 应用的定义和数据操作。 …

CeoMax总裁主题最新3.8.1破解免授权版/WordPress付费资源素材下载主题

CeoMax总裁主题最新3.8.1破解免授权版,一套WordPress付费资源素材下载的主题,感觉这是做资源站唯一一个可以和ripro媲美甚至超越的模板,UI很美,功能也很强大,有想学习的可下载搭建学习一下,仅供学习研究借鉴…

C语言同时在一行声明指针和整型变量

如果这么写, int *f, g; 并没有声明2个指针,编译器自己会识别,f是一个指针,g是一个整型变量; void CTszbView::OnDraw(CDC* pDC) {CTszbDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for nat…

11. Hibernate 持久化对象的各种状态

1. 前言 本节课和大家聊聊持久化对象的 3 种状态。通过本节课程,你将了解到: 持久化对象的 3 种状态;什么是对象持久化能力。 2. 持久化对象的状态 程序运行期间的数据都是存储在内存中。内存具有临时性。程序结束、计算机挂机…… 内存中…

ElasticSearch核心之DSL查询语句实战

什么是DSL? Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。 DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。目前常用的框架查询方法什么的底层都是构建DSL语句实现的,所以你必…

linux 网络子系统

__netif_receive_skb_core 是 Linux 内核网络子系统中一个非常重要的函数,它负责将网络设备驱动层接收到的数据包传递到上层协议栈进行处理。以下是对该函数的一些关键点的详细解析: 一、函数作用 __netif_receive_skb_core 函数是处理接收到的网络数据…

HAL STM32 SPI/ABZ/PWM方式读取MT6816磁编码器数据

HAL STM32 SPI/ABZ/PWM方式读取MT6816磁编码器数据 📚MT6816相关资料(来自商家的相关资料): 资料:https://pan.baidu.com/s/1CAbdLBRi2dmL4D7cFve1XA?pwd8888 提取码:8888📍驱动代码编写&…

C++的auto关键字

一、auto关键字介绍 因为C是静态类型语言,即会在编译阶段进行类型检查。我们知道对象的类型决定一个对象所能参与的操作,因此如果类型检查过程中发现试图执行对象类型不支持的操作,编译器将会报错。 这要求我们在声明变量时必须指出变量的类…

php、mantis、showDoc部署

下载软件安装包:Mantis Bug Tracker 下载vs包:https://www.microsoft.com/en-us/download/details.aspx?id48145,解决“因为计算机中丢失msvcr110.dll”下载apache服务器:Apache VS17 binaries and modules download下载php:PHP For Windows: Binaries and source…

Kylin 入门教程

Apache Kylin 是一个开源的分布式数据仓库和 OLAP(在线分析处理)引擎,旨在提供亚秒级查询响应时间,即使在处理超大规模数据集时也是如此。Kylin 可以有效地将原始数据预计算为多维数据立方体(Cube),并利用这些预计算结果来提供快速查询。本文将带你从基础知识到操作实践…

【React】详解“最新”和“最热”切换与排序

文章目录 一、基本概念和初始化二、切换与排序功能的实现1. 函数定义和参数2. 设置活动 Tab3. 定义新列表变量4. 根据排序类型处理列表4.1 按时间降序排序4.2 按点赞数降序排序 5. 更新评论列表 三、渲染导航 Tab 和评论列表1. map 方法2. key 属性3. className 动态赋值4. onC…

五大设备制造商的 200 多种机型的安全启动功能完全失效

2012 年,一个由硬件和软件制造商组成的行业联盟采用了安全启动技术,以防范长期存在的安全威胁。这种威胁是恶意软件的幽灵,它可以感染 BIOS,即每次计算机启动时加载操作系统的固件。从那里,它可以保持不受检测和删除&a…

jenkins参数化构建在UI中定义脚本中使用

先看配置: 流水线脚本: pipeline {agent {//label "${server}"label "${28}"}stages {stage(Hello) {steps {echo "--------------------------"// 只有这个可以输出变量echo "${character_argument}"echo &q…

Pytorch使用教学5-视图view与reshape的区别

有同学后台留言问为什么view有时可对张量进行形变操作,有时就会报错?另外它和reshape功能好像一致,有什么区别呢?本文就带你了解PyTorch中视图的概念。 在PyTorch中对张量进行形变操作时,很多同学也会使用view方法&am…

kettle从入门到精通 第八十课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段

场景:源数据库表为mysql的其中有json字段,通过kettle 查询出来 插入到目标数据库 postgresql中,对应的表中也有json字段。。但是报错,提示kettle查询出来是varchar的的字段,无法插入到目标数据库中。 1、创建测试表。 …

【VSCode实战】Golang无法跳转问题竟是如此简单

上一讲【VSCode实战】Go插件依赖无法安装 – 经云的清净小站 (skycreator.top),开头说到了在VSCode中Golang无法跳转的问题,但文章的最后也没给出解决方案,只解决了安装Go插件的依赖问题。 解决了插件依赖问题,无法跳转的问题也离…

echo,tail ,飘号和重定向符

1. 输出指定内容 echo 语法; echo 输出的内容 较多内容使用 “ 双引号 ”, 相当于 printf ; 2. 飘号 飘号,也就是我们通常所说的反引号,被飘号包括的内容会当作命令执行,常配合 echo 使用,输出结果为…

【python】python图书管理系统_普通用户+管理员菜单(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…