Java 输出机制 数据类型 基本数据类型转换 基本数据类型和String类型的转换

news2024/11/27 18:41:23

目录

一、输出机制

1.print和println的差别

2.可接收不同类型参数

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

二、数据类型

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中的引用类型可以看作是指向对象的指针与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/474816.html

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

相关文章

论文写作精品课程

本文介绍了一些论文写作的在线课程&#xff0c;方便读者朋友们自学&#xff0c;提高论文写作的能力。论文写作的在线课程非常多&#xff0c;读者朋友们也可以在网上自行搜索&#xff0c;选择适合自己的在线课程进行学习。如需要打开课程的网站&#xff0c;请复制课程的网址到浏…

PostgreSQL16中pg_dump的LZ4和ZSTD压缩

PostgreSQL16中pg_dump的LZ4和ZSTD压缩 pg_dump压缩lz4和zstd LZ4和ZSTD压缩算法合入了PG16。LZ4补丁的作者是Georgios Kokolatos。由Tomas Vondra提交。由Michael Paquier、Rachel Heaton、Justin Pryzby、Shi Yu 和 Tomas Vondra 审阅。提交消息是&#xff1a; Expand pg_dum…

【Java EE初阶】计算机简介及多线程之创建线程

目录 1.计算机发展史 2.冯诺依曼体系 3.操作系统 操作系统的作用&#xff1a; 4.进程 1.PID&#xff08;进程编号&#xff09; 2.内存指针 应用程序申请到的内存中的首地址 3.文件描述符表 问&#xff1a;什么是并发&#xff1f;什么是并行&#xff1f; 4.进程的优先级&a…

Tomcat8和Tomcat9乱码问题

今天新开了一个小项目&#xff0c;我丢&#xff0c;乱码了&#xff0c;咋回事&#xff0c;好久没遇到过了&#xff0c;都忘了咋回事。今天必须记录下来&#xff0c;避免继续踩坑 Tomcat 8 不需要进行任何配置即可&#xff0c;它默认的是GBK&#xff0c;而win10 win7 默认的也是…

[Data structure]单链表 | 一文介绍线性数据结构之一的单链表(Java实现)

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现 ⭐如果觉得文章写的不错&#xff0c;欢迎点个关注一…

R语言 | 数据框

目录 一、认识数据框 7.1 建立第一个数据框 7.2 验证与设定数据框的列名和行名 二、认识数据框的结构 三、获取数据框内容 3.1 一般获取 3.2 特殊字符$ 3.3 再看取得的数据 四、使用rbind()函数增加数据框的行数据 五、使用cbind()函数增加数据框的列数据 5.1 使用$符号…

《LearnUE——基础指南:开篇—3》——基础概念

目录 程序之祖——HellowWorld 0.3.1 创建HellowWorld工程 0.3.2编译类型 0.3.3 平台支持 0.3.4 命名约定 程序之祖——HellowWorld 0.3.1 创建HellowWorld工程 接上文准备工作完成之后&#xff0c;双击运行Unreal Engine快捷图标&#xff0c;或者双击生成的UE4Editor.exe…

【计算机图形学】图形变换(以任意直线为对称轴的对称变换)

模块3-2 图形变换 一 实验目的 编写图形各种变换的算法 二 实验内容 1&#xff1a;任意直线的对称变换。要求将变换矩阵写在实验报告中&#xff0c;并与代码匹配。求对任意直线AxByC0的对称变换矩阵。 实验结果如下图所示&#xff1a; 1&#xff1a;预设图形初始化 2&#…

数据结构与算法(小议递归二)

文章目录 前言一、例二二、为什么总结 前言 前面说到了递归在裴波那契数列计算中并不怎么适用&#xff0c;那么它适合什么样的场景呢&#xff1f; 我们继续举例和python3对比测试来说明。 一、例二 下面我们试试阶乘&#xff0c;在前面的代码上稍稍改一下就可以了&#xff1a…

ApachePOI操作Excel快速入门使用

简介 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目&#xff0c;主要任务是创建和维护Java API&#xff0c;以基于Office Open XML标准&#xff08;OOXML&#xff09;和Microsoft的OLE 2复合文档格式&#xff08;OLE2&#xff09;处理各种文件格式&#xff0…

【Java笔试强训 3】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;最长的…

能用OpenCV做的15大计算机视觉任务

使用OpenCV&#xff0c;你几乎可以完成你能想到的每种计算机视觉任务。现实生活中的问题要求同时使用许多计算机视觉算法和模块来获得所需的结果。因此&#xff0c;你只需了解要用哪些OpenCV模块和函数来获得你想要的东西。 让我们来看看OpenCV中可以开箱即用的功能。 1 内置…

跨平台Office文档预览原生插件,非腾讯X5,支持离线,稳定高可用

引言 2023年4月13日零时起&#xff0c;腾讯浏览服务内核文档能力正式下线&#xff0c;要实现真正离线文档预览&#xff0c;于是有了这边文章。 前面写了多篇关于<跨平台文件在线预览解决方案>&#xff0c;不管使用pdf.js、LibreOffice&#xff0c;还是永中DCS&#xff…

JAVA设计模式之观察者模式( 通俗易懂的代码讲解 )

简述&#xff1a;Java的观察者模式是一种设计模式&#xff0c;它定义了一种对象间的一对多的依赖关系&#xff0c;使得当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都能够得到收到消息通知。在这种模式中&#xff0c;被观察者维护了一个观察者列表&#xff0c;并…

深入浅出 Compose Compiler(1) Kotlin Compiler KCP

前言 Compose 的语法简洁、代码效率非常高&#xff0c;这主要得益于 Compose Compiler 的一系列编译期魔法&#xff0c;帮开发者生成了很多样板代码。但编译期插桩也阻碍了我们对于 Compose 运行原理的认知&#xff0c;想要真正读懂 Compose 就必须先了解它的 Compiler。本系列…

前端系列11集-ES6 知识总结

ES Module 优点 静态分析 浏览器和 Node 都支持 浏览器的新 API 能用模块格式提供 不再需要对象作为命名空间 export 用于规定模块的对外接口 输出的接口与其对应的值是动态绑定关系可以取到模块内部实时的值 import 用于输入其他模块提供的功能 具有提升效果&#xff0c;会提升…

刷题4.28

1、 开闭原则软件实体&#xff08;模块&#xff0c;类&#xff0c;方法等&#xff09;应该对扩展开放&#xff0c;对修改关闭&#xff0c;即在设计一个软件系统模块&#xff08;类&#xff0c;方法&#xff09;的时候&#xff0c;应该可以在不修改原有的模块&#xff08;修改关…

服务注册与发现-Consul(Linux)

本文要有docker支持&#xff0c;docker的安装使用Docker 在Linux-CentOS上的安装使用_XiaoGuaiSs的博客-CSDN博客如果提示 [Warning] IPv4 forwarding is disabled. Networking will not work.然后将项目拷贝至linux 的project目录下&#xff08;随意&#xff09;。生成项目镜像…

Node第三方包 【Request】

文章目录 &#x1f31f;前言&#x1f31f;Request&#x1f31f;安装与使用&#x1f31f;流&#xff08;stream&#xff09;操作&#x1f31f;Form表单&#x1f31f;application/x-www-form-urlencoded (URL编码的Form)&#x1f31f;multipart/form-data (Multipart Form 上传) …

百度地图采集经纬度坐标数据定位的javascript实战开发(地理坐标拾取系统、地址定位点选插件、实时定位、数据导入、地理编码、位置纠偏)

坐标采集 前言1.百度地图地理坐标拾取系统2.位置选择插件百度地图经纬度选择插件默认参数配置 3.数据导入4.地理编码爬取百度webAPI返回参数前端封装转换函数 5.手机GPS定位GPS定位 6.位置纠偏html容器经纬度纠偏 前言 在百度地图的标注开发中&#xff0c;最为关键的操作就是经…