Java学习笔记

  1. 代码点与代码单元 codePoint codeUnit 这里当字符串中有辅助字符时,代码点是两个代码单元,需要以下遍历:

     int cp = sentence.codePointAt(i);
     if(Character.isSupplementaryCodePoint(cp)){
          i += 2;
     }else{
          i++;
     }
     

  2. String类对象->不可变字符串 不能修改字符串中的字符:编译器可以将字符串共享,以此带来高效率。

  3. 当将一个字符串与一个非字符串的值进行拼接时,后者将被转换成字符串。
  4. 任何一个对象都可以转换成字符串。
  5. 检测两字符串是否相等,而不区分大小写,可用equalsIgnoreCase()方法
  6. Java中允许一个数组长度为0,不同于null。
  7. Java中的多维数组实际上是数组的数组。
  8. 一个对象变量实际上是一个对象指针。
  9. 用clone()方法获得对象的完整拷贝。
  10. 不能编写返回引用可变对象的访问器方法。
  11. 一个方法可以访问所属类的所有对象的私有数据。
  12. Sytem类中有一个setOut方法是一个本地方法,不是用Java语言实现的,可以绕过Java的存取控制机制(out是final的)。
  13. 每个类都可以有一个main方法,可用来进行单元测试。
  14. 一个方法不能修改一个基本数据; 一个方法可以改变一个对象参数的状态; 一个方法不能让对象参数引用一个新的对象。
  15. 方法签名:方法名、参数类型。
  16. 初始化块机制 首先运行初始化快,然后才运行构造器的主体部分 静态域初始化块:

    static{
    }
    
  17. 只能使用*导入一个包,如:

    import java.util.*;
    
  18. 静态导入:静态方法、静态域

    import static java.lang.System.*;
    
  19. 如果没有指定public或private,那么这个部分(类、方法或者变量)可被同一个包中的所有方法访问

  20. 包作用域:默认情况下是包可见的
  21. 包密封:(package sealing) jar文件密封包
  22. /*…/->文档注释 javadoc 标记+自由格式,其中标记由”@”开始
  23. 类设计技巧:
    • 一定要将数据设为私有;
    • 一定要对数据初始化;
    • 不要在类中使用过多的基本数据类型;
    • 不是所有的域都需要独立的域访问器和域更改器;
    • 使用标准格式进行类的定义;
    • 将职责过多的类进行分解;
    • 类名和方法名要能够体现它们的职责。
  24. Java中的所有继承都是公有继承:超类和子类
  25. 覆盖(Override)子类使用super调用超类的方法以及构造器
  26. 一个对象变量可以引用多种实际类型的现象叫做多态(Polymorphism) 运行能够自动地选择调用的适当方法的现象称为动态绑定
  27. 虚拟机预先为各个类创建了一个方法表
  28. 在覆盖一个方法时,子类方法不能低于超类方法的可见性
  29. 阻止继承的两种方法:final类的方法自动成为final方法(不包括域),final方法
  30. 内联的概念:如果一个方法没有被覆盖并且很短,编译器就能够对它进行优化处理。
  31. 强制类型转换: 只能在继承层次内进行类型转换; 在将超类转换成子类的前应使用instanceof进行检查
  32. 抽象类可以包含非抽象方法,也可以不包含抽象方法。抽象方法充当着占位的角色,具体实现在子类中。 抽象类不能被实例化 只有子类实现了所有抽象方法,子类才不是抽象的了
  33. 子类不能访问超类的私有域
  34. hashcode: 由对象导出的一个整型值 每个对象都有一个默认的散列码,其值为对象的存储地址
  35. 两个相等的对象要求必须返回一个相等的散列码
  36. 自动打包规范要求boolean byte char=0:x;
  37. 四个基本的抽象流类:InputStream OutputStream Reader Writer(这些对象由其他方法返回)
  38. 注意流过滤器的运用
  39. 对象序列化:ObjectOutputstream ObjectInputStream writeObject() readObject() 类必须实现Serializable 接口
  40. Java使用SHA编码的前8字节作为类的指纹 在序列化的过程中内存地址会被替换为序列号(唯一)
  41. 流类关注的是文件内容,而File类关注的是文件在磁盘上的存储








原文出处:后端技术杂谈
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/466501

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。