变量、常量
变量
- 变量是什么:就是可以变化的量!
- Java是一种强类型语言,每个变量都必须声明其类型。
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量。
- 注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量
- 实例变量 从属于对象
- 局部变量 必须声明和初始化值
public class Variable{
static int allClicks=0; // 类变量
String str="hello world"; // 实例变量
public void method(){
int i = 0; //局部变量 是写在方法里的变量 方法外不能调用
}
}
常量
- 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
- 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名=值;
final double PI = 3.14;
- 常量名一般使用大写字符
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
- Java语言支持如下运算符:
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!= instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
//二元运算符
int a = 10; //这里 a = 10 读 把10赋值给了a, 不是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类型,所以除出来的是==0
System.out.println(a/(double)b); //这里变成低转高 输出==0.5
long a = 123123123123123L;
int b = 123;
short c = 10;
byte d = 8;
int t = 22;
int r = 10;
//取余,模运算
System.out.println(t%r);// c/a 22 / 10 = 2...2
System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
如果有两个操作或多个操作中有一个Long,那么这个结果也为Long。如果有double,那么结果一定是double。强制转换除外!!
如果都没有Long,那么结果都为int。无论有没有int类型,只要没有long都返回为int类型。
关系运算符返回的结果:正确,错误 布尔值
int a = 10;
int b = 20;
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
自增自减运算符
//++ -- 自增,自减 一元运算符
int q = 3;
//++在后 执行完这行代码后,先给b赋值,再自增
int w = q++; //a++ a = a + 1
System.out.println(q);// 4
//++在前 执行完这行代码后,先自增,再给b赋值
int e = ++q; //++a a = a + 1
System.out.println(q);// 5
System.out.println(e);// 5
//自减也是一样
int q1 = 3;
//--在后 执行完这行代码后,先给b赋值,再自减
int w1 = q1--; //a-- a = a + 1
System.out.println(q1);// 2
//--在前 执行完这行代码后,先自减,再给b赋值
int e1 = --q1; //--a a = a + 1
System.out.println(q1);//1
System.out.println(e1);//1
幂运算
//2^3 二的三次方 2*2*2 很多运算,我们会使用一些工具类来操作!
double pow = Math.pow(2,3);
System.out.print(pow);//8.0
逻辑运算符
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b :"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("!(a && b):"+!(a&&b));//如果是真,则变为假,如果是假则变为真
//短路运算 &&前面已经为假了,后面的就不会去运行
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//这里的C还是 等于 5
位运算符
/*
A = 0011 1100
B = 0000 1101
----------------------------
A&B = 0000 1100 如果A和B之间的位置上有相同的就为1,不相同就为0
A|B = 0011 1101 如果A和B之间的位置上有1就为1,没有就为0
A^B = 0011 0001 如果A和B之间的位置上有相同的就为0,不相同就为1
~B = 1111 0010 如果A和B之间的位置上有相同都是0的或有不同的就为1,有相同的都是1就为0
2*8 = 16 2*2*2*2
效率极高!!!
<< *2
>> /2
0000 0000 0
0000 0002 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//16
扩展赋值运算符
int a = 10;
int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
//字符串连接符 +,如果有一个参数前面出现String类型,那么这几个参数就不会再进行运算
System.out.println(a+b);//30
System.out.println(""+a+b);//01020
System.out.println(a+b+"");//30
三元运算符
// x ? y : z
//如果x==true,则结果为y,否则为z
int score = 80;
String type = score < 60 ?"不及格":"及格";//必须掌握
System.out.println(type);//及格
包机制、JavaDoc
-
为了给好的组织类,Java提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为:
-
package pkg1[.pkg2[.pkg3…]];
-
一般利用公司域名倒置作为包名:
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用”import“语句可完成此功能
-
import package[.package2...].(classname|*);
import com.kuang.base.*;//导入这个包下所有的类
JavaDoc
-
Javadoc命令是用来生成自己API文档的
-
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
/** * @author muzi * @version 1.0 * @since 1.8 * */ public class Doc { String name; /** * @param name * @return * @throws Exception */ public String test(String name) throws Exception { return name; } }