Java基础(二)★进制-变量-数据类型
2018-03-27 21:58
363 查看
进制
二进制:0~1,满二进一,0b00011,0b10011,在JDK1.7之前程序中无法直接书写一个二进制数字,JDK1.7之后要求是以0b开头作为标识八进制:0~7,满八进一,07,015,要求以0开头作为标识
十进制:0~9,满十进一
十六进制:0~9,A~F,满十六进一,0x20,0xA要求以0x开头作为标识,F+1 =10
进制之间的转换
十进制转换成二进制:不断除以2取余,然后将余数倒排二进制转换成十进制:从低位次起,按位次乘以2的位次次幂,然后求和。
十进制向那个进制转换就除以那个进制,然后取余倒排
二进制向八进制转换:从低位次起,每三位化为一组,产生一位八进制数字,最高位不足三位,补0,三位以内,按照二进制向十进制的转化规则进行运算,产生的八进制数字按顺序排列---三变一
八进制转换成二进制:一变三的过程--每一位八进制转换成三位二进制数字,然后将这些二进制数字按顺序排列
二进制转换成十六进制:四变一的过程---类比二进制转换成八进制
常量
不可改变的量:整数、小数、字符、字符串、布尔、null
整数常量:所有的整数,0,1,100,209小数常量:所有的小数,0.9,100.1,1000.77
字符常量:将一个字母、数字、符号用 ‘’标识起来的量 ‘a’, ‘2’, ‘*’,(‘’, ' ' 不合法)
字符串常量:将一个或者多个字符用 “”标识起来的量, “a”, “bbb” , “”, “”
布尔常量:true和false---用于表示逻辑值
空常量:只有一个值null
2,2.0, ‘2’, “2”分别是什么常量?
2--整数 2.0--小数
变量
变量名、数据类型、数据
public class A{ public static void main(String[] a){ //变量必须先声明再使用 i = 5; int i; } //变量在哪儿定义在哪儿使用 i = 10; }扩展:1byte=8bit 1B = 8b, 1KB=1024B MB, GB,TB,PB
数据类型
基本数据类型
数值型
整型
byte---字节型---1个字节--8位-- -2^7 ~ 2^7-1--- -128~127byte b = -128;
默认值是0
short---短整型---2个字节--- -2^15 ~ 2^15-1 --- -32768~32767
默认值是0
int---整型---4个字节--- -2^31 ~2^31-1
int i = 0b0011;
int i = 0x23;
//从JDK1.7开始,允许数字中间插入_分隔数字,在编译的时候,会自动省略_
int i = 100_000_000;
Java中整数默认就是int类型
默认值是0
long---长整型---8个字节
long l = 4L;
默认值是0L
浮点型
float---单精度---4个字节
float f = 3.2f;
默认值是0.0f
double---双精度---8个字节
Java中的小数默认就是double类型
double d = 4.5;
double d = 3.8D;
double d = 3e4;-> double d = 30000.0;
double d = 0x3p2;---十六进制的科学计数法的表示形式
默认值是0.0
注意:Java中的数值型类型都是有符号的。
字符型---char---2个字节--- 0-65535
编码:阿斯科玛表---ASCII 0-127 西欧码表---ISO8859-1 0-255 GB2312---2个字节表示一个汉字 ---GBK Unicode编码体系---UTF-8---3个字节表示一个字符---万国码表
char c = ‘f’;
char c = ‘中;
转义字符
\t 制表符 \r 回车 \n 换行 \\ 反斜杠 \’单引号 \”双引号
默认值: ‘\u0000’---以\u开头表示这个字符是它对应的UTF-8的编码
布尔型---boolean---大小根据操作系统和JDK版本不同而定---true/false
默认值:false
引用数据类型
类---class 接口---interface 数组---[]数据类型的转换
隐式转换/自动类型转换
byte b = 3;int i = b;
转换规律一:byte->short->int->long
long l = 34;//34默认是int类型,int类型的值可以赋值给long类型---在int类型的而取值范围内,将值直接赋值给long类型,可以不加Lfloat f = 3.2f;
double d = f;
转换规律二:float->double
int i = 3;float f = i;
转换规律三:int->float,可能会产生精度损失
float f = -25;//truefloat f = 25.0;//false
long l = 34;
float f = l ;---->true
转换规律四:任何一个整型都可以赋值给浮点型的变量,但是可能产生精度损失
int->double--->会产生精度损失
char c = ‘e’;int i = c;
转换规律五:char -> int
//这两种写法在编译时期就已经转换成了对应的形式了char c = 98;--true--> char c = ‘b’;
short s = ‘b’;--true---> short s = 98;
char c = -1; //编译报错
//分开编译的,编译完了char c = ‘b’; ‘b’已经以字符形式存在了内存中
//由于两句话是分开编译的,所以现在JVM已经不确定c变量所表示表示的字符是否在short类型的取值范围内了。
char c = ‘b’;
short s = c;--false
//编译完成之后s的取值已经存入内存中了,再次使用s的时候,不能按照对应的码表转换成字符,能确定这个数字是否在码表的范围内吗?
short s = 100;
char c = s;
因为两句话是分开编译的,所以无法确定范围。
各个基本类型之间是平等的,不存在大小或者说是父子关系。
显示转换/强制类型转换
int i = 5;byte b = (byte)i;
当把大的类型转换为小的类型的时候,需要强制转换
float f = 3;->3.0f
int i = (int)f;
double d = 3.8;
int i = (int)d;-> i = 3;
当把浮点型数据转换为整型变量的时候,需要强制类型的转换。小数转换成整数的时候,不是四舍五入,而是舍弃掉小数部分。因此,小数转换整数的时候,也会产生精度损失。
注意:在计算机中,绝大部分小数是没有办法精确表示的
相关文章推荐
- Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- Java基础-02总结关键字,标识符,注释,常量进制,变量数据类型
- Java基础__(环境变量配置,关键字,标识符,进制,数据类型,运算符)
- 黑马程序员_Java基础[2]_数据类型、常量、变量、进制间的换算
- 黑马程序员—Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- NO2.Java学习笔记【关键字、类名、标识符、注释、变量与常量、数据类型、进制、运算符】
- Java基础——变量及数据类型
- 黑马程序员——Java语言基础——关键字、表示符、常量、变量及数据的类型、运算符
- 黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符
- JAVA第二章基础知识:注释,标识符,数据类型常量变量,基本数据类型转换。--------------(Make A little EvProgresseryday )
- 黑马程序员_Java基础_02常量、变量、数据类型、运算符、语句、程序执行过程
- Java基础——变量及数据类型
- 黑马程序员 Java基础<一> 关键字、常量变量、数据类型
- Java基础复习——数据类型、变量和数组
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- java变量、进制、数据类型-20141227002
- java基础之环境变量及数据类型
- 黑马程序员——JAVA基础(一)---关键字、数据类型、变量
- 再学Java基础(1)标识符,变量,数据类型。
- java数据类型(大小等),变量定义,各进制书写方法