开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Computer Science

来聊聊 OpenJDK 和 JVM 虚拟机

自从 Oracle 收购 Sun 以后,Java 世界也变了不少。 好在 Oracle 还开源了个 OpenJDK,并且很多东西都变了。 OpenJDK 就是一个桶,什么都可以往里面装,各大公司又纷纷推出自己的 JDK,简直可以直呼看不懂。 OpenJDK 在 Windows 环境下的诟病就是不好装,不知道怎么装。 救民水火的 RedHat RedHat 应该注意到了这个情况,在自己的开发网站中推出了 RedHat OpenJDK 下载。我的本地开发环境就用的 RedHat 下载 OpenJDK。 挺好用的。 如果你怕麻烦,直接用这个 JDK 也没啥问题。 从安装的环境中看不出来 JVM 用的是那个版本,应该是 HotSpot 吧。 如果错了请大家纠正。 IBM 在实际世界中,推动开源的还有 IBM。 这个名字不应该被忘记,虽然近些年有点廉颇老矣的意思了。 IBM 推出了 semeru, 下载页面是 IBM Developer 上面使用的 OpenJDK 和 OpenJ9 的虚拟机。 因为同事的新机器要配置 JDK,突然问我要什么 JDK,我才从 IDEA 上面找到的。 上面还有一个 Eclipse Temurin 下载,你可能就有点困惑,我到底要下载那一个了。 下载地址为: Latest releases     为什么有 2 个版本 为什么这里有 2 个 OpenJDK 版本的下载呢? 经过考古,主要原因是这 2 个 OpenJDK 的 JVM 虚拟机版本不一样。 Eclipse Temurin 使用的是 Hotspot 的虚拟机。 IBM Semeru 使用的是 OpenJ9 的虚拟机。 IBM 和 Eclipse 基金会的渊源 IBM 将自己的开源的东西捐献给了 Eclipse 基金会。 可以说没有 IBM 就没有 Eclipse,Eclipse 就是 IBM 成立的,但是 Eclipse 又是独立运作的,捐献出去的东西也和 IBM 没有什么太大关系了。全部都是 Eclipse 基金会维护的。 IBM Semeru 认证 IBM Semeru 下面又出现了一个认证的版本。 Eclipse Temurin 提供 OpenJDK + Hotspot 映像,IBM Semeru Runtimes 将提供 OpenJDK + Eclipse OpenJ9 映像的开放和认证 (JCKed) 版本。 这是一个令人困惑的故事和过渡,我会尝试添加一些背景。到目前为止,AdoptOpenJDK 一直在使用 Hotspot 和 OpenJ9 VM 生成 OpenJDK 二进制文件。 随着 Adopt 迁移到 Eclipse,法律限制阻止了新的 Eclipse Adoptium 小组生产/发布基于 OpenJ9 的二进制文件。 因此,IBM 将以 IBM Semeru Runtimes 的家族名称生产基于 OpenJ9 的 2 种风格的二进制文件,即 Open 和 Certified。本质上相同的二进制文件,在不同的许可证下发布。 下载 IBM Developer 就可以开始使用了。 IBM Semeru Runtimes将有两个版本,具有不同的许可证:IBM Semeru Runtime开放版具有开源许可证(GPLv2+Classpath扩展),而IBM Semeru Runtime认证版具有IBM许可证。IBM Semeru Runtime都通过了全面的Eclipse AQAvit质量保证测试套件,以提供一个稳定和可支持的引擎,可以运行任何种类的Java应用程序。 正如其名称所示,IBM Semeru Runtime认证版也经过了Java TCK认证。 为了支持新的命名规则,从2021年7月的更新版本开始,当前的IBM SDK,即Java技术版11,将更名为IBM Semeru Runtime认证版。 上面的话真的很绕。 我的理解就是因为 OpenJ9 已经捐献给了 Eclipse 基金会了。从法律角度来说和 IBM 已经没有什么关系了,这个是属于 Eclipse 基金会的东西。 IBM 为了避免法律上面的麻烦搞了个认证版本。 这个认证版本和不认证版本的代码和结构都完全相同,只是 IBM 可能希望通过认证版本提供一些更多的支持吧。 对于开发人员来说,都一样没区别,放心用。 写在最后 Java 世界有了不少的变化。 IBM 是我一直比较敬佩的公司,从 Dev2Dev 网站到对 Java 世界的支持。 以及捐献给 Eclipse 基金会的很多产品,都让人值得怀念。 对比 Oracle 的贪得无厌,微软的小肚鸡肠,IBM 和 RedHat 都值得大家为他们点个赞。 虽然现在 Java 的版本已经被搞得乱得不要不要的了。 简单总结下就是,如果你希望: OpenJDk + HotSpot 虚拟机: 下载 Eclipse Temurin 或者 RedHat 版本。 OpenJDK + OpenJ9 虚拟机:下载 IBM Semeru 版本(认证不认证都一样)   https://www.ossez.com/t/openjdk-jvm/14058

2022年08月28日 0Comments 549Browse 0Like Read more
Computer Science

什么是 OpenJ9

OpenJ9 简单来说就是 JVM 的其中一个开源版本。 如果你默认安装的是使用 Oracle 的话,那么跑不了会看到一个 HotSpot,这个就是 Oracle 使用的版本。 这个 JVM 版本是从 SUN 系统开始就使用的版本。 Java 在开源的时候因为这个 JVM 版本有些内容是不开源的,所以 JVM 其实并不是开源的,当落入 Oracle 手之后,这个 HotSpot 自然就归了 Oracle。 按照 Oracle 的尿性,这个肯定是需要收费的了。 或者 JVM 不收费,一旦上了 Oracle 的贼船,下来就不那么容易了。     OpenJ9 好在我们现在有了 OpenJ9 了。不管怎么样,我们还是得感谢感谢 IBM。 在 IBM 中的 Java 机器中,是不使用 HotSpot 虚拟机的。 JVM是Java的跨平台性实现的基础,不同平台上标准统一的JVM提供了相同虚拟运行环境,使得Java应用不用做(或很小的)修改在各个JVM上都能运行。 IBM Technology for Java Virtual Machine是IBM自己开发的一款JVM,它支持在当前流行的大部分平台上的安装和使用,这其中就包括IBM i。 除去IBM Technology for Java Virtual Machine,在一些文档中,也许你还读到过这些名称:IBM Virtual Machine for Java, IBM JVM,IBM J9 VM, J9 JVM, 以及IT4J。 而这不同的名称中,J9显得更特别一点。为什么会有J9这个名字呢?这与这款JVM的出身有关,它最早是由IBM Ottawa实验室一个Small Talk的虚拟机扩展来的。 那时候,这个虚拟机有一个bug是因为8k值定义错误引起,工程师们花了很长时间终于发现并解决了这个错误,此后这个版本的虚拟机就被称为K8了。于是,后来出现的支持Java这个版本的虚拟机就被称为J9了。 Eclipse OpenJ9 是 OpenJDK 的替代品吗 不是。Eclipse OpenJ9 是一个 Java 虚拟机(JVM),它是运行 Java 应用程序的引擎,而 OpenJDK 是一个完整的开发工具包,包括JVM、Java 基础类库。默认情况下,OpenJDK 使用名为 Hotspot 的 JVM。简单地说,OpenJ9 是一个 JVM 替代方案,可将其作为 OpenJDK 二进制文件的一部分。 Eclipse OpenJ9 是否与 Hotspot 相同 Hotspot 和 Eclipse OpenJ9 都是可以包含在 OpenJDK 中的 Java 虚拟机,但它们都具有不同的功能。根据所遵循的构建过程,可以构建包含 Eclipse OpenJ9 或 Hotspot 的 OpenJDK 二进制文件。 为什么要使用 Eclipse OpenJ9 而不是默认的 JVM 如果你正为应用程序寻找企业级的运行时环境,建议使用 Eclipse OpenJ9 构建 OpenJDK。这个高性能、可扩展的虚拟机是许多 IBM 企业软件产品的核心,所以它的血统就是为企业应用环境而生的。 另外,你还可以调整 OpenJ9,以进一步改进特定场景下 Java 应用程序的性能。例如,可以切换垃圾回收策略以管理不同类型工作负载的内存。 当 IBM 把 J9 捐给 Eclipse 基金会以后,这个版本就被称为 OpenJ9了。 OpenJ9 是完全开源的,官方地址为:https://www.eclipse.org/openj9/ 所有 OpenJ9 的源代码都可以在 GitHub 上找到。   https://www.ossez.com/t/openj9/14057

2022年08月28日 0Comments 744Browse 0Like Read more
Computer Science

Java 中使用 public,private 和 protected 修饰的方法

大部分情况下我们都使用这几个修饰来修饰方法。 当然对类来说,相信大部分都默认使用 Public,大部分人都不去纠结。 Public: 简单来说就是谁都可以访问,你写个类除了特殊要求,当然都是希望大部分人用的。 Private:私有。 除了class自己之外,任何人都不可直接使用。简单来说就是一个方法,你只希望自己的这个类可以用,不希望这个方法在其他类中使用。Private 这个在类中的私有方法中定义比较多。 Protected:这个就是最纠结,简单来说就是这个修饰的方法使用范围比 Public 小,但是又比 Private 大。对于其他的外部类,protected 就变成 private。 官方的:Controlling Access to Members of a Class (The Java™ Tutorials > Learning the Java Language > Classes and Objects) 文章对上面几个修饰有了定义。 也顺便偷了一张图。   对我们来说 Protected 和 Public 也差不多了,没有很多奇葩需求的话,你就 Public 算了,省得纠结。 这就是为什么你看很多人的代码的时候,大部分都是 Public 和 Private,用 Protected 修饰的方法远没有这 2 个这么多。 本来不想纠结这几个关键字的,无奈学院派的人非要纠结,有点讨厌。 对日常的业务逻辑开发,只要是类里面的方法,你就 Private,因为别人也不一定用得到。 如果你希望其他人用,就 Public,并且单独做成类,让别人直接调用吧,不要过于纠结。 https://www.ossez.com/t/java-public-private-protected/14056  

2022年08月28日 0Comments 533Browse 0Like Read more
Computer Science

IntelliJ IDEA 打开近期工作的项目的对话框的快捷键

当项目比较多的时候,我们可能需要经常的打开和关闭一些项目。 不幸的是 IntelliJ IDEA 没有提供打开近期项目的快捷键。     当然,我们是可以通过文件中的设置来打开的。 同时你也可以指定一个快捷键。 根据每个人的使用习惯不一样,如果想多敲下字的话,可以使用 cmd + shift + a (Mac) / ctrl + shift + a (Windows) 来打开 Action 的查找对话框来进行查找。 输入 Manage ,然后选择第一个就可以打开了。     感觉也不是非常消耗时间。 https://www.ossez.com/t/intellij-idea/14055

2022年08月28日 0Comments 615Browse 0Like Read more
文化旅游

民族融合的湘南典范芬香村 - 振兴绿色乡村

芬香村在2017年底全村整体脱贫,现在芬香村正努力把青山变为金山银山。芬香村依靠与广西交界的优势,与广西百姓手足相亲、守望相助,瑶汉民族共同发展。 芬香村在大庆坪乡政府指导下,与广西永福、全州等县交流扶贫产业经验,发展乡村经济。 村民在已有4万余亩杉树林的基础上,又将荒山补种、林业抚育,发展林禽、林畜、林菌等林下经济列入发展计划,如采集松香,放养山鸡、土鹅、肉牛,人工培育食用菌等。 根据山地土壤特点,发展油茶。 芬香村委与九冲岭合作社合股经营拉马岭油茶基地项目,包括种植油茶、生态种养殖、农产品深加工。2020年3月,芬香村争取到产业发展资金100余万元,流转山林350亩,种下了油茶树。 一棵棵油茶树长势良好。 与广西永福县文杰罗汉果专业合作社及全州县瑶寨蔬菜种植专业合作社签订协议,种植特色产业豆角、罗汉果、百香果,定点购置种苗、技术服务、收购成品。芬香村已成功注册“大庆坪土猪”商标,今年养殖土猪约400头,以分散、放养为主,喂食生态草料,使土猪肉质更鲜、品质更好,并计划新建一腊肉熏制加工车间,打造土猪腊肉新品牌。 芬香村正向绿色美丽乡村迈步前进!    

2022年08月28日 0Comments 710Browse 0Like Read more
Computer Science

Java System.lineSeparator 方法

回车换行问题 在不同操作系统中对回车换行的定义是不一样的。 Windows 的回车换行是 2 个字符,对应的是回车+换行,写法就是我们常用的 \r\n Unix 系统下对这个回车换行进行了简化,变成了使用 \n 来表示。 这里就出现了一个问题,对应不同的操作系统,同样的文本,如果只用 \n 的话, Windows 系统读的文本没有换行,只有回车。 JDK 1.7 之前 在 JDK 1.7 之前,如果我们要解决这个问题,我们会使用下面的代码: System.getProperty("line.separator"); JDK 是使用属性配置文件来进行定义的。 这个方法的写法有点容易出错,毕竟是文本了,敲错字很正常。 System.lineSeparator Java 的 System.lineSeparator 这个方法对 System.getProperty("line.separator"); 进行了封装。 这个方法是在 JDK 1.7 以后才提供的,我们直接用就可以了。 如果你查看 JDK 的源代码的话。     这里非常清楚的显示了对代码的封装。 代码显示也非常清楚,这个是从版本 1.7 开始的,主要就是为了 Unix 和 Windows 回车换行问题。     如果你的 JDK 比较新,就大胆用吧。 按照目前 JDK 主流的版本是 1.8 的情况,大部分情况都不会有什么问题。   https://www.ossez.com/t/java-system-lineseparator/14052

2022年08月10日 0Comments 767Browse 0Like Read more
文化旅游

民族融合的湘南典范芬香村 - 故事与民谣

故事与民谣     传说故事 很久很久以前,黄花岭东面住着一对相依为命的兄弟,非常勤劳,他们没有钱买耕牛,就用手一锄头一锄头地挖田种庄稼。 有民谣曰:“千狠心万狠心,打把锄头三五斤,一锄挖个黄花岭,两锄挖个养牛坪。”他们的辛劳感动了居住在黄花岭山上的神仙,决定帮助他们。 一天,这位神仙就变化成一个江湖上卖狗的人,卖狗人来到兄弟俩挖田的地方,念念有词的唱道:“卖狗牵牵,卖到云南四川;谁个识货,我就不收钱。 ”兄弟俩看到那条狗油毛光亮,长得高大,很有神采,就买下了那条狗。神仙见他们买下狗,没有说一句话,眨眼就不见了。 兄弟俩刚把狗牵到手,想掏钱,却见不着那卖狗的人了。那狗跟着兄弟俩回到家,不仅会看家,而且还会犁田,他们再也不用拿锄头挖田了,日子也慢慢好起来了。又一日,一个盐贩子路过黄花岭,看见兄弟用狗犁田,觉得狗犁得了什么田呢?于是他山上唱道:“卖盐卖了多少年,从未见过狗犁田。 狗若犁了这丘田,我愿输了这担盐。”兄弟俩见卖盐人这样说,就跟他打了睹。 一袋烟工夫,狗就把一丘大田犁了,盐贩子只好认输,把那担盐乖乖地留下来了。 从此兄弟俩不仅种田,也开始了贩盐的生意,日子过得红红火火的了! 民谣 摇呀摇,摇到外婆桥。摇大了,砍柴烧。砍一担,回来有个嘎嘎蛋。砍一把,回来有场打。 古怪古怪真古怪,和尚帽子翻转戴。我讲先煮饭,他讲先煮菜。一滴眼泪屎,打烂钹锅盖。 月亮光光,月亮柔柔,江边奶崽放水牛。水牛过江,踩死蚂蟥。蚂蟥告状,告到和尚。和尚担水,遇到海龟。海龟生蛋,拿来送饭。   https://www.usreio.com/t/topic/275

2022年08月09日 0Comments 747Browse 0Like Read more
文化旅游

民族融合的湘南典范芬香村 - 民俗风情之崇文重教

芬香村地处边远的大山中,靠着耕种旱作物过日子,芬香是国家级的贫困村,村子的经济虽然贫困,但村民对孩子的教育却没有任何的放松。在300多人的村子里,考上大学的不在少数。 如贺家小孩考上了中国人民大学,唐家小孩考上了哈尔滨工业大学,盘家小孩是清华大学的博士,一般大学的学生有10多个,还有两个空军飞行员。经济落后但子女培养却毫不含糊,相互学习,相互提携,相互竞争,从而,形成了芬香村一心尚学的好风气。 这些走出家乡的学子,其对家乡的眷恋却没有减少。身处繁华的都市生活,惦念着的还是家乡的父老乡亲。 每次回到这偏僻的芬香村,临走时总忘不了带上一包家乡的红薯干与那独特穇子酒。这就是家乡的味道!   https://www.usreio.com/t/topic/274

2022年08月09日 0Comments 816Browse 0Like Read more
文化旅游

民族融合的湘南典范芬香村 - 民俗风情之摸鱼

芬香村水资源并不丰富,村民因地制宜,就在稻田里养鱼,以解决村民的吃鱼问题。因鱼在稻田里吃着禾花长大,这鱼就叫着禾花鱼,村民说这鱼以前还是朝庭贡品。 收割完稻谷后,稻田里还有水,这时就会举行摸鱼节,一是庆祝丰收,二是趁着稻田水没干把鱼捞上来,晒干以便腊月食用。 摸着的大鱼交给养鱼的主人,而小的就会谁摸着归谁。摸鱼节没有固定的日期,而是村民把稻田里的稻谷收割完了后,再约定时间全村同到稻田里摸鱼,全村的男女老少都会在这一天或拿着家里的鱼罩,或空手到田里摸鱼。 长期的约定,就形成了芬香村较有仪式感的的娱乐活动了。           https://www.usreio.com/t/topic/274

2022年08月09日 0Comments 834Browse 0Like Read more
文化旅游

民族融合的湘南典范芬香村 - 民俗风情之上梁仪式

芬香村地处零陵西南边界,与瑶族同胞杂居一地,至今还保存着许多并带有瑶族风格的民俗风情。如建房,芬香村还保存着较完整的仪式。 上梁仪式 房屋建筑快落成时最重要的仪式就是上梁。木匠师傅要先选好梁木,并把梁木做好,架在较高的地方,不能着地,防止人们从梁上跨过。 梁木选择比木柱要稍小的直杉木(或香椿树)。上梁前需先选好日子与时辰,避开各种凶煞,才能上梁。日时定好后,开始准备上梁宴。 上梁这一天,家属中的亲戚及村民都会到新房祝贺,并送上贺礼。孩子们到得越多越好,越热闹越有人气,预示建房家庭的人丁兴旺。 孩子们参加这种活动,其家长一定要告诫孩子多说吉祥话,并指明哪些话不能说等。 第一步,是由村里德高望重的长者,或是师公,诵唱《上梁文》。 第二步,是用鸡血祭梁,以求根基牢固,平安长久。师公用嘴咬开公鸡的鸡冠,用鸡冠血涂抹在梁木上,鸡不能杀死,这叫活祭。 用来祭梁的公鸡,在仪式结束后交给师公带回。过去有的人家还会在梁木上用毛笔写上上梁日期,我们在考察古村落时就是通过梁上书写的日期,了解到古村落的建造时间。 第三步,用一对外圆内方的古钱币、一双红筷子、纸笔墨、五谷等,用红布包裹好,用红线、红黄彩色新布条把它们捆绑在梁木向地面一方的正中,一定要捆严实,防止松了掉下来。 意为祈求四季平安,五谷丰登,后辈文武双全。另外在梁的两头还捆一串铜钱,以示镇邪。 第四步,上梁。由村里的青壮年用棕绳一步一步将梁木拉上去。拉梁的时候,鞭炮齐鸣,锣鼓喧天。木匠师傅唱上梁歌,“正梁上上六步啊,六六六六大顺啊!”拉梁的人们齐声呼应“好的啊!”每上一步,上梁师傅唱一句,拉梁者都要高声呼应:“上啊,大吉大利!”在场的村民亲朋也一起跟着呼喊回应。 第五步,接包。待梁木拉上去放正后,就把装着糍粑、红包、花生、桂圆、红枣、玉米等物品的箩筐拉上去交给建房的木匠师傅。 主人除了给木匠师傅正常工钱之外,在这个箩筐里放一些额外给上梁木匠师傅的礼品。 第六步,抛梁,这是最热闹也是最有欢快有趣的一道程序。 木匠师傅接到箩筐后,大喊地声,“祝贺啦!”随后将糖果、花生、糍粑、铜钱、红枣、桂圆等从梁上向下抛向四周,让前来看热闹的男女老幼争抢,人越多主人越高兴,此举称为“抛梁”,意为“财源滚滚来”。 在“抛梁”时,木匠师傅还要说吉利话,“抛梁抛到东,东方日出满堂红。抛梁抛到西,麒麟送子挂双喜。抛梁抛到南,子孙代代福满堂。抛梁抛到北,囤囤白米年年悦。”一边向下抛撒,一边唱着山歌,梁下的人们一边捡礼品,一边也会随声呼应。 上梁歌词有讲究,一般七字一句,一段六句,寓意有吃有喝,人寿年丰,天长地长。如: 炮竹的响喜洋洋,我给东家来上梁。主梁生在青龙上,龙尾连在凤凰山。多发红包多生子,保你东家人财旺。 说上梁来快上梁,上梁粑粑你先尝。先赐东家金元宝,再赐东家粮满仓。三赐东家平安树,四保东家子孙长。 上梁粑粑软呵呵,快抛粑粑子孙多。老人捡起哄孙崽,后生捡起哄老婆。姑娘捡起送郎君,奶崽捡起笑呵呵。 太阳刚露上吉梁,吉梁上在新屋上;左边连着状元府,右边搭起是金榜;东家多把红包递,保你儿孙做大官。 黄道吉日上吉梁,吉梁上在屋上方。梁上包好笔墨砚,恭祝东家世代昌。文官胜过文兆姬,武官赶上朱元璋。 抛梁结束后,众人退出新屋,让太阳晒一下屋梁,这叫做“晒梁”。最后,主人设宴款待匠人、帮工和亲朋好友,并分发红包,整个上梁仪式结束。   https://www.usreio.com/t/topic/274

2022年08月09日 0Comments 810Browse 0Like Read more
12345…10
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. (511)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1