博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA编程思想第二章读书笔记
阅读量:5901 次
发布时间:2019-06-19

本文共 921 字,大约阅读时间需要 3 分钟。

  第二章的标题就是一切皆对象,在java中用引用操作对象,在java代码中:

1 String s;//这里创建了一个String的引用s,但是没有指向任何的String对象2 s = new String("jiren");//将引用指向通过new创建的String对象3 s.toUpperCase();//通过引用s向它指向的对象发出信息,即通过引用来操作引用指向的对象,将刚刚创建的String对象中的字符变大写。4 String str = new String("hello");//在创建的同时初始化对象。

  对象在java中是存在什么地方的?内存是怎么分配的呢?

  1. 寄存器。这是最快的存储区,它位于处理器的内部,而且数量及其有限,所以我们不能直接控制,是按需分配的。
  2. 堆栈。堆栈位于通用的RAM中,通过堆栈指针来分配或者释放内存,通过堆栈指针的移动来快速有效的分配内存,速度仅次于寄存器,这个地方重要存储java中对象的引用和元数据,在这里,java系统必须知道堆栈内所有项的确切的生命周期,以便来通过移动堆栈指针来释放和分配内存。
  3. 。一种通用的内存池,同样位于RAM中,用于存放所有的java对象。在堆中,java编译器不需要知道存储的数据在堆里的存活时间,这样分配起来比较容易,所以当我们使用new在创建一个新的对象的时候,代码执行,会自动的在堆里进行存储分配。最后他告诉我们的是,灵活是要有代价的,代价就是我们在堆里分配和清理需要比堆栈里面的分配和清理花费更多的时间。
  4. 常量存储。这里存储程序中永远不会改变的常量。
  5. 非RAM存储

  java中的基本类型,主要包含八类,包括boolean,char,byte,short,int,long,float,double,基本类型不用通过new来创建,而且它存储在速度更快的堆栈中,存取起来更加的高效。同时java提供了两个用于高精度计算的类:BigInteget和BigDecimal,前者支持任意精度的整数,后者支持任意精度的浮点数。

 

转载于:https://www.cnblogs.com/jiren/archive/2012/05/23/2515274.html

你可能感兴趣的文章
log4j使用细节
查看>>
linux的文件权限
查看>>
6大设计原则
查看>>
JavaScript与DOM的关系
查看>>
前后背景色及屏幕大小获取
查看>>
谈谈-TabPagerIndicator
查看>>
DrawerLayout和ActionBarDrawerToggle
查看>>
Unity3D--学习太空射击游戏制作(四)
查看>>
"无法从静态上下文中引用非静态变量,非静态方法"
查看>>
Mybatis中的模糊查询
查看>>
sscanf()分割字符数组
查看>>
Hibernate中使用Criteria查询及注解——( EmpCondition)
查看>>
SQL Server 关系表的创建、索引创建和数据插入
查看>>
美图技术博客之地理空间距离计算优化
查看>>
[转载]jquery的extend和fn.extend 区别
查看>>
git的patch 管理
查看>>
Mybatis的ResultMap的使用(转)
查看>>
Ad Hoc
查看>>
Serializable Clonable
查看>>
《mysql数据库备份小脚本》(转)
查看>>