Java初学者笔记三:Java基础语法
注释
- 注释不会被执行
- 当项目复杂起来就需要注释
注释类型
-
单行注释 //注释文本
-
多行注释 /*多行注释文本 */
-
文档注释 /** 文档注释 */
public class HelloWorld { public static void main(String[] args) { /*多行注释 ①public 公开的,是一种修饰符,说明这个main方法的对外公开度,java虚拟机才能访问这个方法。 ②static 静态的,是一种非常重要的修饰符,用static关键字修饰能让方法更为容易的调用。 ③void 一种返回值类型,表示没有返回值 ④() 这是方法的定义中参数列表,用于传递你想传入方法的值 ⑤()中的String [] args是数组的声明*/ System.out.println("Hello,World");//单行注释,输出hello world /**与JavaDoc联合使用 * @Description HelloWorld */ } }
标识符
- Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
- 所有的标识符都应该以字母(A-Z或a-z),($)、(_)开始
- 不能使用关键字作为变量名或方法名
- 标识符大小写敏感
- 不能重名
- 可用中文,但为规范尽量不用
关键字
- 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
- 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
- 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
- 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
- 保留字:true、false、null、goto、const。
-
关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。
-
Java 的关键字对 Java 编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
-
提示:由于 Java 区分大小写,因此 public 是关键字,而 Public 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。
运算符
-
算术运算符:+,-,*,/,%(模(余)),++,--
int a = 10; int b = 20; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b);//int型相除,结果还是int型,支取了0.5整数部分,输出结果为0。 System.out.println(a/(double)b);//转换为double类型,输出结果为0.5。 long c = 12387432429855L; int d = 123; short e = 10; byte f = 8; System.out.println(c+d+e+f); //输出为long类型 System.out.println(d+e+f); //输出结果为141,int类型 System.out.println(e+f); //输出结果为18,int类型 //结论:运算中,有一个数类型为long(double),那么结果为long(double),反之全为int(无论有没有int类型参与运算)。 System.out.println((double)e+f); //输出结果为18.0,为double类型。 //模运算 System.out.println(f%e); //输出结果为8(余数为8)。//++ (自增) --(自减)(一元运算符) a++(++a) = (a = a + 1) int a = 3; // System.out.println(a); //输出结果为3 int b = a++; //执行完这个代码后,先赋值,再自增 //此处隐藏了一个a=a+1 System.out.println(a); //输出结果为4 System.out.println(b); //输出结果为3 int c = ++a; // 执行完这个代码前,先自增,再赋值 System.out.println(a); //输出结果为5 System.out.println(b); //输出结果为3 System.out.println(c); //输出结果为5 //第一步:先扫描int a = 3; 结果为3。第二步,扫描int b = a++; 结果为3。第三步a=a+1=3+1=4。第三步,扫描int c = ++a, a+1=4+1=5 -
关系运算符:>,<,>=,<= ,==(等于),!= instanceof(不等于)
int g = 10; int h = 20; System.out.println(g>h); //输出为false System.out.println(g<h); //ture System.out.println(g==h); //false System.out.println(g!=h); //true -
逻辑运算符:&&,||,!(与或非)
boolean a = true; boolean b = false; System.out.println("a && b: "+(a&&b)); //输出结果为a && b: false。逻辑与运算:两个都为真则结果才为真。 System.out.println("a || b: "+(a||b)); //输出结果为a || b: true。逻辑或运算:一个为真则为真。 System.out.println("!(a && b): "+!(a&&b)); //输出结果为!(a && b): true。如果为真,则变为假,反之亦然。 //+连接,(a&&b)优先运算,“a && b:”双引号中的不做运算,直接输出。 System.out.println(a&&b); //输出结果为false //短路运算 int c = 4; boolean d =(c<4)&&(c--<4); System.out.println(d); //输出结果为false System.out.println(c); //输出结果为4 //结论,如果执行c<4为假,则不执行后面的c--<4 int e = 4; boolean f =(e--<4)&&(e<4); System.out.println(f); //输出结果为false System.out.println(e); //输出结果为3 -
位运算符:&,|,^,~,>>,<<,>>>
/* A = 0011 1100 B = 0000 1101 A&B = 0000 1100 对应位如果都是1,才为1,反之都为0。 A|B = 0011 1101 对应位如果都是0,才为0,反之都为1。 A^B = 0011 0001 对应位如果相同则为0,反之都为1。(亦或) ~B = 1111 0010 取反 二进制 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 <<左移 >>右移 >>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 */ System.out.println(2<<3); //输出为16,将二进制的2向左移3位 System.out.println(3<<3); //输出为24 System.out.println(8>>>2); //输出为2 -
条件运算符:? :
//三元运算符 //x ? y : z 如果x==ture,则结果为y,否则为z。 int score = 80; String type = score < 60 ?"不及格":"及格"; System.out.println(type); //输出结果为及格。 -
扩展赋值运算符:=,+=,-=,* =,/=,%=,<< =,>> =,&=,^ =,| =
c=a+b将把a+c得到的值赋给c,a+=b等价于a=a+b,a-=b等价于a=a-b,a* =b等价于a=a* b,a/=b等价于a=a/b,a%=b等价于a=a%b,a<<=2等价于a=a<<2,a>>=2等价于a=a>>2,a&= 2等价于a=a&2,a ^=2等价于a=a ^2 ,a|=2等价于a=a|2int a = 10; int b = 20; a+=b;//a=a+b a-=b;//a=a-b System.out.println(a); //输出结果为30 //字符串连结符 System.out.println(""+a+b); //输出结果为1020,(“”)为String类字符串,没有运算a+b,把a和b转换成了String类型进行连接。 System.out.println(a+b+""); //输出结果为30,a+b依旧运算。 -
幂运算
double pow = Math.pow(2, 3); //先输入这个Math.pow(2, 3);,在引入局部变量(返回值)(Alt+回车)System.out.println(pow);//输出结果为8。
Java运算符优先级
具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。
| 类别 | 操作符 | 关联性 |
|---|---|---|
| 后缀 | () [] .(点操作符) | 左到右 |
| 一元 | + + - ! 〜 | 右到左 |
| 乘性 | * / % | 左到右 |
| 加性 | + - | 左到右 |
| 移位 | >> >>> << | 左到右 |
| 关系 | >>= <<= | 左到右 |
| 相等 | == != | 左到右 |
| 按位与 | & | 左到右 |
| 按位异或 | ^ | 左到右 |
| 按位或 | l | 左到右 |
| 逻辑与 | && | 左到右 |
| 逻辑或 | ll | 左到右 |
| 条件 | ?: | 右到左 |
| 赋值 | = += -= *= /= %= >>= <<= &= ^= l= | 右到左 |
| 逗号 | , | 左到右 |
浙公网安备 33010602011771号