粉丝7获赞70

主任部的三点零就要出来了,官方已经宣布不再支持扎瓦吧,而是最低要求要扎瓦时期了。很多人问要不要做升级,什么时候升级?刚好最近呢,这里边要公布了一份二零二二年扎瓦工程师的生产力报告,其中有几项调查呢,就是关于 jtk 版本的使用以及升级计划的,可以给大家简单解读一下。 从报告上给这个数据来看呢,目前市面上主流的 gdk 的版本还是以扎瓦巴和扎瓦石一为主,总占比呢超过了百分之六十。 对于升级扎瓦时期的计划上面来看的话,有百分之六十左右的人呢表示会在一年内升级到 jdk 时期,只有百分之八的人表示不会升级。可以看到整体的行业趋势上呢,大家还是普遍的愿意升级到 jdk 时期的, 升级的主要原因呢,大家更在意的可能是这个版本是不是 lts 的呃,以及他的安全性和性能上面是否有一些提升。呃,看了行业的一些趋势之后呢,总结一下我的观点。首先呢,如 如果你用的是 gtk 八以下的版本,并且有升级计划的话,那么建议你呢就一步到位,直接升级到 gtk 十七,因为这个是目前最新的 lts 的版本。呃,还有就是如果希望将来使用 sprrenfree, mark 六以及 surpro 三点零的话,那么就建议升级到扎瓦时期,因为不升级的话是用不了的。 还有呢,就是如果你遇到了一些性能的问题,安全性的问题,或者是希望使用到一些新版本当中才有的新的特性的话,那建议大家升级到扎瓦时期,除了以上几种情况的话,如果你还在用的是扎瓦吧,并且线上跑的也挺好的,也没有准备用新的 spa 的话,那么其实是可以不用升级的。

轻轻松松学会抓到编程环境的安装。首先我们打开桌面上的任意一款浏览器, 在地址栏中输入三 w, 点 oracle 点 com, 回车后进入 oracle 官网,由于 jdk 是 oracle 的产品,所以最好是在官网下载。接着我们选择 prada, 点击状的 点击 download draft, 点击抓把历史存档。由于目前抓把版本很多,在这里找到我们最常使用的抓把八版本,然后点击这个抓把早期版本下载链接, 根据我们操作系统的版本,选择六十四位还是三十二位,这里我们选择 windows 六十四位的 jdk, 勾选 同意后点击下载,等待 jdk 下载完成。接着我们找到下载好的安装包,双击安装,这里点击下一步,选择我们想要安装的一个位置, 注意安装路径中不要包含空格,否则 jdk 有时会无法工作。选择好路径后点击下一步,等待安装完成。接下来点击确定按钮,接着安装 jdk 运行环境,同样自定义安装路径,我们将 jdk 安装在同一个路径下即可。 点击确定,点击下一步,最后等待安装完成即可, 最后关闭就可以了。接下来我们需要配置 jdk 的环境变量,让他可以在我们的 cmb 命令提示服窗口中可以执行抓把相关的 一些命令。我的电脑右键属性进入后找到高级系统设置,点击环境变量,新建抓法后,环境变量 电量值输入 jdk 的安装路径,我们可以在自愿管理器中找到我们的 jdk 安装路径, 确定后新建 tspa 环境电量电量值为项目的当前路径用点表示。 接着我们找到 pass 电量,新建一个为 drabble being 的值,最后点击确定完成配置。接着在桌面左下角的搜索中找到命令提示服窗口并打开, 输入 drive version 后回车打印版本信息就配置成功了,接下来就可以用 drive 编程了。

每周一个抓袜小知识之 jdk 的下载和安装,我们想要开发一个全新的抓袜程序,那么必须安装 jdk, adk, 我们通过官方网站就可以获取到。但是有一个注意事项要强调一下,我们需要针对不同的操作系统下载对应的 gdk。 我们来看一下 jdk 的下载流程。打开浏览器,输入三 w, 点奥瑞克点康能得到这个界面,在这有一个下载箭头,点击他就能得到这个界面,这有很多工具让我们下载,我们选择招吧就可以了,选招了之后就能看到这有一个 jdk, 我们选择这个 jdk 就能来到下载界面,这有一个当漏的,你点击他就可以了。在这里有一个许可协议要求我们来接受,不接受是下载不了的。选号之后我们就可以来下载对应的 gdk, 前面写的是操作系统平台,我们使用的是哪个操作系统就 下载对应的 jdk 软件,下载号之后我们就来安装他。那么在安装的时候有没有哪些需要注意呢?其实 jdk 的安装很简单,傻瓜是安装一路,点击下一步即可,但是建议大家安装路径中不要包含中文和空格,因为有中文和空 格会出现一些不可预料的情况,所以我们一开始就把它避免掉。划重点,变目录是我们必须掌握的目录,该路径下存放 jdk 的各种工具,命令扎瓦, c 和扎瓦就放在这个目录里面,靠这个目录下存放的是 gdk 相关的 配置文件, elogl 的里面存放的是一些平台特定的头文件, gs 目录存放的是 jdk 的各种模块, vivo 目录存放的是 jdk 各个模块的授权文档, vivo 目录存放的是 jdk 工具的一些补充招包。

一个工作了五年的家务程序员去应聘德务 app 的月薪三十 k 的家务开发岗位,被一个基础问题问的措手不及,这个问题是什么呢?他是 gdk 动态代理,为什么只能代理有接口的类?这个问题啊,在他的认知里面是一个很正常的事情,竟然还有为什么? 好吧,对于这个问题,我们来看看普通人和高手的回答。普通人的回答,嗯,呃,因为 gtk 里面的动态代理类啊,然后他是默认会继承一个叫 proxy 这样一个类,呃,所以,因为加号里面他只能去实现单一继承嘛,所以,嗯,就是如果我我,所以我们只能去针对一项那个接口来做动态代理啊,因为,呃,对高速的回答,嗯,我认为这个问题的核心 本质啊,是 gdk 动态代理本身的机制来决定的。首先呢,在家务里面啊,动态代理是通过 proxy 点六 proxy instance 这个方法来实现的,它需要传入被动态代理的一个接口类。 之所以要传入接口而不能传入内啊,还是取决于 gdk 动态代理的一个底层实现。 gdk 动态代理呢,会在程序的运行期间啊,去动态生成一个代理类,叫 bolo proxy, 那么这个动态生成的代理类呢,会去继承一个加瓦点浪点 reflective proxy 这样一个类, 同时还会去实现被代理类的接口。在家务里面呢,是不支持多种继承的,而每个动态代理类都继承了一个 process, 所以就导致的 gdk 里面的动态代理只能代理接口而不能代理实现类。我之前啊去分析过动态代理的原码,发现啊, proxy 这个类呢,只是保存了动态代理的一个处理器,叫 emokit hunter, 如果不抽出来直接设置到多了 party 这个动态,这里的里面我认为也是可以的,如果这么去实现的话呢,就可以针对实现类来做动态代理了。作者为什么这么设计,我认为呢,还是有几个方面的原因。第一个是动态代理本身的使用场景 或者需求呢,只是对原始实现的一个拦截,然后去做一些功能的增强或者扩展,而实际的开发模式都是基于面向接口来开发的,所以基于接口来实现通来代理,从需求和场景呢,我认为都是吻合的,当然确实可能会存在一些 没有实现接口的一些类,那么这个时候我们要去实现动态代理,那么 gdk 很显然是无法满足的。第二个在家务里面,类的技能关系的设计啊,更多的是考虑到共性能力的抽象,从而去提高代码的重用性和扩展性。而动态代理呢,其实也在做这样一个事情,他封装了 动态代理类的深层的抽象逻辑,以及判断一个类是否是动态代理类,以及 evocation handle 的一个持有等等。那么我们去把这些抽象的公共逻辑放在 procas 这个负类里面,很显然也是一个比较正常的一个设计思路。 所以总的来说呢,我认为这个设计上并没有什么值得特别去讨论的地方,因为我认为技术的方案的设计是解决特定的场景问题的。如果一定要去针对普通类来去做动态代理, 我们可以选择 c 级赖卜这样的一个主见,他会动态生成一个被代理类的子类,子类重写负类的所有非法人里修饰的方法,在子类中去拦截负类的所有方法的调用,从而去实现动态代理。以上呢,就是我对这个问题的理解, 我看到评论区啊,有些小伙伴说面试问这些问题没有任何意义。我作为一个工作的十四年,做过开发价 购的程序员,最大的感受是越往上走啊,对于计算机的基础和底层的知识理解越来越重要。上层的框架可能会随着业务的发展而变化,但是底层的技术原理和设计理念是不会变化的,所以我认为掌握了基础, 能够以不变应对万变。从另外一个角度来说啊,大家都停留在业务框架的使用上,短期也许能带来较大的收益,但是随着生产工具的升级,比如人工智能、低代码、零代码、萨斯帕斯等逐步成熟和落地, 那业务程序员的价值会被逐步的弱化。这就像曾经的工业革命,工业革命之前的手工劳作,不管效率多高,技巧多么熟练,一旦由机器进行取代,那么传统手工劳动力必然会被淘汰,伴随而来的可能是技能的升级,从传统手工劳作转向了面向 机器的操作。所以呢,我认为底层逻辑啊,还是对一个事物的本质上的一个认识,而不是停留在表面上。好的,本期的普通人 vs 高手的面试系列的视频就要到结束了,喜欢的朋友记得点赞和收藏,我是 mike, 咱们下期再见!
