java基本常识2 --- 关键字运算符

来源:互联网 发布:网站刷流量软件 编辑:程序博客网 时间:2024/05/16 17:19

Java 语言由关键字 , 标识符 , 注释 , 常量和变量 , 运算符 , 语句 , 函数 和 数组组成


"&" 和 "&&" 的区别:

"&" : 左边无论真假 , 右边都进行运算

"&&" : 左边为真右边则参与运算 , 反之不参与


"|" 和 "||" 的区别:

同上


异或(^) 与 或(|) 的不同之处是:

当左右都为 true 时 , 结果为 false


1-1 关键字

什么是关键字?

* 定义 : 被 Java 语言赋予了特殊含义的单词.

* 特点 : 关键字中所有字母都为小写.




1-2 标识符

* 定义 : 在程序中自定义的一些名称.

* 特点 : 由26个英文字母大小写 , 数字 : 0-9 , 符号 : _$ 组成


定义合法标识符规则 : 

1. 数字不可以开头

2. 不可以用关键字


注:

1. Java 中严格区分大小写

2. 在起名字的时候 , 为了提高阅读性 , 要尽量有意义

3. 公司中经常会通过 " _ " 代表某一类名称 , 例如 : _user

    通过 "$" 代表外部类与内部类的关系 , 例如 : Pen$red


Java 中的名称规范:

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

例如 : xxxyyyzzzcom.rizer.jichuzhishi

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

例如 : XxxYxxZzzcom.rizer.JiChuZhiShi

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

例如 : XXX_YYY_ZZZJI_CHU_ZHI_SHI = "合格";


1-3 注释

* 定义 : 用于注解说明解释程序的文字就是注释

* 特点 : 提高了代码的阅读性


Java 中的注释格式 :

单行 : // 注释文字

多行 : /* 注释文字 */

文档 : /** 注释文字 */

注 : 

1. 对于单行和多行注释 , 被注释的文字 , 不会被 JVM(Java虚拟机)解释执行

2. 对于文档注释 , 是Java特有的注释 , 其中注释内容可以被 JDK 提供的工具 javadoc 所解析 , 生成一套以网页文件形式体现的该程序的说明文档

3. 注释是一个程序员必须要具有的良好编程习惯. 初学者编写程序可以养成习惯 : 先写注释再写代码

4. 将自己的思想通过注释先整理出来 , 在用代码去体现. 因为代码仅仅是思想的一种体现形式而已

5. 单行注视可以嵌套单行注释 , 单行注释可以嵌套多行注释 ,  多行注释可以嵌套单行注释.但是 , 多行注释不能嵌套多行注释 , 因为多行注释的开头会和被嵌套的多行注释的结尾配对 , 导致后面的注释失效

6. 可以使用注释对代码中的错误进行定位


1-4 常量

定义 : 常量表示不能该表的数值


Java中常量的分类 : 

1. 整数常量 , 所有整数

2. 小数常量 , 所有小数

3. 布尔(boolean)常量 , 只有两个数值. true false

4. 字符常量 , 将一个数字字母或者符号用单引号('')标识

5. 字符串常量 , 将一个或者多个字符用双引号("")标识

6. null常量 , 只有一个数值就是 : null


对于整数 , 有三种表现形式 : 

八进制 : 0-7 , 满 8 进 1 , 用 0 开头表示

十进制 : 0-9 , 满 10 进 1

十六进制 : 0-9 , A-F , 满 16 进 1 , 用 0x 开头表示


进制的由来 : 

任何数据在计算机中都是以二进制的形式存在的. 二进制早期由电信号开关演变而来. 一个整数在内存中一样也是二进制的 , 但是使用一大串的 1 或者 0 组成的数值进行使用很麻烦. 所以就想把一大串缩短点 , 将二进制中的三位用一位表示. 这三围可以取到的最大值就是 7 , 超过 7 就进位了 , 这就是八进制. 但是对于过长的二进制编程八进制还是较长 , 所以出现的用 4 个二进制表示一位的情况 , 四个二进制位最大是 15 , 这就是十六进制.

规律 : 进制越大 , 表现形式越短


附 : 进制的基本转换

1. 十进制 二进制 互转

例如 : 

1011 = 1*2(0) + 1*2(1) + 0*1(2) + 1*2(3) = 1 + 2 + 0 + 8 = 11

附 : 括号中的数值代表次方


2. 十进制 八进制 互转

例如 : 

十进制 : 43

二进制 : 0101011

三位分割 : 010-101-110

八进制 :       2     5     6

因此 , 0101011 = 0256

结论 : 八进制 , 其实就是二进制位 , 3 个二进制位 , 1 个八进制位


3. 十进制 十六进制 互转

十进制 : 43

二进制 : 0101011

四位分割 : 1010-1110

十六进制 : 10(A) 14(E)

因此 , 0101011 = 0AE

结论 : 十六进制 , 其实就是二进制位 , 4 个二进制位 , 1 个 十六进制位


负数的二进制表现形式 : 

对应的整数二进制取反加 1


1-5 变量

定义 : 内存中的一个存储区域 , 该区域有自己的名称(变量名) 和类型(数据类型) , 该区域的数据可以在同一类型范围内不断变化. 用来不断的存放同一类的常量 , 并可以重复使用.

特点 : 变量其实就是将不确定的数据进行存储. 也就是需要在内存中开辟一个空间


定义变量的格式 : 

数据类型 变量名= 初始值;

例如 : byte b = 3;


注: 

1. 格式是固定的 , 记住格式 , 以不变应万变

2. 变量的作用范围(一对{}之间有效)


理解 : 

变量就如同数学中的未知数 X

Java 语言是强类型语言 , 对于每一种数据都定义了明确的具体数据类型 , 在内存总分配了不同大小的内存空间

数据类型包括 8 中基本类型 , 3 中引用类型.

注 : 整数默认类型 : int 类型 , 小数默认类型 : double 类型

共有八种基本数据类型

各类型占内存位数分别为 : byte , short , int , long , float , double , boolean , char

     1         3 4  8        4         8true/false    2


1-6 类型转换

自动类型转换(隐式类型转换)

强制类型转换(显式类型转换)

类型转换的原理

什么时候要用强制类型转换?

表达式的数据类型自动提升

所有的 byte 型, short型 和 char 的值将被提升到 int 型

如果一个操作数是 long 型 , 计算结果就是 long 型

如果一个操作数是 float 型 , 计算结果就是float 

如果一个操作数是 double 型 , 计算结果就是double 


分析 : System.out.println('a') 与 System.out.println(' a' + 1) 的区别

'a' 是一个 char 类型数据 , 前边一句打印 a , 后面一句被提升到 int 型 , a 在 ASCII 表中是97 , 97+1为98


自动类型提升

byte b = 3;

int x = 3;

x = x + b; // b会自动提升为 int 类型进行运算


强制类型转换

byte b = 3;

b = b + 3; // 报错

b = (byte)(b + 3); // 强制类型转换 , 强制将 b + 3 的结果转换为 byte 类型 , 再赋值给 b


1-7 运算符

1-7-1 算数运算符


1-7-2 赋值运算符

符号 : 

= , += , -= , *= , /= , %=

示例 : 

int a,b,c; a=b=c=3;

int a = 3; a += 5; // 等同于运算 a = a + 5;


思考:

short s = 3;

s = s+2;

s += 2; 有什么区别?

s + 2 会被类型提升为 int 型 , 而 s += 2 不会 , 依旧是 short 类型


1-7-3 比较运算符

注 : 

1. 比较运算符的结果都是 boolean 型, 也就是要么是 true, 要么是 false

2. 比较运算符 "==" 不能误写成 "="


1-7-4 逻辑运算符

逻辑运算符用于连接布尔类型表达式 , 在 Java 中不可以写成 1 < x < 2 , 应该写成  x > 1 & x < 2


1-7-5 位运算符


1-7-6 三元运算符

格式 : 

(条件表达式)?表达式1 : 表达式2;

如果条件为 true , 运算后的结果是表达式 1

如果条件为 false , 运算后的结果是表达式 2


原创粉丝点击