开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
Computer Science
Computer Science

IntelliJ IDEA 中如何将 POM 中的版本号快速提出为属性

在 Java 的项目中的 POM 配置文件。 我们可能希望将一个依赖的版本号提升为属性。 如下图:     上面的依赖的版本号为属性。 解决办法 在 IntelliJ IDEA 中可以使用快捷键。 Ctrl+Alt+V 来完成这个操作。 将光标移动到版本号的数字上面,然后使用上面的快捷键。 这个时候将会弹出上面的对话框,如果你不希望进行修改的话,直接 OK 就可以了。 当然你也可以选择从菜单中进入,进入的路径为:Refactor | Extract | Property   https://www.ossez.com/t/intellij-idea-pom/13712

2021年09月03日 0Comments 745Browse 0Like Read more
Computer Science

IntelliJ IDEA 如何快速查看提交代码的对比

有时候,我们在提交代码的时候希望知道我们对文件进行了什么修改。 那么在 Commit 对话框中,选择需要提交的文件,双击鼠标左键盘就可以了。     这个时候你的 IntelliJ IDEA 将会为你打开一个对比的对话框。 在这个对比的对话框中将会把你的本地文件版本和 Git 的版本进行对比。 在这个对比中,你就可以看到你需要提交的文件的不同了。     这样做的好处是能够让你在提交之前对需要提交的内容进行一些对比,以便于确定你的代码是正确和你需要修改的。   https://www.ossez.com/t/intellij-idea/13710

2021年09月02日 0Comments 776Browse 0Like Read more
Computer Science

JDK 8 及其后续 JDK 中 Period 和 Duration

我们都知道 JDK 8 以后开始使用了新的 joda 日期处理 API。 在这个 API 中,新增了 Period 和 Duration 这 2 个类,用于计算 2 个日期之间的间隔。 下面对这 2 个类进行一些比较和说明,从使用上来说,如果你不需要秒或者纳秒一级的比较的话,就用 Period ,Period 的比较粒度更粗,通常只能精确到,天(Days),月(Months)和 年(Years)。 Duration 是按照纳秒级别的比较,通常会非常精确,不会丢精度,Period 有可能会丢精度。 线程安全和可变 这 2 个类都是: 线程安全(thread-safe) 不可变(immutable) 对比和区别 2 个类比较的精度不不同。 Period 包含年数,月数,天数,而 Duration 只包含秒,纳秒。 Period 只能返回年数,月数,天数;Duration可以返回天数,小时数,分钟数,毫秒数等。 2 个类可以使用的类型不同。 Period 只能使用 LocalDate,换句话说 Period 只能使用 Date 对象。 Duration 是可以使用 Instant 对象的。 例如下面的代码: Instant t1, t2; ... long ns = Duration.between(t1, t2).toNanos(); 将会计算 2 个时间之间的纳秒的不同。 考察下面计算生日的代码: Period p = Period.between(birthday, today); long p2 = ChronoUnit.DAYS.between(birthday, today); System.out.println("You are " + p.getYears() + " years, " + p.getMonths() + " months, and " + p.getDays() + " days old. (" + p2 + " days total)"); 代码将会输出为: You are 41 years, 8 months, and 0 days old. (15219 days total) 因为我们在生日和日期的计算的时候,并不需要非常高的精度,因此上面的代码是不是非常方便? 再也不用受到老的 Java 日期 API 的折磨了。   https://www.ossez.com/t/jdk-8-jdk-period-duration/13709

2021年09月01日 0Comments 841Browse 0Like Read more
Computer Science

POM 文件中 licenses 许可证的定义

针对不同的项目,我们可能需要在 POM 文件中定义我们使用的许可证。     Apache Apache 许可证的配置信息如下: <licenses> <license> <name>Apache 2.0</name> <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> MIT 如果你使用的是 MIT 许可证的话,那么可以使用下面的定义来定义你的许可证。 <licenses> <license> <name>MIT License</name> <url>https://www.opensource.org/licenses/mit-license.php</url> <distribution>repo</distribution> </license> </licenses> 针对不同的项目,你可以定义不同的许可证类型。   https://www.ossez.com/t/pom-licenses/13708

2021年09月01日 0Comments 680Browse 0Like Read more
Computer Science

IntelliJ IDEA 如何显示提交输入的信息历史

在使用 IntelliJ IDEA 完成代码修改准备进行提交的时候,我们可能想知道曾经自己提交的内容是什么。 比如说想知道上次提交的代码关联的 TASK ID 是多少等。 这个时候,你可以先对 Commit 对话框进行选择,然后使用快捷键 Ctrl + M 来显示提交 Message 的历史。     当然你也可以不使用快捷键,单击提交消息对话框中的提交历史按钮。   同样能够载入上面的消息历史。   https://www.ossez.com/t/intellij-idea/13704

2021年08月25日 0Comments 975Browse 0Like Read more
Computer Science

JavaScript 有关数组的 slice 截断函数

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝 (包括 begin ,不包括end )。     原始数组不会被改变。 重点关注 针对这个函数需要重点关注的是 end 这个元素不在拷贝出来的数组中。 数组的下标从 0 开始。 请考察下面的代码: const animals = ['ant', 'bison', 'camel', 'duck', 'elephant']; console.log(animals.slice(2)); // expected output: Array ["camel", "duck", "elephant"] console.log(animals.slice(2, 4)); // expected output: Array ["camel", "duck"] console.log(animals.slice(1, 5)); // expected output: Array ["bison", "camel", "duck", "elephant"] console.log(animals.slice(-2)); // expected output: Array ["duck", "elephant"] console.log(animals.slice(2, -1)); // expected output: Array ["camel", "duck"] 如果你指定了一个下标的话,那么你返回的数组将会是从当前下标到结尾。 如果你提供的是负数,那么负数是从数组中的最后一个元素开始倒数,最后的一个元素对应的数值是 -1。 如下图显示的下标的排序和定义。 如果 begin 超出原数组的索引范围,则会返回空数组。 提取终止处的索引(从 0 开始),在该索引处结束提取原数组元素。slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)。 slice(1,4) 会提取原数组中从第二个元素开始一直到第四个元素的所有元素 (索引为 1, 2, 3的元素)。 如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。 如果 end 被省略,则 slice 会一直提取到原数组末尾。 如果 end 大于数组的长度,slice 也会一直提取到原数组末尾。   https://www.ossez.com/t/javascript-slice/13703

2021年08月25日 0Comments 960Browse 0Like Read more
Computer Science

前端工程师的 caniuse

如果你是前端工程师的话,你应该对 caniuse 这个网站会比较熟悉。 这个网站的作用就是 对 CSS,JS 的一些兼容性问题,并且都从它反馈的兼容性数据中获益,让我们的线上项目更加稳定、和谐的跑在用户电脑里。 简单来说就是因为用户使用的浏览器版本很多,不是所有的 JS 语法都能够在所有浏览器里面运行的,这个网站能够让你通过对方法的一些查询来尽量取得最大公约数。 使用 如果你想查询一个函数 concat,你可以直接对这个函数进行搜索。     在搜索的结果中,你可以可以看到上面针对不同浏览器的版本的支持情况。 灰色的显示的是不清楚对当前选择的浏览器来说能否支持这个功能。 每当增加一个新特性时,都要对以上浏览器列表以及对应版本列表进行实测,特性的测试可使用以下两个官方推荐的网站 https://www.browserstack.com 和 http://saucelabs.com 浏览器信息统计 ccaniuse关于浏览器的数据,主要都来源于 https://gs.statcounter.com/ 此网站统计了全球以及各国的浏览器使用情况。 例如当前这个时间段全球的浏览器使用情况。     从上面的图不难看出 Chrome 还是在浏览器里面占据主流的情况。   https://www.ossez.com/t/caniuse/13702

2021年08月24日 0Comments 717Browse 0Like Read more
Computer Science

JavaScript 数组进行拼接的函数

有时候,我们希望在 JavaScript 中将 2 个已经存在的数组串拼接成 1 个数组。 简单来说就是将数组进行合并。 这个时候,我们可以使用 JavaScript 的 concat 函数。     考察下面的代码: const array1 = ['a', 'b', 'c']; const array2 = ['d', 'e', 'f']; const array3 = array1.concat(array2); console.log(array3); // expected output: Array ["a", "b", "c", "d", "e", "f"] 上面的代码将 2 个数组 array1 和 array2 合并成了一个新的数组为 array3, 在这个新的数组中的元素就是 array2 在 array1 后面添加得到的。 如果你需要合并的数组不只有 2 个,你还有多个的话,你可以同样使用上面的方法,但是在参数中传递进多个数组就行。 concat() concat(value0) concat(value0, value1) concat(value0, value1, ... , valueN) 如上面的代码,你并不需要将 concat 多次运行来进行合并,concat 这个方法允许传递多个需要合并数组为参数。   https://www.ossez.com/t/javascript/13701

2021年08月24日 0Comments 736Browse 0Like Read more
Computer Science

JavaScript 数组元素的一些操作

JavaScript 针对数组中的元素通常有下面 4 个操作的方法 push() pop() unshift() shift() 下面的这张图应该能够帮你比较好的理解这 4 个方法是如何对数组中的元素进行操作的。     总结 对数组头部的元素进行操作使用的是 shift。 shift 是移除,那么对应的添加就是 unshift。 对数组末尾的元素进行的操作就是 push,通常我们 push 用得非常多,对应的移除就是 pop。 该方法会改变数组的长度。   https://www.ossez.com/t/javascript/13697

2021年08月19日 0Comments 561Browse 0Like Read more
Computer Science

如何理解 Java 多线程

进程和线程的概念是操作系统的概念,因此你可能需要看看大学有关《操作系统原理》这本书中的内容才能理解什么是进程和线程。 简单来说进程和线程涉及到 CPU 的使用和内存的分配。 可以想象下你的浏览器,如果你打开了一个浏览器,表示你启动了一个进程,如果你再打开多个标签页,表示你启动了不同的线程(敲黑板:浏览器启动不同的标签页,其实启动的是不同的进程,不是启动线程,但这个模式比较容易理解罢了)。 Java 是多线程,就意味着在 JVM 中可以为不同的计算启动不同的线程,来加快处理速度。 类比浏览器的例子,你打开一个网页,等了一段时间,觉得载入太慢了,你去打开了另外的网页了。 只要涉及到线程就会有内存共享问题,如果有内存共享问题就会有线程安全和线程同步的问题。 既然有线程安全和同步的问题,如何理解和解决? 这些问题就是为什么在面试的时候老被问到的原因。   https://www.ossez.com/t/java/13696  

2021年08月17日 0Comments 629Browse 0Like Read more
1…8687888990…237
Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (514)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1