【JAVASE_学习笔记】数据类型
来源:互联网 发布:秦丝生意通 mac os 编辑:程序博客网 时间:2024/05/21 17:58
【JAVASE_学习笔记】数据类型
常量
常量:程序运行中其值不变的量
常量类型:1.字面值常量:
a.整数常量 如12
b.小数常量 如3.14
c.布尔常量 布尔常量只有两个值,true,false
d.字符常量 单个字符使用单引号引起来的内容 如’a’
e.字符串常量 数据内容使用双引号引起的内容 如”helloworld”
f.空常量 null
2.自定义常量(与关键字:final有关:面向对象部分讲解)
public class ConstantDemo { public static void main(String[] args) { //字符串常量 System.out.println("helloworld"); //字符串 +(拼接符号) 任何数据 = 字符串 System.out.println("helloworld"+'a'+1);//helloworlda1 System.out.println('a'+1+"helloworld");//98helloworld System.out.println("5+5="+5+5);//5+5=55 System.out.println(5+5+"=5+5");//10=5+5 System.out.println("------------------------"); //字符常量 //不参与运算 System.out.println('A'); System.out.println('a'); System.out.println('0');// System.out.println('ab');//错误 System.out.println("------------------------"); //当字符参与运算的时候,就需要带ASCII码表中找字符对应的值 //'A'---->65 //'a'---->97 //'0'---->48 System.out.println('A'+1);//66 System.out.println('a'+1);//98 System.out.println('0'+1);//49 System.out.println("----------------------"); //整数常量 System.out.println(100); //小数常量 System.out.println(3.1415926); System.out.println("-------------------"); //布尔常量 System.out.println(true); System.out.println(false); //空常量 String s = null ;//针对引用类型 System.out.println(s); }}
变量
变量:程序运行中其值可以发生变化的量
A.八种基本数据类型
1.整数类型:
byte (字节) 1字节(8bit) 范围:-128~127
short (短整型) 2字节(16bit)
int (整型) 4字节(32bit)
long (长整型) 8字节(64bit)
2.小数类型:
float (单精度浮点型) 4字节(32bit)
double (双精度浮点型) 8字节(64bit)
3.布尔类型:
boolean (布尔类型) 1个或4个字节
用于声明一个基本类型变量时占四个字节
用于声明一个数组类型时,数组中每个元素占一个字节
4.字符类型:
char (字符类型) 2个字节
B.引用类型 如String
注意:
对于整数类型:
默认的类型:int类型
使用long类型定义变量,在当前变量值的后面加上L或者l(推荐使用L),告诉系统我定义的是一个long类型
浮点类型:
默认双精度:double
定义float类型,在该变量值的末尾跟上F或者f
public class DataTypeDemo { public static void main(String[] args) { //byte类型 byte b = 100 ; System.out.println(b); System.out.println("--------------"); //短整型 short s = 20 ; s = 50 ; System.out.println("s:"+s); System.out.println("--------------");// int i = 1000000000000;// System.out.println("i:"+i); //长整型 long l = 1000000000000L; System.out.println("l:"+l); //浮点类型:默认double类型 double d = 12.56 ; System.out.println("d:"+d); //单精度 float f = 12.34F ; System.out.println("f:"+f); //由于浮点类型存储和整数类型的存储不一致.导致:永远是一个近似值:BigDecimal// System.out.println(1.0-0.32); //char类型 char ch = 'A' ; System.out.println(ch); //boolean类型 boolean flag = true; System.out.println(flag); }}
变量的定义(声明)
格式:
方式一:数据类型 变量名;
方式二:数据类型 变量1,变量2…;
注意:
1.在java中,定义一个变量不能重复定义
2.建议不要再同一行上定义多个变量
3.定义变量不能以数字开头
public class DataTypeDemo2 { public static void main(String[] args) { //定义变量 int a = 10 ;// int a = 20 ; a = 20 ; //一行定义多个变量,中间用逗号隔开// int m = 10 ,n = 20 ,x = 30 ; int m = 10 ; int n = 20 ; int x = 30 ; //不能以数字开头// int 2z = 40 ; }}
数据类型转换
注意:
1.byte,short,char类型数据在运算时自动转换成int类型再运算
2.两个不同类型数据运算,结果取决于大的数据类型数据
如 int类型数据+long类型数据 结果为long类型
小数据类型——>大数据类型 自动类型转换
大数据类型——>小数据类型 强制类型转换(会损失精度)
强制类型转换格式:
目标数据类型 变量名=(目标数据类型)(大数据类型数据)
练习:
/* * 面试题: byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢?为什么呢 第一句编译失败:存在默认类型转换,如果想让改代码不报错,正常运行,必须强制类型转换 第三句话:b = 3 + 4 ;属于常量相加,先相加---->看结果是否在当前该数据类型范围内,在就不会报错! * */public class DataTypeDemo3 { public static void main(String[] args) { byte b1 = 3,b2 = 4 ,b ;// b = b1 + b2 ;//错误的:byte类型不可能接收一个int类型的值 b = (byte)(b1 + b2) ; b = 3 + 4 ; System.out.println("b:"+b); }}
负数的存储
负数的最高位为1,正数最高位为0
负数在计算机中存储的是补码
补码运算步骤(负数):
1.先得到负数的二进制码(原码);
2.最高位不变,原码取反(反码);
3.反码加一 (补码)
正数的原码,反码,补码相同
练习:
/* * 面试题 byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢? 有问题:超出范围:byte的取值范围:-128~127 想让 赋值正确,就必须强制类型转换,结果-126 * */public class DataTypeDemo4 { public static void main(String[] args) { //定义变量 byte b =(byte)130 ; System.out.println("b:"+b); }}/* * 130看成四个字节:默认int类型 * 计算出对应的二进制数据 * 00000000 00000000 0000000 10000010 * * 最高符号位是0,当前整数,该数据对应的原码,反码,补码都一样 * * 计算机底层是通过补码进行运算:byte b = (byte)130; * 10000010(补码)----->原码 * * 最高符号位 数值位 * 1 0000010 补码 * -1 * 1 0000001 反码 --->最高符号位不变,数值位按位取反 * 1 1111110 * * 结论: * - 64+32+16+8+4+2 * - 126 * * */
- 【JAVASE_学习笔记】数据类型
- 【JAVASE_学习笔记】基础知识
- 【JAVASE_学习笔记】数组
- 【JAVASE_学习笔记】多态
- 【JavaSE_学习笔记】泛型
- 【JAVASE_学习笔记】运算符
- 【JAVASE_学习笔记】内部类
- 【JavaSE_学习笔记】正则表达式
- 【JavaSE_学习笔记】List接口
- 【JavaSE_学习笔记】异常体系
- 【JavaSE_学习笔记】File类
- 【JavaSE_学习笔记】字节流
- 【JAVASE_学习笔记】标识符与注释
- 【JAVASE_学习笔记】流程控制语句
- 【JAVASE_学习笔记】函数与重载
- 【JAVASE_学习笔记】类与对象
- 【JAVASE_学习笔记】抽象类与接口
- 【JavaSE_学习笔记】Integer和Character
- 打包自己写的python库(Betubedl)并且发布到pypi上
- linux习题
- PAT乙级1022
- Java--map的遍历方式
- [LCT维护树的权值与形态]BZOJ3159.决战
- 【JAVASE_学习笔记】数据类型
- 不务正业-搜索
- redis服务器理解
- java第二天——java基本语法
- Android将Library上传到jcenter超简单完整图文步骤以及遇到的各种坑
- sublime3可用激活码
- wordpress 更改文件上传大小
- 关于java接口、父类子类之间调用和强制转换的关系
- / Vijos / 题库 / 漫长的等待 1923