首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 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()方法。 但是,这种方法有其缺点。例如,它仅适用于变量的特定实例。

    38311编辑于 2025-04-05
  • Java 9 CompletableFuture API 改进-Java快速进阶教程

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

    29500编辑于 2025-04-05
  • 来自专栏程序猿DD

    Java 9 - 17 特性解读:Java 9

    所以胖哥抽时间梳理了一下从Java 9Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9 Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 Java 9改善了这一现状,现在你可以: // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} Set<Integer Stream扩展 Stream API 是Java 8中引入的最重要的特性之一。在Java 9中Stream进一步得到了加强。 总结 其实Java 9 还有一些底层的优化,不过对于普通开发者来说了解这些就够用了。上面几个特性,比较常用的就是静态不变集合、try-with-resources优化。

    54630编辑于 2023-04-04
  • 来自专栏码农小胖哥的码农生涯

    Java 9Java 17之Java 9

    所以胖哥抽时间梳理了一下从Java 9Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9 Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 Java 9改善了这一现状,现在你可以: // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} Set<Integer Stream扩展 Stream API 是Java 8中引入的最重要的特性之一。在Java 9中Stream进一步得到了加强。 总结 其实Java 9 还有一些底层的优化,不过对于普通开发者来说了解这些就够用了。上面几个特性,比较常用的就是静态不变集合、try-with-resources优化。

    96230发布于 2021-09-29
  • 来自专栏机器学习/数据可视化

    SQL进阶-9-谓词exists使用

    SQL进阶-9-EXISTS谓词的使用 支撑SQL和关系数据库的两个重要理论基础: 数学领域的集合论 现代逻辑学标准体系的谓词逻辑(predicate logic) 本文中重点介绍的是谓词exists的用法 ,col10); -- 查询至少存在一个9的行记录:any select * from Tablename where 9 = any (col1, col2, col3,... ,col10); -- where 9 in (col1, col2, col3,...

    1.4K20发布于 2021-03-01
  • 来自专栏无人驾驶感知

    【python】9个python进阶技巧(实用)

    22) ## ******************** ## name: jack ## age 22 ## ******************** ## name: jack ## age 22 9

    26510编辑于 2024-02-05
  • 来自专栏公众号:懒时小窝

    Java】A Guide to Java 9 Modularity

    引言近期在 Baeldung 看到了一篇有关Java9模块化入门介绍的文章,整体翻译加理解下来发现确实不错,个人认为美中不足的是项目构建过于简单和偏手动,个人建议找一些简单的Java9以及之上的开源项目结合参考使用更佳 原文A Guide to Java 9 Modularity | Baeldung1. Module System (JPMS), or “Modules” for short.Java 9 在包上面引入了新的层次,正式的名称叫做 Java 平台模块系统(JPMS),或者更简单称之为“模块 Default ModulesWhen we install Java 9, we can see that the JDK now has a new structure.安装JDK9之后可以看到现在有一个新结构 比如我们使用Java9运行低版本的Java8的程序时候,可能需要添加模块化。

    40420编辑于 2023-06-27
  • 来自专栏怀英的自我修炼

    Java漫谈9

    Java String 两种不同的赋值方案比较》 http://blog.163.com/woshihezhonghua@126/blog/static/1271436362012101214031911 / 简单来说,就是因为java的编译器会自动给你加上。 由此,我想到两点: 第一是,java中的那些基本数据类型,会不会也是由编译器自动加上new这个关键字的。搜了一下必应,没搜到什么有效的答案。 如果常量池中的“hello”长时间没有被引用,java的垃圾回收器就会自动将它回收,释放“hello”对象所占用的空间。对于堆内存中的“hello”对象也是如此。 这里补充说一下,在java中,双等号是用来判断相等的,在String中它判断的是对象的地址是否相等,若要判断String的值是否相等,要用equals方法。

    73690发布于 2018-03-12
  • 来自专栏云计算linux

    Java 9 揭秘

    Java SE 9之前,JDK构建系统用于生成两种类型的运行时映像 ——Java运行时环境(JRE)和Java开发工具包(JDK)。 Java SE 9之前的JDK和JRE目录布局 在 Java SE 9之前,JDK中: bin目录用于包含命令行开发和调试工具,如javac,jar和javadoc。 Java SE 9中的JDK目录布局 在Java SE 9 的JDK中: 没有名为jre的子目录。 bin目录包含所有命令。 在Windows平台上,它继续包含系统的运行时动态链接库。 ="Windows" JAVA_VERSION="9" JAVA_FULL_VERSION="9-ea+133" 在列表中只显示了三个模块。 Java SE 9仍然支持认可的标准和独立API覆盖机制。 在Java SE 9中,运行时映像由模块组成。 要使用此机制,需要使用更新版本的模块,用于支持标准和独立API。

    73810编辑于 2024-12-19
  • 来自专栏公众号:懒时小窝

    Java】A Guide to Java 9 Modularity

    引言 近期在 Baeldung 看到了一篇有关Java9模块化入门介绍的文章,整体翻译加理解下来发现确实不错,个人认为美中不足的是项目构建过于简单和偏手动,个人建议找一些简单的Java9以及之上的开源项目结合参考使用更佳 原文 A Guide to Java 9 Modularity | Baeldung 1. Java 9 在包上面引入了新的层次,正式的名称叫做 Java 平台模块系统(JPMS),或者更简单称之为“模块”。 在Java9之后,这种反射滥用的行为受到明确限制,我们必须要明确授予其他模块对于我们模块的反射访问权限。 比如我们使用Java9运行低版本的Java8的程序时候,可能需要添加模块化。

    45520编辑于 2023-09-02
  • 来自专栏码匠的流水账

    java9系列(二)docker运行java9

    序 本文介绍下如何在docker运行java9 镜像 docker pull openjdk:9-jdk 启动 docker run -it openjdk:9-jdk /bin/jshell 然后就可以正常使用 (1,2,3,4).stream().limit(3).forEach(e -> System.out.print(e)) 123 退出 jshell> /exit | Goodbye 查看此镜像的java 版本 docker run -it openjdk:9-jdk /bin/bash root@44d1d18351a8:/# java -version openjdk version "9-Debian " OpenJDK Runtime Environment (build 9-Debian+0-9b181-4) OpenJDK 64-Bit Server VM (build 9-Debian+0-9b181 -4, mixed mode) doc Start using Java 9 shell — jshell with docker

    96100发布于 2018-09-17
  • 来自专栏Lemon黄

    简明PHP进阶9-数据库】

    本节来简单介绍下PHP中的数据库,这节也是进阶部分最后一节了。数据库我们还没介绍过,下去我们会好好介绍关于MySQL数据库的知识。

    62500发布于 2019-10-10
  • 来自专栏Java学习录

    Java进阶路线

    Java基础 Java入门时我们都是学了什么? Java集合 ArrayList源码解析 Vector源码解析 CopyOnWriteArrayList源码解析 LinkedList源码解析 HashMap源码解析 ConcurrentHashMap ThreadLocal Lock Java并发级别 Java内存模型 线程协作 Jdk并发包 锁优化 synchronized 关键字原理 多线程的三大核心 对锁的一些认知 ReentrantLock 新版本特性 QQ、新浪微博、码云和百度的第三方登录 如何将自己的jar包发布到mavan中央仓库 使用Java类加载SpringBoot、SpringCloud配置文件 Java8 Optional Lambda Stream 函数式编程 Java9 设计模式 UML 享元模式 代理模式 原型模式 命令模式 备忘录模式 外观模式 单例模式 工厂模式 建造者模式 桥梁模式 合成模式 模板模式 状态模式 策略模式

    90300发布于 2019-04-18
  • 来自专栏Java后端

    Java进阶-注解

    Java 8 为止 Java SE 提供了 11 个内置注解( 5 个是基本注解,来自于 java.lang 包。 注:函数式接口是为 Java 8 的 Lambda 表达式准备的,Java 8 允许使用 Lambda 表达式创建函数式接口的实例,因此 Java 8 专门增加了 @FunctionalInterface Java 9 @Deprecated 注解新增属性: forRemoval:指定该 API 在将来是否会被删除。 since:指定该 API 从哪个版本被标记为过时。 如下 class Test { // since属性指定从哪个版本开始被标记成过时,forRemoval指定该API将来会被删除 @Deprecated(since = "9", forRemoval :10 java.lang.Integer:20 java.lang.Integer:30 java.lang.String:10 java.lang.Integer:20 java.lang.Integer

    42521编辑于 2024-03-08
  • 来自专栏Java后端

    Java进阶-反射

    Java 动态编译相结合,可以实现非常强大的功能。 4、时期 先来看一下完整的Java程序运行过程 ┌──────────────────┐ │ Hello.java │<─── source code(源码) └────────────── 5、API 所谓API,就是Java自己提供的标准类库,开发人员可直接使用其方法。 5.1 java.lang.Class类 1)概述 是反射机制API的核心类。 clz2类名称:java.lang.String clz2是否为接口:false clz2是否为数组对象:false clz2父类名称:java.lang.Object clz2是否为基本类型:false 2)示例(了解) import java.lang.reflect.Method; //导包 import java.lang.reflect.Modifier; public class ReflectDemo

    45331编辑于 2024-03-01
  • 来自专栏微信公众号:Java团长

    Java异常进阶

    在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能。有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常。 在本文中,我们将对如何在Java应用中使用及处理Checked Exception进行简单地介绍。 Java异常简介 在详细介绍Checked Exception所导致的问题之前,我们先用一小段篇幅简单介绍一下Java中的异常。 在Java中,异常主要分为三种:Exception,RuntimeException以及Error。这三类异常都是Throwable的子类。 天使变恶魔 既然Java中的Checked Exception能够提高用户代码质量,为什么还有那么多人反对它呢?原因很简单:它太容易被误用了。

    90940发布于 2018-08-06
  • JAVA集合进阶

    String[]args){//创建集合对象Collection<String>c=newArrayList<>();//添加元素c.add("hello");c.add("world");c.add("java Studentkey:keySet){Stringvalue=hm.get(key);System.out.println(key.getName()+","+key.getAge()+","+value);}}}9.

    42220编辑于 2025-11-02
  • 来自专栏拭心的安卓进阶之路

    Android 进阶9:进程通信之 AIDL 解析

    在 Android 进阶7:进程通信之 AIDL 的使用 中我们使用 AIDL 实现了跨进程的通信,但是不清楚 AIDL 帮我们做了什么。 AIDL 的本质是简化我们 IPC 开发,它使用的是 Binder 机制,于是在上篇文章 Android 进阶8:进程通信之 Binder 机制浅析 中我们简单了解了 Binder 机制的流程。 Make Project 后系统就会帮我们生成 Java 文件: ? AIDL 生成文件分析 AIDL 帮我们生成内容: ? 代码如下: ? 可以看到,生成的接口 IMyAidl 继承了 IInterface,Android 进阶8:进程通信之 Binder 机制浅析 中我们介绍了,IInterface 是进程间通信定义的通用接口。 implements net.sxkeji.shixinandroiddemo2.IMyAidl { //唯一标识,一般为完整路径 private static final java.lang.String

    1.4K100发布于 2018-01-05
  • 来自专栏朝雨忆轻尘

    Java笔记:Java 9 新特性

    在这个两个模块java9Demo和java9Test中,java9demo编写一个实体类Person,在java9Test调用这样一个过程         这个是java9Demo 将 java9Test package-info.java,引入java9Demo模块导出包名 module java9Test{ requires java9Demo; } 这样就可以直接在java9Test中引入Person 9Java9新特性之---String底层存储结构更换     java8之前 String的底层结构类型都是 char[] ,但是java9 就替换成 byte[] 这样来讲,更节省了空间和提高了性能 所以java9在这一方面进行了更新,现在的java9 是基于ISO/latin1/Utf-16  ,latin1和ISO用一个byte标识,UTF-16用两个byte标识,java9会自动识别用哪个编码 11、Java9新特性之---引进HttpClient     以往我们都是通过maven添加httpclient ,java9直接引入即可 Java9所有特性都是为了提高性能和内存。。。。

    65320发布于 2019-06-18
  • 来自专栏周小末天天开心

    Java 基础学习(9

    2)例如:int d = -9 其原码为:10000000  00000000  00000000  00001001 其反码为:11111111  11111111  11111111  11110110

    29320编辑于 2022-10-26
领券