注释
解释说明代码的文字,为了提高代码阅读性
分为两种:
1>普通注释:
单行 //
多行 /* */
2>特殊注释:
文档 /** */
关键字
在Java语言中,被赋予特殊含义的单词,在高级记事本及IDEA工具中,关键字有特殊颜色标记
1>class 标记需要定义一个类
2>public 权限修饰符,访问权限足够大
3>static 静态修饰符
4>void 定义方法的一种格式
标识符
组成:
1>英文26个字母(区分大小写)
2>数字0~9
3>美元符号 $
4>下划线 _
定义变量时,注意:
1>数字不能开头
2>严格区分大小写
3>不能有其他符号
4>不能是关键字
变量
在程序运行过程中,不断发生改变的量
定义:
1>数据类型
2>变量名 符合标识符规则
3>初始化数值
int a = 100 ;
数据类型分为两大类:基本数据类型和引用数据类型
基本数据类型分为四大类八大种:
1>整数类型:
byte 字节类型 占1个字节 范围是-128~127
short 短整型 占2个字节
int 整型(默认) 占4个字节 范围是-2^31~2^31-1
long 长整型 占8个字节
注:定义长整型时,数据后面要加上L或者l,一般大写
1个字节 = 8个bit
2>浮点类型:
float 占4个字节
double 占8个字节 默认
3>字符类型
char 占2个字节
4>布尔类型
boolean 占1个字节
引用数据类型:
数组,类,接口
数据类型转换
1>隐式类型转换(默认类型提升)
byte,short,char三者之间不会相互转换
其中byte,short一旦参与运算,会自动提升为int,long,float,double...
2>显式类型转换(强制转换)
将大数据类型转为小数据类型 可能会有精度损失
格式:
目标数据类型 变量名 = (目标数据类型)(初始化数值) ;
例:
byte a = (byte)129 ; 因为129超出byte的范围,所以默认为int类型
最后a的结果是-127
运算结果:
计算机底层对数据的计算是使用这个数据的补码进行的,我们看到的是原码
注:正整数的原,反,补码一致
负整数的反码在原码基础上,最高符号位不变,数值位取反
负整数的补码在反码基础上,最高符号位不变,数值位+1
129
原码:00000000 00000000 00000000 10000001
强转为byte
补码:10000001 最高符号位为1,代表负整数
反码:10000000
原码:111111111 值为 -127
作业:
1.(标识符命名)下面几个变量中,那些是对的?那些是错的?错的请说明理由
A. ILoveJava 对
B. $20 对
C. learn@java 错,标识符中没有@
D. antony.lee 错,标识符中没有.
E. Hello_World 对
F. 2tigers 错,变量命名不能以数字开头2.(基本类型的运算)一家商场在举行打折促销,所有商品都进行8 折优惠。一位程序员把这个逻辑写成:
short price = ...; // 先计算出原价
short realPrice = price * 8 / 10; //再计算出打折之后的价格
问:这段代码是否正确?如果正确,假设price 为100,那计算之后的realPrice值为多少?如果不正确,应该怎么改正?答:代码不正确,第二行的运算中,等号右边的结果是int类型,而左边是short类型接收,会出现精度损失
改:int realPrice = price * 8 / 10 ;3.
第一题:
byte b1=10,b2=20,b;
b=b1+b2;
b=10+20;
哪句是编译失败的呢?为什么呢?第二题:
byte x = 129;
有没有问题?有问题如何解决?结果是多少呢? 写出运算过程
第一题:
b = b1 + b2 ; 这行会编译失败,因为变量b是byte类型,而b1和b2进行运算时,会自动提升为int类型,以byte类型接收int类型数据,会出现精度损失
改:b = (byte)(b1 + b2) ; 使用强转将int类型变成byte类型
第二题:
byte的范围是-2^(8-1)~2^(8-1)-1 --> -128~127 系统默认129为int类型,所以会出现精度损失
改:
byte x = (byte)129 ; 将129强制转换为byte类型,结果是-127
运算结果:
int 129
正数原码,反码,补码一致
原码:00000000 00000000 00000000 10000001
强制转换为 byte 高位符号为1,是负数
补码:10000001
反码:10000000
原码:11111111
数值为 -1274:计算出十进制46对应的二进制,八进制,十六进制的值。
(可用计算器验证你算的是否正确)
46 -->0B101110 -->056 -->0x2E
46%2 23---0
23%2 11---1
11%2 5---1
5%2 2---1
2%2 1---0
1%2 0---1
----------------
0B101 110
056
----------------
0B0010 1110
0x2E5:什么是变量?变量的定义格式?要使用变量需要注意什么?
程序运行过程中,不断发生变化的量就是变量
定义格式:
数据类型 变量名 = 初始化数值 ;
注意:
1>要有数据类型
2>要有变量名 变量名使用"小驼峰命名法"
3>要有初始化数值6:Java中的数据类型分几类?基本数据类型有哪些?
数据类型分为基础数据类型和引用数据类型
基础数据类型分4大类8大种:
1>整数类型:byte short int(默认) long
2>浮点类型:float double(默认)
3>字符类型:char
4>布尔类型:boolean7:Java中的显式转换和隐式转换分别是什么?为什么要使用显式转换(强转)
隐式转换:(默认类型提升)
byte,short,char 三者之间不会相互转换,其中byte和short参与运算后,会自动提升为int类型
显式转换:(强制转换)
目标数据类型 变量名 = (目标数据类型)(初始化值) ;
显性转换为了将大数据转为小数据,避免short类型数据运算结束后不能使用short类型变量接收8.编程题: 请将两个变量的数据值进行互相交换,例如int a =10 ;int b = 20 ;最后a是20 b是10
int a = 10 ;
int b = 20 ;
int c ;
c = a ;
a = b ;
b = c ;