摘要:
1. JPA 1.1. 性能直接受底层JDBC驱动性能的影响 1.2. 性能提升是通过改变实体类的字节码来实现的 1.2.1. 在类加载到JAR文件或者由JVM运行之前增强字节码的方法 1.2.1.1. 在编译过程中完成的 1.2.1.2. 在实体类编译完成后,它们会被传递给一个特定实现的后置处理器 阅读全文
摘要:
1. 影响数据库应用程序性能最重要的因素 1.1. JDBC驱动 1.1.1. JPA底层使用了JDBC 2. 瘦驱动 2.1. 为了让Java应用程序的内存占用很小 2.2. 依赖数据库服务器来完成更多的处理工作 3. 胖驱动 3.1. 工作从数据库移至Java应用程序 3.2. 进行更多处理、消 阅读全文
摘要:
1. 异常 1.1. 代码应该仅在发生意料之外的事情时抛出异常 1.1.1. 防御性编程性能好 1.2. 异常的处理成本未必很高 1.2.1. 应该只在适当的时候使用 1.2.2. 栈越深,处理异常的成本就越高 1.3. 对于频繁创建的系统异常,JVM会优化获取栈轨迹的性能开销 1.4. 在异常中禁 阅读全文
摘要:
1. 缓冲I/O 1.1. 对于文件和套接字,压缩和字符串编码的操作,必须适当地对I/O进行缓冲 1.1.1. 两个流操作的是字节块(来自缓冲流)而不是一系列的单字节(来自ObjectOutputStream),它们会运行得更好 1.2. InputStream.read() 1.3. Output 阅读全文
摘要:
1. 压缩字符串 1.1. Java 6 1.2. 实验性 1.3. compressed string 2. 字符串 2.1. Java 8 2.2. 所有都会编码为16位字符数组 3. 紧凑字符串 3.1. Java 11 3.2. compact string 3.3. 8位字节数组 3.3. 阅读全文
摘要:
1. JVM调优标志 1.1. 布尔标志和附带参数的标志 1.2. 布尔标志使用的语法 1.2.1. -XX:+FlagName表示开启 1.2.2. -XX:-FlagName表示关闭 1.3. 附带参数的标志使用的语法 1.3.1. -XX:FlagName=something,表示设置Flag 阅读全文
摘要:
1. Scala 1.1. 混合了面向对象和函数式编程的语言 1.2. 直接使用任何一个Java类库 1.3. 声明非递归的方法时,不需要显式地返回类型 1.3.1. 会自动地替你推断生成一个 1.4. 字符串插值 1.4.1. 在字符串的字面量中内嵌变量和表达式 1.5. 以使用val关键字替换v 阅读全文
摘要:
1. 编程语言 1.1. 仍然是一门语言 1.1.1. 以最清晰、最容易理解的方式传递信息 1.2. 代码的易读性和易理解性在软件中的重要性甚至更胜一筹 2. 领域特定语言DSL 2.1. 为了解决某个特定业务领域问题的一种自定义语言 2.1.1. 一种小型语言 2.1.2. 大多都不通用 2.1. 阅读全文
摘要:
1. 再次出现在聚光灯下的原因 1.1. 基本思想已经有二三十年的历史 1.2. 大数据 1.2.1. 以PB计量的大数据 1.2.2. 当前互联网中流量最大的部分是移动流量 1.2.3. 物联网(Internet of things, IoT)流量取代移动流量成为互联网流量的主流,这种情况还会进一 阅读全文
摘要:
1. 同步API 1.1. 阻塞式调用 1.2. 调用了某个方法,调用方在被调用方执行的过程中会等待,被调用方执行结束返回,调用方取得被调用方的返回值并继续运行 2. 异步API 2.1. 非阻塞式调用 2.2. 会直接返回,或者至少在被调用方计算完成之前,将它剩余的计算任务交由另一个线程去做 2. 阅读全文