Java学习笔记day04——变量,操作符,类型转换

本文深入讲解Java中的类、对象、变量、操作符、类型转换等核心概念,通过实例解析类的定义、对象的创建及使用,详细介绍各种操作符的功能与用法,并探讨基本与引用类型间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复习:
    1.类
        一类相同的事物,共有的特点以及行为的模板
        package XXX;
        import XXXX;
        public class XXX{
            属性的定义;
                修饰符 数据类型 属性名;
            方法的定义;
                public 返回类型 方法名
        }
    2.对象(实例)-------------实质就是堆区中的一块内存地址
        使用某个模板创建出一块内存空间,保存模板中的数据
    类与对象的关系
        对象.属性()
    新的变量的定义
        数据类型 变量名 = new 构造器();
    访问属性
        变量名.属性名/方法名() ;
一.变量
        实例变量(属性,成员)-哪里有对象就可以在哪里使用对象的属性
          

 public class Stu
            {
                public String name;
                public void say()
                {
                    System.out.println(name);
                }
            }


            new Stu();
                1.先去堆区申请一块空间
                2.复制模板中的属性和方法到申请的空间中,同时会给属性一个初始值
                3.调用Stu的构造器,尝试初始化自己赋值
                4.对象构建完成,将该对象在内存中的保存地址返回
            1.位置
                类的内部,方法的外部
            2.访问的范围
            3.默认值
                类中的变量一旦声明,如果我们没有显式赋值,每种变量都有自己的默认值
            
            4.声生命周期    从开始创建到变量被销毁就是一个生命周期
                实例对象的生命周期伴随对象的产生而产生,伴随对象被GC回收消失
                
        局部变量
            1.位置
                参数 方法内部 方法内部的代码块
            2.作用范围
                从声明局部变量的位置开始到这个变量直接所属的代码块结束
            3.默认值
                局部变量无默认值,会报错
            4.声明周期
                从局部变量声明开始,到他直接所属的大括号结束,局部变量就会被销毁
                
二.操作符
    1.赋值操作符
        =    *=    /=    %=    +=    -=
        注意:
            a++ 先使用,后自增
            ++a 先自增,后使用
    2.比较操作符
        所有的比较操作符都会返回一个布尔类型的值
            > >= < <=
            只适用于比较整数类型和浮点类型
            只会比较数值,与数据类型无关
            
            instanceof
                用法:对象 instanceof 引用数据类型
                判断前面的对象能不能用后面的引用数据类型去接收

public class InstanceOfTest
{
	public static void main(String[] args)
	{
		int a = 10;
		//对象 instanceof 某一个引用数据类型
		//基本数据类型可以用包装器,之后会讲
		String str = "Hello";
		System.out.println(str instanceof String);
		System.out.println(str instanceof Object);//Object 是超父类,所有的爹
//		System.out.println(str instanceof InstanceOfTest);//完全就是两个不同的类,返回false,但java升级后就会报错

	}
}

 
    3.相等操作符
        == !=
        除了可以表示数值,还可以表示引用类型
        1.基本数据类型比较的是值本身,与类型无关
        2.比较引用数据类型时是比较的他的内存地址,所以地址值相等的时候才会返回true
        e.q: int a = 10;
             byte b = 10;
             System.out.println(a==b); //返回值为true
    4.相加操作符
        + : 数据类型相加或者字符串相加
            1.加法表达式为同一种数据类型
                int a = 10 + 20 + 30; // int来接收

public class Sum
{
	public static void main(String[] args)
	{
		//整个表达式中同一种数据类型
		//正常接收
		int a = 10+ 10;
		float b = 10.0f;
		float c = 10.0f;
		float d = b + c ;
		//数值计算中特殊的
		byte a1 = 10;
		byte a2 = 10;
//		byte a3 = a1 + a2;
//		short a4 = a1 + a2;
		int a5 = a1 + a2;
		short b1 = 100;
		short b2 = 100;
//		short b3 = b1 + b2;
		int b4 = b1 + b2;
		
		System.out.println("----------");
		//同一个表达式中都是数值但是类型不同,选取整个表达式最大的数据类型接收
		int val1 = 10;
		byte val2 = 10;
		float val3 = 10.0F;
		double val4 = 10.0D;
		double val5 = val1 + val2 + val3 + val4;

		//字符串拼接
		//如果表达式加号两边只要有一边出现字符串,这时会将不是字符串的一方,这时会将不是字符串的一方先转换成字符串,然后做字符串拼接运算
		System.out.println(10+20+"Hello");
		System.out.println(true+"Hello"+10);
		System.out.println(10+"hello"+20);
		
	}
}


                
                两个byte加,用int
                两个short加,用int
                byte a = 10;
                byte b = 10;
                short c = 10;
                short d = 10;
                int f = c + d;        
                int a = a + 10;
    5.移位操作符
        >> :算术右移操作符,带符号右移
        正数取反加 1得到其对应的负数,负数取反加1得到其对应的正数
        因为正数右移后补0,负数右移后补1
        int a1 = 8 >> 2 //2 (8除以2的2次方)
        int a5 = -8 >> 1;//-4
        0000 1000
        1111 0111 取反
        1111 1000 +1
         111 1100 >> 1
        1111 1100 -8
        0000 0011
        0000 0100
        1000 0100 //-4
        >>> :逻辑右移操作符,不管正数负数都补0
        << : 左移位运算,也称为不带符号左移位运算


    6.位运算操作符 均是先转化成二进制,然后再计算
        & 与运算
        | 或运算 与运算和或运算也可用于布尔运算,但一般不用
        ^ 异或运算 同为1得0,同为0得1
        ~ 取反运算
    7.逻辑操作符
        短路操作符 如果根据左边就可以推算出整个表达式的布尔值,将不执行操作符右边的布尔表达式
        短路与    && 左边false,则忽略右边直接整体false
    8.三目运算符 等价于if else
        布尔表达式 ? 表达式1:表达式2
        如果布尔为true,则表达式1,false则表达式2
        Object res1 = (score>= 60 ? "true" : false)
        Object可同时接收两个类型的数据
三.类型转换
    1.基本类型之间的转换
        隐式转换(自动转换)
            把较小的数据类型用较大的表示
            byte a = 10;
            int b = a;
        显式转换
            把较大的数据类型用较小的数据类型接收需要显示转换
            -----------------------
            int a = 10;
            byte b = (byte)a;
            ------------->>>转换后果自负,有风险!
            
        
    2.引用类型之间的转换(要结合继承来进行转换)
    
        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值