• 读书笔记- 一切都是对象




                                      本文来自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;移动赋值如">>="。所以">>与">>>"的区别仅在于负数。






  • 相关阅读:
    Hdu 5396 Expression (区间Dp)
    Lightoj 1174
    codeforces 570 D. Tree Requests (dfs)
    codeforces 570 E. Pig and Palindromes (DP)
    Hdu 5385 The path
    Hdu 5384 Danganronpa (AC自动机模板)
    Hdu 5372 Segment Game (树状数组)
    Hdu 5379 Mahjong tree (dfs + 组合数)
    Hdu 5371 Hotaru's problem (manacher+枚举)
    Face The Right Way---hdu3276(开关问题)
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6147371.html
Copyright © 2020-2023  润新知