四、变量
变量是可以变化的量。java是一种强类型语言,每种变量都必须声明其类型。java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
注意事项:每种变量必须有类型,类型可以是基本类型,也可以是引用类型。变量名必须是合法的标识符。变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量作用域:类变量:
package com.dudu.base;
public class Demo06 {
//类变量 static
static double salary = 2500;
实例变量:类里面,方法外面。从属于对象,如果不自行初始化,输出这个类型的默认值。布尔值默认是false,除了基本类型,其余的默认值都是null。
//实例变量(类里面,方法外面):从属于对象;如果不自行初始化,输出这个类型的默认值
//布尔值默认是false
//除了基本类型,其余的默认值都是null;
String name;
int age;
char name1;
结果:
局部变量:方法里面,必须声明和初始值
//局部变量;必须声明和初始化值
int i = 10;
System.out.println(i);
(成员变量:把类内、方法体外定义的变量称为成员变量。
Java中的成员变量分为两种:
一是没有static修饰的,这些成员变量是对象中的成员,称为实例变量。
二是有static修饰的,称为类变量(静态变量)。
静态变量(类变量)具备以下特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
类变量和实例变量的区别是:
1,存放位置。
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2,生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。)
五、常量
常量初始化后不能再改变值。可以理解为一种特殊的变量,它的值被设定后,在程序运行的过程中不允许被改变。常量一般使用大写字符。
命名规范:
1、所有变量、方法、类名都需要见名知意
2、类成员变量:首字母小写和驼峰原则:例:monthSalary。除了第一个单词外,后面的单词首字母大写 lastName
3、局部变量:首字母小写和驼峰原则
4、常量:大写字母和下划线 MAX_VALUE
5、类名:首字母大写和驼峰原则
6、方法名:首字母小写和驼峰原则
六、运算符
算术运算符:+,-,*,/,%(取余),++,–
package com.dudu.operator;
public class Demo01 {
public static void main(String[] args) {
//二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
}
}
结果:
package com.dudu.operator;
public class Demo04 {
public static void main(String[] args) {
//++自增 --自减 一元运算符
int a = 3;
int b = a++;//执行完这行代码后,先给b赋值,再自增
int c = ++a;//执行完这行代码前,先自增,再给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 很多运算会使用一些工具类来操作
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
结果:
赋值运算符:=
package com.dudu.operator;
public class Demo02 {
public static void main(String[] args) {
long a = 12312312323L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
}
}
结果
关系运算符:>,<,>=,<=,==,!=instanceof
package com.dudu.operator;
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确 错误 布尔值
int a = 10;
int b = 20;
int c = 21;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
//取余,模运算
System.out.println(c%a);//c/a 21/10=2...1
}
}
结果:
逻辑运算符:&&(与),||(或),!(非)
package com.dudu.operator;
public class Demo05 {
public static void main(String[] args) {
//逻辑运算符
//与(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);//或运算符前面为false的话,后面不会进行运算。若运算,结果c=6,因为c=5,即短路运算
System.out.println(d);
System.out.println(c);
结果:
位运算符:&,|,^(异或(两位相同则为0,不同则为1)),~(取反),>>(左移),<<(右移),>>>
//位运算,与二进制有关。效率极高!
/*
A=0011 1100
B=0000 1101
A&B=0000 1100
A|B=0011 1101
A^B=0011 0001
~B=1111 0010
2*8 = 16 2*2*2*2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
<< *2
>> /2
*/
条件运算符:?:
package com.dudu.operator;
//三元运算符
public class Demo06 {
public static void main(String[] args) {
//x?y:z
//如果x==ture,则结果为y,否则为z
int score = 80;
String type = score <60 ?"不及格":"及格";//必须掌握
//if
System.out.println(type);
int w = 59;
String type1 = w<60?"挂科":"不挂科";
System.out.println(type1);
}
}
结果:
扩展赋值运算符:+=,-=,*=,/=
//扩展赋值运算符
int e = 10;
int f = 20;
e+=f;//e=e+f
e-=f;//e=e-f
System.out.println(e);
结果:30
-10
字符串连接符:
//字符串连接符 +,+运算符两侧出现String类型,会把其他操作数都转换成String类型,再进行连接
System.out.println(e+f);
System.out.println(""+e+f);
System.out.println(e+f+"");
结果:
七、包机制
为了更好地组织类,java提供了包机制,用于区别类名地命名空间。一般利用公司域名倒置作为包名(www.baidu.com>com.baidu.www)。为了能够使用某一个包地成员,我们需要在java程序中明确导入该包。使用”import“语句可完成此功能。
八、JavaDoc
javadoc命令是用来生成自己API文档的
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况