『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{
	
}


©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页