自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 Java 如何有效地避免OOM:善于利用软引用和弱引用

想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲:一.了解 强引用、软引用、弱引用、虚引用的概念二.进一步理解软引用和弱引用三.如何利用软引用和弱引用解决OOM问题一.了解 强引用、软引用、弱引用、虚引用的概念在Java中,虽然不需要程序员手动去管理对象的生命周期,但是如果希望某些对象具备一定的生命周期的话(比如内存不足时JVM就会自动回收某些对

2021-03-31 09:19:39 182

原创 Java 必须掌握的 12 种 Spring 常用注解

1.声明bean的注解@Component 组件,没有明确的角色@Service 在业务逻辑层使用(service层)@Repository 在数据访问层使用(dao层)@Controller 在展现层使用,控制器的声明(C)2.注入bean的注解@Autowired:由Spring提供@Inject:由JSR-330提供@Resource:由JSR-250提供都可以注解在set方法和属性上,推荐注解在属性上(一目了然,少写代码)。3.java配置类相关注解@Configuration

2021-03-31 09:16:46 138

原创 更好的使用 JAVA 线程池

这篇文章结合Doug Lea大神在JDK1.5提供的JCU包,分别从线程池大小参数的设置、工作线程的创建、空闲线程的回收、阻塞队列的使用、任务拒绝策略、线程池Hook等方面来了解线程池的使用,其中涉及到一些细节包括不同参数、不同队列、不同拒绝策略的选择、产生的影响和行为、为更好的使用线程池奠定知识基础,其中值得注意的部分我用粗体标识。ExecutorService基于池化的线程来执行用户提交的任务,通常可以简单的通过Executors提供的工厂方法来创建ThreadPoolExecutor实例。线程池解

2021-03-31 09:15:51 47

原创 千锋重庆web前端小编浅谈前后端分离的优缺点

一、前戏前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。在互联网架构中,名词解释:Web服务器:一般指像nginx,apach

2021-03-31 09:14:04 136

原创 小白入门网页前端必知html基础知识

CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。1、tml的固定结构一个HTML文件是有自己固定的结构的。<html><head>...</head><body&g

2021-03-30 09:31:23 102

原创 你怎么优雅写 CSS?

首先写列个大纲:佛性选手, 复制粘贴一把梭.命名空间命名空间 + BEM 规范CSS modulecss in js方案一. 命名空间 + BEM 规范原理:强行增加一个最外层的命名空间将底部样式包裹起来。A.less.componentA { .title { color: red; } .des { ... }}.componentB { .title { color: red;

2021-03-30 09:15:06 165

原创 20 行 JS 代码实现粘贴板功能

使用剪贴板是一项基本技能。作为码农都应知道,Tab,Ctrl/Cmd + A,Ctrl / Cmd + C以及Ctrl / Cmd + V分别是自动聚焦、复制、粘贴的快捷键。而对普通用户可能就不太容易了。即使用户知道剪贴板是什么,(除了)那些眼神极好或反应很快的人,其他情况下很难以突出显示他们想要的确切文字。若用户不知道键盘快捷键,也看不到隐藏的编辑菜单,或从未使用右键菜单或不知道长按触屏弹出选项菜单,那么他很可能无法察觉到复制功能。那么我们是否应该提供一个“复制到剪贴板”按钮来帮助用户?这功能应该会很

2021-03-30 09:10:53 202

原创 这3个框架是每个Web前端程序员必须要掌握的

随着互联网的高速发展以及前端技术的革新升级,框架成为每一个高薪Web前端程序员必须要掌握的技能。为了能够更快的掌握企业所需的高端技能,掌握常用的Web前端框架,那么Web前端要学习哪些框架呢?且看下文的分析。就目前来说,比较流行且常用的Web前端框架有Angular、React和Vue。AngularJS通过为开发者呈现一个更高层次的抽象来简化应用的开发,它主要考虑的是构建CRUD应用,而至少90%的Web应用都是CRUD应用。React是一个用于构建用户界面的JavaScript库,也是Web应用程序的

2021-03-30 09:08:52 123

原创 react详细介绍性能优化

首先要了解网页性能不好的罪魁祸首浏览器的重绘和重排版(reflows&repaints)(DOM操作都会引起)才是导致网页性能问题的关键。而React虚拟DOM的目的就是为了减少浏览器的重绘和重排版。  一:react中的问题有时候组件的render方法会在不必要的情况下被调用。比如:组件渲染的过程中,并没有使用props或者state的值,或者组件的props或者state并没有在父组件重新绘染时发生改变。这意味着重新绘染这个组件会得到和已知虚拟DOM一模一样的结果。二:优化关键sho

2021-03-29 09:35:17 102

原创 我为什么要立刻放弃React而使用Vue?

现在,Vue.js 在 Github 上得到的星星数已经超过了 React。这个框架的流行度在不断增长,由于它并没有像 Facebok(React)或 Google(Angular)那样的大公司支持,这种增长让人非常惊讶。我会在这篇文章里说明我对 Vue 流行的一些看法,以及为什么它能超过竞争者。由于 Vue 的设计哲学和特性与 React 十分相似,我会比较这两者,并说明为什么 React(即使它是个好框架)经常很有欺骗性。Web 开发的发展在上个世纪九十年代,写网站还只是纯粹的 HTML,加上

2021-03-29 09:33:22 519

原创 HTML跳转到页面指定位置的几种方法

前言有时候,我们想阅读页面中某段精彩的内容,但由于页面太长,用户需要自己滚动页面,查找起来非常麻烦 ,很容易让人失去继续往下阅读的兴趣。这样体验非常不好,所以我们可以想办法 实现点击某段文字或者图片跳转到页面指定位置,方便用户的阅读。一、 纯 html 实现利用 id 为标记的锚点这里作为锚点的标签可以是任意元素。2. 利用 a 标签的 name 属性作为锚点这里作为锚点的标签只能是 a 标签。注意:当以 ’ a 标签 name 属性作为锚点 ’ 和 ’ 利用 id 为标记的锚点 ’

2021-03-29 09:30:19 15173 2

原创 16个非常有用的CSS伪选择器,你千万不要错过了

这篇文章鼓励构造 UI 时使用更多纯 CSS 和更少的 JS。熟悉所有的 CSS 是实现这个目标的一种方法 —— 另一种是实施最佳实践和尽可能的减少代码。1、::first-line | 选择首行文本这个伪元素选择器选择换行之前文本的首行。p:first-line { color: lightcoral;}2、::first-letter | 选择首字母这个伪元素选择器应用于元素中文本的首字母。.innerDiv p:first-letter { color: lightco

2021-03-29 09:27:32 1092

原创 Web前端零基础入门知识汇总,小白必读

很多想转行的朋友,很多人跃跃欲试却又不敢转到前端这一行,都是因为害怕自己搞不懂、学不会编程,搞不定代码。这里我给想要尝试的大家整理了前端零基础入门知识汇总,希望大家能打好基础,找对入门前端开发的学习方法。下面我们一起来看一看吧!一、工具篇工欲善其事,必先利其器,在开始之前选择一个合适好用的编辑器是很重要的。工具不再多,在于好用就行,除了编辑器,达妹也要给代价要推荐其他的一些工具,才能够让你在学习的道路上更加顺畅。1.WebStorm不必多说,前端最强大的编辑器,特别是那无敌的智能提示,但是它的缺点在于

2021-03-26 09:49:14 461

原创 网站前端开发基础知识学什么?必备技能

网站前端开发基础知识学什么?Web前端开发网页制主要由HTML、CSS、JavaScript三大要素组成。随着企业需求变,前端开发技术的三要素也演变成现今的HTML5、CSS3、jQuery。响应式布局、微网站等是Web前端未来的发展方向之一。网站前端开发基础知识学习内容:1、HTML基础标签HTML不管前后端都必须要会的基础中的基础。html标签常用的也没几个,学起来其实很容易。HTML的学习是一个记忆和理解的过程,在学习过程中可以借助Dreamweaver的“拆分”视图辅助学习。在“设计”视图中看

2021-03-26 09:45:27 106

原创 前端开发必会的HTML/CSS硬知识

1 本文简介面试大厂,HTML/CSS,JS,网络基础这三块硬知识是必不可少的我整理了一些备考笔记,分享给大家初中级前端到高级前端的蜕变,从基础知识开始~2 块元素和行元素2.1 请说出3个H5新增的块元素,并介绍他们的应用场景aside:表示article元素内容之外,与article元素内容相关的辅助信息figure:代表一个块级图像,包含说明。figure添加标题时,与figcaption元素结合使用。dialog:表示几个人直接的对话。与dt和dd元素结合使用,dt表示讲话者,dd表

2021-03-26 09:31:28 109

原创 JS日期时间格式全局转换

在Date函数的原型上挂载一个format方法// 转换时间格式Date.prototype.format = function(fmt) {var o = {“M+” : this.getMonth()+1, //月份“d+” : this.getDate(), //日“h+” : this.getHours(), //小时“m+” : this.getMinutes(),

2021-03-26 09:24:32 125

原创 jquery实现无限循环滚动

复制下面代码查看效果<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } div#outer{ width: 1000px; height: 200px; overf

2021-03-25 09:20:45 842

原创 html+css实现自定义图片上传按钮

普通的input[type=‘file’]的效果很朴素以自定义一个file选择文件的按钮:思路为:用定位将自定义的按钮遮住原来的选择文件按钮,再让点击自定义按钮时触发原来的选择文件按钮的事件即可(对此,label可实现)对了,在这里说一下,我目前是在职web前端开发,如果你现在正在学习前端,了解前端,渴望成为一名合格的web前端开发工程师,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,都可以随时关注并私信我:前端,我都会根据大家的问题给出针对性的建议,缺乏基.

2021-03-25 09:18:31 319

原创 html5-FileReader实现上传图片实时预览

普通的文件上传只能看到它的文件名,而如果要实现选择某一张图片则可以利用html5的FileReader完成下面是实现步骤:html:这里是上传图片的内容,οnchange="getFile()"为选择文件后的转换函数,后面会提及上传图片的按钮我这里是自定义的,做法在另一篇博客里css:预览框我暂定为100x100的正方形框,出来后图片可能会有变形之类的,可以自定义接下来是主要的JS部分JS:首先,定义一个变量showFile保存实际要显示的图片的整个文件获取预览框,方便之后的显示:

2021-03-25 09:15:39 134

原创 六种设计难题的CSS实用技巧

一、黑白图像当你需要让一张彩色的图片显示为黑白照片的时候,你可以用下面的一段代码。img.desaturate{filter: grayscale(100%);-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%);}二、使用 :not() 在菜单上应用/取消应用边框先给每一个菜单项添加边框.nav li{bo

2021-03-25 09:11:14 86

原创 JavaScript正则获取字符串括号内的内容

首先,介绍一下正则的概念。正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。正则表达式可用于所有文本搜索和文本替换的操作。其基本语法结构如下:/正则表达式主体/修饰符(可选)其中,修饰符部分是可选内容。常见的修饰符有:修饰符描述i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。另外,JS的正则表达式模式和Python相似,具体可以参考资料2所示。主要包括:方括号、元字符和量词等。支持正则表达式

2021-03-24 09:19:22 4345

原创 要想成为前端大神,那些你不得不知晓的前端命名规范

对于经验资深的前端er,在给web布局时,相信都会很注重标签和命名的规范。尤其是随着html5的普及发展,更是把web前端语义化推向一个新的台阶上。比如html5给我们新增的语义标签:header、nav、main、aside、footer、section、article等等。那么对于web语义化,有什么优势呢?一个得到广泛推崇的东西,必然有它的优势所在。web语义化:1、可以让人一目了然这块是什么鬼,那块是什么鬼,对于项目的维护或者优化都是非常有意义的。2、随着html5语义化标签的出现,我推测以

2021-03-24 09:15:27 180

原创 javaScript中的高级技巧

函数绑定函数绑定这个是一个非常流行的一个对函数的一种使用技巧,它通过在特定的this环境下去指定参数的形式,去调用一个函数,这就称作是函数绑定。在我们用的最普遍的一个地方,就是在React使用面向对象编程的时候,绑定一个点击事件的情况,就是属于函数绑定的范畴。函数绑定有什么作用呢,同样的我们以一个点击事件作为例子<button id = 'dd' name='anta'>点击点击点击</button> const test = { name: 'nike',

2021-03-24 09:10:57 67

原创 前端开发和后端开发是干什么的?有哪些区别

1、前端开发:网站的“前端”是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容–从字体到颜色,以及下拉菜单和侧边栏。这些视觉内容,都是由浏览器解析、处理、渲染相关HTML、CSS、Java 文件后呈现而来。前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,并通过建立框架,构建沉浸性的用户体验。为了实现这个目标,开发需要熟练运用下列语言、框架、工具库。2、后端开发:为了让服务器、应用、数据库能够彼此交互,后端工程师需要具有用于应用构建的服务器端语言,数据相关工具,PHP框架,版本控制

2021-03-24 09:08:09 1475

原创 前端开发项目中必会 js数组和对象相互转换

js数组和对象相互转换对象转数组let arr = [] let obj = { name: "大东东", label: "小掘金"} for(let key in obj) { arr.push({ name: key, label: obj[key] })} console.log('arrStringify', JSON.stringify(arr, null, 2));console.log('arr', arr)

2021-03-23 09:26:27 349

原创 让你彻底搞懂javasript原型和原型链

原型什么是原型:原型就是实例对象(构造函数new 一个函数出来的对象)身上所特有的一种属性,是javascript实现继承的其前提开始:一、正式介绍原型前需要先了解构造函数和实例对象的概念,什么是构造函数,什么又是实例对象function Person() {}//此处Person就是一个构造函数,需要有new关键字//通过new产生的变量p就属于Person的实例对象var p = new Person();二、了解了实例对象和构造函数的基本原理,我们来看一下是实例和构造函数之间的内部

2021-03-23 09:24:30 131

原创 JS 实现功能的代码

JavaScript 可以做很多神奇的事情!从复杂的框架到处理 API,有太多的东西需要学习。但是,它也能让你只用一行代码就能做一些了不起的事情。获取一个随机布尔值 (true/false)这个函数使用 Math.random() 方法返回一个布尔值(true 或 false)。Math.random 将在 0 和 1 之间创建一个随机数,之后我们检查它是否高于或低于 0.5。这意味着得到真或假的几率是 50%/50%。const randomBoolean = () => Math.

2021-03-23 09:20:06 235

原创 2021你需要的 7个JS数组处理方法

JavaScript 提供了大量处理数组的不同方法。千锋重庆web前端培训机构的小编将在之后的几分钟为您介绍 7 个基本方法,相信读完后,您的 JS 开发技能会有所提升~Array.map()每当你使用 .map() 方法,会创建出一个基于原数组更改过的新数组。 .map() 方法会提供一个函数用以循环遍历(按顺序调用)原数组中的每个元素并改变他们。如果你想改变数组中所有元素并存于一个新数组, .map() 方法将是你的选择。假设我们有一个汽车品牌的数组:const cars = ["Pors

2021-03-23 09:06:13 238

原创 一文解开java中字符串编码的小秘密

简介在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用。一起来看看吧。Unicode的发展史在很久很久以前,西方世界出现了一种叫做计算机的高科技产品。初代计算机只能做些简单的算数运算,还要使用人工打孔的程序才能运行,不过随着时间的推移,计算机的体积越来越小,计算能力越来越强,打孔已经不存在了,变成了人工编写的计算机语言。一切都在变化,唯有一件事情没有变化。这件事件就是计算机和编程语

2021-03-22 09:29:52 69

原创 java安全编码指南之:异常处理

简介异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢?一起来看看吧。异常简介先上个图,看一下常见的几个异常类型。所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception。Error通常表示的是严重错误,这些错误是不建议被catch的。注意这里有一个例外,比如ThreadDeath也是继承自Error,但是它表示的是线程的死亡,虽然不是严重的异常,但是因为应用程序通常不会对

2021-03-22 09:26:06 90

转载 java安全编码指南之:死锁 dead lock

java中为了保证共享数据的安全性,我们引入了锁的机制。有了锁就有可能产生死锁。死锁的原因就是多个线程锁住了对方所需要的资源,然后现有的资源又没有释放,从而导致循环等待的情况。通常来说如果不同的线程对加锁和释放锁的顺序不一致的话,就很有可能产生死锁。不同的加锁顺序我们来看一个不同加锁顺序的例子:public class DiffLockOrder { private int amount; public DiffLockOrder(int amount){ thi

2021-03-22 09:22:37 88

原创 大型 Web 应用插件化架构探索

随着 Web 技术的逐渐成熟,越来越多的应用架构趋向于复杂,例如阿里云等巨型控制台项目,每个产品下都有各自的团队来负责维护和迭代。不论是维护还是发布以及管控成本都随着业务体量的增长而逐渐不可控。在这个背景下微前端应用而生,微前端在阿里内部已经有许多成熟的实践,这里不再赘述。本文以微前端为引子,探讨一些另类的 Web 应用所面临的类似问题。现代文本编辑器沉浮2018年微软 GitHub 后,Atom便经常被拿来调侃,所谓一山不容二虎。在 VS Code 已经成为一众前端工程师编辑器首选的当下,Atom 的

2021-03-22 09:05:06 149

原创 看完这些 Java 代码优秀案例,一定对你有提升

程序的性能受到代码质量的直接影响。这次主要介绍一些代码编写的小技巧和惯例。虽然看起来有些是微不足道的编程技巧,却可能为系统性能带来成倍的提升,因此还是值得关注的。慎用异常在Java开发中,经常使用try-catch进行错误捕获,但是try-catch语句对系统性能而言是非常糟糕的。虽然一次try-catch中,无法察觉到它对性能带来的损失,但是一旦try-catch语句被应用于循环或是遍历体内,就会给系统性能带来极大的伤害。以下是一段将try-catch应用于循环体内的示例代码:@Test

2021-03-19 09:32:40 688

原创 Java的方法详解和总结

一、什么是方法在日常生活中,我们所说的方法就是为了解决某件事情,而采取的解决办法java中的方法可以理解为语句的集合,用来完成解决某件事情或实现某个功能的办法方法的优点:程序变得更加简短而清晰有利于程序的维护可以提高程序开发的效率提高了代码的重用性方法的命名规则:必须以字母、下划线、$开头可以包含数字,但不能以数字开头二、方法的定义并调用访问修饰符 返回值类型 方法名(参数列表){方法体}(1)返回值:可以理解为方法是做了一件事情,这件事情做完了,留下的一个结果,返回值

2021-03-19 09:24:40 57

原创 Java 8 compute,让 Map 操作更轻松

今天千锋重庆Java培训机构的小编分享一个实用的 Java 8 开发技能,那就是 Map 接口中增加的 compute 方法,给 Map 集合计算更新用的。compute简介如下所示,Java 8 在 Map 和 ConcurrentMap 接口中都增加了 3 个 compute 方法,说明也是支持多线程并发安全操作的。这三个方法的区别:compute:计算并更新值computeIfAbsent:Value不存在时才计算computeIfPresent:Value存在时才计算compute

2021-03-19 09:20:14 348

原创 SQL优化这么做就对了

在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。如果有不同意见,欢迎留言指正,一起学习!SQL优化一般步骤1、通过慢查日志等定位那些执行效率较低的SQL语句2、explain 分析SQL的执行计划需要重点关注type、rows、filtered、extra。type由上至下,效率越来越高ALL 全表扫描index 索引全扫描range 索引范围扫

2021-03-19 09:16:01 92

转载 你们要的MyCat实现MySQL分库分表来了

在之前写过一篇关于mysql分库分表的文章,那篇文章只是给大家提供了一个思路,但是回复下面有很多说是细节问题没有提到。所以咔咔就在出了这篇文章。本文只是针对其中的一个细节而已,比如如何落地MySQL的分库分表,本文使用数据库中间件MyCat来实现。其中还有最多的回复是分库分表后的分页查询如何操作,这个问题也会在后文继续写到。关于MySQL分库分表这个真正落地使用中间还有很多的问题,咔咔尽量把解决方案都提供给大家,如你有更好的实现方案,评论区见哈!本文使用环境MySQL8.0Centos7.3一

2021-03-18 09:46:06 243

原创 这篇Redis缓存解决方案,带你起飞

一、缓存穿透什么是缓存穿透?为了缓解持久层数据库的压力,在服务器和存储层之间添加了一层缓存;一个简单的正常请求: 当客户端发起请求时,服务器响应处理,会先从redis缓存层查询客户端需要的请求数据,如果缓存层有缓存的数据,会将数据返回给服务器,服务器再返回给客户端;如果缓存层中没有客户端需要的数据,则会去底层存储层查找,再返回给服务器;缓存穿透就是: 当客户端想要查询一个数据,发现redis缓存层中没有(即缓存没有命中),于是向持久层数据库查询,发现也没有,于是本次查询失败;当用户很多的时候,

2021-03-18 09:34:09 216

原创 Java 新特性解析:模式匹配

Java SE 14(于 2020 年 3 月发布)引入了一种模式匹配作为预览特性,将成为Java SE 16(将于 2021 年 3 月发布)的一项永久性特性。模式匹配的第一阶段仅限于一种模式(类型模式)和一种语言构造(instanceof),但这只是整个完整特性的第一部分。简单地说,模式匹配可以帮我们减少繁琐的条件状态提取。在进行条件状态提取时,我们问一个与某个对象有关的问题(比如“你是 Foo 吗”),如果答案是肯定的,我们就从对象中提取状态:“if (x instanceof Integer i

2021-03-18 09:22:14 2228

原创 Java 16 正式发布,新特性一一解析

3 月 16 日,甲骨文正式发布 Java 16。甲骨文表示,现在为所有开发人员和企业提供 Java 16。据悉,按照甲骨文重要补丁更新(CPU)时间表,甲骨文 JDK 16 将至少获得两次季度更新。随后,甲骨文 JDK 17 面世。虽然 Java 17 将于 2021 年 9 月正式发布,但是 jdk.java.net 已经提供了它早期的访问版本。在转向六个月的发布周期后,Java 16 是甲骨文发布的第七个特性版本。甲骨文称,“在六个月的发布周期下,可用于生产的创新交付速度已大大提高”。Java

2021-03-18 09:13:15 3885 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除