美文网首页
Java基础之常量、变量

Java基础之常量、变量

作者: sexyhair | 来源:发表于2018-03-26 22:44 被阅读0次

四、常量

4.1 概述:

-在程序执行的过程中其值不可以发生改变

4.2 分类:

-字面值常量
      字符串常量
      整数常量:Java对整数常量提供了4中表现形式(二、八、十、十六进制);
      小数常量
      字符常量
      布尔常量
      空常量

4.3 关于进制:

4.3.1 概述:
-就是进位制,是人们规定的一种进位方法。
-规则:X进制,则表示逢X进一位;

计算机的电子元件的状态:开关
仅仅开关两个状态是不够表达我们常见的数据的:英文字母,数字,标点符号等。为了能便是更多的数据,国际化组织就规定:用8个这样的信号(开关)来表示一个数据,这个数据单位叫:字节。
后来,通过数字1,0来表示开和关;那么1个字节 等于有8位(bit)。
由这样的1,0组成的数据就是二进制数据;

单位转换:
1byte = 8bit
1k = 1024byte
1m = 1024k
1g = 1024g
1t = 1024g

4.3.2表现形式:

二进制:有这样的1,0组成的数据就是二进制。以0b开头。

八进制:Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。以0开头

十进制:由0,1,2...9组成。整数默认是十进制。

十六进制:它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。以0x开头

4.3.3相互转换:

1)二进制转化成八进制

-A.把二进制的数据,从右开始,每三位一组合,最左边不够的时候补0。
-B.分别计算出对应的十进制数值,
-C.再把每个十进制的数据组合起来,就是一个八进制。
二进制转八进制

2)二进制转化成十六进制

-A.把二进制的数据,从右开始,每四位一组合,最左边不够的时候补0。
-B.分别计算出对应的十进制数值,
-C.再把每个十进制的数据组合起来,就是一个十六进制。
二进制转十六进制

3)任意进制转化为十进制

按权求和:
系数:每一个位上的数据值本身就是系数。
基数:x进制的基数就是x
权:针对每一个位上的数据进行编号,从右边并且是从0开始编号,这个编号就是该位上数据的权值
x进制转化成十进制:每一个位上的系数*基数的权次幂 之和。
十进制转化十进制,推导出规律


按权求和的推导

4)十进制他转化其他进制

除基取余,直到商为0,余数反转;
52转二进制:0b110100
52 / 2 = 26 余0
26 / 2 = 13 余0
13 / 2 = 6 余1
6 / 2 = 3 余0
3 / 2 = 1 余1
1 / 2 = 0 余1
52转八进制:064
52 / 8 = 6 余4
6 / 8 =0 余6
52转十六进制:0x34
52 / 16 = 3 余4
3 / 16 = 0 余3

5)任意的x进制到y进制的转换?

以十进制为桥梁:
x进制 转 十进制
十进制 转 y进制

6)二进制与十进制之间的快速转换法:8421码
(一知半解,暂不考虑)

4.4 有符号的数据表示法:

4.4.1 概述:
-在计算机内,有符号数据的表示法:原码、反码、补码。
-所有数据的运算都是采用数据对应的二进制的补码进行的。
4.4.2 原码、反码、补码:
原码、反码、补码定义.png
原码、反码、补码练习:
练习1
练习2

五、变量

5.1 概述:

-在程序执行过程中,在某个范围内变化的量
-可以理解成变量就是在内存中的一小块区域,使用变量名来访问这一块区域,区域中的内容就是变量的值;

5.2 格式:

数据类型 变量名 = 初始化值;此格式是固定的;

5.3 关于数据类型

5.3.1 概述:

Java是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同的大小的内存空间。

数据类型 基本数据类型及其字节数
5.3.2 注意事项:
A.整数类型默认值是int,浮点类型默认是double。(在运算是会把byte转换成int再运算)
B.声明long类型时,后面要加上“L”或者"l";

C.声明float类型,后加“F”或"f",否则可能损失精度,因浮点数据默认是double的。

D.默认转换:1)byte,short,char--int--long--float--double(从小字节转到大字节,避免可能损失精度)

2)byte,short,char之间不能相互转换,他们参与运算首先转成int类型;
char在转化int类型时对应一张ASCII表,其中有3个关健对应值须记住
'0'-----48
'A'-----65
'a'-----97

练习:
衍生:当字符串+其他类型时
字符串+其他类型
E.强制转换:目标类型 变量名 = (目标类型)(被转换的数据)

F.运算时直接是常量想加,查看注意A中的图的解释

5.3.3 练习

5.4 使用变量的主意事项:

A.作用域:变量定义的位置决定了他的作用域,定义在方法内,作用域就是这个方法体,定义在类中作用域就是这个类。相同的作用域中不能丁两个同名变量。
B.初始化值:没有初始化值不能直接使用。
C.在一行上建议之定义一个变量。可以多个不算错,书写不规范。

5.5 思考:

1.变量相加和常量相加的区别?答案:注意A与F
2.强制转换数据移除后的结果怎么算?答案:练习

byte,short他们接收的其实是int类型的值,它们会自己做一个检测,如果超出他们所能表达的数值范围则就报错了。byte b = 128;//就报错。

byte临界值的问题(-128~127)
byte b1 = 127;//无错
byte b2 = 128;//打印出来的是-128
byte b3 = 129;//打印出来的是-127
byte b4 = 130;//打印出来的是-126
128的二进制是10000000,-128的二进制也可以是:10000000(这个的1既是符号位也是数值位),其他类型的临界值也是这样的;

数据类型的默认转换:
byte 、char、short --int -- long --float --double
其中long是8字节,而float是4字节,为什么long还能默认转成float呢?
A.long与float的底层存储结构不同
1) long是整数类型,直接是1,08位那么存储;
2) float是浮点类型,是带小数的二进制换算,存储的是有效数字位(科学计数法)
B.float所表示的数值范围要大于long类型所表示的数值范围的;
1) long表示的数值范围:2^63-1
2) float表示的数值范围:3.410^38
3.4
10^38 > 210^38 > 28^38 > 22338 = 22^114 > 2^63-1

Java语言中的字符char可以存储汉字吗?
可以的,因为Java中的char是2个字节的;一个汉字是占2个字节的;Java的编码是采用Unicode编码;

float类型的数据在内存中是怎么存储的?(了解)
SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
S表示浮点数正负
E指数加上127后的值得二进制数据
M底数
举例:17.625在内存中的存储
首先要把17.625换算成二进制:10001.101
整数部分,除以2,直到商为0,余数反转。
小数部分,乘以2,直到乘位0,进位顺序取。
在将10001.101右移,直到小数点前只剩1位:
1.0001101 * 2^4 因为右移动了四位
这个时候,我们的底数和指数就出来了
底数:因为小数点前必为1,所以IEEE规定只记录小数点后的就好。所以,此处的底数为:0001101
指数:实际为4,必须加上127(转出的时候,减去127),所以为131。也就是10000011
符号部分是整数,所以是0
综上所述,17.625在内存中的存储格式是:
01000001 10001101 00000000 00000000

参考书籍视频:
-学习视频:黑马程序员_Java基础视频-深入浅出精华版
-阅读书籍:Java核心技术 卷I(机械工业出版社)
          API1.8

相关文章

  • java

    语法基础1.1 java初体验(语法基础)1.2 变量和常量(语法基础)1.2 变量和常量(语法基础)1.4 流程...

  • Java基础之常量、变量

    四、常量 4.1 概述: 4.2 分类: 4.3 关于进制: 4.3.1 概述: 计算机的电子元件的状态:开关仅仅...

  • java02

    java编程基础 目标: 常用开发工具 转义字符 Java语法格式规范 标识符,关键字,常量 Java变量 变量分...

  • Swift 2.0 学习笔记 1_基础部分

    //: 基础部分 //: 常量和变量 //: 声明常量和变量 // let: 常量 var: 变量 let max...

  • Java基础之常量与变量(7)

    常量 我们前面已经了解了我们的变量,那么接下来讲讲我们的常量。 ...

  • Java基础之常量与变量(5)

    布尔类型的字面值 这里简单介绍下字面值的概念,我们可能在很多方面把字面值叫...

  • Java基础之常量与变量(6)

    数据类型转换 数据类型转换分为两种,一种是自动类型转换,一种是强制类型转换...

  • Java基础之常量与变量(3)

    前面为大家介绍了变量的基本元素,其中有一个是变量的值,那么这次就为大家介绍变量值。变量值可以是我们要介绍的字...

  • Java基础之常量与变量(2)

    变量的类型,也就是我们所说的数据类型,数据类型分为两大类,基本数据类型和引用数据类型,本章主要介绍基本数据类型。 ...

  • Java基础之常量与变量(4)

    基本数据类型变量的存储 前面介绍过数据类型分为基本数据类型和引用数据类型,因此呢J...

网友评论

      本文标题:Java基础之常量、变量

      本文链接:https://www.haomeiwen.com/subject/fcwwoxtx.html