markdown学习Day5
-
-
每个变量都必须声明其类型。
-
JAVA变量是程序中最基本的储存单元,包括变量名,变量类型,作用域。
【注意事项】
-
每个变量都有类型,可以是基本类型,可以是引用类型(String)。
-
变量名必须使合法的标识符。
-
每一个声明都必须以分号结束。
public class test1 {
public static void main(String[] args) {
//int a,b,c; 不建议这样做
//尽量分开写
int a = 1;
int b = 2; //基本类型
int c = 3;
String name = "subin"; //引用类型
char x = 'x'; //用char的时候,是单引号!
double pi = 3.14;
}
}
变量作用域
-
类变量:需要加【static】关键词
-
实例变量:没有关键词
-
局部变量:在方法之中
public class test2 {
//class下是“类”,类变量就是在类下,从属于类,同时存在,同时消失
//类下可以定义【属性(变量)】【方法】
//类变量:【static】
static double salary = 2500; //可以直接输出
//实例变量:在方法之外,类之内,从属于对象(类)
//如果不自行初始化,就会输出这个类型的默认值
//数值(int之类)的默认值是0或0.0;字符串的默认值是ture;布 尔值默认值是false;除了基本类型其他都是null
String name;
int age;
public static void main(String[] args) { //main方法
//局部变量 :在方法下 【使用时必须声明和初始化值】
int i; //光是这样无法输出,必须为其附一个值。
int q =10; //这样就可以输出
//而且这个q或者i,只限于在main方法的括号内使用
//可以自定义一个变量
//格式为:变量类型+变量名字=new 变量类型() 如下:
test2 Test2 = new test2();
System.out.println(Test2.age);
System.out.println(Test2.name);
}
}
常量
常量:初始化后不能再改变值,不会变动的值。
可以理解为一种特殊的变量,当值被设定后,程序运行过程中不可以被更改。
final 常量名=值
常量名=变量类型+变量名
final double PI=3.14;
常量名一般使用大写字符
public class test3 {
static final double PI =3.14;
//static放到final的前后都可运行,修饰符不存在前后顺序
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
-
所有变量,方法,类名:见名知意.
-
类成员变量,局部变量:首字母小写和驼峰规则,如lastName,除了第一个单词小写,其他单词首字母大写.
-
常量:大写字母,若名字里单词多可用下划线隔开,如“MAX_VALIE”.
-
类名:首字母大写和驼峰原则,如“GoodMan”.
-
方法名:首字母小写和驼峰原则
运算符
-
算术运算符
+,-,*,/,%,++,--(取余,叫做“模”)
package Operator;
public class Test {
public static void main(String[] args) {
//将只有两个数相运算的叫做---二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
//ctrl+D 复制行到下一行
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//计算结果为0.5,是小数,需要强制转换
System.out.println(a/(double)b);
}
}
int a =10;
int b =20;
int c =21;
System.out.println(c%a);
//相当于c/a,即21/10=2余1
//输出1 -
赋值运算符
=
int a =10; (叫做把10赋予a)
public class Test1 {
public static void main(String[] args) {
long a = 123123123123L;
int b = 123;
short c = 10;
byte d = 8;
double e = 0.5;
System.out.println(a+b+c+d);//long类型
System.out.println(b+c+d);//int类型
System.out.println(c+d);//int类型
System.out.println(a+e);
//只要运算中有一个是long类型,输出的就是long类型,同理若运 算中有double,则输出的就是double类型
//其他类型进行运算都是int类型
}
}
-
关系运算符
<,>,<=,>=,instanceof
==(java中的等于是两个等于号)
!=(不等于)
package Operator;
public class Test2 {
public static void main(String[] args) {
//关系运算符返回的结果:ture false
//会和if一起使用
int 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);
}
} -
逻辑运算符
汉语中的“与”,“或”,“非”
&&:与,and
||:或,or
!:非,非黑既白
-
位运算符(了解)
&,|,^,~,>>,<<,>>>
-
条件运算符
?:
-
扩展赋值运算符
+=,-=,*=,/=
自增自减运算符*
++:自增
--:自减
public class Test3 {
public static void main(String[] args) {
//++.-- 属于一元运算符
//a++,++a都代表a=a+i;a--,--a都代表a=a-1
//区别在于a++相当于
int a =3;
int b =a++;//执行完代码后,先给b赋值,后再自增
//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
初识Math
幂运算
在JAVA中2的3次方并不表示为2^3.需要使用Math工具来计算
//幂运算,很多运算我们会使用工具类来操作
public class Test4 {
public static void main(String[] args) {
double pow=Math.pow(2,3);//代表计算2^3=8
System.out.println(pow);
}
}
逻辑运算符
//逻辑运算符
public class Test5 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a =true;
boolean b =false;
//首先解释一下:+(a&&b)代表输出时的名字
System.out.println("a&&b:"+(a&&b));
//逻辑“与”运算:两个变量都为真,结果才为ture
System.out.println("a||b:"+(a||b));
//逻辑“或”运算:两个变量只要有一个为真,结果就为ture
System.out.println("!(a&&b):"+!(a&&b));
//逻辑“非”运算:如果为真,则变为加;如果是假,则变为真
//短路运算:“与”运算中,如果第一个就验证处是假,则就不再验证第二个
int c =5;
boolean d =(c<4)&&(c++<4);//因为如果c++执行过就会变成6,而 结果是5,说明没有被执行过
System.out.println(d);
System.out.println(c);
}
}
位运算符
public class Test6 {
public static void main(String[] args) {
/*
位运算:与二进制相关,效率高,和底层打交道
A=0011 1100
B=0000 1101
1.A&B(与):0000 1100
A和B上下进行比较,上下都为1,输出为1,上下都为0,输出为0
上下不一样,输出为0
2.A|B(或):0011 1101
上下不一样,输出为1
3.A^B(亦或):0011 0001
相同为0,不同为1
4.~B(取反):1111 0010
相反数
5.<<(左移) >>(右移)
<<(左移)相当于*2
>>(右移)相当于/2
若要求2*8=16
*/
System.out.println(2<<3);
/*在二进制中
0000 0010 2
0001 0000 16
所以将2左移3位就可以等到16
*/
}
}
扩展赋值运算符
public class Test7 {
public static void main(String[] args) {
int a =10;
int b =20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);
}
}
结果为:
30
-10
字符串连接符
+
//字符串连接符(+) : 在+号前添加【“”】空字符串,会将两个数连接
System.out.println(a+b);
System.out.println(""+a+b);
System.out.println(a+b+""); //在+号后不会发生效果
10
30
1020
三元运算符(条件运算符)
public class Test8 {
public static void main(String[] args) {
// 【 ? 】 【 : 】 ------三元运算符
//【 x ? y : z】的意思是:如果x==ture,则结果为y,否则结果为z
int score =80;
String type = score <60?"不及格":"及格";
System.out.println(type);
及格
优先级
浙公网安备 33010602011771号