Java数据类型之Java数据类型的划分方式
程序的本质在于数据的处理上。所以如果想进行程序处理,那么必须要有相应的数据类型。在Java中针对于数据类型一共可以划分为两类:
- 基本数据类型:是进行内容的操作,而不是进行内存的操作;
|- 数值型:
|- 整型:byte,short,int,long; 默认值:0
|- 浮点型:float,double; 默认值:0.0
|- 字符型:char; 默认值:‘\u0000’
|- 布尔型:boolean; 默认值:false
- 引用数据类型:在数据交互过程之中会占用内存空间指向
|- 分为:数组、类、接口; 默认值:null
对于给出的八种基本数据类型,有其自己特定的使用环境:
- 表示整数首先考虑的就是int,例如:年龄;
- 表示小数一定使用double;
- 表示日期、时间、数字、文件、内存大小使用long(字节);
- 进行编码转化、数据传输使用byte;
- 处理中文使用char类型;
- 处理逻辑使用boolean类型;
以后考虑代码的时候,float和short可以暂时不考虑。
Java的基本数据类型
double保存的数据范围是最大的。
1整型
在程序开发之中,如果想要表示整数就使用整型,同时如果要想定义整型可以使用byte、short、int、long,但是一定要记住,在Java之中有一个特点:默认的一个整数,其对应的类型永远是int。
范例:定义整形变量
public class Test {
public static void main(String args[]){
//定义变量的语法:数据类型 变量名称 = 默认值;
//10作为一个常量其类型是int型
int num = 10;//定义一个num的int型变量,赋值为10
//代码从等号右边开始执行
//int型变量 = int型变量 + int型常量
num = num + 20;//使用num变量的内容(10)+20的常量,将结果赋值给num
System.out.println(num);//输出num的内容
}
}
变量内容在开发之中允许修改,常量内容不允许修改。
范例:数据溢出
public class Test {
public static void main(String args[]){
int max = Integer.MAX_VALUE;//int的最大值
int min = Integer.MIN_VALUE;//int的最小值
System.out.println(max);//2147483647
System.out.println(min);//-2147483648
//max是int型变量 + int型常量 = int型
System.out.println(max+1);//-2147483648
System.out.println(max+2);//-2147483647
//min是int型变量 - int型常量 = int型
System.out.println(min-1);//2147483647
}
}
之所以会出现数据的溢出操作,那么本质的问题就在于数据类型的操作位数太短了,那么在这种情况下(正常情况下基本出现),所以要想解决此时 int 的问题,那么就必须扩展操作类型,比int大的是long数据类型。
给出一个常量或者是变量怎么变成long型?
- 将int变量转换为long:(long)int 变量;
- 将int常量转换为long:常量L。
- 如果小范围的数据类型变量或常量与大范围的变量或常量计算时,先转换到大范围数据类型
范例:解决数据溢出
public class Hello {
public static void main(String args[]){
int max = Integer.MAX_VALUE;//int的最大值
int min = Integer.MIN_VALUE;//int的最小值
System.out.println(max);//2147483647
System.out.println(min);//-2147483648
//int型变量 + long型常量 = long型
System.out.println(max+1L);//2147483648
//强制将int型变为long+int型常量 = long型
System.out.println((long)min-1);//-2147483649
}
}
public class Hello {
public static void main(String args[]){
System.out.println(11+1l);//12
}
}
这样的转换操作确实是很少出现,但是通过上述代码实际上发现了一种数据类型的自动转换功能。
不同种数据类型之间是可以进行转换的,转换原则如下(由大到小,强制;由小到大,自动。):
- 数据范围保存大的数据类型要转换为数据范围保存小的数据类型,使用强制转换;
- 数据范围保存小的数据类型可以自动转换为数据范围保存大的数据类型。
范例:数据的自动转换
public class Hello {
public static void main(String args[]){
int x = 10;//整型变量
long num = x;//int自动变为long型
System.out.println(num);//10
}
}
范例:数据的强制转换
public class Hello {
public static void main(String args[]){
//10是int型常量,将int型自动转换为long
long x = 10;
int num = x;//long强制变为int型
System.out.println(num);
}
}
public class Hello {
public static void main(String args[]){
//10是int型常量,将int型自动转换为long
long x = 10;
int num = (int)x;//long强制变为int型
System.out.println(num);//10
}
}
public class Hello {
public static void main(String args[]){
long x = 3777777777;
int num = (int)x;//long强制变为int型
System.out.println(num);
}
}
public class Hello{
public static void main(String args[]){
long x = 3777777777L;
int num = (int)x;//long强制变为int型
System.out.println(num);//-517189519
}
}
在数据类型之中byte表示字节数据,字节数据的范围:-128~127。接下来考虑int与byte之间的转换。
范例:byte转换为int
public class Hello{
public static void main(String args[]){
byte x = 10;//定义byte变量
int num = x;//byte转换为int
System.out.println(num);//10
}
}
public class Hello {
public static void main(String args[]){
byte x = 130;//定义byte变量
int num = x;//byte转换为int
System.out.println(num);
}
}
在Java中,由于byte类型比较特殊,那么进行赋值处理时,如果设置的整型数据(常量)在byte范围内,那么它会帮助用户自动转型,如果超过了byte的范围,那么就需要进行向下的强制转换。
public class Hello {
public static void main(String args[]){
byte x = (byte)130;//定义byte变量
int num = x;//byte转换为int
System.out.println(num);//-126
}
}
public class Hello {
public static void main(String args[]){
int y = 10;
byte x = y;//定义byte变量
int num = x;//byte转换为int
System.out.println(num);
}
}
现阶段表示数字就使用int。
2浮点型
如果要表示小数(收入、成绩、身高)使用float、double。但是在Java之中,任何的一个小数常量其对应类型都是double。
范例:double操作
public class Hello {
public static void main(String args[]){
//10.0是一个小数常量,其类型为double
double x = 10.0;
double y = 12.9;
System.out.println(x*y);//129.0
}
}
但是千万不要忘记,double是整个Java数据类型之中保存范围最大的一个类型。所以任何的数据类型与double类型进行数学计算时都会自动转换为double类型
范例:double与其他类型操作
public class Hello {
public static void main(String args[]){
//10.0是一个小数常量,其类型为double
double x = 10.0;
int y = 10;
long z = 120;
//double型变量+int型自动变为double型+long型自动变为long型=double型;
System.out.println(x+y+z);//140.0
}
}
但是double并不是唯一的小数表示,对于小数还可以使用float表示。但是,如果要想定义float变量,那么必须将double型常量转换为float型。
public class Hello {
public static void main(String args[]){
float x = 10.2F;
float y = (float)10.2;
System.out.println(x);//10.2
System.out.println(y);//10.2
}
}
但是这样的操作有些啰嗦,之所以提出是因为很多时候,Java也许会用在一些内存操作严格的情况下。手机。
但是除了小数操作中要使用double类型之外,在一些计算中也需要使用到。
范例:除法计算
public class Hello {
public static void main(String args[]){
int x = 10;
int y = 4;
System.out.println(x/y);//2
}
}
因为整形是不保存小数位的,所以 如果利用整型进行数学计算,那么最终的结果小数位将全部被忽略掉。
范例:利用float、double进行小数位的保留
public class Hello {
public static void main(String args[]){
int x = 10;
int y = 4;
//int型÷double型=double型
System.out.println(x/(double)y);//2.5
}
}
在大部分情况下,只要与小数点有关的一切操作都使用double完成。
关于默认值的说明
默认值现在不起作用
范例:定义不变量不设置内容
public class Hello {
public static void main(String args[]){
int x ;
System.out.println(x);
}
}
正常情况下,变量值只有设置内容后才能正常使用。而事实上,默认值没有用处。
public class Hello {
static int x ;
public static void main(String args[]){
System.out.println(x);//0
}
}
public class Hello {
public static void main(String args[]){
int x ;
x=10;//使用前先赋值
System.out.println(x);//10
}
}
这个代码在JDK1.5之后才可以使用,而JDK1.5之前此代码是错误的。
范例:绝对正确
public class Hello {
public static void main(String args[]){
int x=10;//使用前先赋值
System.out.println(x);//10
}
}
以后一定要养成习惯,方法中定义变量一定要设置默认值。
3字符型
char主要是保存单个字符,并且单个字符要使用“ '' ”声明。
范例:char类型
public class Hello {
public static void main(String args[]){
char c = 'A';//字符变量
System.out.println(c);//A
}
}
以后只要是使用单引号声明的内容都表示单个字符。在Java里,由于使用的是UNICODE这种16进制编码,所以char可以保存中文。
范例:保存中文
public class Hello {
public static void main(String args[]){
char c = '好';//字符变量
System.out.println(c);//好
}
}
首先明确的是,计算机的世界里面能保存的数据只是01这样的二进制机器语言,所以如果要保存字符,那么也需要有其对应的编码出现。而Java使用的是UNICODE编码,这个编码特点:包含ASCII码。那么在这样的情况下,char和int可以互相转换,而char转换为int之后就是具体的编码数据。
范例:观察转换
public class Hello {
public static void main(String args[]){
char c = 'A';//字符变量
int num = c;//将字符转换为数字(保存的是编码)
System.out.println(num);//65
}
}
常用字符范围:
- 大写字母:'A'(65)~'Z'(90);
- 小写字母:'a'(97)~'z'(122);
- 数字字母:'0'(48)~'9'(57)
可以发现大写字母和小写字母之间相差32.
范例:大写与小写字母间的转换。
public class Hello {
public static void main(String args[]){
char c = 'A';//字符变量
int num = c;//将字符转换为数字(保存的是编码)
num = num + 32;//大写字母和小写字母之间差了32
c = (char)num;//将数字强制变为char
System.out.println(c);//a
}
}
综合所述,char最大的优势就是可以保存中文,而byte是保存字节的。
4布尔型
boolean表示的是布尔型的数据类型,布尔是一个数学家的名字,他发明了布尔类型。所谓的布尔类型指的就是两方面的概念:ture(真),false(假)。
一般情况下boolean类型往往都要结合判断语句完成处理。
范例:使用布尔型
public class Hello {
public static void main(String args[]){
boolean flag = true;
//if语句判断的是boolean型数据
if(flag){//如果flag内容是true,那么就执行
System.out.println("好好学习,天天向上");//好好学习,天天向上
}
}
}
很多的编程语言实际上本身并没有直接提供布尔型数据,例如:C语言之中,将0表示为false,将非0表示为true。但是Java并没有这样的0,1描述,只有true、false。
但是可以借助此概念在数据库设计中使用,做一个超级管理员的标志位:1(是超级管理员)、0(普通管理员)。
1.5字符串:String型
利用char只能够保存单个字符,这在很大程度上是有限制的,所以如果想要表示多个字符,就可以利用String完成。但是String本身是一个类,但是这个类的使用有些特殊,可以像基本数据类型那样完成。在程序中使用双引号声明的数据就是字符串。
范例:定义字符串
public class Hello {
public static void main(String args[]){
String str = "Hello world!";//字符串
//在字符串中可以使用“+”进行字符串的连接操作
str = str + "Hello LDN!";
str += "I'm good.";
System.out.println(str);//Hello world!Hello LDN!I'm good.
}
}
现在发现String进行连接操作的过程中使用了“+”进行了连接操作,可是“+”也属于数学运算符。
范例:观察如下代码
public class Hello {
public static void main(String args[]){
int x = 10;
double y = 20.3;
//所有的数据类型与String进行“+”操作中都会自动变为String型
//字符串+double变为字符串+int变为字符串
String str1 = "计算结果:"+y+x;
String str2 = "计算结果:"+(y+x);//改变运算顺序
System.out.println(str1);//计算结果:20.310
System.out.println(str2);//计算结果:计算结果:30.3
}
}
另外一点,在程序中还存在有转义字符,包括:“\n”、“\\”、“\"”、“\'”、“\t”。
范例:观察转义字符
public class Hello {
public static void main(String args[]){
String str = "Hello \"world\",\\hello\n\thaha";
System.out.println(str);
}
}
运行结果:
Hello "world",\hello
haha
记忆点:
1.数据类型划分以及默认值;
2.表示年龄用int,表示成绩用double,表示姓名用String,表示逻辑用boolean。
Java数据类型之Java数据类型的划分方式相关推荐
- java final char_java基本数据类型总结 类型转换 final关键字的用法
java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...
- 新的JAVA基础第一天---数据类型等
内容 java基础知识, java流程控制语句, 常用包和类 ,数组操作, 面向对象的概念 ,异常处理 ,文件访问iO流, 数据集合操作, 集合框架 jDBC访问数据库 目标掌握基础 java语言简介 ...
- java实型常量用十六进制表示_[Java入门笔记] Java语言基础(二):常量、变量与数据类型...
常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Java中声明常量必须使用final关键字.常量还可以分为两种意思: 第1种意 ...
- Java复习二 基本数据类型与变量和常量
Java基本数据类型 Java变量与常量 Java基本数据 整数类型 用来存储整数的数据类型,既可以是正整数,又可以是负整数和0,但是不可以为浮点数.整数常量在Java中有三种表现形式:十进制,八进制 ...
- 64位 java 数据类型_全面解析Java支持的数据类型及Java的常量和变量类型
基本数据类型变量就是用来储存值而保留的内存位置.这就意味着当你创建一个变量时就会在内存中占用一定的空间. 基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中.因此,通过给变量分 ...
- 【Java基础】Java基本数据类型与位运算
1.赋值运算符 赋值使用操作符"=".它的意思是"取右边的值(即右值),把它复制给左边(即左值)".右值可以是任何 常数.变量或者表达式 (只要它能 生成 一个 ...
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
2019独角兽企业重金招聘Python工程师标准>>> 常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Ja ...
- java 编码与基础数据类型
编码 unicode解决了语言不通的问题. 但是.unicode又有一个新问题. 由于unicode是万国码. 把所有国家的文字都编进去了. 这就导致一个unicode占用的空间会很大. 原来一个英文 ...
- double类型最大值_Java后端精选基础教程:Java 中的基本数据类型「连载 6」
数据类型定义了变量可以采用的值,例如,定义变量为 int 类型,则只能取整数值. 在 Java 中有两类数据类型: 1)原始数据类型 2)非原始数据类型 - 数组和字符串是非原始数据类型,将在以后的教 ...
最新文章
- 我如何想成为Java
- MySQL新建数据库和表
- 运动搜索(运动估计)知识
- gerber文件_90%的工程师容易忽视(一):PCB输出gerber文件,这样操作才正确!
- Python学习笔记020——数据库基本操作
- Servlet的生命周期
- 计算机表格制作ppt,计算机基础使用excel2003制作表格.ppt
- 打印机之——Mac电脑添加打印机
- excel 复选框 制作动态表格
- unity实用技能,控制renderQueue解决NGUI与Unity3D物体渲染顺序问题
- MySQL:连接错误
- Android 悬浮窗、悬浮球开发
- redis的消息队列(面试题)
- 前端安全(http)
- Android:仿QQ 发表说说/上传照片 弹出框
- android AMS学习(一)
- 青可儿——名副其实的“三好饼干”
- 画环形或者蚊香线圈的软件介绍以及使用笔记
- IT行业的几大发展趋势
- 联想小新700的win10系统uefi引导启动总是蓝屏,太恶心了
热门文章
- Rancher2.6全新Monitoring快速入门
- ==与equest的区别
- 如何7周成为数据分析师
- compareTo()和compare()的详解和区别
- 两张独立显卡连接两个显示器如何配置
- 计算机如何接两个屏幕,笔记本连接两个显示器的步骤_笔记本电脑怎么外接两个显示器做分屏-win7之家...
- Android调试高德SDK,如何获取SHA1?
- BackTrack5 学习笔记2 常用工具
- Cision与Brandwatch达成收购协议,整合公关、社交媒体管理和数字消费者洞察
- FPGM(Filter Pruning via Geometric Median)笔记