Java SE 基础(10)变量

2023/6/5 20:25:52

变量概述

变量:常量是固定不变的数据,那么在程序中可以变化的量称为变量。

Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。

整个内存就好像是酒店,当中包含了多个房间。

房间的容量(大小)不同(单人间、两人间...)

每个房间都有一个唯一的门牌号。

每个房间的住客(类型)也不同。

酒店的房间 — 变量

房间的类型 — 数据类型

房间门牌号 — 变量名

房间的住客 — 值

Java语言中数据类型:2大类

基本数据类型

引用数据类型

字节

字节是我们常见的计算机中最小存储单元,计算机存储任何的数据,都是以字节的形式存储。

8个bit(二进制位) 0000-0000表示为1个字节,写成1 byte或者1 B。

8 bit = 1 B
1024 B =1 KB
1024 KB =1 MB
1024 MB =1 GB
1024 GB = 1 TB

Java基本数据类型

基本数据类型:4类8种

布尔类型:boolean,数值只有2个:true,false

字符类型:char,2个字节(16位)

整数类型:

        byte,字节。1字节(8bit),

        short,短整型。2字节(16bit),

        int,整型。(默认类型)。4字节(32bit)

        long,长整型。加L或l。8个字节(64bit)

浮点类型:

        float,单精度。加f或F。4个字节(32bit)

        double,双精度。(默认类型)。8个字节(64bit)

基本数据类型是 Java 语言中内置的类型。整数类型、小数类型、字符类型、布尔类型 这四类是最基础的类型

类型

说明

最小值

最大值

默认值

空间

byte

字节类型

-128(-2^7)

127(2^7-1)

0

8

short

短整型

-32768(-2^15)

32767(2^15-1)

0

16

int

整型

-2^31

2^31-1

0

32

long

长整型

-2^63

2^63-1

0L

64

float

单精度

0.0f

32

double

双精度

0.0d

64

boolean

布尔

false

表示一位的信息

char

字符

\u000(0)

\uffff(65,535)

单一的16位Unicode 字符

char 字符型 ,2 个字节 ,用单引号表示 '' ,刚好容纳一个汉字

注意: char 里面只能放一个

long类型:建议数据后加L表示。

float类型:建议数据后加F表示。

变量定义

变量:计算机内存中的一块存储空间,是存储数据的基本单元。

语法:变量包括三个要素: 数据类型 、 变量名 、 数据值 。

数据类型 变量名 = 数据值;

示例:

public static void main(String[] args) {
    byte b1 = 123;//赋值就是存数据
    short s1 = 200;
    int i1 = 300; //默认int;
    long l1 = 1000L;//long类型后面要写上大写的L或者小写的l

    //访问变量就是取数据
    System.out.println("b1:" + b1);//+是表示字符串的拼接
    System.out.println("s1:" + s1);
    System.out.println("i1:" + i1);
    System.out.println("l1:" + l1);

    b1 = 120;
    System.out.println("-------------------------");
    float f1 = 3.14f;//用小写的f或者大写的F标识这是float类型
    double d1 = 3.149;//小数的类型默认为double
    System.out.println("f1:" + f1);
    System.out.println("d1:" + d1);

    System.out.println("-------------------------");
    boolean bb1 = true;
    boolean bb2 = false;
    System.out.println("bb1:" + bb1);
    System.out.println("bb2:" + bb2);
    System.out.println("-------------------------");

    char c1 = 'A';
    char c2 = '中';
    System.out.println("c1:" + c1);
    System.out.println("c2:" + c2);
}

注意:

        Java中每个变量必须先声明,后使用

        使用变量名来访问这块区域的数据

        变量的作用域:其定义所在的一对{ }内

        变量只有在其作用域内才有效

        同一个作用域内,不能定义重名的变量

字符类型

ASCII(American Standard Code for Information Interchange),美国标准信息交换码

在计算机内部,所有数据都使用 二进制表示。每一个二进制位(bit)有 0 和 1 两种状态,因此 8 个二进制位就可以组合出 256 种状态,这被称为一个字节(byte)。一个字节一共可以用来表示 256 种不同的状态,每一个状态对应一个符号,就是 256 个符号,从0000000 到

11111111。

ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码。ASCII码一

共规定了128个 个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。

GB2312老国标 支持中文简体字和一部分少数民族文字 GBK 新国标 支持中文简体字和少数民族文字 UTF-8 万国码 支持世界上通用文字,也是后期开发中会使用的到的编码 JavaWEB项目 HTML前端页面 数据库软件编码集全部都是对应的UTF-8 BIG5 中文繁体字编码,主要流行于中国香港,中国澳门,中国台湾省,新加坡 ASCII码 美国XXXXX协会制定的一个标准编码。

Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字 母,一个汉字,或其他书面语的一个字符。

Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。

        字符赋值:char c1 = 'A';(通过''描述为字符赋值)

        整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)

        进制赋值:char c3 = '\u0041';(通过十六进制数41在字符集中所对应的字符赋值)

示例:

public static void main(String[] args) {
    char c1 ='1';
    char c2 = 97;//char类型的数字1对应ascii对应的一个字符,
    System.out.println(c1);
    System.out.println((int)c1);
    System.out.println(c2);

    System.out.println("-------------------");
    //转义字符
    System.out.println("\"hello,world\"");
    System.out.println("\'hello,world\'");

    System.out.println("\"hello,\nworld\"");
    System.out.println("\"hello,\tworld\"");
}

基本数据类型的转换

Java允许程序员在一定程度上进行数据类型的转换。

8种基本数据类型:

7种数值类型可以参加转换:byte,short,char,int,long,float,double(boolean不参加)。

显式转换

        显式转换(强制转换):取值范围大的转为取值范围小的。

        小范围数据类型 变量 = (小范围数据类型 变量)大范围数据类型;

        int n = (int)6.7;

        语法结构:(要转换的类型)数值

隐式转换

        隐式转换(自动转换):取值范围小的转为取值范围大的。

        大范围数据类型 变量 = 小范围的数据类型;

        double d = 10000;

数据范围从大到小:

double >float>long>int>short>byte

示例:

public static void main(String[] args) {
    byte a = 123;
    short s = a;//隐式的自动类型转换;
    int i = s;
    
    System.out.println("a:"+a);
    System.out.println("s:"+s);
    System.out.println("i:"+i);
    
    int i2 = 128;
    byte b2 = (byte)i2;//强制类型转换:会有数据溢出
    int i3 = 129;
    byte b3 = (byte)i3;
    
    double d1 = 6.7;
    int i4 = (int)d1;
    System.out.println("b2:"+b2);
    System.out.println("b3:"+b3);
    
    System.out.println("i4:"+i4);
    
    System.out.println("----------------------");
    
    //特殊点1:byte,short,char这三种在运算的时候,会自动转成int;
    // byte a1 = 12;
    // byte a2 = 13;
    // byte bb = a1+a2;
    
    //特殊点2:
    long l1 = 100L;
    long l2 = 100;//int---->long自动类型转换
}


http://www.jnnr.cn/a/369149.html

相关文章

思维导图软件XMind 2021/2022 for win/Mac安装步骤

XMind2021是一款流行的思维导图软件,它可以让用户创建各种各样的思维导图,包括组织图、流程图、树形图、鱼骨图、思维脑图等。 XMind2021适用于学生、教师、企业和个人等不同领域的用户。它可以帮助用户更好地组织和表达思维,提高工作和学习…

Attention的两种实现方法

构建 LSTM Attention 网络时,有两种Attention的实现方法,attention_1 使用的是原文的公式实现,如下: def attention_1(x): # x:[batch, seq_len, hidden_dim * 2] 2:双向lstm"""根据 attention 定义实现param x…

小驰私房菜_13_mm-camera 必知必会02

本篇文件分下面几点内容展开: 1) ISO值修改 2) sensor mode 3) 曝光 4) 关闭ltm 5) sensor num frame skip 6) anti banding/flicker 7) exposureTime 8) ace start index 9) flicker 一、ISO值修改 chromatix_XXX_zsl_preview.h XXX_lib.h android.sensor.info.sensi…

使用 WeightedRandomSampler 解决数据样本不均衡的问题

问题描述 数据集样本不均衡。 例如,一个二分类任务,标签为 0 的数据占了 90%,标签为 1 的数据却只占 10%,用全部原始数据训练模型很可能导致模型带有一定的 ”偏见“,也可能会导致模型训练效率很慢。 使用 Weighted…

架构整洁之道-22章-整洁架构

按照更好架构设计出的系统特点: 独立于框架可被测试独立于UI独立于数据库独立于任何外部机构 外层的变化不影响内层的逻辑 外层变化同时修改对应适配器么 层次划分-按需划分并非固定多少层 图22.1中所显示的同心圆只是为了说明架构的结构,真正的架构很可…

浅谈ChatGPT取代前端开发工程师

1.ChatGPT 是什么? ChatGPT 是一种基于深度学习的自然语言处理技术,它可以生成高质量的自然语言文本。该技术是由 OpenAI 团队 开发,旨在使计算机能够像人类一样理解和产生自然语言。ChatGPT 使用了深度神经网络和自然语言处理技术,通 过对大…

2.11 循环赛日程表

博主简介:一个爱打游戏的计算机专业学生博主主页: 夏驰和徐策所属专栏:算法设计与分析 目录 书本内容: 我的理解: 更优化的算法: 总结 1.注意实现问题 2.当用C语言和C实现循环赛日程表算法时&#xff…

java操作RabbitMQ

原生java操作RabbitMQ 导入jar依赖 <dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.14.2</version></dependency>代码结构 工具类MQUtil.java package com.example;import com…

Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明

陈拓 2023/03/24-2023/03/29 1. Arduino CNC Shield V3.00电机驱动扩展版 注意&#xff1a;板子左侧中间的玻璃管是玻封保险丝。 Arduino CNC Shield可以搭载A4988、DRV8825等步进电机驱动模块&#xff0c;用于驱动NEMA17电机&#xff08;俗称42步进电机&#xff09;。 2. 常…

即时通讯-N-如何保证消息的可靠性展示

结论先行 客户端如何在推拉结合的模式下保证消息的可靠性展示&#xff1f; 原则&#xff1a; server拉取的消息一定是连续的原则&#xff1a; 端侧记录的消息的连续段有两个作用&#xff1a; 1. 记录消息的连续性&#xff0c; 即起始中间没有断层&#xff0c; 2. 消息连续&am…

6、网络编程——非阻塞

一、socket的四种IO模型 1、阻塞型 最常用/最简单/效率低 函数本身不具备阻塞属性&#xff0c;而是由于文件描述符本身导致函数阻塞。 在默认情况下Linux建立的socket套接都是阻塞的 2、非阻塞 可以设置进程不阻塞在IO操作上&#xff0c;需要轮询 占用CPU资源较大 3、多路复用…

第二节:Git基本操作(关键词:git add、commit、diff、reset、checkout、rm、mv)

文章目录一&#xff1a;Git基本工作流程二&#xff1a;Git基本操作&#xff08;1&#xff09;git init&#xff08;2&#xff09;git add&#xff08;3&#xff09;git commit&#xff08;4&#xff09;git diff&#xff08;5&#xff09;git resetA&#xff1a;概述B&#xff…

IDEA中如何进行debug

平时工作DeBug是常规操作, 但对里面有的按钮不了解, 整理一下全部DeBug的知识点: 文章目录1、DeBug开篇2、断点2.1 认识断点2.2 断点的状态2.3 断点的一些相关设置3、调试按钮和功能键3.1 调试按钮3.2 功能按键4、变量查看5、计算表达式6、智能步入8、回退断点1、DeBug开篇 DeB…

JVM 运行时数据区概述及线程

当我们通过前面的&#xff1a;类的加载 --> 验证 --> 准备 --> 解析 --> 初始化&#xff0c;这几个阶段完成后&#xff0c;就会用到执行引擎对我们的类进行使用&#xff0c;同时执行引擎将会使用到我们运行时数据区。 运行时数据区结构 内存概念&#xff1a; 内存…

MONGODB mongodb 一般人不知道的数据类型与使用

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

【C语言】实现动态版通讯录

&#x1f48c;内容专栏&#xff1a;【C语言】进阶部分 &#x1f48c;本文概括&#xff1a; 结合自定义类型、动态内存管理知识&#xff0c;对静态版本的通讯录进行优化。 &#x1f48c;本文作者&#xff1a;花 碟 &#x1f48c;发布时间&#xff1a;2023.4.2 目录 前言&#x…

lwip中线程优先级的分配原则

lwip的线程 lwIP是一个嵌入式TCP/IP协议栈&#xff0c;它主要包含以下几个线程&#xff1a; 主线程&#xff08;Main Thread&#xff09;&#xff1a;它是lwIP的主线程&#xff0c;用于初始化lwIP协议栈和各种网络接口&#xff0c;并提供处理网络事件的主循环。主线程的优先级…

PHP+SQL考勤系统安全性的设计与实现

第一章 概 述 1.1 PHP的概念 PHP: Hypertext Preprocessor (超文本预处理器) 的缩写&#xff0c;它是一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言 PHP是一种功能强大…

docker安装以及springboot项目打包运行

我们都知道docker是一个非常好用的虚拟化容器&#xff0c;所谓虚拟化容器其实就是说可以将各个应用都隔离开来&#xff0c;每个应用都可以有自己的独立的运行时环境&#xff0c;这对于我们程序开发是非常有好处的&#xff0c;可以不需要去配置环境&#xff0c;每个组件都有独立…

FPGA 20个例程篇:20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波(三)

如图1所示是USB2.0/RS232/ETH控制并行DAC输出任意频率正弦波、梯形波、三角波、方波的整体设计示意图&#xff0c;可以看到上位机通过RS232串口、ETH千兆网口以及USB2.0接口和FPGA建立通信&#xff0c;通过不同的接口发送报文&#xff0c;FPGA在指令解析模块中把相关设置和参数…