JAVA_SE基础——8.基本数据类型
基本数据类型有:整数类型、浮点类型、字符类型、布尔类型
整数类型
整数类型用来存储整数数值,即没有小数部分的数值。与C、C++语言相同,整数在Java语言中有3种表示形式:十进制、八进制和十六进制。
十进制整数:以1~9开头的数,如123、456、0。
八进制整数:以0开头且其后由0~7范围(包括0和7)内的数组成的整数,如01011和031,分别表示十进制数521和25,
计算方式如下。01011转换为十进制数,1 * 83 + 0 * 82 + 1 * 81 + 1 * 80 = 521 031转换为十进制数:3 * 81 + 1 * 80 = 25。
十六进制整数:以0x或0X开头且其后由0~9、a~f(包括0和9、a和f)组成,如0x25、0Xb01e,分别表示十进制数37和45086,计算方式如下。 0X25转换为十进制数:2 * 161 + 5 * 160 = 37; 0Xb01e转换为十进制数:11 * 163 + 0 * 162 + 1 * 161 + 14 * 160 = 45086。
注意:
在十六进制数中,0~9由数字表示,10~15分别由a、b、c、d、e、f代替。无论是十进制数、八进制数还是十六进制数,计算机会先将它们转换成二进制数,再进行计算。
下面是基本数据类型的取值范围↓
数 据 类 型 |
关 键 字 |
占用内存 |
取 值 范 围 |
默 认 值 |
|
整数类型 |
字节型 |
byte |
8位 |
-27~27-1 |
0 |
短整型 |
short |
16位 |
-215~215-1 |
0 |
|
整型 |
int |
32位 |
-231~231-1 |
0 |
|
长整型 |
long |
64位 |
-263~263-1 |
0 |
|
浮点类型 |
单精度型 |
float |
32位 |
IEEE754 |
0.0f |
双精度型 |
double |
64位 |
IEEE754 |
0.0d |
|
字符类型 |
字符型 |
char |
16位 |
16位的Unicode字符 |
'\u0000' |
布尔类型 |
布尔型 |
boolean |
8位 |
true和false |
false |
可以根据这些类型定义相应的整型变量,定义方法如下:
byte a // 定义变量a并指定为byte型
short b // 定义变量b并指定为short型
int c // 定义变量c并指定为int型
long d // 定义变量d并指定为long型
意思就是 类型+变量名
在为这些整型变量赋值时,既可赋值为十进制的整数,也可赋值为八进制或十六进制的整数,但要注意变量能够接受的最大与最小值,否则会出现错误。对于long型值,若赋予的值大于int型的最大值或小于int型的最小值,则需要在数字后加L或l(小写的L),表示该数值为长整型,例如,long
num=2147483649L。
对变量赋值后,通过输出语句会自动地将变量值转换为十进制整数输出。
分别为字节型变量a赋值为十进制数123、短整型变量b赋值为八进制数045、整型变量c赋值为十六进制数0xb12f、长整型变量d赋值为十六制数0x160000000L,然后输出这些变量值。
public class Test {
public static void main(String[] args) {
byte a = 123; // 定义byte型变量a, 并赋给十进制数值123
short b = 045; // 定义short型变量b, 并赋给八进制数值045
int c = 0xb12f; // 定义int型变量c, 并赋给十六进制数值0xb12f
long d = 0x160000000L; // 定义long型变量d, 并赋给十六进制数值0x160000000L
System.out.println(a); // 输出结果为: 123
System.out.println(b); // 输出结果为: 37
System.out.println(c); // 输出结果为: 45359
System.out.println(d); // 输出结果为: 5905580032
}
}
说明: 赋给long型变量d的十六进制数0x160000000转换为二进制数后,需要占用内存36位(由左向右,每位数字转换成4位的二进制数,如0x39将转换为0011 1001),而Java中规定int型数据占用的内存为32位,所以十六进制数0x160000000超出了int范围,需要在数字后加L或l(小写的L)表示它是一个长整型数,计算机将为其分配64位内存空间进行存储。
浮点类型
Java语言包含两种浮点类型:单精度浮点类型和双精度浮点类型,分别用float和double关键字来标识,计算机通过这两种数据类型来存储小数。
在Java中,默认情况下小数都被看做double型,占用内存64位,若想使用float型小数,则需要在小数后面添加字母F或f,如1.23F,它占用内存32位。
计算机计算出的小数点后的n位,与实际的数值会有一定的误差,它只能尽量地去接近实际值,所以位数越多越精确。通常float型就足够了,若要求更精确的计算,可以使用double型,但也要考虑节约资源。
定义浮点类型的方法:
float a // 定义变量a并指定为float型
double b // 定义变量b并指定为double型
在为浮点型变量赋值时,既可以赋值为以十进制形式表示的小数,又可以赋值为以科学记数法形式表示的数值。对于float型,必须在数值后加F或f,表示该数值为单精度浮点数。
为单精度浮点型变量a1赋值以十进制形式表示的小数12.34F,为单精度浮点型变量a2赋值以科学记数法形式表示的数值1.234E1F,为双精度浮点型变量b1赋值以十进制形式表示的小数56.78,为双精度浮点型变量b2赋值以科学记数法形式表示的数值567.8E-1,然后输出这些变量值。
public class Test {
public static void main(String[] args) {
float a1 = 12.34F; // 为float型变量a1赋值为十进制表示的单精度小数(在数字后加F)
float a2 = 1.234E1F; // 为float型变量a2赋值为科学记数法表示的单精度小数(在数字后加F)
double b1 = 56.78; // 为double型变量b1赋值为十进制表示的双精度小数
double b2 = 567.8E-1; // 为double型变量b2赋值为科学记数法表示的双精度小数
System.out.println(a1); // 输出结果为: 12.34
System.out.println(a2); // 输出结果为: 12.34
System.out.println(b1); // 输出结果为: 56.78
System.out.println(b2); // 输出结果为: 56.78
}
}
Java语言中的字符类型用来存储单个字符,它占用16位(两个字节)的内存空间,使用关键字char进行标识。定义字符类型的变量,可以通过关键字char来进行,定义方法如下:
char c1 // 定义字符型变量c1
char c2 // 定义字符型变量c2
赋给char型变量的字符常量值必须用英文状态下的一对单引号括起来,由于Java的字符采用Unicode编码,一个中文字与一个英文字母在Java中同样都是用一个字符来表示。
分别为字符型变量a赋值'm'、字符型变量b赋值'明'、字符型变量c赋值'9'、字符变量d赋值'@',然后输出。
public class Test {
public static void main(String[] args) {
char a = 'm'; // 为字符型变量ch1赋值字符常量'm'
char b = '明'; // 为字符型变量ch1赋值字符常量'明'
char c = '9'; // 为字符型变量ch1赋值字符常量'9'
char d = '@'; // 为字符型变量ch1赋值字符常量'@'
System.out.println(a); // 输出结果为: m
System.out.println(b); // 输出结果为: 明
System.out.println(c); // 输出结果为: 9
System.out.println(d); // 输出结果为: @
}
}
另外,也可以将字符型变量赋值为0~65535范围内的整数,这些整数可使用十进制、八进制或十六进制来表示。根据变量类型,计算机会自动将这些整数转换为所对应的字符输出。
分别为字符型变量ch1赋值十进制数97、字符型变量ch2赋值八进制数0142、字符型变量ch3赋值十六进制数0x63,然后输出。
public class Test {
public static void main(String[] args) {
char ch1 = 97; // 为字符型变量ch1赋值十进制数97
char ch2 = 0142; // 为字符型变量ch2赋值八进制数0142
char ch3 = 0x63; // 为字符型变量ch2赋值十六进制数0x63
System.out.println(ch1); // 输出结果为: a
System.out.println(ch2); // 输出结果为: b
System.out.println(ch3); // 输出结果为: c
}
}
布尔型数据只有两个值:true和false,分别代表布尔逻辑中的“真”和“假”,且布尔值不能与整数进行转换,通常布尔型数据在流程控制中作为判断条件。
定义布尔型变量,可以通过关键字boolean来定义,定义方法如下:
boolean b1; // 定义boolean型变量b1
boolean b2; // 定义boolean型变量b2
布尔型数据只存在true和false数值,所以在为boolean型变量赋值时,除这两个值外的其他任何数值都是非法的
为布尔型变量married赋值false,为alive赋值true,然后输出。
public class Test {
public static void main(String[] args) {
boolean married = false;
boolean alive = true;
System.out.println("已婚:" + married); // 输出结果为: false
System.out.println("生命:" + alive); // 输出结果为: true
}
}
这篇如果自己来口述的话,我可能说的不够老师清楚,所要我就可耻的复制粘帖了
JAVA_SE基础——8.基本数据类型 到这里算是结束了 不会的,或者有问题的,或者有同学想和我交流的,可以加我QQ654249738 或者 留言——ThesCript_j
JAVA_SE基础——8.基本数据类型的更多相关文章
- JAVA_SE基础——9.基本数据类型间的转换
前面我已经教会大家基本的数据类型进行了介绍, 然后这篇文章,我来介绍下,基本数据类型的转换. Java中有两种类型转换形式,分别是自动类型转换和强制类型转换. Step1.自动类型转换. 自动类型 ...
- JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别
黑马程序员入学blog ... 如果这章节很难懂的话应该返回去先看 JAVA_SE基础--10.变量的作用域 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方 ...
- JAVA_SE基础——7.常量&变量
上一篇,我讲了标识符&关键字 这篇我来解释下变量&常量~~~ 变量与常量这两个概念相信大家都不会感到陌生,在数学中就已经涉及了变量与常量.理解变量与常量,可以举这样一个例子: 例 ...
- JAVA_SE基础——6.标识符&关键字
学会写helloworld之后, 我们就开始来认识标识符&关键字 一.标识符 标识符是指可被用来为类.变量或方法等命名的字符序列,换言之,标识符就是用户自定义的名称来标识类.变量或方法等.更 ...
- JAVA_SE基础——26.[深入解析]局部变量与成员变量的差别
黑马程序猿入学blog ... 假设这章节非常难懂的话应该返回去先看 JAVA_SE基础--10.变量的作用域 定义的位置上差别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在 ...
- 01-Java基础知识:数据类型与变量、标识符、运算符、表达式
Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2). int ( ...
- mysql基础之基本数据类型
原文:mysql基础之基本数据类型 列类型学习 mysql三大列类型 整型 Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill ...
- JAVA_SE基础——5.第一个Java程序HelloWorld&注释的应用
配置完JDK&环境变量后,我们就可以开始写程序了,那么程序怎么写呢,用什么工具呢,我建议 为了方便学习,我们最好在一个磁盘下建立一个专门的文件来写java程序,比如就在D盘下建立一个名为&qu ...
- JAVA_SE基础——4.path的临时配置&Classpath的配置
这次,我来写下关于path的临时配置的心的 我来说个有可能的实例:如果你去到别人的电脑 又想写代码 又不想改乱别人的path配置的话 再说别人愿意你在别人的电脑上瞎配吗? 那该怎么办呢? 那没问题 ...
随机推荐
- [BZOJ1610] [Usaco2008 Feb] Line连线游戏 (set)
Description Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= N <= 200)个不重合的点的木板,其中第i ...
- java 压缩文件
package folder; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcept ...
- 下载文件,blob方式
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- .NET Core 配置Configuration杂谈
前言 .NET Core 在配置文件的操作上相对于.NET Framework做了不少改变,今天来聊一聊.关于Configuration的Package都是以Microsoft.Extensions. ...
- mycat操作MySQL第一篇:全局表
1.安装mycat,点击bin下面startup_nowrap.bat启动 2.客户端连接mycat:server.xml里面的 <!--连接mycat用户名和密码.数据库--> < ...
- 20.1章JSON语法
1,语法 JSON有三种类型的值 简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串,数值,布尔值,null.但是JSON不支持JavaScript中特殊的值undefined. ...
- eclipse 中启动Tomcat超时了错误
修改E:\eclipse\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\servers.xml 将 start-ti ...
- IIS支持PHP文件解析
打开IIS程序映射 添加模块映射 请求路径为:*.php 模块为:FastCgiModule 可执行路径选择 php-cgi.exe 名称随意写
- Angular4---部署---将Angular项目部署到IIS上
---恢复内容开始--- Angular项目部署到一个IIS服务器上 1.安装URL rewrite组件: 网址:https://www.microsoft.com/en-us/download/de ...
- (转)regex类(个人理解)
regex类(个人理解) C#regex是正则表达式类用于string的处理,查找匹配的字符串.1,先看一个例子Regex regex=new Regex(@”OK“)://我们要在目标字符串中找 ...