首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户2276240的专栏(5)

    Java字节码-Java快速进阶教程

    Java 中的字节码是一组高度优化的 Java 虚拟机 (JVM) 指令,用于读取和解释以运行 Java 程序。 字节码是只能在 JVM 上运行的二进制程序代码。 它由Java解释器并生成可以直接在真机的指令。 Java字节码的特征 Java 字节码有两个最重要的特征,如下所示: 字节码独立于处理器,即Java程序可以在任何处理器架构上执行。 字节码在Java中是如何工作的? 当我们编写Java程序时,源代码(以.java文件的形式)由Java编译器编译并以.class文件的形式转换为字节码。 看看下2张图就能更好地理解它了。 .java和.class的区别 Java 源代码文件(扩展名为.java)被编译为字节码(具有.class扩展名),然后由名为 JVM 的 Java 处理器解释和执行。 关键点: 1. Java 中的字节码是 Java 编译器生成并由 Java 解释器 (JVM) 执行的一组字节长的指令。 2.

    43710编辑于 2025-04-05
  • 来自专栏落影的专栏

    OpenGLES进阶教程7-天空盒效果

    教程 OpenGLES入门教程1-Tutorial01-GLKit OpenGLES入门教程2-Tutorial02-shader入门 OpenGLES入门教程3-Tutorial03-三维变换 OpenGLES入门教程4-Tutorial04-GLKit进阶 OpenGLES进阶教程1-Tutorial05-地球月亮 OpenGLES进阶教程2-Tutorial06-光线 OpenGLES 进阶教程3-Tutorial07-粒子效果 OpenGLES进阶教程4-Tutorial08-帧缓存 OpenGLES进阶教程5-Tutorial09-碰碰车 OpenGLES进阶教程6-Tutorial10 -平截体优化 这一次的内容是精心准备的天空盒特效,为了节约大家时间,这次在教程里面不贴代码,demo部分的内容都是干货。

    1.6K60发布于 2018-04-27
  • 来自专栏腾讯云大数据

    Flink 实践教程-进阶7):基础运维

    语法检查失败:java.lang.IllegalStateException: No operators defined in streaming topology. Make sure that the topic exists. // example: JDBC(MySQL) Sink 连接地址填写错误导致报错java.io.IOException: // example:数据转换过程中去重,Sink 端无主键定义报错语法检查失败:java.lang.IllegalStateException: please declare primary key --example--><dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11 是否发生过 OOM:如果出现了 java.lang.OutOfMemoryError 关键字,说明很可能出现了 OOM 堆内存溢出。需尝试增加作业的算子并行度(CU)数和优化内存占用,避免内存泄露。

    3.1K11编辑于 2022-01-21
  • 来自专栏用户2276240的专栏(5)

    RabbitMQ简介-Java快速进阶教程

    我们自然会使用 Java 客户端与 RabbitMQ 服务器进行交互;此客户端的Maven 依赖项为: <dependency> <groupId>com.rabbitmq</groupId> amqp-client</artifactId> <version>4.0.0</version> </dependency>Copy 使用官方指南运行 RabbitMQ 代理后,我们需要使用 java

    22400编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    AtomicStampedReference 指南-Java快速进阶教程

    在本教程中,我们将仔细研究如何最好地使用它。 2. 为什么我们需要AtomicStampedReference?

    32900编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    ZGC简介-Java快速进阶教程

    为了解决这个问题,Java 11引入了Z垃圾收集器(ZGC)作为实验性垃圾收集器(GC)实现。 在本教程中,我们将看到ZGC 如何设法在数 TB 的堆上保持较短的暂停时间。 2. 垃圾回收 当我们创建一个 Java 应用程序时,我们不必释放我们分配的内存,因为垃圾收集器会为我们完成这项工作。总之,GC 通过引用链监视我们可以从应用程序中访问哪些对象,并释放我们无法访问的对象。

    44600编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Stack学习-Java快速进阶教程

    栈类是在Java 1.0版本中引入的。它存在于java.util.Stack<E>包中。 这个类现在被认为是 Java 中的遗留类,因为它与 Java Collections Framework 不一致。因此建议大家使用新的Java ArrayDeque 类。 Java Stack 类的层次结构 Java Stack 类扩展了扩展 AbstractList 类的向量类。它实现了列表接口和随机访问接口。栈类还实现了可序列化和可克隆接口。 java 中栈的层次结构图如下图所示。 7. 允许重复元素进入栈。 Java 中栈类的构造函数 栈类仅提供了一个构造函数,如下所示: 1. Stack():此构造函数用于创建一个空的栈对象。

    17900编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Apache Flink with Java 简介-Java快速进阶教程

    Maven 依赖 首先,我们需要将 Maven 依赖项添加到 flink-java 和flink-test-utils库中: <dependency> <groupId>org.apache.flink </groupId> <artifactId>flink-java</artifactId> <version>1.2.0</version> </dependency> <dependency 7. 结论 在本文中,我们介绍了 Apache Flink 框架,并查看了其 API 提供的一些转换。 我们使用 Flink 流畅且实用的 DataSet API 实现了一个字数统计程序。

    34400编辑于 2025-04-05
  • 来自专栏腾讯云流计算 Oceanus

    Flink 实践教程进阶7-基础运维

    语法检查失败:java.lang.IllegalStateException: No operators defined in streaming topology. Make sure that the topic exists. // example: JDBC(MySQL) Sink 连接地址填写错误导致报错 java.io.IOException: unable // example:数据转换过程中去重,Sink 端无主键定义报错 语法检查失败:java.lang.IllegalStateException: please declare primary key --example--> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java 是否发生过 OOM:如果出现了 java.lang.OutOfMemoryError 关键字,说明很可能出现了 OOM 堆内存溢出。需尝试增加作业的算子并行度(CU)数和优化内存占用,避免内存泄露。

    3.1K31编辑于 2022-01-20
  • 来自专栏用户2276240的专栏(5)

    ProcessBuilder API 指南-Java快速进阶教程

    在本教程中,我们将看看 Java 如何使用ProcessBuilderAPI 缓解这种情况。 2.进程生成器接口 类提供了用于创建和配置操作系统进程的方法。 使用ProcessBuilder打印 Java 版本 在第一个示例中,我们将使用一个参数运行java命令以获取版本。 让我们回到原始示例来打印出 Java 版本。 结论 总而言之,在本教程中,我们详细探讨了java.lang.ProcessBuilderAPI。 首先,我们首先解释了 API 可以做什么,并总结了最重要的方法。 接下来,我们看了一些实际的例子。 最后,我们研究了 Java 9 中 API 中引入了哪些新增功能。

    49200编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Process API 指南-Java快速进阶教程

    简介 在本教程中,我们将深入了解进程API。 它所指的进程是一个正在执行的应用程序。Process类提供与这些进程交互的方法,包括提取输出、执行输入、监视生命周期、检查退出状态以及销毁(终止)它。 \\com\\java9\\process\\OutputStreamExample.java"); process = Runtime.getRuntime() .exec("java 代码中执行Java代码的应用几乎是无限的。 notepad.exe"); Process process = builder.start(); assertThat(process.exitValue() >= 0); }Copy 7. \\com\\java9\\process\\OutputStreamExample.java"); process = Runtime.getRuntime() .exec("java

    53310编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Java 9 变量句柄揭秘-Java快速进阶教程

    简介 Java 9为开发人员带来了许多新的有用功能。 其中之一是java.lang.invoke.VarHandleAPI - 表示变量句柄 - 我们将在本文中探讨。 2. 什么是可变手柄? VarHandle的目标是定义一个标准,用于调用字段和数组元素上的 java.util.concurrent.atomic和sun.misc.Unsafe操作的等效项。 例如,以下是Java本身如何在内部使用VarHandles来实现AtomicReference: private volatile V value; private static final VarHandle 在Java 9之前,此操作的等效API是Unsafe类和来自ReflectionAPI的setAccessible()方法。 但是,这种方法有其缺点。例如,它仅适用于变量的特定实例。

    40711编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    TreeMap工作原理-Java快速进阶教程

    Java 中TreeMap的内部工作原理 现在,我们将讨论一个示例,看看TreeMap在内部是如何工作的。 /** * */ package com.jack.map; import java.util.Map; import java.util.TreeMap; /** * @author Jack.Yang

    36110编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Java 中的分支预测-Java快速进阶教程

    分支预测是计算机科学中一个有趣的概念,可以对我们应用程序的性能产生深远的影响。然而,它通常没有得到很好的理解,大多数开发人员很少关注它。

    35000编辑于 2025-04-05
  • 来自专栏常用算法专栏

    Java中的梯度下降-Java快速进阶教程

    简介 在本教程中,我们将了解梯度下降算法。我们将在 Java 中实现该算法并逐步说明它。 2. 什么是梯度下降? 梯度下降是一种优化算法,用于查找给定函数的局部最小值。 我们将在本教程中说明和实现回溯梯度下降。 4. 分步说明 梯度下降需要一个函数和一个起点作为输入。让我们定义并绘制一个函数: 我们可以从任何想要的点开始。 在 Java 中的实现 有几种方法可以实现梯度下降。在这里,我们不计算函数的导数来找到斜率的方向,因此我们的实现也适用于不可微函数。

    22400编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Java 9 CompletableFuture API 改进-Java快速进阶教程

    简介 Java 9对CompletableFuture类进行了一些更改。 结论 总之,Java 9 对CompletableFutureAPI 进行了一些补充,它现在对子类化有了更好的支持,这要归功于新的 IncompleteFuture虚拟构造函数,可以控制大多数 CompletionStage

    31900编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Java 中的 ThreadLocal 简介-Java快速进阶教程

    概述 在本教程中,我们将研究java.lang包中的ThreadLocal构造。这使我们能够单独存储当前线程的数据,并简单地将其包装在特殊类型的对象中。 这是在 Java 中实现线程安全的合理方法。但是,当我们一起使用ThreadLocal和线程池时,我们应该格外小心。

    26510编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Java 中的线程池简介-Java快速进阶教程

    概述 本教程介绍了 Java 中的线程池。我们将从标准Java库中的不同实现开始,然后查看Google的Guava库。 2. 线程池 在 Java 中,线程映射到系统级线程,这些线程是操作系统的资源。 这两者都是函数接口,我们可以将它们作为 lambda 传递(从 Java 8 开始)。 Runnable 的单一方法不会引发异常,也不会返回值。 有关使用 ExecutorService 接口和Future接口的更多示例,请查看ExecutorService使用指南-Java快速入门教程7 中引入的fork/join框架的核心部分。 这个框架在我们的fork-join使用框架指南-Java快速入门教程 中有详尽的描述。 让我们看一个简单的示例,该示例使用ForkJoinPool遍历节点树并计算所有叶值的总和。

    40110编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Java 中的原子变量简介-Java快速进阶教程

    sync关键字确保一次只有一个线程可以进入该方法(要了解有关锁定和同步的更多信息,请参阅 –Java 中的同步关键字指南): public class SafeCounterWithLock { Java中的原子变量 Java 中最常用的原子变量类是 AtomicInteger、AtomicLong、AtomicBoolean和AtomicReference。 从Java 9开始,这个方法在所有原子实现中都已弃用,取而代之的是weakCompareAndSetPlain()。

    31200编辑于 2025-04-05
  • 来自专栏用户2276240的专栏(5)

    Java 线程死锁和活锁-Java快速进阶教程

    在本教程中,我们将在 Java 示例的帮助下研究两个这样的问题,死锁和活锁。 2. 死锁 2.1. 什么是死锁? 当两个或多个线程永远等待另一个线程持有的锁或资源时,就会发生死锁。 死锁示例 首先,让我们看一个简单的 Java 示例来理解死锁。 在此示例中,我们将创建两个线程,T1和T2。线程T1调用操作1,线程T2调用操作。 避免死锁 死锁是 Java 中常见的并发问题。因此,我们应该设计一个 Java 应用程序来避免任何潜在的死锁情况。 首先,我们应该避免为一个线程获取多个锁的需要。

    29310编辑于 2025-04-05
领券