zoukankan      html  css  js  c++  java
  • 读书笔记- 一切都是对象



                                      本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!


    OO与PO:面向对象(Object Oriented)与面向过程(Procedure Oriented)


    前者面向对象,首先构造一个对象,然后设置对象方法,最后由对象来处理任务,只关注结果。

    后者面向过程,首先设置对象的方法,然后排序,最后一步步执行下来完成任务,注重顺序。


    程序运行时,对象是怎么进行安排的?特别是内存是怎样分配的呢?有五个不同的地方可以存储数据:

    1、寄存器。最快存储区,位于处理器内部,数量有限,以需分配,不受控制。

    2、栈。位于RAM(Random Access Memory - 随机访问存储器),通过指针从处理器获得直接支持,内存分配有效性仅次于寄存吕;向下移则分配新内存,向上移则释放内存。

    3、堆。一种通用内存池(同上位于RAM中),用于存放所有对象,比前者好处是:编译器不需要知道存储数据在堆的存活时间,性比较高,但存储分配和清理会比前者花费更多时间。

    4、常量。通常直接存放在程序代码内部,是安全的,永远不会被改变的。嵌入式系统经常把它放在ROM(Read Only Memory)只读存储器里。

    5、非RAM存储。数据完全存活于程序之外,不受程序控制,没有程序也照样可以存在,是一种聚合关系,如写在SD卡上的数据。


    BigInteger和BigDecimal主要用来表示任意高精度的integer和double数据,商业大数据如阶乘。转化最后用String来表示原始数字,否则会损失精度,而且比较大小也要用compareTo而非equals。由于计算一次就生成一个对象,所以一般的计算建议还用基本数据类型来做。


    一个方法里面如String s=new String("str");在方法结束后,s是要消失的,但它声明的对象还留在内存中,由垃圾回收器进行集中管理。


    javac编译生成.class文件,java执行让classloader加载class输入执行结果


    注意引用与数据是两个概念,不能划等号


    位操作符,&同为1则为1否则为0,|有一个为1则为1,同为0才为0


    移位操作符,“<<”左移低位补0;“>>"右移 符号为正则高位插入0,为负高位插入1;">>>"无符号右移,无论正负高位插入0;移动赋值如">>="。所以">>与">>>"的区别仅在于负数。






  • 相关阅读:
    工具推荐-根据IP地址精确定位经纬度(永久免费)
    VMware与Centos系统安装
    Python 之ConfigParser模块
    Python记录日志模块推荐-loguru!
    Excel 两列单元格合并超级链接的VBA 写法
    Shell脚本日志关键字监控+告警
    Python字符串及基本操作(入门必看)!!
    github release 下载文件慢、或者失败的解决方法
    Python字典及基本操作(超级详细)
    为什么使用 Containjs 模块化管理工具效率高?
  • 原文地址:https://www.cnblogs.com/fengju/p/6174438.html
Copyright © 2011-2022 走看看