黑马程序员-javaSE学习之语言基础

------- android培训java培训、期待与您交流! ----------

一、 关键字与标识符

1.1 关键字

java中的关键字主要有以下几类:



1.2 标识符

java中的标识符由字母,数字,下划线_以及$组成,有一定的命名规则,主要包括四点:
①数字不能开头②不可以使用关键字③java中的标识符严格区分大小写④为了提高阅读性,最好将标识符名字起得"见名知意"!

二、 常量与变量

2.1 常量

所谓常量就是指数据不能改变的量,java中的常量我们用final关键字来声明
Java中常量的分类:
1,整数常量。所有整数
2,小数常量。所有小数
3,布尔型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
5,字符串常量。将一个或者多个字符用双引号标识。
6,null常量。只有一个数值就是:null.
对于整数:java有三种表现形式。
十进制:0-9 ,满10进1.
八进制:0-7 ,满8进1. 用0开头表示。
十六进制:0-9,A-F,满16进1. 用0x开头表示

2.2 变量

变量就是指数据能够改变的量,包括变量名称,变量数据类型和变量数值三个部分。
对于变量的这三个部分,变量名称,前面已经说到,就是标识符的使用,对于另外的两个部分,我们有下图来表现:


其中一个字节的数据类型有byte,两个字节的数据类型有char,short,四个字节的有int,float,八个字节的有long,double,对于引用数据类型依具体情况而定。

2.3 变量之间的转换

变脸之间的转换包括自动转换(隐式转换)和强制转换(显式转换)。小字节数自动转换成大字节数,我们称之为自动转换,大字节数转换成小字节数我们称之为强制转换。
自动类型提升:
byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。
强制类型转换:
byte b = 3;
b = b + 4;//报错
b = (byte)( b+4) ;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。
对于变量数据类型转换有如下经典面试题:
1.①byte s1=3;s1=s1+3;②byte s1=3;s1+=3;
对于①会出现强制转换错误,②是正确的
2.byte s2=4;s3=5;byte s=s2+s3;
这道题也是很明显的强制转换类型错误,因为对于short,byte这些类型的变量,想要进行加减运算的时候需要进行强制转换!

三、 运算符

3.1算术运算符+ - * / %

     ①3+2=5;

     ②3+“2”=32;

对于①②的不同情况因为+不仅是一个运算符,+还是一个连接符。当运算中出现了字符时,如同②,此时会将数字3与字符2相连接,此时得到的结果就是字符串“32”。

再看一个例子:

     ③System.out.print(“5+5=”+5+5);

对于③的结果,答案应该是5+5=55。因为+连接符将字符串“5+5”与数字5都连接成了字符串。此时我们要想得到正确的结果。应该将其变为“5+5=”+(5+5)让加法运算先运算即可。

将一个数字转换为String类型的方法:

     int a=1;

     String b;我们数字1转换为字符串“1”。

     ①b=a+“”;

     ②Integer c=1;

       b=c.ToString();

3.2 赋值运算符:

对于赋值运算符有以下经典例题:

Short s=4;

①s=s+4;

②s+=4;

对于①,由于s是short类型,在表达式的右边不能有变量运算。故①会报错“可能会损失精度”。对于②由于②这种格式会发生自动转换,故最终结果是8,不会报错。

3.3 instance of 检查是否是一个类的对象。

如:

     Hello intance of String:表示判断hello是否是String类的对象

3.4 对于逻辑运算符中单与“&”与双与“&&”的区别:

①相比之下&&的效率比&稍微高一点。

    ①int a=3;

②System.out.prinrln(a>4 & a<6);

③System.out.prinrln(a>4 && a<6);

对于②和③,当左右两边的条件都为真的时候,两者相同。当a=4的时候,对于②,a>4和a<6都得判断,结果为假,而对于③,由于a>4是假的,后面的内容就不在判断了。

②&还有二进制位运算的功能,而&&没有。

总结:在java中我们 在进行逻辑与运算的时候,通常我们是用&&。对于逻辑|和逻辑||的区别于与运算符相似。

3.5 位运算符:

包括<<左移 >>右移 <<<无符号左移 &位于 |位或 ^位异或 ~取反

对于位异或^有以下用处:

对于一个数,异或同一个数两次,还是这个数。如:

数字5的二进制表示形式0000 0101来异或数字3的二进制表示形式0000 0011,得到的数字是6,其二进制形式是0000 0110。当这个数0000 0110再去异或0000 0011的时候,我们就可以得到原来的数字,即5:0000 0101。这种特点适合用作加密中。当我们将一个数以某一种算法通过异或运算来将其加密,之后只要记住这个异或的数,再进行一次异或就可以得到原来的数了。

3.6 两个数a和b交换值的方式:

int a=3,b=5,c;

①c=a;

  a=b;

  b=c;

②a=a+b;//a=3+5

  b=a-b;//b=3+5-5=3

  a=a-b;//a=3+5-3=5

③a=a^b;//a=3^5

  b=a^b;//b=3^5^5=3

  a=a^b;//a=3^5^3=5

对于以上三种方式,开发中最常用的是第一种,阅读性比较好,且比较简单。第二种方式我们我们不建议使用,因为a,b的数值要是都比较大,int容易出现精度溢出。第三种在面试中可能会出现,开发中一般不用,因为阅读性不强。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值