Day6

变量

//定义:可以变化的量
//Java是一种强类型语言,每个变量都必须要声明其类型
//java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [+value] [{varName}];
// 数据类型 变量名 = 值 ;可以使用逗号隔开来声明多个同类型变量
/* 每个变量都有类型,可以是基本类型也可以是引用类型
 每个变量都必须合法;变量声明是一条完整的语句,因此每个声明都必须以分号结束*/
package java笔记;

public class Demo1 {

public static void main(String[] args) {
//数据类型 变量名 = 值;
//int a,b,c;
//int a=1,b=2,c=3;不提倡;要保证可读性
String name ="niannian";
char x ='X';
double pi = 3.14;


}

}

 

变量作用域

//类变量;实例变量;局部变量; 
public class Variable{
   static int allClicks = 0;  //类变量
   String str = "hello world";  //实例变量
   public void method(){
       int i = 0;     //局部变量
}
}

package java笔记;

public class Demo2 {
//类变量 static(从属于类)
static double salary = 2500;
//属性:变量

//实例变量:作用域在类里面方法外面(从属于对象);如果不自行初始化输出这个类型的默认值
//布尔值:默认是false
//除了基本类型,其余默认值是null
String name;
int age;


   //main方法
public static void main(String[] args) {//pvsm

//局部变量:必须声明和初始化值(只在main方法中有效,从属于方法)
int i = 10;
System.out.println(i);

//变量类型 变量名字 = new Demo2();
Demo2 demo2 = new Demo2();
System.out.println(demo2.age);
System.out.println(demo2.name);

//类变量 static
System.out.println(salary);



}
//其他方法

}

常量

//定义:初始化后不改变值;一种特殊的变量
final 常量名 = 值;
   final double PI=3.14;//常量名一般使用大写字符

package java笔记;

public class Demo3 {
static final double PI = 3.14;
//修饰符,不存在先后顺序static静态的
final static double radius = 3.0;

public static void main(String[] args) {
System.out.println(PI);

}

}

变量的命名规范

所有变量,方法,类名:见名知意

类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastname LastName

局部变量:首字母小写和驼峰原则

常量:大写字母和下划线:MAX_VALUE

类名:首字母大写和驼峰原则:Man,GoodMan

方法名:首字母小写和驼峰原则:run(),runRun()

运算符

算术运算符:+ - * / % -- ++
赋值运算符:=
关系运算符: > < >= <= == != instanceof(二元运算符,判断一个引用类型变量所指向的对象是否是一个类(或接口。抽象类,父类)的实例,即左边的对象是不是右边的类的实例)

逻辑运算符: && || ! (与或非)

位运算符 : & | ^ ~ >> << >>>

条件运算符?:

扩展赋值运算符: += -= *= /=

优先级(): 单目乘除为关系,逻辑三目后赋值
  • 单目运算符: + - ++ --

  • 乘除:算数单目运算符 * 、 % + -

  • 为:位移单目运算符 << >>

  • 关系: 关系单目运算符 > , <, >= ,<=,== !=

  • 逻辑:逻辑单目运算符 && , || ,!=

  • 三目:三木单目运算符 A>B?X:Y

  • 赋值: =

package operator;

public class Demo1 {
public static void main(String[] args) {
//二元运算符
// ctrl +D :复制当前行到下一行
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);//a/b得到小数,而a,b均为整数类型,如果不强制转换结果会出错为0,自动省略小数点后面的数字

}

}
package operator;

public class Demo2 {

//算术运算符:+ - * 、 % == --
public static void main(String[] args) {
// TODO Auto-generated method stub
long a =123123123123123L;
int b = 123;
short c = 10;
byte d = 8;
int x = 20;
int y = 21;

System.out.println(y % x);//取余或者模运算

System.out.println(a+b+c+d);//如果存在Long则结果输出为long类型,如果不是则为int类型;如果有double 则为double 类型;
//低——>高: byte,char,short->int->long->float->double
       System.out.println(b+c+d);
       System.out.println(c+d);

}

}
package operator;

public class Demo3 {

public static void main(String[] args) {
// TODO Auto-generated method stub
//关系运算符返回结果:正确 错误 布尔值
//会与if 使用
int a =10;
int b = 20;
int c =21;

System.out.println(c%a);//取余或者模运算

System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}

}
package operator;

public class Demo4 {

public static void main(String[] args) {
//++   -- 自增 自减 一元运算符
int a =3;
int b=a++;//执行完这行代码后,先给b赋值,再自增
//a++   a = a+1;
// a= a+1
System.out.println(a);
int c=++a;//执行完这行代码前,先自增,再给b赋值

System.out.println(a);
System.out.println(a);
System.out.println(b);
System.out.println(b);
System.out.println(c);
System.out.println(c);

//幂运算 很多运算会使用工具类操作!

//Math类提供很多运算
double pow = Math.pow(3,2);//3^2=9
System.out.println(pow);

String s = "Hello";
int[] t = {1,2};
if(s instanceof String) {
System.out.println("true");
}
if (s instanceof Object) {
System.out.println("true");
}
if (t instanceof int[]) {
System.out.println("true");
}
}

}
package operator;

//逻辑运算符
public class Demo5 {

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));//逻辑或运算:两个变量都为假,结果才为false
System.out.println("! (a&&b):" + !(a&&b));//如果是真,则为假;如果是假,则为真


System.out.println("------------------");

System.out.println(a&&b);


System.out.println("---------------------------");
       

//短路运算 b&&a :b为假,就不需要进行下面运算了,即为短路运算
int c =5;
boolean d = (c<5)&&(c++<4);
System.out.println(d);
System.out.println(c);
//短路,只算到c<5 ,下面不执行,所以c=5

boolean e = (c==5)&&(c++ == 4);
System.out.println(e);
System.out.println(c);
//没有短路
}

}
package operator;

public class Demo6 {

public static void main(String[] args) {

/*位运算:二进制
*A = 0011 1100
*B = 0000 1101
*--------------------------------------------
*A&B 0000 1100(两个位都为1结果为1,否则为0)与
*A/B 0011 1101(两个位都为0结果为0,否则为1)或
*A^B 0011 0001(两位相同为0,不相同为1)  
*~B   1111 0010 取反
*
*
*问:2*8 怎样运算最快   2*2*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
*/
}

}
package operator;

public class Demo7 {

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);

//字符串连接符   +
System.out.println(a+b);
//问: (""+a+b) 与(a+b+"")有什么区别?
System.out.println(""+a+b); //"" 表示字符串,String类型,在+两侧出现字符串类型 ,会是自动将另一个操作数都转换成字符串类型,再进行链接
       System.out.println(a+b+"");//a,b在字符串前面,依旧进行连接,所以结果为30
}

}
package operator;

//三元运算符
public class Demo8 {

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("------------------------");
int grade = 50;
String type2= grade < 60 ?"不及格":"及格";
System.out.println(type2);
//if




}

}

 

上一篇:[Java] 58.2 左旋转字符串


下一篇:JS基础知识day6