day7

数据类型

变量

Java是强语言类型,每个变量都必须声明其类型。

Java变量是程序中最基本的存储单元,要素包括:变量名,变量类型,作用域。

注意:

  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  2. 变量名必须是合法标识符。
  3. 变量声明是一条完整的语句,因此每个声明都必须以分号结束。
public static void main(String[] args) {
        //int a=1,b=2,c=3;不建议,应保证程序的可读性
        int a=1;
        int b=2;
        int c=3;
    	String name = "BB";
        char x = 'x';
        double pi = 3.14;
    }

变量作用域

类变量

//类变量 static
    static double salary = 2500;
 //属性:变量

实例变量

 //实例变量:从属于对象;如果不自行初始化,将变成这个类型的默认值  0或者0.0  初始化为u0000
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null
    String name;
    int age;

局部变量

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

        //局部变量:使用之前必须声明和初始化值
        int i = 10;
        System.out.println(i);

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

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

    }

    //其他方法
    public void add(){

    }

常量

初始化后不能再改变值,可理解为特殊变量。在程序运行中,不允许被改变。

final 常量名 = 值;//常量名一般用大写字符

//final为修饰符,不存在先后顺序,即static final和final static一样
    static final double PI = 3.14;

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

变量名规范

  1. 所有变量、方法、类名:见名知意
  2. 除常量外,变量均遵从首字母小写和驼峰原则:除了第一个单词外,后面单词的首字母都大写,例:monthSalary
  3. 常量:全部使用大写字母,单词之间用下划线:MAX_VALUE
  4. 类名:首字母大写和驼峰原则:GoodMan
  5. 方法名:首字母小写和驼峰原则:runRun()

运算符

算术运算符:+ ,- ,* ,/ ,%(取余),++ (自增),–(自减)

赋值运算符:= ,例: int a = 10; —> 把10赋值给a

关系运算符:> ,< ,>= ,<= ,==(Java中为等于),!=(不等于),instanceof

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

位运算符(只了解):& ,| ,^ ,~ ,>> ,<< ,>>>

条件运算符:? ,:

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

算术运算符

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);//30
        System.out.println(a-b);//-10
        System.out.println(a*b);//200
        System.out.println(a/(double)b);//0.5 //强制转换
        }

赋值运算符

public static void main(String[] args) {
        long a = 1231232123123123L;
        int b= 123;
        short c = 10;
        byte d= 8;

        System.out.println(a+b+c+d);//1231232123123264  
        //long类型     若一个数为long,则结果类型也为long;
        System.out.println(b+c+d);//141
    	//int类型        若没有long,则结果都为int,无论是否有int
        System.out.println(c+d);//18
    	//int类型
    }

关系运算符

public static void main(String[] args) {
        //关系运算符返回的结构:正确或错误      用布尔值
        //if

        int a = 10;
        int b = 20;
        int c = 21;

        System.out.println(c%a);//1
    	// c/a --> 21/10=2...1
        //取余,模运行

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

        System.out.println(a);//4
        //a++ a = a + 1
        int c = ++a;//执行这行代码前,先自增,再给c复制赋值

        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5

        //幂运算 2^3 = 8  很多运算会使用工具类来操作
        double pow = Math.pow(2,3);
        System.out.println(pow);//8.0
    }

逻辑运算符

public static void main(String[] args) {
        //与(and)   或(or)   非(取反)
        boolean a =true;
        boolean b =false;

        System.out.println("a && b: "+(a && b));//flase
        //逻辑与运算:两个变量都为真,结果才为真
        System.out.println("a || b: "+(a || b));//true
        //逻辑或运算:两个变量有一个为真,则结果才为真
        System.out.println("! (a && b) :"+!(a && b));//true
        //如果是真,则变为假,如果是假,则为真

        //短路运算:在&&运算时,若第一项为假,则直接判定,不再进行其他运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d);//flase
        System.out.println(c);//5,短路造成没有运算
    }

位运算符

/*
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 = 16   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

*/
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);//10

    //字符串连接符  + ,String
    System.out.println(a+b+"");//30
    System.out.println(""+a+b);//1020,""顺序在前时,仅仅进行拼接
}

条件运算符

//三元运算符
public static void main(String[] args) {
    // x ? y : z
    //如果x==true,则结果为y,否则结果为z

    int score = 50;
    String type = score < 60 ?"不及格":"及格";//必须掌握
    //if
    System.out.println(type);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值