Java语言基础组成
Java语言基础组成
1,关键字;2,标示符;3,注释;4,常量和变量;
5,运算符;6,语句;7,函数;8,数组
定义:被JAVA赋予了特殊的单词。
1,关于java关键字的分类如图:
1.2 标示符
1.2.1在程序中自定义的一些名称。
1.2.2由26个英文字母大小写,数字:0-9;符号:_ $组成
1.2.3定义合法标示符规则:1,数字不可开头;2,不可以使用关键字。
1.2.4 Java中严格区分大小写。
1.2.5 注意在起名字时,为了提高阅读性,要尽量有意义。
1.2.6 注意main 不是关键字 但是他是一个能被JVM所识别的名称。
Java中的名称规范:
1, 包名:多单词组成的时所有字母都小写;
xxxyyyzzz
2,常量名和函数名:多单词组成时,第一个首字母小写,第二个单词开始首字母大写。
xxxYyyZzz
3, 类名接口名:多单词组成时,所有单词首字母大写
XxxYyyZzz
4, 常量名:所有字母都大写,多单词时每个单词用下划线连接。
XXX_YYY_ZZZ
1.2 常量
定义:Java中固定不变的、表示不能改变的数值。
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运算取余。如:6的二进制是110,
二进制à十进制,原理:二进制乘以2的过程。如:110 1*2(2次幂)+1*2(1次幂)+0*2(0次幂)
根据其原理我们可以发现一些简单算的技巧方法:如下二进制100101转十进制得?
0 0 1 0 0 1 0 1 = 1+4+32=37
128 64 32 16 8 4 2 1
十进制与八进制和十六进制的互转,跟转换二进制的方法一样。有简便的算法就是,可以先将十进制转换为二进制,再转换为八进制和十六进制。
这就利用了一个八进制位相当于三个二进制位,而一个十六进制位相当于四个二进制位。
负数的二进制表现形式:
特点:负数的最高位都是1。
如6 = 110
-6:其实就是6的二进制取反+1.
取反:将二进制的1变成0,0变成1.
1111-1111-1111-1111 -1111 -1111- 1111 -1001
+ 0000 0000 0000 0000 0000 0000 0000 0001
--------------------------------------------------------------
1111-1111-1111-1111 -1111 -1111- 1111 -1010 = -6
1.4 变量
1.4.1概念:1,内存中的一个存储区域
1, 在该区域有自己的名称(变量名)和类型(数据类型)
2, 该区域的数据可以在同一类型范围内不断变化。
简单说:就是将不确定的数据进行存储。存储就需要在内存中开辟一个空间,这个空间呢就是通过明确数据类型,变量名称以及数据来完成的。
1.4.2为什么要定义变量?
这样可以不断存放同一类型的常量,并可以重复使用。
1.4.3定义变量的格式:
数据类型 变量名 = 初始化值;
1.4.4 数据类型如图:
注意:在一般编写程序时整数一般默认int,小数默认为double
1.5 类型转换
当不同高低类型进行运算时会容易报错损失精度,为什么呢?
如:class Demo1 {
public static void main(String[] args) {
byte a = 2;
a = a+3; //会报错,因为3的默认类型是int,运算时系统会自动将2的型提升为int
//但是a还是为byte类型。所以这时需要对其进行强制转换
a = (byte)(a+3);//将a+3的结果强制转换后复制给a。
System.out.println(a);
}
}
1.6 运算符
1.6.1分类:
1, 算术运算符;2,赋值运算符;3,比较运算符;4,逻辑运算符;5,位运算符;6三元运算符;
1.6.2 算数运算符如图:
注意问题:
1,如果对负数取模,可把模数符号忽略不计,如5%-2 = 1;但是被模数为负数另当别论。
2, 对于除号“/”,在整数之间做除法时,只保留帧数部分舍弃小数部分。
如:int x = 2032; x = x/10000*10000; 最后x的值是2000.
3,“+”除了字符串相加功能外还能把非字符串转换成字符串
如:System.out.println(“5+5=”+5+5); 打印结果是5+5=55;
1.7 转义字符
1.7.1定义:通过”\”来转变后面字母或者符号的含义。
1.7.2常见转义:
\n:换行;
\b:退格,相当于Backsace;
\r:按回车键。Window系统中,回车符是有两个字符来标示\r\n.
\t:制表符。相当于tab键。
1.8 赋值和比较运算符
1.8.1 赋值符号:= += -= *= /= %=
例: int a,b,c;
a=b=c =3;
int a = 3; a+=5;//等同运算a=a+5;
1.8.2 比较运算符如图:
1.9 逻辑运算符
1.9.1 逻辑运算符如图:
注意 :
(1)逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6;
(2)“&”和“&&”的区别:
单&时,左边无论真假,右边参与运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
(3)异或( ^ )与或( | ) 的不同之处是:当左右都相同时为false,不相同时为true。
2.1 位运算符
它是直接对二进制进行计算的。计算之前要把整数转换成二进制
看下表:
注意:
<<:相当于乘以2的倍数
>>:相当于除以2的倍数
移n位,就是对乘以或者除以2的n次幂。
^:一个数异或同一个数两次结果还是那个数。
2.2 三元运算符
格式:
(条件表达式)?表达式1:表达式2;
a)如果条件为true,运算后的结果是表达式1;
b)如果条件为false,运算后的结果是表达式2;
示例:
获取两个数中最大数。
int x=3,y=4,z;
z = (x>y)?x:y;//z变量存储的就是两个数的大数。