基础语法
运算符
-
算数:+, - ,* , / ,%, ++ ,--
-
赋值:=
-
关系:> , < ,==,!=
-
逻辑:&& , ||, ! 与,或,非
-
位运算符:&,|,^, ~,>>,<<,>>> (了解)
-
条件:?:
-
拓展赋值:+=,-=,*=,/=
除法:int 类型是按整除结果算,如果两个数不能整除,那结果就会不对。 double、BigDecimal等如果你不设置精度的话,那它默认就会以你的两个数中精度大的那个来设置一个精度
算数运算符
自增与自减
//一元运算符: ++ -- 自增自减 a++,++a 执行时间不同 int a = 3; int b = a ++; //执行这行代码后,先给b赋值(将a的值赋给b),a再自增 //a++ 表示 a=a+1 在赋值后进行 System.out.println(a); // a=a+1 在赋值前进行 int c = ++a; //执行这行代码前,先自增,再给c赋值 System.out.println(a); System.out.println(b); System.out.println(c); 输出结果 4 5 3 5
int x = 2; int y = 1; x *= y + 1; System.out.println(x); x *= y + 1; 等价于 x=x*(y+1)
逻辑运算符
boolean a = true; boolean b = false; System.out.println("a&&b:"+(a&&b)); //与,and System.out.println("a||b:"+(a||b)); //或,or System.out.println("!(a&&b):"+!(a&&b)); //非,not //短路运算 //a&&b 与 a||b均为短路运算 若a为假,直接返回假,不执行&&运算符及其后面语句 //短路运算测试 int c = 5 ; boolean d = (c<4)&&(c++<4); //判断c<4,即为假,后面若继续执行,c将执行自增变为6,但结果为6,说明未自增,即未执行 System.out.println(c); System.out.println(d); 结果 a&&b:false a||b:true !(a&&b):true 5 false
位运算符
/* A = 0011 1100 B = 0000 1101 A&B = 0000 1100 #位置对应相乘,有0即为0,无0为1 A|B = 0011 1101 #有1即为1,其余为0 A^B = 0011 0001 #相同为0,相反为1 异或 ~B = 1111 0010 #与B相反 */ /*左移右移相关问题 << 表示*2 >> 表示/2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0100 4 0000 1000 8 0001 0000 16 一道算法题! 求2*8的最快求法 = 2*2*2*2 */ System.out.println(2<<3);
拓展运算符以及字符串连接
int a = 10; int b = 20; a+=b; //即为a=a+b System.out.println(a); //字符串连接符 +, String System.out.println(""+a+b); //""在前面,后面的a,b均变为字符串连接 System.out.println(a+b+""); //""在后面,先运算 a+b System.out.println(a+""+b); //""在后面,先运算 a+b 结果 30 3020 50 3020
三元运算符
public class demo8 { public static void main(String[] args) { // x ? y :z // 如果x==true,则结果为y,否则结果为z int score = 80 ; String type = score < 60 ? "不及格":"及格"; // 必须掌握 System.out.println(type); } }
优先级
多使用()
包机制
类似于文件夹
一般用公司域名倒置,作为包名
package com.kuang.base //注意此行放在最前!!!
为了能够使用某一包的成员,使用import 语句明确导入
import package1[.package2....].(classname|*) //* 通配符,全部类
快捷键:alt + enter
不需要导包的情况:
-
调用自己包里面的类(class)
-
Java.lang包下的所有内容都不需要导包