第二天 Java基础总结 3

来源:互联网 发布:淘宝延迟发货道歉信 编辑:程序博客网 时间:2024/05/22 06:47

Java关键字、保留字、标识符

关键字:被Java语言赋予了特定含义的一些字符!关键字中所有字母都为小写。好比汉字中的专有名词,例如:中国、北京、上海等。一般我们不能将这些词用在其他地方,改变其含义。

 

关键字分类:

用于定义数据类型的关键字

class

interface

byte

short

int

long

float

double

char

boolean

void

 

 

 

 

用于定义数据类型值的关键字

true

false

null

 

 

用于定义流程控制的关键字

if

else

switch

case

default

while

do

for

break

continue

return

 

 

 

 

用于定义访问权限修饰符的关键字

private

protected

public

 

 

用于定义类,函数,变量修饰符的关键字

abstract

final

static

synchronized

 

用于定义类与类之间关系的关键字

extends

implements

 

 

 

用于定义建立实例及引用实例,判断实例的关键字

new

this

super

instanceof

 

用于异常处理的关键字

try

catch

finally

throw

throws

用于包的关键字

package

import

 

 

 

其他修饰符关键字

native

strictfp

transient

volatile

assert

2Java中的标识符

可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。

标识符组成:

(1) 标识符由字母、数字、下划线、$组成,不能以数字开头,注意:此处的字母还可以是中文,日文等;

(2) 标识符大小写敏感;

(3) 标识符不得使用java中的关键字和保留字;

(4) 别用Java API里面的类名作为自己的类名。

注意:在起名字的时,只要标识符不是关键字就可以了,但为了提高阅读性,经常用有意义的英文单词作为标识符。

标识符书写规范:

Java中的名称规范:

包名:多单词组成时所有字母都小写。xxxyyyzzz

类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz

变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接。XXX_YYY_ZZ


Java 语言 是强类型语言,强类型语言包含两个方面

1.所有变量必须先声明,后使用 2.指定类型的变量只能接受类型与之匹配的值。


Java语言支持的类型分两类:

一、基本数据类型

基本数据类型 包括boolean 类型 和数值类型

数值类型 :整数类型,浮点类型

整数类型:byte(1字节)、 short(2字节)、 int(4字节) 、 long(8字节)  、 char(2字节)注意 char 与C语言不同 C语言中 char 是一个字节的。

浮点类型:float (4字节)、double(8字节)

在Java 语言中boolean 类型的数值 只能是true 和 false,不能用0 或者非0 表示。


二、引用数据类型

引用类型 :类,接口, 数组类型,还有 null 类型。


数据类型转换

自动类型转换:

容量小的类型可自动转换为容量大的数据类型(类型自动提升);

byte,short,char intlongfloatdouble

byteshortchar之间不会相互转换,他们在计算时首先会转换为int类型。


强制类型转换:

容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度的降低或溢出,使用时要格外注意。

逻辑运算符

当需要判断某些数据符合某个区间,比如人的年龄符合某一范围等。发现使用比较运算没法完成。Java给我们提供另外一直机制,逻辑运算。逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6

1、逻辑运算符号:

 

逻辑运算符。用来连接boolean型表达式的。

& :

| :或

^ : 异或。

!:非。

&& 短路与 ||短路或

2、运算规律

int x = 7;

 

x>2 & x<5

x<2 | x>5

 

& :两边都为true,结果是true。否则为false

     两边只要有一个false。结果必然是false

true  &  true = true;

true  & false = false;

false &  true = false;

false & false = false;

 

| :两边都为false,结果是false。否则为true

   两边只要有一个true。结果必然是true

true  |  true = true;

true  | false = true;

false |  true = true;

false | false = false;

 

^ : 异或。

  两边相同为false。两边不同为true

true  ^  true = false;

true  ^ false = true;

false ^  true = true;

false ^ false = false;

 

!:非

非真为假,非假为真

!true = false;

 

&”和“&&”的区别:单与时,左边无论真假,右边都进行运算;双与时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

|”和“||”的区别同理,双或时,左边为真,右边不参与运算。


位运算符

位运算:主要说的是二进制数位运算。

1、运算符符号:

 

& 按位与运算 ,运算原则:相同二进制数位上数值为1,结果为1,否则结果为0

 

3 & 5   先把 35以二进制表示,再进行按位于运算:

 

十进制           二进制                          结果(十进制)

   3 00000000_00000000_00000000_00000011

   5 00000000_00000000_00000000_00000101

  -------------------------------------------------------------------------------------------------

   & :    00000000_00000000_00000000_00000001 1

 

所以3 & 5等于1.

 

| 按位或运算,运算原则:相同二进制数位上数值为0,结果为0,否则结果为1

3 | 5   先把 35以二进制表示,再进行按位于运算:

十进制           二进制                         结果(十进制)

   3 00000000_00000000_00000000_00000011

   5 00000000_00000000_00000000_00000101

-----------------------------------------------------------------------------------------

  | :   00000000_00000000_00000000_00000111     7

 

所以3 | 5等于7.

20次方+ 2 1次方  +  22次方  =  1 + 2 + 4 = 7

 

^ 按位异或,运算原则:参与运算的两个数相应位相同则结果为0,异号则为1

 

十进制           二进制                        结果(十进制)

   3 00000000_00000000_00000000_00000011

   5 00000000_00000000_00000000_00000101

-----------------------------------------------------------------------------------------

  ^ :   00000000_00000000_00000000_00000110 6

 

 

所以3 ^  5等于6.

 

~ 按位取反,运算原则:二进制数位上0110

 

十进制           二进制                        结果(十进制)

     5 00000000_00000000_00000000_00000101

-----------------------------------------------------------------------------------------

  ~ :   11111111_11111111_11111111_1111010 -6

 

 

所以~5等于-6.

左移操作“<<”:将运算数的二进制码整体左移指定位数,左移之后的空使用“0”来补充,移出去的二进制数忽略不计。

9 << 2 :

十进制           二进制                        结果(十进制)

     9 00000000_00000000_00000000_00001001

-----------------------------------------------------------------------------------------

      00000000_00000000_00000000_000010010036

所以9<<2等于36.

规律:<<:相当于给原数乘以2的倍数

 

右移操作“>>”:将运算数的二进制码整体右移指定位数,右移之后的空使用“符号位”来补充。移出去的二进制数忽略不计。若是正数使用“0”补充;若是负数使用“1”补充;

 

9 >>2 :

十进制           二进制                        结果(十进制)

     9 00000000_00000000_00000000_00001001

-----------------------------------------------------------------------------------------

        0000000000_00000000_00000000_00001001    2

所以9>>2等于2.

规律:>>:相当于给原数除以2的倍数

 

-6 >> 2:

十进制           二进制                        结果(十进制)

 

   -6    11111111_11111111_11111111_1111010

-----------------------------------------------------------------------------------------

         1111111111_11111111_11111111_1111010

所以-6>>2等于-2.

 

 

无符号右移">>>":将运算数的二进制码整体右移指定位数,右移之后的空使用“0”来补充

 

2、位运算应用

需求1:最有效率运算2乘以8.通过位移运算。2<<3

需求2,对两个整数变量的值进行互换(不需要第三方变量)

 

//通过第三方变量的形式进行置换。

int a = 3, b = 7;

int temp = a;

a = b;

b = temp;

 

//通过和的形式。有个弊端,两个数据较大,可能会超出int范围。

a = a + b;//a = 3 + 7;

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

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

 

//技巧。异或。

a = a ^ b;// a = 3 ^ 7;

b = a ^ b;// b = 3 ^ 7 ^ 7;

a = a ^ b;// a = 3 ^ 7 ^ 3;


0 0
原创粉丝点击