Java语言基础组成——关键字,标识符,注释,常量和变量,运算符

来源:互联网 发布:linux mv 不覆盖 编辑:程序博客网 时间:2024/04/27 13:51

Java语言基础组成

(关键字,标识符,注释,常量和变量,运算符,语句,函数,数组这些东西高级语言都有,只是体现形式不一样)

关键字

(1)被Java语言赋予了特殊含义的单词。
(2)特点:关键字中所有字母都为小写。
(3)goto和const虽然从未使用,但也作为 Java 关键字保留,记住保留字也是不能当作标识符.
(4)java中是没有sizeof这个关键字的


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

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



标识符


     (1)标示符定义

Java 语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
*简单记,就是起名字。

(2)命名规则

*由26个英文字母大小写,数字0-9,_,$等组成。  
*不能以数字开头。
*不能与java的关键字重名。

(3)命名规范 见名知意,驼峰命名。

*包 所有单词小写。

**看成是一个文件夹。
**www.itcast.cn cn.itcast.包的作用 则该文件中所有的类位于cn/itcast/这个路径下
**www.baidu.com com/baidu/包的作用(如果我们打算去哪个公司面试的话,可以先把公司的网站了解一下,然后把你的项目包名称改成公司网站的名称,这样会增加你面试的机会)

*类和接口 

**如果是由一个单词组成,那么单词首字母大写。举例:Demo,Student。
**如果是由多个单词组成,那么每个单词的首字母大写。举例:StudentDemo。

*变量与方法

**如果是由一个单词组成,那么单词首字母小写。举例:main,show。getMax()
**如果是由多个单词组成,第一个单词首字母小写,其后每个单词的首字母大写。举例:showName。
getMax();

*常量 

**如果是一个单词组成,那么所有单词全部大写。举例:MAX。
**如果由多个单词组成,每个单词大写,并且以下划线相连接。举例:STUDENT_MAX_AGE。



注释

(1)注释的作用

注解说明代码的,用于给人看的。

(2)注释的分类

*单行注释 //
*多行注释 /* */
*文档注释 /** */

(3)注释的用途

*注解说明文字。
*用于调试代码。




常量和变量

1: 常量

(1)整数常量。所有整数
(2)小数常量。所有小数
(3)布尔型常量。较为特殊,只有两个数值。true false boolean
(4)字符常量。将一个数字字母或者符号用单引号('')标识.
(5)字符串常量。将一个或者多个字符用双引号标识。" "
(6)null常量。只有一个数值就是:null.

2: 进制

(1)就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,
  就表示某一位置上的数运算时是逢X进一位
(2)java语言中整数的表现形式
A:八进制
**逢八进一
**所能表示的数据有:0-7
**用0开头表示  056
B:十进制
**逢十进一
**所能表示的数据有:0-9 56
C:十六进制
**逢十六进一
**所能表示的数据有:0-9,A-F(10-15)
**用0x或者0X开头表示
d:二进制
1111-1111 1111-1111
f f f f
**逢二进一
**所能表示的数据有:
**用0b表示这是1.7的新特性,可以直接求出二进制的对应的十进制值
(3)进制的由来及特点。进制越大,表现形式越短
(4)进制转换
A:其他到十进制的转换
**其他进制包含二进制,八进制,十六进制
**转换规则
***先把数据的每一位上的系数乘以对应基数的次幂(低位从从零开始),然后相加即可
B:十进制到其他进制的转换
**规则:除基取余,直到商为0,最后将余数反转
**十进制到二进制
***除2取余,直到商为0,最后将余数反转
***十进制13对应的二进制数据是1101
***二进制到十进制的技巧(8421码)
**十进制到八进制
***除8取余,直到商为0,最后将余数反转
***十进制13对应的把进制数据是15

***十进制--二进制--八进制
****首先把十进制转成二进制
****其次把二进制数据每三位组合。左边不够三位用0补位
****然后把每个组合计算成对应的十进制数据
****最后从左到右把数据相连接即可得到八进制
**十进制到十六进制
***除16取余,直到商为0,最后将余数反转
***十进制13对应的把进制数据是D

***十进制--二进制--十六进制
****首先把十进制转成二进制
****其次把二进制数据每四位组合。左边不够四位用0补位
****然后把每个组合计算成对应的十进制数据
****最后从左到右把数据相连接即可得到十六进制


3:变量

(1)在程序的运行过程中,其值在指定范围内变化的值
(2)是内存中一个区域,用于存储数据
(3)变量的定义格式:
A:数据类型 变量名 = 初始化值;
(4)变量在使用的时候
A:第一种,在声明的时候,就初始化值
**数据类型 变量名 = 初始化值;
**举例:byte b = 100; System.out.println(b);
B:第二种 在使用前,赋值
**声明
**赋值
**使用
**举例 byte b2;
     // b2 = 100; 
 System.out.println(b2);

4:数据类型

(1)java语言分为两种数据类型
A:基本数据类型
B:引用数据类型(类,接口,数组)
(2)基本数据类型
A:区别 在内存中分配的空间大小不同,从而导致它表示的数据范围不同
B:4类8种
**整数
***byte 占1个字节//8个开关,8个二进制位
***short 占2个字节
***int 占4个字节
***long 占8个字节 其后加L或l标识
**浮点数
***float 占4个字节 其后加F或f标识3.3f  
//32个二进制位
//1位符号位
//8位代表指数位
//23位尾数位
// 0000000000 - 111111111  0 - 255
// IEEE 754   0 255 特殊的值
// 1 - 254  - 127
// 1 - 127 = -126
// 254 - 127 = 127  
***double 占8个字节
**字符
***char 占2个字节  
**布尔型
***boolean This data type represents one bit of information, 
***but its "size" isn't something that's precisely defined.
***这个数据类型代表一个比特的信息,但它的“大小”不是精确定义的东西. 
***true,false
C:默认情况下:
**整数是int类型
**浮点数是double类型
(3)数据参与运算
A:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则
**容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为:
***byte,short,char->int->long->float->double
***byte 和 short不能和char之间互相转换,byte可以直接赋值给short,但是
他们三者在计算时首先会转换为int类型
**容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,
 但可能造成精度降低或溢出;使用时要格外注意。
**有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,
 然后再进行计算。
B:强制转换符
**格式:(数据类型)(要被转换的数据) byte b = (byte)(130);
C:字符型参与运算
**首先会去找对应字符的unicode码值。然后运算。
**char 类型取值范围0~2(16)-1,我就有了一个问题?能不能把整数直接赋值给char类型的变量
D:布尔型参与运算char ch = 10;byte b = 10;char ch = '';
**不能参与运算
E:字符串参与运算
**它是和参与运算的数据相连接组成了一个新的字符串。

类型转换问题,java常量优化机制

思考:
byte b1=3,b2=4,b;  
b=b1+b2;
b=3+4;

哪句是编译失败的呢?为什么呢?

byte b1=3,b2=4,b;  
b=b1+b2;//编译失败,b1,b2运算时自动转换为int类型 赋值给b(byte类型) 需要强制转换
b=3+4//java编译器有常量优化机制,3和4本身就是常量


运算符

(1)算术运算符 +,-,*,/,%,++,--

A:%
**当左边的绝对值小于右边:结果是左边
**当左边的绝对值等于右边或者是右边倍数的时候:结果是0
**当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
**取余的正负号取决于左边,右边忽略不记
**用途:任意正整数%2 结果是要么0,要么1。用于切换条件
B:++,--
int a = 3;
int b = a++;
System.out.println(a);
**递增,递减运算符。就是加1或者减1
**单独存在,放在操作数的前面或者后面,结果一样
**参与运算时:
***放在操作数的前面,先自身加或者减1,然后再参与运算
***放在操作数的后面,先参与运算,然后再自身加或者减1

C:+
**作为数据的符号(正号)
**做加法运算
**字符串连接符"5 + 5 =" + (5 + 5);

(2)赋值运算符

A:=:赋值运算符 把右边的值赋给左边
**举例:int x = 3; 把3赋给int类型变量x
int a,b,c;
a = b = c = 5;
B:+=:加赋值运算符 把左边和右边的和赋给左边

**举例:int x = 3; x+=2;等同于 x = x + 2;
**问个问题 byte b = 5;
  b = b + 2;
          b += 2;//(byte)(5+127);
  System.out.println(b);会不会报错?
**+=运算符在给b赋值时,自动完成了强转操作。

(3)比较运算符

A:==,!=,>,<,>=,<=
B:比较运算符的结果都是boolean型,也就是要么是true,要么是false。

(4)逻辑运算符


逻辑与运算符 &

第一个条件    第二个条件     结果
true          truetrue
false         true           false
true          false          false
false         false          false

简单记:左右两边同时为true,结果为true。

逻辑或运算符 |

第一个条件    第二个条件     结果
true          true        true
false         true           true
true          false          true
false         false          false


简单记:左右两边只要有一个结果是true,结果为true。

逻辑异或运算符 ^

第一个条件    第二个条件     结果
true          truefalse
false         true           true
true          false          true
false         false          false


简单记:左右两边相同,结果为false。

逻辑非运算符 !

!true  false
!false true
       !!true true

短路与:


&:左边无论什么结果,右边都执行。
&&:左边为false,右边不执行,结果为false。


短路或:
|:左边无论什么结果,右边都执行。
||:左边为true,右边不执行,结果为true。

(5)位运算符2<<3

<<一个正整数向左移动几位就乘以2的几次幂
>>一个正整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1
>>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0

(6)三元运算符

A :(条件表达式)?表达式1:表达式2;
**如果条件为true,运算后的结果是表达式1;
**如果条件为false,运算后的结果是表达式2;
B:条件运算符运算完之后一定有一个结果
int x,y,z;
x = 5;
y = 10;
z = (x > y) ? x : y;


学习技术要注意


这个技术是什么?
这个技术什么特点?
这个技术怎么用?
这个技术什么时候用?
0 0
原创粉丝点击