`
pianyao
  • 浏览: 1901 次
  • 性别: Icon_minigender_1
  • 来自: 太原
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java基础备忘录(随时更新中)

阅读更多


Java基础备忘录
(mainly based on Van Der Linden's book: Just Java 2, 4ed)

  1. Object的方法
    1. public native int hashCode()   散列码是一个能够唯一的表示单个对象的值。最简单的是,采用对象的内存地址作为它的散列码。散列码用作HashTable 的key,从而使任何对象可以放入HashTable。
    2. public boolean equals(Object obj)  当重写自定义类的equals()时,也应当重写hashCode()方法以确保等价的对象能获取同一个散列码。如果不这样做,在操作Collection类中的某些数据结构时,自己的对象将会出现莫名其妙的错误。
    3. protected native Object clone() throws CloneNotSupportedException  为所有Java类提供默认的浅克隆实现,即:如果该类中含有其他对象的引用,则仅复制引用本身。而另一种递归克隆所有引用的克隆方式称为深层克隆(deep clone),实现deep clone需要重写类的clone()方法。
  2. 基本数据类型 (char, boolean, byte, short, int, long, float, double)
    1. 基本类型转型 时,不可直接将高精度类型(机器内占用位数多)赋给低精度类型,但对给char赋值的整数(int)例外。
      • char a = 0x892; char b = 982; char c = (char)70000; //超出范围则需强制(显式)转型  char d = (char)-98; //Ridiculous, but legal  
      • char c = (char)(c+13);// the cast is required 
      • 总结:赋值时,如果=右边给一个确定的值,编译器可以检查出右操作数是否超出左操作数允许的范围,从而判断是否需要显式的转型;如果没有给一个确定的值,比如,包含运算(即使全是常量的运算),包含变量,则必须显式转型。
      • char变量可以直接赋值到所有算术类型:byte, short,  【对前2个,超过2^15-1的数呢?】 int, long, float, double.
      • 【char es = (byte)8;char es = 8;也都合法,解释理由:_______】
    2. Java中所有6种数字类型都是有符号数 ,最左边的位(最高有效位)表示符号,其余位表示值, 采用2的补数表示法,现代大部分CPU都是这样表示的【What? How? Why?】 。0被村委正的2进制数,因此整数最大数的绝对值比负数少1.【那么,对于byte: 10000000和11111111,各代表什么呢?】
    3. 为加速内存访问, Java采用字节(8位)存储每个布尔数 ,但在计算运行时,却不一定是这样(与虚拟机实现有关),例如,SUN的JVM会在把布尔值压入栈中时,将含它的字符(8位)提升到一个32位整数。至少,不要认为布尔值是个1位长的数据类型且会节省空间。【P28: 如果用户在欧洲国家使用计算机,Java将会自动地从16位转换到8位字符集。【HOW???如何手工转换呢?】
    4. Java支持16位Unicode字符集,
  3.   类的初始化顺序

           a)          对于 单独一个类 ,初始化的顺序是:

           1.          静态变量

           2.          静态初始化块

           3.          非静态变量

           4.          非静态初始化块

           5.          构造函数

        b)         父子继承关系中 的初始化顺序是:

           1.          父类 -- 静态变量

           2.          父类 -- 静态初始化块

           3.          子类 -- 静态变量

           4.          子类 -- 静态初始化块

           5.          父类 -- 变量

           6.          父类 -- 初始化块

           7.          父类 -- 构造器

           8.          子类 -- 变量

           9.          子类 -- 初始化块

           10.      子类 -- 构造器

           11.    

        可见, 并不是父类完全初始化完毕后才进行子类的初始化 ,实际上子类的静态变量和静态初始化块的初始化是在父类的变量、初始化块和构造器初始化之前就完成了。     


分享到:
评论

相关推荐

    小小工具箱-(备忘录,日历,倒计时)(java源代码)

    【标题】:“小小工具箱-(备忘录,日历,倒计时)(java源代码)”揭示了这是一个基于Java编程语言开发的多功能小型应用。这个应用集成了三种常见且实用的功能,分别是倒计时、日历以及备忘录。开发者通过Java技术...

    基于android的多功能备忘录的设计与实现毕业论文(设计).doc

    综上所述,《基于Android的多功能备忘录的设计与实现》不仅涵盖了Android开发的基础知识,如系统架构、API使用、Intent和生命周期,还深入探讨了备忘录应用的特色功能实现,如多媒体支持和提醒机制。这款应用旨在...

    记录查询器(备忘录,记事本,学习记录器)

    它集成了"备忘录"、"记事本"和"学习记录器"等多种功能,适用于那些希望保持条理和效率的用户。这款软件的核心价值在于其强大的记录和查询能力,使得用户能够轻松存储和快速找回那些容易遗忘但又至关重要的细节。 ...

    Android记事本、安卓备忘录.rar

    "Android记事本、安卓备忘录"是一款简单的Android应用,它允许用户创建个人笔记,对其进行编辑,并可随时查看或删除。这个项目的核心功能包括: 1. 添加记录:用户能够输入文本,点击保存按钮创建新的记事。 2. ...

    基于android的多功能备忘录的设计与实现大学本科毕业论文.doc

    基于 Android 的多功能备忘录的设计与实现 Android 操作系统是当前最流行的移动操作系统之一,它的开源和免费特点使其在移动应用开发中具有很高的实用性和市场前景。基于 Android 平台的备忘录应用程序可以满足...

    基于C++的网页版备忘录系统.zip

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同...

    VB工作备忘录设计与实现(源代码+系统).rar

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步...

    基于VB开发的工作备忘录设计与实现(源代码+系统).rar

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步...

    基于VB开发的工作备忘录设计与实现(源代码+系统+毕业设计).rar

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步...

    毕设&课设&项目&实训-C#大作业:基于旅游场景的备忘录.zip

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同...

    java常用的二十三种设计模式

    备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。该模式适用于需要保存和恢复数据的相关状态场景中。 **应用场景:** - ...

    从追MM谈JAVA的23种设计模式

    19. **备忘录模式(Memento)**:在追求过程中,记录每个关键时刻,备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,以便以后恢复。 20. **状态模式(State)**:随着与MM关系的发展,你们的状态可能...

    Android课程设计报告

    - **电子邮件的重要性**:电子邮件是互联网中最基础且重要的组成部分之一,其便捷性和即时性使其成为日常沟通不可或缺的工具。 - **移动邮件客户端需求**:为了满足用户随时随地收发邮件的需求,开发一款适用于...

Global site tag (gtag.js) - Google Analytics