Java入门 Day002
1:什么是关键字?有什么特点?
关键字就是被Java语言赋予特定意义的单词,比如:class、public等。
特点:字母全为小写,在一些高级的编辑器里会显示特殊的颜色标记,比如在 notepad++、eclipse中。
2:什么是标识符?由哪些部分组成?常见的命名规则有哪些?
给类(class),接口(interface),方法,变量起名字的字符序列
组成规则:
A:英文字母(区分大小写)
B:下划线_
C:$符号
D:数字0-9
(1)给类,接口命名规则:
单个单词:首字母大写,其余小写(小驼峰命名) 比如:Hello
多个单词:每个单词的首字母都大写,其余单词小写(大驼峰命名) 比如:HelloWorld
(2)给变量,方法命名规则:
单个单词:字母全部小写 举例:check()
多个单词:首字母小写,后面每个单词首字母大写 举例:checkUserName()
(3)给常量命名的规则:
单个单词:字母全部大写 举例:CONSTANT、PI.
多个单词:字母全部大写,中间使用下划线隔开
举例:HEELO_WORLD
注意事项:
- 不能以数字开头 、 如:int 2a=10;
- 不能是java中的关键字、 如:int public=20;
- 严格区分大小写 如:int Public=20;
3:什么是常量?常量的分类?字面值常量表现形式有哪些?
常量是在程序的执行过程中其值不发生改变的量,是固定不变的。
常量分为两种:
1)字面值常量 例如println输出的语句中双引号引起来的内容,这些在最后是不会发生改变的。
常量分为六种:
- 字符串常量(”helloworld”)
- 整数常量(20)
- 小数常量(3.14、-3)
- 字符常量(‘A’)注:必须是单个字符
- 布尔常量(true、false)
- 空常量。
2).自定义常量
**
4:计算出十进制46对应的二进制,八进制,十六进制的值。
**
46/2=23 余 0;
23/2=11 余 1;
11/2=5 余 1;
5/2=2 余 1;
2/2=1 余 0;
1/2=0 余 1;
二进制为:0b101110
46/8=5 余 6
5/8=0 余 5
八进制:056
46/16=2 余14(e)
2/16=0 余 2
十六进制:0x2e
5:什么是变量?变量的定义格式?要使用变量需要注意什么?
变量就是程序执行过程中,可以发生改变的量。
定义变量格式:数据类型 变量名 = 初始化值;
注意事项:使用变量注意变量的类型与初始化
6:Java中的数据类型分几类?基本数据类型有哪些?
数据类型分类:
A:基本数据类型 分为4类八种
a)整数
- byte(字节类型) 1字节 范围 -128~127
- short(短整型) 2 字节 范围 32768~32767 (-2^15 ~2^15-1)
- int(整数默认int类型) 4字节 范围 -231~231-1
- long(长整型) 8字节 范围-263~263-1
b)浮点数:
单精度:float 4字节
双精度:double 8字节
(浮点数默认double类型)
c)字符:char 2字节 范围 0~65535
d)布尔:Boolean 1 字节 true/false
B:引用数据类型(面向对象部分说)
注意事项
1)整数类型默认是int,如果需要用long类型的变量来接收数据,必须在变量值的后面加上l或者L(建议L)
2)浮点类型默认是double,如果使用float类型变量,变量值加上标记f或者F(建议F)
7:数据类型转换:
隐式转换:Java中变量的隐式转换(数据类型的默认类型提升)
byte,short,char---->int —>long—>float---->double
byte,short,char三者之间互相不转换,参与运算的时候,默认转换成int
boolean类型的数据不会转换的!
强制转换:目标数据类型 变量名 = (目标数据类型)(变量值) ;
如:byte a=3; int b=4;
byte c = (byte)(a+b);
8.面试题:
byte b=10,b2=12,b; b=b1+b2; b=10+12; 哪句是编译失败的呢?为什么呢?
答:b=b1+b2会失败 ,b1+b2–>数据类型提升为int类型,int转为byte大转小会丢失精度,可以采用强制转换。
//b = b1+ b2 ;
//b1+b2----->数据类型提升 int类型
//b = (byte)(b1+b2);
注意:变量相加:想看当前进行计算的变量是否在取值范围之内,如果在,就执行运算(默认提升)
常量相加,最终看当前的结果是否在当前被接收的数据类型范围之内
byte by = 200;这个有没有问题?有,如何正确输出,结果怎么计算?
有,超出 byte的范围 -128—127,使用强制类型转化,结果是-56
十进制200的二进制为:1100 1000
9:需求:已知OB10101101,求反码,以及补码
已知补码OB10110010,求反码和原码!
二进制 10101101
反码:符号位不变:1 数值位取反1010010 --11010010
补码:符号位不变:1 反码+1 --11010011
已知补码 10110010
反码为:10110010-1=10110001 //补码-1计算反码
原码为:11001110 //符号位不变,数值位取反。
10.字符、字符串、拼接符、ASCII码
ASCII码表
关于字符单独使用的时候,不会找ASCII码表,但是一旦参与运算,就会在对应ASCII码表中寻找对应的固定值
- 一个数是正整数
- 运算符
- 字符串拼接符号
class DataTypeDemo7{
public static void main(String[] args){
System.out.println('a');
System.out.println('a'+1);//97+1
int a = 10 ;
int b = 20 ;
System.out.println(a);
System.out.println("a:"+a) ;//字符串+任何数据=字符串
System.out.println("a:"+a+",b:"+b);
}
}
class DataTypeDemo8{
public static void main(String[] args){
System.out.println("hello"+'a'+1); //"helloa"+1 ="helloa1"
System.out.println('a'+1+"hello"); //97+1+"hello"=98hello
System.out.println("5+5="+5+5); //5+5=55
System.out.println(5+5+"=5+5");//10=5+5
}
}
结果:
上一篇: Java入门开发环境配置
下一篇: JDK动态代理实现原理