首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Goboy

    优化Java代码 9 条简单的规则

    注意,这条规则有一个极端情况 - Java 静态导入中有一堆静态方法(List.of()、Set.of()、Map.of()),这会损害代码质量,使其模棱两可。 它建议开发人员在代码中使用完全限定的导入语句,而不是使用通配符(*)或静态导入。以前:相比之下,通配符导入语句可能会导致一些问题。例如,如果使用了通配符导入:import java.util. *;这会导入java.util包中的所有类和成员。虽然这样可以减少代码量,但可能会造成以下问题:命名冲突: 如果不小心引入了具有相同名称的类或成员,可能会导致命名冲突,使得代码难以理解和维护。 性能问题: Java编译器可能需要额外的时间来解析通配符导入语句,特别是在大型项目中。因此,推荐使用完全限定的导入语句,这样可以:明确代码中使用的类和成员的来源。避免命名冲突和意外的行为。 import java.util.ArrayList;import java.util.List;这里的导入语句完全限定了要导入的类(ArrayList和List),并且清晰地表明了代码中使用的类的来源

    33410编辑于 2024-03-11
  • 来自专栏码匠的流水账

    使用proguard混淆java9代码

    序 本文主要研究一下如何使用proguard混淆java9代码 maven <plugin> <groupId>com.github.wvengen -9.jdk/Contents/Home/jmods/java.base.jmod(! module-info.class)] [proguard] Error: Can't read [/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents module-info.class)] (No such file or directory: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/ module-info.class) 小结 这里的例子仅仅还是jdk是模块化的,但是工程代码还没有模块化。等所有依赖都模块化了,可以重新试验一下。

    3.2K10发布于 2018-09-17
  • 来自专栏程序猿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优化。

    59730编辑于 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优化。

    1K30发布于 2021-09-29
  • 来自专栏公众号:懒时小窝

    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的程序时候,可能需要添加模块化。

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

    Java漫谈9

    / 简单来说,就是因为java的编译器会自动给你加上。 由此,我想到两点: 第一是,java中的那些基本数据类型,会不会也是由编译器自动加上new这个关键字的。搜了一下必应,没搜到什么有效的答案。 如果常量池中的“hello”长时间没有被引用,java的垃圾回收器就会自动将它回收,释放“hello”对象所占用的空间。对于堆内存中的“hello”对象也是如此。 这里补充说一下,在java中,双等号是用来判断相等的,在String中它判断的是对象的地址是否相等,若要判断String的值是否相等,要用equals方法。 如果在用熟了,形成习惯了之后,我们能去进一步地了解一下原理,也许就能使我们对代码的具体使用场景理解加深,然后再用到编程中,做到合适的代码放到合适的地方,最终能在编程效率和程序执行效率上得到一些提升。

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

    Java 9 揭秘

    注意,在JDK 9之前,版本字符串始终以1开头。 Tips 解析版本字符串以获取JDK版本的主版本的现有代码可能会在JDK 9中失败,具体取决于其使用的逻辑。 它还用于包含Java命令来启动Java应用程序。 include目录包含在编译本地代码时使用的C/C++头文件。 lib目录包含JDK工具的几个JAR和其他类型的文件。 以下详细介绍JDK 9类加载器的工作原理。 在JDK 9中,引导类加载器是由类库和代码在虚拟机中实现的。 为了向后兼容,它在程序中仍然由null表示。 在JDK 9中,平台类加载器(以前的扩展类加载器)和应用程序类加载器是内部JDK类的实例。 如果你的代码依赖于·URLClassLoader·类的特定方法,代码可能会在JDK 9中崩溃。 在第一次尝试中,JDK 9设计人员强制执行模块封装规则,模块中的资源必须对该模块是私有的,因此它们只能在该模块内的代码中访问。

    1.1K10编辑于 2024-12-19
  • 来自专栏码匠的流水账

    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

    1K00发布于 2018-09-17
  • 来自专栏公众号:懒时小窝

    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的程序时候,可能需要添加模块化。

    52520编辑于 2023-09-02
  • 来自专栏朝雨忆轻尘

    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所有特性都是为了提高性能和内存。。。。

    72120发布于 2019-06-18
  • 来自专栏奝-大周

    代码审计day9

    Unicode编码 文件包含 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名用户可控,由于传入的文件名没有经过合理的校验,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入 模块加载、cache调用,传入的参数拼接包含路径 include() 使用此函数,只有代码执行到此函数时才将文件包含进来,发生错误时只警告并继续执行。

    57420发布于 2020-08-19
  • 来自专栏高渡号外

    Python代码找bug(9

    Python代码找bug(9) 上期的代码设计需求: 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。 代码如下: ? 请大家仔细阅读代码,找出其中的bug! 正确答案:共有2个bug。(对答案时间,看看答对了几个?) (1)第5行代码:c = age(n) + 2中,调用了age()函数。 所以,正确的代码应该是这样的: ? 点评:这个代码找bug问题,是复习递归算法的案例,主要目的: (1)巩固学习递归算法。 (2)加深理解递归算法中函数的返回值问题。 本期代码设计需求: 两个 3 行 3 列的矩阵: X = [[12,7,3], [4 ,5,6], [7 ,8,9]] Y = [[5,8,1], [6,7,3], [4,5,9 代码如下: ? 当然,上面的代码还是有bug的。请找出来,发到留言里,明天对答案。 正确答案明天揭晓。 提醒:惯例所有代码都是基于Pythpn3 的哦。

    1.2K30发布于 2020-09-22
  • Java SE(9)——多态

    具体来说,多态允许基类/父类的引用指向派生类/子类的对象(向上转型),并通过该引用调用子类中重写的方法,从而实现不同的行为 2.实现多态的条件 在Java中,要实现多态必须满足以下条件,缺一不可: 1. class Test { public static void main(String[] args) { Animal dog = new Dog(); } } 在上述代码中 如果程序运行起来之后才发现错误,可能已经带来了损失,所以为了规避这一情况,Java引入了instanceof运算符来帮助用户检测错误 public class Animal { public int 圈复杂度是一种描述一段代码复杂程度的方式。如果一段代码平铺直叙,那么就比较容易理解;如果一段代码使用很多的条件分支或者循环语句,就认为代码理解起来比较复杂。 我们可以简单地举个例子,一层if-else语句表示一圈复杂度,如果一段代码的圈复杂度太高,就需要考虑重新构建该代码的结果。一般来说,圈复杂度不应该超过10。

    20810编辑于 2026-01-13
  • 来自专栏Java帮帮-微信公众号-技术文章全总结

    Java面试系列9

    java中的保留字,现在没有在java中使用。 ✎二、必须要知道的运行时异常 ArithmeticException 是出现异常的运算条件时,抛出此异常。 例如,下面代码将产生一 ArrayStoreException 异常: Object x[] = new String[3]; x[0] = new Integer(0); ArrayIndexoutoBoundsException HeadlessException 在不支持键盘、显示器或鼠标的环境中调用与键盘、显示器或鼠标有关的代码时,被抛出的异常。 IllegalFormatCodePointException 将具有 Character.isValidCodePoint(int) 所定义的无效 Unicode 代码点的字符传递给 Formatter InvalidDnDOperationException java.awt.dnd 包中的各种方法都会抛出此异常。

    3.4K40发布于 2018-03-19
  • 来自专栏周小末天天开心

    Java 基础学习(9

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

    33120编辑于 2022-10-26
  • 来自专栏Android开发指南

    9.代码抽取(adapter)

    1  抽取Adapter 共性的方法 2  把getView方法里 和holder相关的逻辑 摘取到Holder代码中 3  把Holder 相关的代码 抽取到BaseHolder中  4  把

    66190发布于 2018-05-14
  • 来自专栏Java技术栈

    Java 9 中的9个新特性

    来源:www.oschina.net/translate/java-9-new-features 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Java 9 一起发布。 Java 平台级模块系统 Java 9 的定义功能是一套全新的模块系统。 当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。 JShell: 交互式 Java REPL 许多语言已经具有交互式编程环境,Java 现在加入了这个俱乐部。您可以从控制台启动 jshell ,并直接启动输入和执行 Java 代码。 这是特别为 Java 9 准备的 class 版本,可以运用 Java 9 所提供的特性和库。

    1.2K80发布于 2018-04-02
  • 来自专栏Java项目实战

    openAi:java代码写一个9人狼人杀判断程序

    由于狼人杀游戏的规则和角色不同,这里提供一个简化版的代码:import java.util.Scanner;public class WerewolfKiller { public static main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入9个玩家的角色 :"); String[] players = new String[9]; for (int i = 0; i < 9; i++) { players input.next(); } int wolfCount = 0; int villagerCount = 0; for (int i = 0; i < 9; ; } else { System.out.println("游戏继续进行中..."); } }}这个程序接受用户输入9个玩家的角色,然后统计狼人和好人的数量

    84720编辑于 2023-03-18
  • 来自专栏程序猿DD

    Java 9 - 17 特性解读:Java 11

    Java 11是自Java 8以来的又一个LTS版本,是目前全球使用最多的LTS版本之一。今天我们接着在Java 9Java 17系列文章中来认识针对普通开发者的Java 11。 字符串API增强 在Java 11中,针对String的操作进一步得到加强。避免我们在很常见的场景中引入额外的、复杂的API。 var可以用于修饰Lambda局部变量 在Java 10中引入的var来进行类型推断。 ❝HttpClient 的包名由 jdk.incubator.http 改为 java.net.http。 在年初的Java生态调查数据显示Java 11的用户数量大幅增长,成为了主流版本选择之一。

    56240编辑于 2023-04-04
  • 来自专栏一只程序原

    Java9-Java17新特性

    固定在每年的3月和9月。例如Java 16 是2021年3月发布的,而 Java 17是2021年9月发布。 Java LTS 版本 升级优先选择 LTS 版本,LTS表示长期支持版本。 Java 9 新特性 这一部分,我们将介绍Java 9为我们带来的新特性,Java 9的主要特性有,全新的模块机制、接口的private方法等。 Java 9以及之后的版本下运行。 注意:switch表达式在Java 14才正式开放使用,所以我们项目的代码级别需要调整到14以上。 注意:文本块表达式在Java15才正式开放使用,所以我们项目的代码级别需要调整到15以上。

    1.3K20编辑于 2023-11-17
领券