Java入门之数据类型和变量

news2024/11/19 9:32:18

1.字面常量

        字面常量就是在程序运行中,固定不变的量,例如如下的代码

public class Demo{
    public static void main(String[] args){
         System.Out.println("hello world!");
         System.Out.println(100);
         System.Out.println(3.14);
         System.Out.println('A');
         System.Out.println(true);
         System.Out.println(false);
   }
}

        sout输出的内容使用了双引号括起来,都是字面常量。

2.数据类型

        Java中数据类型主要分为两类:基本数据类型和引用数据类型。

        基本数据类型有四类八种:

        1.四类:整型,浮点型,字符型,布尔型

        2.八种:

注意:Java中任何类型的系统,数据类型内存占用是固定的,且int,double都是带符号的,整型默认为int,浮点型默认double

3.变量

3.1整型变量

3.1.1整型变量

int a = 10;

我们一般在定义时就给出初始值,且一定要赋值,否则会出现编译报错。同时,在定义int型变量的时候,不要超过int的范围,int的包装类型为Integer

3.1.2长整型变量

long b = 10L;

长整型变量的初始值后加L或者l,一般我们加L,占8个字节,包装类型是Long

3.1.3短整型变量

short a = 10;

占2个字节,包装类型为Short

3.1.4字节型变量

byte b = 10;

占1个字节,范围-127 ~ 128,包装类型Byte

3.4浮点型变量

3.4.1双精度浮点型

double d = 3.14;

在Java中,int除以int的值仍然是int

int a = 10;
int b = 20;
System.out.println(a / b);

结果是0

double num = 1.1;
System.out.println(num * num);  // 输出1.21吗?
    
// 执行结果
1.2100000000000002

double占8个字节,小数的存储并不精确,double的包装类型是Double

3.4.2单精度浮点型

float num = 1.0f;    // 写作 1.0F 也可以

一定要记住在赋值时加f或者F

3.5字符型变量

char c1 = 'A';    // 大写字母
char c2 = '1';    // 数字字符

Java中的字符型变量可以存储汉字,他的包装类型是Character

char c3 = '帅';

3.6布尔型变量

布尔型变量赋值只有true和flase,没有0或1,boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法,包装类型是Boolean,没有确定的大小

boolean b = true;
System.out.println(b);
 
b = false;
System.out.println(b);

3.7类型转换

可以由小到大,由大到小需要强制类型转换,且可以出现问题

int a = 10;
long b = 100L;
b = a;   // 可以通过编译
a = b;   // 编译失败

类型提升:int会被提升为long,但需要注意的是,byte与byte的加法计算中,我们会先将byte提升到int,因此最后输出的内容是int类型,例如:

byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
 
// 编译报错
Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
                byte c = a + b;

总结:对于不同类型数据的混合运算,范围小的变为大的,对于比四个字节少的类型,会先提升,再计算

4.字符串类型

Java使用String类定义字符串类型,举例如下:

String s1 = "hello";
    String s2 = " world";
    System.out.println(s1);
    System.out.println(s2);

在输出的时候,字符串相加就是拼接

s1 + s2的结果是helloworld

有些情况下,字符串和整型间进行转换

int转换为String

2. String 转成 int
 
int num = 10;
// 方法1
String str1 = num + "";  
// 方法2
String str2 = String.valueOf(num);

String转换为int

String str = "100";
int num = Integer.parseInt(str);

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

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

相关文章

Git 的原理与使用(中)

Git 的原理与使用(上)中介绍了Git初识,Git的安装与初始化以及工作区、暂存区、版本库相关的概念与操作,本文接着上篇的内容,继续深入介绍Git在的分支管理与远程操作方面的应用。 目录 五、分支管理 1.理解分支 2.创…

多臂老虎机

多臂老虎机 有n根拉杆的的老虎机,每根拉杆获得奖励(值为1)的概率各不相同。 期望奖励更新 Q k 1 k ∑ i 1 k r i 1 k ( r k ∑ i 1 k − 1 r i ) 1 k ( r k k Q k − 1 − Q k − 1 ) Q k − 1 1 k [ r k − Q k − 1 ] Q_k\frac 1k \sum^{k}_{i1}r_i\\…

STL----resize

resize的作用 设置容器元素个数和初始值。 resize和reserve resize即改变容器元素个数,也改变容器容量。 reserve只改变容器容量,不改变容器元素个数。 reserve有什么用 reserve---存储,容量,保留。 1,设置容器容…

【vivado】 IBERT GT收发器误码率测试

一、前言 IBERT(Integrated Bit Error Ratio Tester),集成误码率测试仪。作为用户来说可以使用这个工具对自己设计的板子中的高速串行收发器进行简单测试,从而判断设计的接口是否有问题。因为这个工具是直接集成到FPGA上,这样一来直接使用这个工具来测试…

搜索引擎的设计与实现(三)

目录 5 系统详细实现 5.1实现环境配置 5.2功能实现 5.2.1 建立索引 5.2.2 文件搜索实现 5.2.3 数据库的连接配置 5.2.4 数据库搜索实现 5.2.5 后台数据编辑实现 前面内容请移步 搜索引擎的设计与实现(二) 免费源代码&毕业设计论文 搜索…

vaspkit 画 Charge-Density Difference

(echo 314;echo $(cat 1))|vaspkit 文件1提前写好使用的CHGCAR路径 SPIN_DW.vasp ../ML2scf/SPIN_DW.vasp ../ML1scf/SPIN_DW.vasp POSite and negative 默认为blue,and 青色 (RGB 30 245 245) 正值:blue 。负值:青色 RGB 30 245 245。 提示&…

(四十二)第 6 章 树和二叉树(树的二叉链表(孩子-兄弟)存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…

Nodejs笔记2

模块化 模块化初体验 模块暴露数据 导入模块 fs 写绝对路径 require写相对路径不会受到影响 ./../不能省略 js 和json文件后缀可以省略 如果存在 命名相同的js和json文件&#xff0c;优先导入js文件 导入文件夹时的情况 require导入模块的基本流程 commonJS模块…

大数据可视化实验(四):Excel数据可视化

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1&#xff09;excel函数应用.. 1 2&#xff09;数据透视图绘制... 3 四、总结与心得体会... 5 一、实验目的 1&#xff09;掌握函数和公式的原理 2&#xff09;掌握在单元格或编辑栏中直接输入带函数的公式…

react18【系列实用教程】react-router-dom —— 路由管理 (2024最新版)

类似 vue-router 安装 npm i react-router-domreact-router 中包含 native 的开发&#xff0c;仅网站开发&#xff0c;使用更轻量的 react-router-dom 即可 路由模式 history 模式需要后端支持&#xff0c;使用 createBrowserRouter 函数实现hash 模式无需后端支持&#xff0c;…

TypeScript学习日志-第二十六天(weakMap,weakSet,set,map)

weakMap,weakSet,set,map 一、set set 的基本用法如下&#xff1a; 二、map map 与 set 的 区别 就是 map 的 key 可以是引用类型 object array , map 的添加时使用 set 三、weakmap weakset weakmap和weakset 都是弱项 弱引用 其键必须是引用类型&#xff0c;不能是其它类…

RT Thread + CLion环境搭建

RT Thread CLion环境搭建 0.前言一、准备工具1. Env RT Thread v5.12.CLion安装3.编译及下载工具 二、新建Env工程三、CLion配置四、运行测试 0.前言 事情的起因是最近在使用RT Thread Studio时&#xff0c;发现默认的 rtt 内核版本及交叉编译链版本都过于陈旧&#xff0c;于…

【基本数据结构】链表

文章目录 前言链表简介头节点与尾节点特性 分类单向链表双向链表循环链表 单链表基本操作定义并初始化单链表读取节点插入节点删除节点修改节点 参考资料写在最后 前言 本系列专注更新基本数据结构&#xff0c;现有以下文章&#xff1a; 【算法与数据结构】数组. 【算法与数…

软件工程期末复习(6)需求分析的任务

需求分析 需求分析的任务 “建造一个软件系统的最困难的部分是决定要建造什么……没有别的工作在做错时会如此影响最终系统&#xff0c;没有别的工作比以后矫正更困难。” —— Fred Brooks 需求难以建立的原因&#x…

CAN模块开发问题概述

问题一 问题描述 工作环境&#xff1a;ECU外接canoe 操作&#xff1a;使用CANoe模拟发送NM报文&#xff0c;然后停发或者断开CANoe 现象&#xff1a;程序跑死&#xff0c;调用call stack查看压栈情况如下图所示 定位代码如下图所示。可见是由于CAN模块在设置Controller状态时…

tomcat--目录结构和文件组成

目录结构 目录说明bin服务启动&#xff0c;停止等相关程序和文件conf配置文件lib库目录logs日志记录webapps应用程序&#xff0c;应用部署目录workjsp编译后的结果文件&#xff0c;建议提前预热访问 /usr/local/apache-tomcat-8.5.100/work/Catalina/localhost/ROOT/org/apac…

[笔试训练](二十二)064:添加字符065:数组变换066:装箱问题

目录 064:添加字符 065:数组变换 066:装箱问题 064:添加字符 添加字符_牛客笔试题_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 枚举所有A&#xff0c;B字符串可能的对应位置&#xff0c;得出对应位置不同字符数量的最小情况 两字符串的字符数量差n-m&…

Hadoop 3.4.0+HBase2.5.8+ZooKeeper3.8.4+Hive+Sqoop 分布式高可用集群部署安装 大数据系列二

创建服务器,参考 虚拟机创建服务器 节点名字节点IP系统版本master11192.168.50.11centos 8.5slave12192.168.50.12centos 8.5slave13192.168.50.13centos 8.5 1 下载组件 Hadoop:官网地址 Hbase:官网地址 ZooKeeper:官网下载 Hive:官网下载 Sqoop:官网下载 为方便同学…

【已解决】力扣打不开

表现&#xff1a; 1.访问国内其他网站都没有问题 2.访问github也能成功 3.wifi没有问题 4.连接同网络的其他主机能打开 唯独力扣打不开&#xff0c;可能是DNS解析错误 》自己网络配置问题 解决办法【亲测可行】 找可用的hosts 打开站长之家&#xff0c;进行DNS查询&#xff…

FreeRTOS事件标志组

目录 一、事件标志组的概念 1、事件标志位 2、事件标志组 二、事件标志组相关API 1、创建事件标志组 2、设置事件标志位 3、清除事件标志位 4、等待事件标志位 三、事件标志组实操 1、实验需求 2、CubeMX配置 3、代码实现 一、事件标志组的概念 1、事件标志位 表…