Java 学习:数据类型
前言:Java属于强类型语言
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
优势就是安全性高,但劣势速度慢
数据类型
Java的数据类型分为两大类:
基本类型(primitive type)
引用类型(reference type)
Java中定义了3类8种基本数据类型
数值型- byte、 short、int、 long、float、 double
字符型- char
布尔型-boolean
基本数据类型字典表:
| 基本数据类型 | 占字节数 | 占位数 | 最小值 | 最大值 | 包装类型 | 默认值 |
|---|---|---|---|---|---|---|
| boolean | 1字节 | 8位 | Boolean | false | ||
| byte | 1字节 | 8位 | -128 | 127 | Byte | 0 |
| char | 2字节 | 16位 | \u0000 | \uffff | Character | \u0000 |
| short | 2字节 | 16位 | -2^15 | 2^15-1 | Short | 0 |
| int | 4字节 | 32位 | -2^31 | 2^31-1 | Integer | 0 |
| float | 4字节 | 32位 | Float | 0.0f | ||
| long | 8字节 | 64位 | -2^63 | 2^63-1 | Long | 0L |
| double | 8字节 | 64位 | Double | 0.0d |
实例:
public class Test {
public static void main(String[] args) {
// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println("包装类:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
System.out.println("包装类:java.lang.Short");
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
System.out.println("包装类:java.lang.Character");
// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("最小值:Character.MIN_VALUE="
+ (int) Character.MIN_VALUE);
// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
System.out.println("最大值:Character.MAX_VALUE="
+ (int) Character.MAX_VALUE);
}
}
编译以上代码输出结果如下:
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
备注:
Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。
实际上,JAVA中还存在另外一种基本类型 void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。
引用数据类型:
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用任何与之兼容的类型。
学习笔记:
- Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析
- 在Java的世界里,如果比int类型小的类型做运算,Java在编译的时候就会将它们统一强转成int类型。当是比int类型大的类型做运算,就会自动转换成它们中最大类型那个。
- Java默认有小数部分的数为double类型,所以要将一个有小数部分的常量赋值给float类型的变量时,需要在常量后方写上“f”、“F”,系统才将之认为是一个float类型的值。
- 【内存溢出】:在 Java 中,只有数字类型才能参与运算。但是每个数据类型都有他的取值范围。
例如 byte 数据类型,它的取值范围为 -128 - 127 。
当我们使用 byte b = 128; 时,肯定会报错。
但是使用 byte b = 127+1; 并不会报错。
而且运算的结果为 -128。
我们可以向数据类型的取值范围看作是一个圆,每多一个数据向前移动一个,当数据达到最大值时,我们再加 1,可以就会变成最小值,这就是数据的溢出。
- 【类型转换】:整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换是从低级到高级。
注意:1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把大容量转换到小容量的时候,要强制转换
4.转换的时候可能存在内存溢出,或者精度问题
- byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
当使用字面量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制, 而前缀 0b 便是二进制。
例如:
int a1 = 10; //十进制 => 输出结果10
int a2 = 010; //八进制 => 输出结果8
int a3 = 0x10; //十六进制 => 输出结果16
int a4 = 0b10; //二进制 => 输出结果2
int a1 = 10; //十进制 => 输出结果10
int a2 = 010; //八进制 => 输出结果8
int a3 = 0x10; //十六进制 => 输出结果16
int a4 = 0b10; //二进制 => 输出结果2
Java 学习:数据类型的更多相关文章
- Java学习——数据类型【2】
1. 对象与类 对象:类的一个实例,有状态和行为. 类:一个模板,描述一类对象的行状态和行为. 2. 类可以包含的变量 类型 局部变量 成员变量 类变量(静态变量) 定义位置 方法.或语句块中 类中, ...
- 1 Java学习之 基本数据类型
1. 基本概念 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据类型都需要在学习 ...
- Java 学习(4):基本数据类型,变量类型
目录 --- 基本数据类型 --- 变量类型 基本数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用 ...
- Java学习总结之基本数据类型
Java的数据类型分为基本数据类型和引用数据类型, 今天总结的是基本数据类型.在Java中,一共有八种基本数据类型,分别为整数类型(byte,short,int,long).浮点类型(float,do ...
- Java学习总结一 数据类型
@Java300 学习总结 一.Java 基本数据类型分类如下: 整型变量:byte.short.int.long 浮点型变量:float.double 字符型变量:char 布尔型变量:boolea ...
- Java学习笔记之:Java的数据类型
一.介绍 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java语言提供了八种基本类型 ...
- Java学习笔记(基本数据类型和变量命名规则)
java基本数据类型 变量 1.变量就是可变的量. 2.常量就是不可变的量. 3.字面量:Java的变量和常量中存放的具体的数据成为字面量. 变量 命名规则: (1)首字母是英文字母.$或下划线,由字 ...
- Java学习【第1篇】:数据类型(2019-02-13 11:00)
1.Java 基本数据类型 Java 的两大数据类型: 1.内置数据类型 byte.short.int.long.float.double.boolean.char 2.引用数据类型 指向一个对象, ...
- java学习中的一些疑惑解答
一.java中的枚举类型: 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.例如星期一到星期日七个数据元素 ...
随机推荐
- 第二十七篇 -- QTreeWidget总结
前言 之前写过几篇关于TreeWidget的文章,不过不方便查阅,特此重新整合作为总结.不过关于QtDesigner画图,还是不重新写了,看 第一篇 就OK. 准备工作 1. 用QtDesigner画 ...
- 如何用C++自己实现mysql数据库的连接池?
为什么是mysql? 现在几乎所有的后台应用都要用到数据库,什么关系型的.非关系型的:正当关系的,不正当关系的:主流的和非主流的, 大到Oracle,小到sqlite,以及包括现在逐渐流行的基于物联网 ...
- 冒泡排序(bubble_sort)——Python实现
# 冒泡排序 # 作用:对给出的n个顺序不定的数进行排序 # 输入:任意数组A # 输出:按顺序排列的数组A # 冒泡排序过程 # 第一趟:以第一个数为基准,从最后一位数开始,依次与它比较, ...
- Verilog function的使用
function的用法 function的标准写法如下: function <返回值的类型或是范围> (函数名): <端口说明语句> //input xxx <变量类 ...
- XSS challenges靶机
第一关 <script>alert(123)</script> "><svg onload=alert(123)> 第二关 <script&g ...
- JSP的执行原理、JSP的内置对象、四大作用域解析、MVC模式理解>从零开始学JAVA系列
目录 JSP的执行原理.JSP的内置对象.四大作用域解析.MVC模式理解 JSP的执行原理 这里拿一个小例子来解析JSP是如何被访问到的 首先将该项目部署到tomcat,并且通过tomcat启动 通过 ...
- DVWA靶场练习-暴力破解
一.暴力破解 (Brute Force) 暴力破解是Web安全领域的一个基础技能,破解方法论为:构建常见用户名及弱口令 因此需要好的字典,对应破解场景构建特定的用户名密码,以及还需要具有灵活编写 ...
- C++ //关系运算符重载 < = > !=
1 //关系运算符重载 < = > != 2 #include <iostream> 3 #include <string> 4 using namespace s ...
- 工资8000以下的Android程序员注意了!接下来要准备面对残酷现实了……
最近在知乎看到一个测试,特扎心: 以下三种情况,哪个最让你绝望? ❶ 每月工资去掉开销还存不到3千: ❷ 家人突然急病住院,医药费10万: ❸ 同班的家长都在争先恐后给孩子报名各种辅导班.兴趣班,但一 ...
- 说说XXE漏洞那些事
想不起来写点啥了,又是摸鱼的一天,看了一些红队大佬们整理的资料,非常精彩,于是一个咸鱼翻身先选了一些简单的小点来写一写个人的感想(后续会继续更新其他内容) 不能说写的是技术分享,因为师傅们的文章珠玉在 ...