Java学习笔记4 引用数据类型

Java基础语法

引用数据类型

  1. 基本的数据类型和引用的数据类型(绝大多数情况)
基本数据类型引用数据类型
存放位置栈内存地址(引用)存在栈内存,内容存在堆内存
赋值方式用=直接赋值用new创建对象赋值

String和Integer都是引用的数据类型

  1. 包装器类型
原始数据类型包装器类型
byteByte
shortShort
IntInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
  1. 包装器和原始的数据类型之间的转换
    自动装箱和拆箱
public class Test6Integer {
    public static void main(String[] args) {
        //自动装箱
        int num1=12;
        Integer i=num1;
        //自动拆箱
        Integer i2=new Integer(120);
        int num2=i2;

        //int num3=10;
        //使用包装器类型
        Integer integer1=new Integer(10);
        //可以调用方法
        integer1.toString();
        System.out.println(integer1);

        //数据类型转换
        String s="123";
        System.out.println(s+10);  //字符串拼接
        //需要把String转换成int
        int num=Integer.parseInt(s);
        System.out.println(num+10);  //数据运算

    }
}

  1. • 引用类型只有String和Integer使用=赋值;
    • 除了String、包装器类(共8个)外,都需要使用new 关键字;
    • 引用类型可以使用==、!=进行比较,比较的是引用类型的对象的地址,不是内容;
    • 引用类型不能使用>、>=、<=、<进行比较;
    • 当只声明了一个引用类型变量,却没有为其赋值,则此时该变量为null;并且不能调用方法,会报空指针异常
public class Test9 {
    static String s;
    public static void main(String[] args) {
        System.out.println("String类型的默认值:"+s);//null
        //为null时,不能调用方法,会报空指针异常
    }
}
  1. String类型内容比较
public class Test7 {
    public static void main(String[] args) {
        //方式1
        String s1=new String("abc");
        String s2=new String("abc");

        System.out.println("s1==s2吗?   "+(s1==s2));  //false
        //原因:引用类型==比较的是地址;s1和s2new了两块不同的空间
        //String str = new String();会到堆中开辟新的空间
        //String str =””;会使用常量池

        //String字符串内容的比较用equals
        System.out.println("s1.equals(s2)?   "+s1.equals(s2));  //true

        //方式2
        String s3="aaa";
        String s4="aaa";

        System.out.println("s3==s4吗?   "+(s3==s4));   //true
        //对于字符串,直接=赋值,是使用常量池,常量池中有相同的值,就不会再创建相同的值。
    }
}

  1. Integer类型内容比较
public class Test8 {
    public static void main(String[] args) {
        //方式1 
        Integer i1=new Integer(2);
        Integer i2=new Integer(2);

        System.out.println("i1==i2?   "+(i1==i2)); //false

        //方式2 
        Integer i3=10;
        Integer i4=10;

        System.out.println("i3==i4?   "+(i3==i4));  //true

        //方式3 
        //Integer用=直接赋值,只有在byte范围内,才使用常量池;byte:-128~127
        //Integer i1=new Integer();会到堆中开辟新的空间
		//Integer i1=123; 会使用常量池  注意:-128到127
        Integer i5=128;
        Integer i6=128;

        System.out.println("i5==i6?   "+(i5==i6));   //false
    }
}
  1. 数据输入输出
import java.util.Scanner;
public class Test10 {
    /**
     * 数据输入输出
     */
    public static void main(String[] args) {
        //步骤1:创建Scanner对象
        Scanner input = new Scanner(System.in);

        //步骤2:提示用户
        System.out.println("请输入您的年龄:");

        //步骤3:接收输入的数据
        int age = input.nextInt();

        System.out.println("接收到的数据:"+age);

 		System.out.println("请输入您的姓名:");
        String name = input.next();
        System.out.println("接收到的数据:"+name);

    }
}
  1. 在JDK1.5之后,Java中多了一个新的类型-枚举;
    • 枚举也是一种引用类型
    • 使用enum关键值可以声明一个枚举;
public enum Item0302 {
MON, TUE, WED, THU, FRI, SAT, SUN;
}
  1. 在JDK1.5之后,Java中增加了注解(Annotation);
    • 注解也称为元数据,是和类、接口、枚举,并列的一种引用类型;
    Java API中定义了系列注解类型,称为内置注解,如下所示的@Override
@Override
public String toString() {
     return super.toString();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值