**Java数据类型**

强类型语言

要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

弱类型语言

Java的数据类型分为两大类

基本类型(primitive type)

引用类型(reference type)

[截图]([外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wqm6Vwef-1615131278111)(C:\Users\C\Pictures\Apowersoft\Apowersoft Screen Capture Pro\screenshot_20210307_164303.png)])

什么是字节

位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位数二进制

字节(byte):是计算机中 数据处理的基本单位,习惯上用大写B来表示

1B(byte,字节)=8bit(位)

字符:是指计算机中使用的字母,数字,字和符号

1bit表示1位,

1Byte表示一个字节 1B=8b

1024B=1KB

1024KB=1M

1024M=1G

类型转换

强制转换(类型)变量名 高-----低

自动转换 低--------高

注意点:

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换到低容量时,强制转换

  4. 转换的时候可能存在内存溢出,或者精度问题!

//操作比较大的数时,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money=10_0000_0000;
        int years=20;
        int total=money*years;//-1474836480,计算的时候溢出了
        long total1=money*years;//运算是默认是int,转换不了
        System.out.println(total);
        System.out.println(total1);
        long total2=money*(long)years;//先把一个数转换为long
        System.out.println(total2);
        // L l  转换long类型时,小写的l容易看错,尽量用大写的L

变量

变量是什么:就是可以变化的量

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

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

注意事项

每个变量都有类型,类型可以是基本类型,也可以是引用类型

变量名必须是合法的标识符

变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域

类变量 加了static关键字,从属于类 ,随时随地调用,随着类一起加载,一起消失

实例变量:从属于对象;如果不自行初始化,就是这个类型的默认值

布尔值:默认是false

除了基本类型,其余的默认值都是null

局部变量:必须声明和初始化值

public class HelloWorld {
    static int allClicks=0;  //类变量
    String str="hello world";  //实例变量

    public void method(){
        int i=0;  //局部变量
    }
}

常量

常量(constant):初始化(initialize)后不能再改变值!不会变动的值

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变

public class HelloWorld {
    //修饰符,不分先后顺序
    static final double PI=3.14;
    
    public static void main(String[] args) {
        System.out.println(PI);
    }

常量名一般使用大写字符。

变量的命名规范

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

类成员变量:首字母小写和驼峰原则:monthSalary

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

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

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

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

运算符

Java语言支持如下运算符

算数运算符:

+,-,*,/,%,++,–

public class Demo01 {
    //ctrl+d 复制当前行到下一行
    public static void main(String[] args) {
        //++    --  自增,自减 一元运算符
        int a=3;
        int b=a++;//执行完这行代码后,先赋值给b,再自增
        int c=++a;//执行完这行代码前,先自增,再给b赋值
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        //幂运算 2^3  2*2*2=8  很多运算会使用一些工具类来操作
        double pow=Math.pow(2,3);//2的3次方
        System.out.println(pow);
    }
}

赋值运算符

=

关系运算符:

<,>=,<=,==,!=,instanceof

逻辑运算符:

&&,||,!

//逻辑运算符
public class Demo02 {
    public static void main(String[] args){
        //与(and) 或(or) 非(取反)
        boolean a=true;
        boolean b=false;
        System.out.println(a && b);//false 逻辑与运算:两个变量都为真,结果才为true
        System.out.println(a||b);//true 逻辑或运算:两个变量有一个是真,则结果才为true
        System.out.println(!(a && b));//true 如果是真,则变为假,如果是假则变为真

        //短路运算 判断是否存在短路
        int c=5;
        boolean d=(c<4)&&(c++<4);
        //c<4为true 如果短路,就不会执行后面 如果不短路那么语句执行完后c的值为6
        //++c 是先与4判断,结束了才自增
        System.out.println(d);//false
        System.out.println(c);//5   c没有自增,说明后面的语句没执行
    }
}

位运算符:

&,|,^,~,>>,<<,>>>

    public static void main(String[] args) {
        /*
        * A = 0011 1100
        * B = 0000 1101
        * -----------------
        * A&B= 0000 1100  A与B  如果两边都为1则为1,否则为0
        * A|B= 0011 1101  A或B  如果对应为都是0结果为0,否则为1
        * A^B= 0011 0001  A亦或B  如果这两个位置相同则为0,否则为1
        * ~B=1111 0010    非B  跟B完全相反
        *
        * 2*8=16  2*2*2*2
        * System.out.println(2<<3); //16
        * 位运算效率极高
        * <<   *2
        * >>   /2
        *
        * 0000 0000 0
        * 0000 0001 1
        * 0000 0010 2
        * 0000 0011 3
        * 0000 0100 4
        * 0000 1000 8
        * 0001 0000 16
        * */
        
    }

条件运算符

?:

//三元运算符
public class Demo05 {
    public static void main(String[] args) {
        //x?y:z
        //如果x==true,则结果为y,否则结果为z
        int score=80;
        String type=score>=60?"及格":"不及格";
        System.out.println(type);//及格
    }
}

扩展赋值运算符:

+=,-=,*=,/=

    public static void main(String[] args) {
        int a=10;
        int b=20;
        a+=b;//a = a+b 30
        a-=b;//a = a-b -10
        System.out.println(a);

        //字符串连接符
        System.out.println(a+b);//30
        //只要其中有String,就会把它们转换成字符串进行拼接
        System.out.println(""+a+b);//1020
        //如果字符串在前面,后面的值会进行拼接,如果在后面,前面的依旧会进行运算
        System.out.println(a+b+"");//30

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值