Java语言的基础组成
① 关键字 ②标识符 ③注释 ④常量和变量 ⑤运算符 ⑥语句 ⑦函数 ⑧数组
1. 关键字
定义:被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
注:main不是关键字但main是JVM的入口。
2. 标识符
在程序中自定义的一些名称。
由26个英文字母大小写,数字:0-9,符号:_ $组成
定义合法标识符规则:
1>数字不可以开头。2>不可以使用关键字
Java中严格区分大小写
注意:在起名时,为了提高阅读性,要尽量有意义。
Java中的名称规范:
包名:多单词组成时所有字母都小写
xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写
XxxYyyZzz
常量名:所有字母都大写,多单词时每个词用下划线连接。
XXX_YYY_ZZZ
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
3. 注释
用于注解说明解释程序的文字就是注释。
提高了代码的阅读性。
Java中的注释格式:
单行注释:
格式: //注释文字
多行注释:
格式: /*注释文字*/
文档注释:
格式: /**注释文字*/
注:文档注释为java特有的注释,其中注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文件。
eg:
/**
版本:V1.0
这个类是用于演示Hello World。
*/
//写代码先写注释思想
/*
需求:定义一个Hello World小程序
1.……
2.……
1. class关键字定义一个类,将代码都编写到该类中。
2. 为了保证该类的独立运行,在类中定义个主函数,格式:
public static void main(Stirng[] args){ }
3. java的文件。
4. dos控制台中通过javac工具对java文件进行编译。
5. java命令对生成的class文件进行执行。
*/
此处写程序……
4. 常量与变量
常量表示不能改变的数值
Java中敞亮的分类:
1. 整数常量。所有整数
2. 小数常量。所有小数
3. true false
4. ’’标识。
5. ””标识。
6. null常量。只有一个数值就是null。
对于整数:java有三种表现形式
十进制:0-9,满10进1. eg:1,2,3,4,5,6
八进制:0-7,满8进1. eg:00,01,02,03,04,05
十六进制:0-9 A-F,满16进1,用0x开头表示。 eg:0xA1,0x13,0xFF
1> 2运算”。
“十进制→二进制”:十进制6转二进制2
把余数倒着输出就好。即结果是:110
“二进制→十进制”原理:二进制乘以2的过程。
110二进制转成十进制。0*2^0+1*2^1+1*2^1=6
2> 其它进制的转换(先转成二进制)
四个二进制位对应16进制一个位,eg:0101→5、1010→A
三个二进制位对应8进制一个位,eg:001→1、011→3、010→2
3> 负数的二进制表示:
6=110 【占四个字节:0000 0000 0000 0000 0000 0000 0000 0110】
-6,其实就是6的二进制取反+1【1111 1111 1111 1111 1111 1111 1111 1010】
负数的最高位都是1.
变量的概念
1>内存中的一个存储区域
2>该区域有自己的名称(变量名)和类型(数据类型)
3>该区域的数据可以在同一类型范围内不断变化
为什么要定义变量?
用来不断的存放同一类型的常量,并可以重复使用。
使用变量的注意:
1>变量的作用范围(一对{ }之间有效)
2>初始化值
定义变量的格式:
数据类型变量名 =初始化值; //格式固定
理解:
变量就如同数学中的未知数。
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
整数默认:int 小数默认:double
注:不同数据类型,不可运算。 eg:byte b = 3; b = b+2:;【因为此时2为int类型,b被自动提升成了int,低的向高的提升。】 如果非要这样计算,则:b = (byte)(b+2);【强制转换】。用处:在不要小数位时,如:double→int转换,去小数位。
System.out.println(‘a’); //a
System.out.println(‘a’+1); //98
System.out.println((char)(‘a’+1)); //b
5.
算术运算符
赋值运算符
比较运算符
逻辑运算符
位运算符
三元运算符
5.1
int x =4270;
x = x/1000*1000;
System.out.println(x); //4000
% 取模运算(余数)
左小于右,=左。右边为1时,结果为0。-1%5 = -1,5%-1 = 0,1%-5 =1 即出现负数,只看左边。
++(同理有--)
int a = 3,b;
b=++a;
System.out.println(b); //4
System.out.println(a); //4
如果是:
int a = 3,b;
b=a++;
System.out.println(b); //3
System.out.println(a); //4
“+”字符串+
字符串数据和任何数据使用+都是相连接,最终都会变成字符串。
System.out.print(”5+5=”+(5+5)); //5+5=10
System.out.print(”5+5=”+5+5); //5+5=55
System.out.print(”a=”+a+”,b=”+b);
转义字符
通过\来转变后面字母或者符号的意义。
\n:换行。
eg:System.out.println(”Hello \nWorld”); //结果为:Hello
World
\b:退格。相当于backspace
\r:按下回车键,windows系统中,回车符是由两个字符来表示\r\n
\t:制表位。相当于tab键。
eg://想打印:”Hello”
System.out.println(”\”Hello\””);
//想打印:\Hello\
System.out.println("\\Hello\\");
char c=’你’; 【中文占两个字节,char类型2字节】
5.2
符号
=,+=,-=,*=,/=,%=
int a=1;
a+=3; //既a=a+3;
eg:
short s=4;
s = s+5; //这里报错,因为s已经自动提升为int,且是两步运算,先+后赋值
s +=5; //正确,因为“+=”为一步运算,只做赋值。
5.3
运算符 运算 范例 结果
== 相等于 4==3 false
!= 不等于 4!=3 true
< 小于 4<3 false
> 大于 4>3 true
<= 小于等于 4<=3 false
>= 大于等于 4>=3 false
instanceof 检查是否是类对象 ‘Hello’ instanceof String true
注:比较运算符都是boolean类型
5.4
& And(与) false & true false 同真才真
| or(或) false | true true 同假才假(两边都运算)
^ XOR(异或) true ^ false true 一真一假才真
! Not(非) !true false
&& AND(并) false && true false 左假右不运算,否则运算
|| OR(短路) false || true ture 左为真,右边不运算
5.5
<< 左移 3<<2 = 12 3*2*2=12 其实就是:*2^(移动位数)
>> 右移 3>>1 = 1 3/2=1 正数的话:/2^(移动位数)
>>> 无符号右移 3>>>1=1 3/2=1
& 与运算 6&3 = 2
| 或运算 6|3=7
^ 异或运算 6^3=5 一个数异或同一个数两次,结果还是那个数(加密)
~ 反码 ~6=-7
位运算是直接对二进制进行运算
eg:
3<<2=12;
00|00 0000 0000 0000 0000 0000 0000 0011
00 0000 0000 0000 0000 0000 0000 0011|00
class OperateDemo
{
public static void main(String args[])
{
System.out.println("-6>>2 ="+(-6>>2));
System.out.println("-6/4 ="+(-6/4));
System.out.println("-6>>1 ="+(-6>>1));
System.out.println("-3/2 ="+(-3/2));
System.out.println("6>>2 ="+(6>>2));
System.out.println("-16>>2 ="+(-16>>2));
System.out.println("16>>2 ="+(16>>2));
System.out.println("-6>>>2 ="+(-6>>>2));
}
}
&:
6&3 = 2;
110
& 011
010
|:
6|5 = 7
110
| 101
111
^:
6^5=3
110
^ 101
011
~:
~6=-1
0000 0000 0000 0000 0000 0110
1111 1111 1111 1111 1111 1001 =-7
题一:n=3 m=8【交换n和m的值】
方法一:
用第三个变量
z=n;n=m;m=z;
方法二:
用和【不借助第三方,有局限性,如果想加超出int范围,就不准确了】
n=n+m;
m=n-m;
n=n=m;
方法三:
用异或^【不借助第三方】
n=n^m;
m=n^m;
n=n^m;
题二:获取60的最低四位
int num = 60;
num & 15 = 12;
题三:获取下一组四位,将60右移4位。
int temp = 60>>>4;
temp&15=3;
1.2 三元运算符
格式:(条件表达式)?表达式1:表达式2
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
eg:
获取两个数中大数。
int x=3, y=4, z;
z=(x>y)?x:y;