变量、运算符
变量
-
变量,就是可以变化的量。
-
Java是强类型语言,每个变量必须声明其类型。
type verName = value; //数据类型 变量名 = 值;
注意
-
每个变量都有类型,可以是基础类型,也可以引用类型。
-
变量名必须是合法的标识符。
-
变量声明是一条完整的语句,必须要以分号结尾。
作用域
static、final等都是修饰符,不区分先后顺序
-
类变量:前面加关键词static,在类之间。
public class Demo{ static double salary = 3000;//类变量 public static void main(String[] args){ System.out.println(salary);// 3000 } }
-
实例变量:方法外面,类里面,从属于对象;如果不自行初始化,是默认值。
默认值:基本数据类型为0或0.0,布尔值默认为false。除了基本类型,其他默认值都是null。
public class Demo{ //实例变量 String name; int age; public static void main(String[] args){ Demo demo = new Demo(); //变量类型 变量名 = new Demo(); System.out.println(demo.age); } }
-
局部变量:只在方法里面,必须声明和初始化值。
public static void main(String[] args){ int i = 1; //局部变量 }
常量
-
常量:初始化之后不能再改变值!不会变动的值。
-
前面加关键词 final。
-
一般使用大写字符。
final 常量名 = 值; final double PI = 3.14;
public class Demo{ static final double PI = 3.14; //final static double PI = 3.14; public static void main(String[] args){ System.out.println(PI);//3.14 } }
命名规范
运算符
-
算数运算符:+、-、*、/、%(取余 模运算)、++、--
-
赋值运算符:=
-
关系运算符:>、<、>=、<=、==、!=(instanceof)
-
逻辑运算符:&&、||、!
boolean a = true; boolean b = false; Systen.out.println(a&&b);//false 逻辑与运算:两个变量都为真,结果才是true Systen.out.println(a||b);//true 逻辑或运算:两个变量一个为真,结果就是true Systen.out.println(!(a&&b));//true 逻辑非运算:如果是真,则变为假;如果是假,则变为真。
短路运算:逻辑与运算中的短路运算,如果&&前面结果为 false,则后面的不执行:
int c = 3; boolean d = (c<2)&&(c++<4) //false Systen.out.println(d);//false Systen.out.println(c);//c==3
-
位运算符:&、|、^、~、>>、<< (了解)
-
条件运算符:?、:
-
扩展赋值运算符:+=、-=、/=、*=
一元运算符
-
自增:a++ 先赋值,在自增
++a 先自增,再赋值
-
自减: a--
--a
-
三元运算符:必须掌握
public class Demo{ public static void main(String[] args){ // x?y:z //如果x==true,则结果为y,否则为z int score = 40; String type = score<60?"不及格":"及格"; System.out.println(type); } }
字符串连接符
+ ,String 如果 + 号前边是字符串类型,则把 + 后面的也变为字符串类型连接;如果字符串类型在 + 后边,则 + 前边会进行原来的运算。
int a = 10; int b = 20; System.out.println(""+a+b);//输出 1020; System.out.println(a+b+"");//输出 30;
运算符的优先级
包机制
-
包语句的语法格式为
package pkg1[. pkg2[. pkg3]...]
-
一般利用公司域名倒置作为包名 例:www.baidu.com 包名:com.baidu.www
-
为了能使用某一个包的成员,要在java程序中明确导入该包。使用 import语句来完成。
import package1[.package2...].(classname|*);