Java基础02
Java基础02
一 变量
1 什么是变量?
变量简单来说就是可以变化的量。
2 变量注意事项
-
Java是一种强类型语言,每个变量都必须声明其类型。
-
Java变量是程序中最基本的存储单元 其要素有:变量名 变量类型 作用域。
-
数据类型 变量名 = 值;
-
数据类型:可以是基本数据类型,也可以是引用类型。
-
注意完整的语句最后要加分号
-
3 变量作用域和分类
1.类变量(静态变量,被static修饰的变量、类属性)
2.实例变量
3.局部变量
3.1 类变量(静态变量,被static修饰的变量、类属性)
static int a = 0; 写在类里面,方法外面 作用域很大
3.2 实例变量
-
实例变量 写在类中间 写在类里面,方法外面。 前面不加static
-
实例对象不初始化值 就是这个类型对应的默认值 除了基本类型 其余的默认值都是null
3.3 局部变量
局部变量 写在方法里的 需要声明以及初始化 作用域就是这个方法括号
成员变量(如C中的全局变量)
其中实例变量、类变量、常量都是属于成员变量的,成员变量又被称为全局变量
成员变量:类变量,实例变量,生命周期与类相同
局部变量:局部变量,生命周期就是这个方法
全局变量:Java中没有全局变量的概念,全局变量是面向过程语言(如C语言)中的概念。由static修饰的变量称为静态变量,其实质上就是一个全局变量。
其中实例变量、类变量、常量都是属于成员变量的,成员变量又被称为全局变量
二 常量
1 什么是常量?
特殊的变量 值不能改变。
2 常量注意要点
final
代表常量
final 变量类型 常量名 = 值; 常量名一般使用大写字符
static final int PI = 3.14;//加static是为了方便调用!
final static double PI = 3.14;
//static final double PI = 3.14;
public\private
、final
和static
都属于修饰符 不用区分先后顺序 都行都一样。
public static final double DI = 3.21;
private static final double d = 3.21;
三 重要注意-变量的命名规范
-
所有变量、方法、类名:见名知意
-
常量:所有字母都大写 和下划线 MAX_VALUE
-
类名:首字母大写和驼峰原则 Hello HelloWorld
-
方法名:首字母小写和驼峰原则:run() runRun()
-
类成员变量:首字母小写和驼峰原则 monthSalary (除了第一个单词,后面的单词首字母大写)
-
局部变量:首字母小写和驼峰原则
四 运算符
(注意运算的优先级)
/* 优先级低-->高byte short char int long float double
* 规律:
* 根据优先级:
* 1.操作数中无int类型,结果为int
* 2.操作数中优先级最高的为int,结果为int
* 3.操作数中类型优先级大于int的 ,结果类型为操作数中最高的类型
* */
/*
* System.out.println((String)(c+d));//报错 cast 'int' to 'java.lang.String'
* 可以前面加String 根据提示来看是什么类型。
* */
public class Demo05 {
public static void main(String[] args) {
byte b = 8;
short s = 10;
char c = '2';
int i = 23;
long l = 211321312312L;
float f = 21.3f;
double d = 21.5;
//变量类型不同进行运算
System.out.println((b + s));//byte + short = int
System.out.println((b + c));//byte + char = int
System.out.println((b + i));//byte + int = int
System.out.println((b + l));//byte + long =long
System.out.println((b + f));//byte + float = float
System.out.println((b + d));//byte + double = double
}
}
1 算术运算符
+ - * / % ++ --
2 赋值运算符
=
扩展赋值运算符:
+= -= *= /=
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a += b; //a = a + b;
System.out.println(a);
a -= b; //a = a - b; //注意此时a为30 30-20 = 10
System.out.println(a);
System.out.println("--------------------------------------------");
//字符串连接符 +
int c = 10;
int d = 20;
System.out.println("cd的和为:" + c + d);
//面试题
System.out.println("ddd" + c + d);//前面有String类型 就会把后面得 c 和 d 都转化为String类型
System.out.println(c + d + "ddd");//这是后面有String类型 先c+d得出结果30 然后与后面的String类型连接
System.out.println("Hello World !");
}
}
3 关系运算符
> < >= <= == !=
public class Demo03 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 21;
System.out.println(a > b); //false
System.out.println(a < b); //true
System.out.println(a == b); //false
System.out.println(a !=b);
System.out.println(a = b); //赋值
System.out.println(a != b); //返回值为布尔类型 false true //true
System.out.println(c % a); //1
System.out.println("Hello World !");
}
}
4 逻辑运算符
&& || !
与 && and
或 || or
非 ! 取反
短路运算
public class Demo05 {
public static void main(String[] args){
boolean a = true;
boolean b = false;
System.out.println(a && b);
System.out.println(a || b);
System.out.println(!(a && b));
//短路运算
int c = 5;
boolean d = (c < 4) && (c++ < 4);
System.out.println(d);
System.out.println(c);
/*
* c的值没有变为6 仍为5
* 是因为boolean d = (c < 4) && (c++ < 4); 判断(c <4 )为假 直接输出结果为假 没有执行 (c++ < 4)
* */
System.out.println("--------------------");
int c1 = 3;
boolean d1 = (c1++ < 4);// 先3<4 true 后 c1= c1+1=4
System.out.println(d1);
System.out.println(c1);
int c2 = 3;
boolean d2 = (++c2 < 4);// 先c2自加为4 后比较 false
System.out.println(d2);
System.out.println(c2);
System.out.println("Hello World");
}
}
5 位运算 有面试题
& | ^ ~ >> << >>>(了解!!!)
public class Demo06 {
public static void main(String[] args) {
/*
位运算***
A = 0011 1100
B = 0000 1101
--------------------------------------------
A&B 0000 1100 (A与B 对应位都为1得1 有0得0)
A|B 0011 1101 (A或B 对应位都为0得0 有1得1)
A^B 0011 0001 (取反/异或 对应位相同得0 不同得1)
~B 1111 0010 (B对应位为1得0 为0得1 都取反)
问2 * 8 = 16 计算机怎么算最快 2 * 2 * 2 * 2 = 16
*/
/*
<< 左移 相当于把数字*2
>> 右移 相当于把数字/2
2 << 3 0000 0010 对应十进制2
1左移三位
0001 0000 对应十进制16
*/
System.out.println(2 << 3);//2*2*2*2
System.out.println("Hello World !");
}
}
6 条件运算符(三元运算符)
? :
x ? y : z
当x为true 则结果为y 否则结果为z
//三元运算符 条件运算符 ? : //必须会
public class Demo08 {
public static void main(String[] args) {
// x ? y : z
//当x为true 则结果为y 否则结果为z
int score = 80;
String type = score > 60 ? "及格" : "不及格";
System.out.println(type);
System.out.println("Hello World !");
}
}
五 Java生产Doc文档
javadoc命令是用来生成自己的API文档的
详情请查看我的博客使用IntelliJ IDEA生产JavaDoc文档。
六 包机制
包package
相当于 文件夹
一般利用公司域名倒置作为包名
www.baidu.com com.baidu.www
学习阿里巴巴开发手册