第二天 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
2、Java中的标识符
可简单理解为在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 → int→ long→ float→ double
byte,short,char之间不会相互转换,他们在计算时首先会转换为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 先把 3和5以二进制表示,再进行按位于运算:
十进制 二进制 结果(十进制)
3 00000000_00000000_00000000_00000011
5 00000000_00000000_00000000_00000101
-------------------------------------------------------------------------------------------------
& : 00000000_00000000_00000000_00000001 1
所以3 & 5等于1.
| 按位或运算,运算原则:相同二进制数位上数值为0,结果为0,否则结果为1;
3 | 5 先把 3和5以二进制表示,再进行按位于运算:
十进制 二进制 结果(十进制)
3 00000000_00000000_00000000_00000011
5 00000000_00000000_00000000_00000101
-----------------------------------------------------------------------------------------
| : 00000000_00000000_00000000_00000111 7
所以3 | 5等于7.
2的0次方+ 2 的1次方 + 2的2次方 = 1 + 2 + 4 = 7
^ 按位异或,运算原则:参与运算的两个数相应位相同则结果为0,异号则为1;
十进制 二进制 结果(十进制)
3 00000000_00000000_00000000_00000011
5 00000000_00000000_00000000_00000101
-----------------------------------------------------------------------------------------
^ : 00000000_00000000_00000000_00000110 6
所以3 ^ 5等于6.
~ 按位取反,运算原则:二进制数位上0变1,1变0;
十进制 二进制 结果(十进制)
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 - 7;b = 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;
- 第二天 Java基础总结 3
- java基础总结 第二天
- 第二天 Java基础总结4
- 总结Java基础第二章
- 第二天----Java基础
- Java基础---第二天
- Java基础-第二天
- java基础第二天
- Java 基础 第二天
- JAVA基础第二天
- java基础第二天
- java基础第二天
- java基础第二天
- 第二天-Java基础
- java基础第二天
- 黑马程序员-Java基础学习第二天总结
- Java总结第二天
- java基础部分总结第二部分
- Thread类的使用
- The most orzed and orzing man(多堆NIM)
- angularjs 容易踩到的坑
- 解决Mybatis 写xml映射时,eclipse不自动提示
- [Leetcode]27. Remove Element
- 第二天 Java基础总结 3
- NOIP2015 斗地主 解题报告(搜索)
- 238.[LeetCode]Product of Array Except itself
- 集群资源管理与调度
- 第一次配置安卓开发环境,坑到路都走不直。(问题分享)
- c++继承和组合的区别
- AngularJs数据绑定以及数据绑定的API
- 51Nod Problem 1605 棋盘问题(博弈,奇偶性)
- 初学者SSM整合入门