1.String对象和常量池 2.基本数据类型和封装类(128以下等不做缓存)

序言:

基础知识:

1.java的基本类型:

   字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double

2.引用类型

   Java有 5种引用类型(对象类型):类 接口 数组 枚举 标注

   引用类型:底层结构和基本类型差别较大

JVM的内存空间:

(1). Heap 堆空间:分配对象 new Student()

(2). Stack 栈空间:临时变量 Student stu

(3). Code 代码区 :类的定义,静态资源 Student.class

eg:Student stu = new Student(); //new 在内存的堆空间创建对象

stu.study(); //把对象的地址赋给stu引用变量

   上例实现步骤:

      a.JVM加载Student.class 到Code区

      b.new Student()在堆空间分配空间并创建一个Student实例

      c.将此实例的地址赋值给引用stu, 栈空间

3.字符串常量池和数据模型

4.别跟斯特拉夫斯基扯淡枚举是什么!类类类!

             经典的图片

                                                   

5.存储值得知识:数据结构

Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:

  • 枚举(Enumeration)
  • 位集合(BitSet)
  • 向量(Vector)
  • 栈(Stack)
  • 字典(Dictionary)
  • 哈希表(Hashtable)
  • 属性(Properties)

以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection)

枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。例如,枚举定义了一个叫nextElement 的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。


6.例子探讨

   /**
     * 字符串判断
     * 1.== 和!=的使用对象是同一个对象的比较
     * 2.当不确定字符串是否是常量池的对象的时候,使用equals()比较
     * 3.正常情况下都是常量池的字符串!!!
     */
    public void setStr() {
        //String a = new String("");//那个叫兽会这样做?
        String a = "";
        PackageInfo packageInfo = new PackageInfo();//一个
        packageInfo.setRemark(a);
        if (packageInfo.getRemark() == "") {
            System.out.println("同一个对象!");
        } else {
            System.out.println("不是同一个对象!");
        }
    }


总结:

         1.了解创建一个基本数据类型和对象的区别,内存区别,存的位置(栈 堆),初始化大小,都和JMM模型有关联

         2.对于特殊的字符串对象,它提供了一个琦葩的方法创建对象,因为他不是基本数据类型,总得有个构造器去创建

         官方的解析:

    

    /**
     * Initializes a newly created {@code String} object so that it represents
     * the same sequence of characters as the argument; in other words, the
     * newly created string is a copy of the argument string. Unless an
     * explicit copy of {@code original} is needed, use of this constructor is
     * unnecessary since Strings are immutable.
     *
     * @param  original
     *         A {@code String}
     */
    public String(String original) {
        this.value = original.value;
        this.hash = original.hash;
    }
      重点都红色标出来了,回去背书吧,original:原始的,原件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值