首页 > 编程语言 >HeadFirst Java-Kathy Sierra

HeadFirst Java-Kathy Sierra

时间:2023-12-13 10:57:02浏览次数:25  
标签:Kathy HeadFirst java 变量 文件 对象 Sierra 序列化 方法

  1. 当某个对象被java虚拟机察觉不会被使用到,该对象就会被标记成可回收的。如果内存开始不足,垃圾收集器就会启动来清理垃圾、回收空间,让空间能够再次被利用。
  2. 任何变量只要加上public、static和final,基本上都会变成全局变量取用的常数。
  3. 事实上没有对象变量这样的东西存在,只要引用到对象的变量,对象引用变量保存的是存取对象的方式。
  4. 数组是个对象,不管里面放的是不是primitive主数据类型。
  5. java是通过值传递的,也就是通过拷贝传递,方法无法改变调用方所传入的参数。
  6. 在创建一个类之前我们需要写出下面三种东西:伪码、测试码、真实码。
  7. 标准版的扩展都以javax作为包名称的开头。
  8. import和C的include并不相同,运用import只是帮你省下每个类前面的包名称而已。程序不会英文用来import而变大或变慢。
  9. 抽象类的产生源于有些类不应该被初始化,比如动物类应该是什么?
  10. 任何从ArrayList<Object>取出的东西都会被当作Object类型的引用而不管它原来是什么。而且编译器是根据引用类型来判断哪些方法可以调用,而不是根据Object实际的类型。
  11. 多重继承会产生“致命方块"问题,即两个及以上的直接父类拥有相同的方法,子类不知道应该调用哪个方法。
  12. 接口解决致命方块的方法很简单:把全部方法设为抽象的,如此一来,子类就得实现这个此方法,因此java虚拟机在执行期间就不会搞不清楚要用哪一个继承版本。
  13. 在java中,程序员会在乎内存中的两个区域:对象的生存空间堆(heap)和方法调用及变量的生存空间(stack)。
  14. 不管对象是否声明或创建,如果局部变量是个对该对象的引用,只有变量本身会放在栈上,对象本身只会存在于堆上。
  15. 实例变量声明在类中方法之外的地方,局部变量声明在方法或方法的参数上。
  16. 构造函数在执行的时候,第一件事是去执行它的父类的构造函数,这会连锁反应到Object这个类为止。因为如果我们没有调用super(),编译器会帮我们加上super()的调用。
  17. 基本数据类型有默认值,而包装类则没有默认值。
  18. 编译器不会注意RuntimeException类型的异常,它所关心的是称为检查异常的异常。
  19. 内部类可以使用外部所有的方法和变量,就算是私有的也一样可以使用。
  20. 如果某实例变量不能或不应该被实例化的,因为有些变量要在执行期当场创建才有意义。这个时候需要把它标记为transient(瞬时)的,transient的引用变量会以null返回,而不管存储当时它的值是什么。恢复时会被赋值为null的对象引用或基本数据类型的默认值。
  21. 一个不可序列化的父类,其子类可以是可序列化的。
  22. 解序列化时新的对象会被配置到堆上,但构造函数不会执行,不然会抹去对象的状态。
  23. 静态变量不会被序列化,因为所有对象都是共享同一份静态变量值。当对象还原时,静态变量会恢复成类中原本的样子,而不是存储时的样子。
  24. 将FileWriter链接到BufferedWriter可以提升效率,因为BufferedWriter可以暂存一堆数据,然后到满的时候再实际写入键盘,这样可以减少对磁盘的操作。
  25. File对象代表文件的路径,而不是文件本身。
  26. 对象的状态并非只能用序列化来存储,也可以使用transient修饰存储。
  27. java的好处就在于大部分的输入/输出工作并不在乎链接串流的上游实际是什么。也就是说可以使用BufferedReader而不管是来自串流来自文件或socket。
  28. 调度器在不同的java虚拟机上有不同的做法,就算是同一个程序在同一台机器上运行也会有不同的遭遇。
  29. 对泛型来说,extends这个关键词代表"是一个......",且适用于类和接口。
  30. hashcode是用来缩小寻找成本的,但最后还是要用equals()才能认定是否真的找到了相同的项目。如果两个对象有相同的hashcode值,它们不一定是相等的。但若两个对象相等,则hashcode值一定要相等。
  31. 数组的类型是运行时检查的,但集合的类型检查只会发生在编译期间。
  32. JAR就是JavaARchive,这种文件是个pkzip格式的文件,它能让你的一组类文件包装起来,所以交付时只需一个JAR文件。
  33. JWS(Java Web Start)程序由两个部分组成:可执行的JAR文件和.jnlp文件。.jhlp文件是用来描述JWS应用程序的XML文件,它有target指定JAR的名称和位置,以及带有main()的类名称。

标签:Kathy,HeadFirst,java,变量,文件,对象,Sierra,序列化,方法
From: https://www.cnblogs.com/xiqin-huang/p/17898570.html

相关文章

  • HeadFirst设计模式学习之责任链模式
    【一】介绍引入当你想要让一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式(ChainofResponsibilityPattern)。【二】场景引入自从推出Java版本的糖果机之后,万能糖果公司收到的电子邮件数量已超出他们所能处理的范围。据他们自己分析,所收到的电子邮件有四类:......
  • HeadFirst设计模式学习之OO设计模式入门
    【一】引入---鸭子无论在哪门编程语言中,都离不开我们最熟悉的鸭子模型,因此作者在引入部分也是利用鸭子作为案例引入我们进行入门的学习【1】鸭子游戏现在我们需要做一款模拟鸭子游泳的游戏在游戏中,有不同的鸭子,不同的鸭子都会游泳和呱呱叫而这款游戏的实现思路就是一......
  • Oracle脚本大全(Carlos-sierra)
    https://github.com/carlos-sierra/cscriptsCSScriptsInventorybyType(2023-07-29)LatencyLoadSQLPerformanceSPBL-SQLPlanBaselinesSPRF-SQLProfilesSPCH-SQLPatchesSessionsKillSessionsBlockedSessionsLocksSpaceReportingSpaceMaintena......
  • DLMS Activity Calendar CIMA / SIERRA
    www.daq-iot.com [email protected]__________________________________________________________1.1 ActivityCalendarTheactivitycalendarclassistypicallyusedtohandledifferenttarifficationstructures.Itisadefinitionofscheduledactionsinsi......
  • HeadFirst设计模式之观察者模式学习
    一、观察者模式的定义:观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者,都会收到通知并自动更新。 二、我个人对于观察者模式的理解:当主题发生改变......
  • HeadFirst设计模式-迭代器模式
     迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。   Java例子packagei_IteratorPattern_CompositePattern;importjava......
  • HeadFirst设计模式-模板方法模式
     模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。   ***......
  • macOS 10.12 Sierra Xocde 8.0官方下载地址抓包 Window可以直接下载
    macOS10.12Sierra ​​http://osxapps.itunes.apple.com/apple-assets-us-std-000001/Purple62/v4/af/5f/9d/af5f9d8e-cf9c-8147-c51c-c3c1fececb99/jze14258809742......
  • HeadFirst设计模式-观察者模式
    观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所有依赖者都会收到通知并自动更新。   Java代码 c++代码#pragmaonce#include"......
  • HeadFirst设计模式-装饰者模式
     C++代码#pragmaonce#include<string>usingstd::string;classBeverage{public:Beverage(){}virtual~Beverage(){}......