点击左上方上方的轩轩吖,右上角选择“设为星标”
每天早上九点,我们不见不散
公众号后台回复“程序员简历模板”,即可获取精美简历模板
往期文章
两个小时摆脱java小白
两个小时摆脱Java小白--环境搭建
两个小时摆脱Java小白--手撕HelloWorld
两个小时摆脱Java小白--javadoc与跨平台原理
两个小时摆脱Java小白--开发工具配置与反编译
摘要
前几期文章我们学习了,java的发展史,java的环境搭建以及javadoc跨平台原理,配置了Notepad++,介绍了反编译,熟悉了HelloWorld程序!
我们从这一期开始就进入java编程基础了!
你们要扶好坐好!
马上开车!
1、变量与标识符
数学名词:
变数或变量,是指没有固定的值,可以改变的数。变量以非数字的符号来表达,一般用拉丁字母。变量是常数的相反。变量的用处在于能一般化描述指令的方式。
这个描述有点抽象,咱们举个生活中的例子,在生活中有哪些东西是变化的呢!速度,年龄,轩轩吖的饭量,你们的薪资,努力工作,肯定会变得!那么这些东西,一般化描述的东西就是变量!
计算机解释:
变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据 。
变量分类:
按所属的数据类型划分: 基本数据类型变量 引用数据类型变量 (自定义的数据类型)
按被声明的位置划分局部变量:方法或语句块内部定义的变量 成员变量:方法外部、类的内部定义的变量(全局变量)
标识符
Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。
Java标识符命名规则: 由字母、数字、下划线(_)和美元符号($)组成。不能以数字开头。区分大小 。长度无限制。不能是Java中的关键字和保留关键字。
标识符命名习惯:驼峰命名法、见名知意。以单词或单词组合来命名
合法标识符:password、xuanxuanya、user_name、_userName、$abc_123
非法标识符:2UserName(不能以数字开头 )、user#Name(#号不能当标识符)、Hello 轩轩(轩轩是没问题的但是我们不建议用中文来命名,有问题的是空格)、class(这个class是java中的关键字 对于关键字 这个坑 我是深受其害 记得 我的数据库订单表 名字叫做order 坑大发了)
2、八种基本数据类型
字节(Byte)是:计算机文件大小的基本计算单位。最小的是位 但是计算机中 1位也是按一个字节存储的
1个字节(Byte) = 8个位(Bit)
Bit意为“位”或“比特”,是计算机运算的基础;二进制中的一位,是二进制最小信息单位.二进位可以用来表示一个简单的正/负的判断,有两种状态的开关(如电灯开关) .简单换算结果:
1个字节(Byte) = 8个位(Bit)
2个字节(Byte) = 16个位(Bit)
4个字节(Byte) = 32个位(Bit)
8个字节(Byte) = 64个位(Bit)
单位换算:
1byte = 8bit
1KB = 1024byte
1MB = 1024KB
1GB = 1024MB
1TB=1024G
1PB=1024TB
所以1024对于程序员来说 意义还是很大的!
在内存计算过程中, 字节少的数据运算速度更快; 在硬盘存储中, 字节少的数据类型也可充分存入更多的数据。
这个怎么理解呢!相对而言的,比如你存一个表格里边存了一个G的数据,和你存一个电影1个G,这个表格的数据就比1个G的电影要多!
所以字节少的类型可以充分存入更多的数据!
下面这个表格是八种基本类型:
数据类型
关键字
占用字节
取值范围
默认值
布尔型
boolean
不定值
true,false
false
字节型
byte
1
-128~127
0
短整型
short
2
-32768~32767
0
整型
int
4
-2147483648~2147483647
0
长整型
long
8
-9223372036854775808~9223372036854775807
0
字符型
char
2
0~65535
‘\u0000’
单精度浮点型
float
4
1.4E-45~3.4028235E38
0.0F
双精度浮点型
double
8
4.9E-324~1.7976931348623157E308
0.0D
取值范围呢记住简单的就行了,占用字节数,和关键字,默认值都得记住,考试要考!
这里解释一下,为什么boolean类型为什么占用一个字节呢!
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html(官方文档了解一下)
他是什么意思呢?
布尔类型:布尔数据类型只有两个可能的值:真和假。使用此数据类型为跟踪真/假条件的简单标记。这种数据类型就表示这一点信息,但是它的“大小”并不是精确定义的。
可以看出,boolean类型没有给出精确的定义,《Java虚拟机规范》给出了4个字节,和boolean数组1个字节的定义,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。这其实是运算效率和存储空间之间的博弈,两者都非常的重要。
short类型呢,在开发中是很少使用的,short的出现呢是为了兼容以前老的机器进行运算的.
char 可以用ascll码值来表示一个字符,对应关系如下:
3、基本数据类型的声明
(1)声明变量 类型 变量名; int number;
(2)声明的同时给变量赋值 类型 变量名 = 值; number=10;
(3)给已声明过的变量赋值 变量名 = 值; number=20;
4、进制与转换
十进制:人们计算通常用的是十进制,可能是因为 我们有十个手指头吧!手动滑稽!
二进制:计算机中的数据都以二进制数字保存。二进制:逢二进一。即只有0、1两个值。如:十进制的10在计算机内保存为二进制的1010
位(Bit):表示一个二进制数码0或1,是计算机存储处理信息的最基本的单位。字节(Byte):一个字节由8个位组成。它表示作为一个完整处理单位的8个二进制数码。
八进制:基数为八。Java中八进制数据要以0开头。如:0123 八进制转换成二进制:只需将每个八进制数字替换为相对应的三个二进制位即可。现在的计算机系统很少用八进制的了。
二进制
八进制
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
十六进制:二进制表示法太冗长,所以在程序中一般喜欢用十六进制 十六进制:基数为十六,逢十六进一。它用abcdef表示从0-9之上的值 Java中十六进制数据要以0x或0X开头。如:0x23D 十六进制转换成二进制只需将每个十六进制数字替换为相对应的四个二进制位即可
二进制
十六进制
二进制
十六进制
0000
0
1001
9
0001
1
1010
A
0010
2
1011
B
0011
3
1100
C
0100
4
1101
D
0101
5
1110
E
0110
6
1111
F
0111
7
1000
8
补码:事实上,计算机内的二进制数值是以补码形式表示的。补码:一个正数的补码和其原码的形式是相同的。负数的补码是:将该数的绝对值的二进制形式,按位取反再加1。 由此可知,二进制补码数值的最高位(最左位)是符号位:该位为0,表示数值为正数;该位为1,表示数值为负数。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时, 如果最高位(符号位)有进位, 则进位被舍弃。
二进制数转换成十进制数 :按权相加:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。
例:原码1011.01 = 1×2^3+0×2^2+1×2^1+1×2^0+0×2^-1+1×2^-2 = 8+0+2+1+0+0.25 =11.25
十进制转换成二进制 整数部分:"除2取余,逆序排列"法 小数部分:"乘2取整,顺序排列"法
5、基本数据类型转换
自动类型转换:容量小的类型自动转换成容量大的数据类型
byte,short,int,它们三者在计算时会转换成int类型 如果把int值转换为float值,或者long转换为double值,不需要强制转换,但可能丢失精度
面试题
因为
byte,short,int,它们三者在计算时会转换成int类型,所以这样写会报错的!这样加一个强制转换符就可以了,手动滑稽!但是这样会丢失精度!
容量大的转换为容量小的,会丢失精度,但是 为什么int转float 或double 也会丢失精度呢?
这是因为float和double 在存储的时候,存储的是近似值,int long 啥的是精确值,因为是精确值转近似值所以会有精度丢失!
废话不多说 直接上代码
这个的输出结果是科学计数法,2.01978912 10的8次方 201978912 貌似变大了,,手动滑稽!所以表示货币值不能用float或者double
强制类型转换:
容量大的类型转换成容量小的数据类型时,要加上强制转换符。long n = 100L; int i = (int)n; 有可能造成精度降低或数据溢出,使用时要小心。boolean 类型不能转换成任何其它数据类型。
System.out.println("点个在看吧");
学到东西了就关注我哦!安排!