Java 输出机制 数据类型

news2024/7/6 20:04:49

目录

一、输出机制

1.print和println的差别

2.可接收不同类型参数

3.输出函数中 + 符号的使用

二、Java 数据类型

1.整型类型

2.浮点类型

3.字符类型

三、基本数据类型转换

1.自动类型转换

2.强制类型转换 

3.练习题

四、基本数据类型和String类型的转换

1.基本类型转String类型

2.String类型转基本类型


一、输出机制

1.print和println的差别

将接收到的内容转化为成字符串形式输出,输出方式不会换行

System.out.print();

 将接收到的内容转化为成字符串形式输出,输出方式自动换行

System.out.println();

2.可接收不同类型参数

类似C++的cout内置对象,Java也使用了重载的方式来接受不同类型的参数,例如字符串、整数、浮点数等。当调用System.out.println()函数是,Java会根据传递的参数类型自动选择合适的函数版本。

代码如下:

public class test {
    public static void main(String[] args) {
        int i = 10;
        System.out.println(i);// 接收整型
        String message = "Hello World!\n";// 接收字符串类型
        System.out.println(message);
    }
}

输出结果:

10
Hello World!

3.输出函数中 + 符号的使用

将数字转换为字符串形式然后输出

System.out.println(100 + 98); // 198
System.out.println("100" + 98);// 10098
System.out.println(100 + 3 + "hello");// 103hello
System.out.println("hello" + 100 + 3);// hello1003

二、Java 数据类型

Java没有显式指针,Java中的引用类型是一种特殊的数据类型,它存储了一个对象的地址,而不是对象本身。因此,Java中的引用类型可以看作是指向对象的指针与C++不同的是,Java中的引用类型不能进行指针运算,也不能直接访问对象的内存地址。

1.整型类型

类型占用存储空间范围
byte [字节]1字节-128 ~ 127
short [短整型]2字节-(2^15) ~ 2^15 - 1
int [整型]4字节-(2^31) ~ 231 - 1
long [长整型]8字节-2^63 ~ 2^63 - 1

2.浮点类型

类型占用存储空间范围
float [单精度浮点数]4字节-3.403E38 ~ 3.403E38
double [双精度浮点数]8字节-1.798E308 ~ 1.798E308

注意:

1.Java 的浮点型常量(具体值)默认为double型,声明float型常量,须后加 'f' 或 'F' 。
 

2.浮点型常量有两种表示形式

十进制数形式:如:5.12           512.0f          .512(必须有小数点)

科学计数法形式:如: 5.12e2 [5.12*10的2次方]     5.12E-2 [5.12*10的-2次方]

3.通常情况下,应该使用double型,因为它比float型更精确。

[举例说明]double num9 = 1234567851;

                float num10 = 2.1234567851F;

4.浮点数使用陷阱: 2.7 和 8.1 / 3 比较

double num7 = 2.7;
double num8 = 8.1 / 3;
if(Math.abs(num7 - num8) < 0.00001)
{
    System.out.println("相等~~");
}

tip: 8.1 / 3 是接近 2.7 的一个小数,而不是 2.7

3.字符类型

Java 的 char 类型和 C++ 的 char 类型之间的差异

  1. 大小:Java 中的 char 类型是 16 位无符号整数,而 C++ 中的 char 类型通常是 8位有符号整数(尽管它的确被定义为一个字节)。

  2. 范围:Java 中的 char 类型可以表示从 '\u0000' 到 '\uffff' 的 Unicode 字符,而 C++ 中的 char 类型可以表示从 0 到 255 的 ASCII 字符。

  3. 字面量:在 Java 中,字符字面量用单引号表示,例如 'a' 或 '\u0061'。在 C++ 中,字符字面量用单引号表示,例如 'a' 或 97(即 ASCII 码)。

  4. Unicode 支持:Java 中的 char 类型可以直接表示 Unicode 字符,而 C++ 中的 char 类型需要使用 Unicode 转义序列(如 '\u0061')来表示 Unicode 字符。

1.可以直接给char赋一个整数,然后输出时,会按照对应的unicode 字符输出。

例如:char c3 = 97; c3输出为字符a

2.Java中还允许使用转义字符“’来将其后的字符转变为特殊字符型常量。

例如: char c3 = '\n';
3.在java中,char的本质是一个整数,在输出时,是unicode码对应的字符。

转换工具

4.char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码。

(与C++相同)

扩展】字符编码表

ASCII

ASCII 编码表 一个字节表示,一个128 个字符,实际上一个字节可以表示256个字符,只用128个。

【ASCII码】ASCII码一共规定了128个字符的编码,只占用了一个字节的后面7位,最前面的1位统一规定为0。

特别提示:一个字节可以表示256个学符,ASCII码只用了128个字符。
【缺点】不能表示所有字符。

Unicode

Unicode 编码表 固定大小的编码 使用两个字节来表示字符,字母和汉字统一都是占用两个字节这样浪费空间。

【好处】一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用 Unicode 没有乱码的问题。

【缺点】一个英文字母和一个汉字都占用2个字节,这对于存储空间来说是浪费的。
2的16次方是 65536,所以最多编码是65536个字符。

编码0-127的字符与ASCII的编码一样

比如:a' 在ASCII码是 0x61,在 unicode码是0x0061,都对应97。因此Unicode码兼容 ASCII码

utf-8

编码表,大小可变的编码 字母使用1个字节,汉字使用3个字节。

  1. UTF-8 是在互联网上使用最广的一种 Unicode 的实现方式(改进)
  2. UTF-8 是一种变长的编码方式。它可以使用 1-6 个字节表示一个符号,根据不同的符号而变化字节长度。
  3. 使用 大小可变的编码 字母占1个字节,汉字占3个字节3

GBK

可以表示汉字,而且范围广,字母使用1个字节,汉字2个字节。

gb2312

可以表示汉字,gb2312 < gbk。

big5 码(繁体中文,台湾,香港)

三、基本数据类型转换

1.自动类型转换

相等于C++的隐式类型转换(通过临时对象进行)

例如:

int a = 'c';
double d = 80;

注意

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
  2. 当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换
  3. (byte, short) 和 char 之间不会相互自动转换。
  4. byte, short, char他们三者可以计算,在计算时首先转换为int类型
  5. boolean不参与转换。
  6. 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型。

2.强制类型转换 

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成 精度降低或溢出。

 【注意

1.当进行数据的大小  从 大————>小,就需要使用到强制转换。

2.强转符号只针对于最近的操作数有效,往往使用小括号提升优先级。
3.char类型可以保存 int 的常量值,但不能保存int的变量值,需要强转。
 

char c1 = 100; // ok
int m = 100; // ok
char c2 = m; // 错误
char c3 = (char)m; // ok
System.out.println(c3); // 100对应的字符

4.byte和short, char 类型在进行运算时,当做int类型处理。

演示如下:

int c = (int)7.98;
System.out.print(c);

输出为:

7

3.练习题

 

四、基本数据类型和String类型的转换

1.基本类型转String类型

语法:基本类型的值 + " "

演示如下:

//...
int n1 = 100;
float n2 = 1.1f;
double n3 = 3.4;
boolean n4 = true;
String str1 = n1 + " ";
String str2 = n2 + " ";
String str3 = n3 + " ";
String str4 = n4 + " ";
System.out.println(str1 + " " + str2 + " " + str3 + " " + str4);
//...

输出结果:

100  1.1  3.4  true

2.String类型转基本类型

语法:XX.parseXX("基本类型的值");

演示:

int n1 = Integer.parseInt("123");
double n2 = Double.parseDouble("123.1");
float n3 = Float.parseFloat("123.45");
short n4 = Short.parseShort("12");
long n5 = Long.parseLong("12345");
boolean n6 = Boolean.parseBoolean("true");
Byte n7 = Byte.parseByte("12");

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

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

相关文章

【LeetCode】 309.最佳买卖股票时机含冷冻期

309.最佳买卖股票时机含冷冻期&#xff08;中等&#xff09; 思路 状态定义 一、很容易想到四种状态&#xff1a; a.今天买入&#xff1b;b.今天卖出&#xff1b;c.昨天卖出&#xff0c;今天处于冷冻期&#xff0c;无法进行操作&#xff1b;d.今天不操作&#xff0c;处于持有…

SD卡变成RAW格式怎么办?SD卡RAW格式的解决办法

使用SD卡的小伙伴有没有遇到这种情况&#xff0c;SD卡无法访问提示格式化&#xff0c;查看SD卡的属性发现文件系统类型变成RAW格式&#xff0c;而非之前的NTFS或FAT32格式。那么当SD卡变成raw格式怎么办&#xff1f;如果里面有重要数据怎么办&#xff1f;SD卡RAW格式怎么恢复数…

【Java】什么是SOA架构?与微服务有什么关系?

文章目录 服务化架构微服务架构 我的一个微服务项目&#xff0c;有兴趣可以一起做 服务化架构 我们知道&#xff0c;早期的项目&#xff0c;我们都是把前后端的代码放在同一个项目中&#xff0c;然后直接打包运行这个项目&#xff0c;这种项目我们称之为单体项目&#xff0c;比…

m4a怎么转换成mp3的4种方法值得收藏

m4a怎么转换成mp3&#xff1f;首先我们得了解m4a是什么格式。m4a是MPEG-4音频标准的文件扩展名&#xff0c;它是一种音频格式&#xff0c;由苹果公司推出。该格式的音质没有损失&#xff0c;且不受版权保护&#xff0c;因此可以进行自由编辑和转发。该格式的兼容性相对较弱&…

PIE-SAR软件自动化编译与发布

1.背景 SVN版本控制下多人协调编写代码&#xff0c;会经常性的提交新功能&#xff0c;修改完善已有功能。产品经理、测试人员需定期回归测试&#xff0c;确保禅道Bug已经修复&#xff0c;这就需要经常性地打包软件。为了节省编译时间&#xff0c;也方便产品经理可随时去取最新…

MiniGPT-4,开源了!

上个月GPT-4发布时&#xff0c;我曾写过一篇文章分享过有关GPT-4的几个关键信息。 当时的分享就提到了GPT-4的一个重要特性&#xff0c;那就是多模态能力。 比如发布会上演示的&#xff0c;输入一幅图&#xff08;手套掉下去会怎么样&#xff1f;&#xff09;。 GPT-4可以理解…

基于51单片机的差分双路电压检测(基于ADC0832)

文章目录 前言一、本文任务二、材料三、电路图四、代码解读1.引脚定义及参数2.定时器中断与延时开启3.数码管显示定义及ADC0832函数初始化4.数据转换及数码管显示5.主函数及定时器函数6.所有代码&#xff08;就一个c文件&#xff09; 总结 前言 博主终于又空出时间啦&#xff…

二战失利,剩下的路?

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「260」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2300 小伙伴加入&#xff01;去年认真准备和走下来的基…

如何使用chatGPT生成小红书种草文案

如何使用chatGPT生成小红书种草文案 小红书拥有超千万的日活用户&#xff0c;为商家提供了广阔的变现空间和机会&#xff0c;成为商家选择在小红书上推广的原因之一。 小红书种草文案&#xff0c;例如具有影响力的热门话题、产品使用方法等内容可以让消费者迅速了解产品为品牌…

小米青春版路由器刷openwrt

下载小米路由器R1CL开发版 通过手动上传更新&#xff0c;更改固件版本 将之前地址栏URL中的 /web/home#router 替换为&#xff08;密码为admin&#xff09; /api/xqsystem/set_name_password?oldPwd123456789&newPwdadmin如果网页返回 {“code”:0} &#xff0c;则说明修…

JAVA的BIO、NIO、AIO模式精解(一)

1. BIO、NIO、AIO介绍 在不同系统或进程间数据交互&#xff0c;或高并发场景下都选哟网络通信。早期是基于性能低下的同步阻塞IO(BIO)实现。后支持非阻塞IO(NIO)。 前置须知&#xff1a;javsse&#xff0c;java多线程&#xff0c;javaIO&#xff0c;java网络模型 目的&#xf…

[江西专升本/信息技术]计算机网络基础

1、概论 目前主要从资源共享观点定义计算机网络&#xff1a; 用通信路线和通信设备将分布在不同地点的具有独立功能的多个计算机系统相互连接起来&#xff0c;在功能完善的网络软件的支持下实现彼此之间的数据通信和资源共享的系统&#xff1b; 我们可以这么说&#xff0c;“…

effective c++ item30-34

item30:理解inline 1、inline函数 用inline修饰函数可以防止multiple definition的错误 // foo.h inline int foo(int x){ // 如果不加inline&#xff0c;在编译时会有两个foo.h被包含进去&#xff0c;导致链接出错static int n 1;return x * (n ); } // bar1.cpp #includ…

【车道线算法】GANet-车道线检测环境配置一文通关

目录 GANet配置全纪录 下载代码 conda环境部署 安装torch和cudatoolkit 安装其他包 编译 总结 GANet配置全纪录 下载代码 GitHub - Wolfwjs/GANet: A Keypoint-based Global Association Network for Lane Detection. Accepted by CVPR 2022 进入代码网址的默认master…

ArcGIS Pro工程

目录 1 工程基础架构 2 工程内容 3 新建工程及工程文件 3.1 工程模板 3.2 工程名称和位置 3.2.1 基于“地图模板”创建新工程 3.2.2 基于“目录模板”创建新工程 3.2.3 基于“全局场景”创建新工程 3.2.4 基于“局部场景”创建新工程 3.3 工程文件 3.3.1 默认地理…

子元素选择器

知识点&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge"> <meta name"viewport" c…

【MySQL高级】——用户与权限管理

一、用户管理 <1> 登录 mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"-h参数 后面接主机名或者主机IP&#xff0c;hostname为主机&#xff0c;hostIP为主机IP。 -P参数 后面接MySQL服务的端口&#xff0c;通过该参数连接…

序列检测和序列发生器——verilog代码实现

文章目录 前言一、序列检测器1.1 重复序列检测1.1.1 序列缓存对比/移位寄存器法1.1.2 状态机法 1.2 非重复序列检测 二、序列发生器2.1 移位寄存器法2.2 反馈法2.3 计数器法 前言 2023.4.25 2023.4.26 学习打卡&#xff0c;天气转晴 一、序列检测器 1.1 重复序列检测 1.1.1 …

HTML基础标签

目录 1.html文件结构 2.注释 3.文本标签 4.图片 5.音频与视频 6.超链接 7.表单 8.列表&#xff08;可以嵌套&#xff09; 无序列表 有序列表 定义列表 9.表格 10.语义标签 11.特殊符号 1.html文件结构 <!-- 文档类型声明 --> <!DOCTYPE html> <html>…

学系统集成项目管理工程师(中项)系列12_干系人管理

1. 要管理干系人的期望&#xff0c;更要保证他们的适度参与&#xff0c;而后者是项目成功非常关键的因素之一 1.1. 识别干系人及其信息 1.2. 评估关键干系人的诉求和影响力 1.3. 对干系人分类 1.4. 制定干系人管理计划 1.5. 【19上选56】 2. 识别干系人 2.1. 典型干系人…