『Java编程思想-第四版』第二章:一切都是对象

Java编程思想-第四版学习总结,此为第二章:一切都是对象.

    package com.w3cjava.second;
    @SuppressWarnings("all")
    public class Second {  

        /**
         * Java编程思想(第四版)
         * 第2章  一切都是对象
         * @param args
         */
        public static void main(String[] args) {
            /**
             * 2.1  用引用操作对象
             *      遥控器(引用)操作电视机(对象),改变音量,改变频道
             *
             *      即使没有电视机,遥控器也是可以独立存在的,
             *      因此,引用也是可以独立存在的,并不一定要与某个对象关联,但是如果你要对这个引用操作,此时就会报运行时错误。
             *      如果要对这个引用操作,则需要在创建这个引用的同时就初始化这个引用。
             */  

            String s1;//未初始化
            /**
             * 创建String类型的引用s1未初始化,此时会出现运行时错误
             * System.out.println(s1);
            */
            String s2="abcd";  

            String s3 = new String();
            String s4 = new String("abcd");
            /**
             * 创建String类型的引用s2初始化,String类型的可以通过带引号的文本初始化
             */
            System.out.println(s2);
            System.out.println(s3);
            System.out.println(s4);  

            /**
             * 2.2  必须由你创建所有对象
             * 2.2.1存储位置
             *      1、寄存器       :位于处理器内部,存储速度最快,但数量有限,按需分配,不能直接控制。
             *      2、堆栈        :位于RAM中,存储速度仅次于寄存器,通过堆栈指针可以从处理器获得直接支持,指针向下移动,分配新的内存,反之,释放内存。
             *                    创建程序时,Java必须知道存储在堆栈内所有项的生命周期,以便堆栈指针的上下移动。
             *                    某些Java数据存储于堆栈中---特别是对象引用,但Java对象并不存储其中。
             *      3、堆     :通用的内存池,位于RAM内,用于存放所有的Java对象。存储数据无需像堆栈那样知道生命周期。
             *                    当需要一个对象时,new写一行简单的代码即可,当执行这行代码时,会自动在堆里进行存储分配。
             *      4、常量存储  :位于程序代码内部。
             *      5、非RAM存储    :位于程序之外
             *                    流对象---对象转化为字节流
             *                    持久化对象---对象存放到磁盘上
             *
             * 2.2.2特例:基本类型
             *      无需new来创建变量,而是创建一个并非是引用的“自动”变量,这个变量直接存储“值”,并置于堆栈中,因此更加高效。确定每种基本类型所占存储空间的大小,大小不变。都具有包装器类型。
             *      char c =‘x‘;
             *      Character character=c;
             *      System.out.println(character);
             * 高精度数字:
             *      BigInteger:支持任意精度的整数.
             *      BigDecimal:支持任何精度的定点数.
             *
             * 自动包装功能将自动地将基本类型转换为包装类型
             * Character m = ‘k‘;
             * 也可反向转换
             * char l = m;
             *
             * 2.2.3Java中的数组:
             *      C/C++       :数组--内存块,如果程序访问自身内存块之外的数组或数组初始化前使用内存,都会产生难以预料的后果。使用数据危险。
             *      Java        :使用数组安全。Java数组会被初始化,而且不能在它的范围之外被访问。
             */
        }  

        /**
         * 2.3  永远不需要销毁对象
         * 2.3.1作用域:决定了定义其内的变量名的可见性和生命周期。
         * 2.3.2对象的作用域:new出来的对象,只要需要,就会一直保留下去。(如下方法体力new一个String类型的对象,方法运行完,s的引用就会消失,但是new String("ssss")出来的对象并不会立即消失)
         *      如果Java让对象一直存在,那么靠什么才能防止这些对象填满内存空间,进而阻塞你的程序呢?
         *      Java垃圾回收器,监控new创建的所有对象,辨别那些不再被引用的对象,释放这些对象的内存空间。避免了内存泄漏问题。
         */
        public void scope(){
            String s = new String("ssss");
            return;
        }  

        /**
         * 2.4  创建新的数据类型:类
         *      描述某一类对象的外观和行为.
         * 2.4.1字段和方法
         *      字段:任何类型的对象
         *      方法:做某些事情的方式
         * 2.5. 方法/参数/返回值
         *      return :已经做完,离开此方法,若返回类型为void,则return关键字的作用只是用来退出方法.
         * 2.6  构建一个Java程序
         *
         */
        NewClass newClass = new NewClass();
    }  

    class NewClass{  

    }
时间: 2024-10-13 13:54:10

『Java编程思想-第四版』第二章:一切都是对象的相关文章

java编程思想 第四版 第六章 个人练习

练习1:(1)在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例. import mil.oms.main.test.Test; public class MainTest { public static void main(String args[]){ Test test=new Test(); } /** 运行结果 Test()实例化-- */ } package mil.oms.main.test; public class Test{ public Test(){ Syst

java编程思想第四版第五章习题

创建一个类, 它包含一个未初始化的String引用.验证该引用被Java初始化成了null package net.mindview.initialization; public class Test1 { public String str; public static void main(String[] args) { Test1 t = new Test1(); System.out.println(t.str); } } 返回结果 null 创建一个类, 它包含一个在定义时就被初始化了

Java编程思想第四版 *第五章 个人练习

练习3:(1)创建一个带默认构造器(即无參构造器)的类.在构造器中打印一条消息.为这个类创建一个对象.P116 public class Test{ public Test(){ System.out.println("Hello Word"); } public static void main(String[] args) { new Test(); } /** * 执行结果 Hello Word */ } 练习4:(1)为前一个练习中的类加入一个重载构造器,令其接受一个字符參数.

java编程思想第四版第9章

练习3: public class MainTest { public static void main(String args[]){ Bcycle b=new Bcycle(); b.print(); } /** * 输出: * --Bcycle-------47 * ----print-----47 */ public static void p(String str){}; } abstract class Cycle{ public abstract void print(); } c

Java编程思想第四版*第七章*个人练习

练习1:(2)创建一个简单的类.第二个类中,将一个引用定义为第一个类的对象.运用惰性初始化来实例化 这个对象. package test; public class Manager { public static void main(String args[]){ Second s=new Second(); s.getFirst(); } /** * 打印结果: */ } class First{ } class Second{ First f; Second(){ System.out.pr

JAVA编程思想第四版第10章

练习1 /** * 第10章 * 练习1 * @author zhtt * */ public class Test { public static void main(String[] args) { Outer outer=new Outer(); Outer.Inner inner=outer.getInner(); System.out.println(inner); /** * 输出: * [email protected] */ } } class Outer{ class Inne

java编程思想第四版中net.mindview.util包下载,及源码简单导入使用

在java编程思想第四版中需要使用net.mindview.util包,大家可以直接到http://www.mindviewinc.com/TIJ4/CodeInstructions.html 去下载,并按照所在页面的操作进行操作.当然也可以直接我下载下面的链接,下载的直接是JAR包,可以直接导入并使用: net.mindview.util包:百度网盘:点击下载  密码: ggpi java编程思想第四版源码:百度网盘:点击下载  密码: ur3e 下面我简单的介绍一下源码在Eclipse中的导

Java编程思想第四版读书笔记——第十三章 字符串

Java编程思想第四版读书笔记--第十三章 字符串 字符串的操作是计算机程序设计中最常见的行为. 关键词: StringBuilder ,StringBuffer,toString(),format转换,正则表达式, 1.不可变String String对象时不可变的.每当把String对象作为方法的参数时,都会复制一份引用.(其实就是对函数中参数列表中参数的操作不会影响外面的原参数) 如下: import static net.mindview.util.Print.*; public cla

JAVA编程思想第四版第九章

练习14:创建三个接口,每个接口包含两个方法.继承出一个接口,它组合了这三个接口并添加一个新方法.创建一个实现了该新接口并继承了某个具体类的类.现在编写四个方法,每一个都接受这四个之一作为参数.在main()方法中,创建这个类的对象,并将其传递给这四个方法. package inter; public class Test { public static void main(String[] args) { D d=new D(); d.a(d); d.b(d); d.c(d); d.abc(d