jk 一 点八和 java 八事实上是同一个东西,只是叫法不同,没有什么区别。为什么会有两种叫法?原因是 java 版本命名方式演变造成的。 jdk 一 点八是 java 内部版本号或传统称呼。在 java 八之前, java 命名一直延续一点叉格式,如 jdk 一 点五一点六、一点七。 jdk 一 点八是 java 市场营销版本号, 从招娃八版本开始,二零一九年二月二日对外简称招娃八。 jdk 一 点八着作为内部版本标识,保留系统属性。简单来说, 它们是同一个版本和不同的名字,你可以通过招娃看密斯来验证。如图,其中一点八就对应招娃八。你还遇到哪些不同的技术时便更需的了,记得点赞关注哦!
粉丝45获赞194

呃,你们现在用的是 g d k 哪一个版本?呃,主流还是 g d k 八?就新建的项目的话,会用到比较新的时期。嗯,用到比较新的时期了。呃,那后面升级的一些版本,包括 g d k 八,就是后面升级的一些内容,或者说一些特性,有去了解过吗? 只要有这个那么大表达式,就让代码写起来更加方便。 ok, 这个虽然在开发的时候呢,就可能不会特意去关注啊,但是既然你在工作里面去做了这个版本的升级,对吧?并且用到了一些新的版本,那你还是要清楚每一个版本后面的一些特性 啊,它大致可以分为几个关键的版本啊。如果你担心简历上的东西讲不出来,我已经把面试经常问到的一些技术站场景图都整理在两百万字的面试文档了,里面针对每个知识点都有很详细的解析思路, 只要你是我的粉丝,留言六六六就可以打包带走。那第一个版本就是 g t 八,对吧?这个也是非常经典的一个版本,这也是我们现在啊大部分公司还在用的一个版本。那主要就是引入了 number 的 表达式和 spring api, 那 么这两个玩意呢,改变了 java 的 一些编程范式, 那比如说函数式编程和并行处理变得非常优雅,同时呢,他带来一些新的日期的一个 api, 对 吧?彻底解决了一些老 date 类的一些痛点,比如说精确度不足,失去混乱、病发问题等等。然后第二个呢,就是,呃,升级的就是九呃到十一。那么九到十一呢?它主要做的几件事项,第一个模块化系统 啊,它从价格层面对吧,对 g d k 的 自身啊,和我们大型应用进行了一个拆分和分装,更好地去支持了一些云月生的部署。那当然这个东西呢,就是推广的比较慢啊,但是它是有用的。然后 g d k 十一呢,就是有一个比较经典的,比如说就是 h t p client 啊,它告别了老旧的 h d u l commission, 并且引入了 z g c。 z g c 是 在十一的时候引入的,那么这个是以超低停顿时间为目标的一个垃圾回收器,并且它开始移出了一些 java 一 的版本,让 java 看起来更加轻量化。 然后接下来呢,就是 g d k 十二到十七,那重点呢,就是在于语法堂和新特性的一些叠代啊,那么比如说引入一个文本块,然后解决了多行制服穿的一个书写难题,然后引入了雷克的类,然后用于简化我们纯数据对象的定义,还有像 switch 表达式的增强,让代码看起来更加简单。 然后在类型方面呢,增加了像秘分类对吧? excel 来去更加精准的控制类的一个继承,然后以及像 python matching, 对 吧?就是模式匹配。然后其次方面呢,就是除了十一引入的 z g c 对 不对?那还实现了一些分带式的 z g c, 然后进一步的提升了性能。 然后最后啊,就是可能现在你们还没有用到的就是 g d k 二十一,它引入了一个虚拟现成,那么用极低的开销来支持百万级的一个现成,那么这个呢,以后啊,就是肯定会有一个比较大的作用,能够去根本上改变我们便携高兵法应用的一个方式, 同时呢还能保证,对吧?就是后面可以去回归到我们一个同步组色的模型,并且还能保证高性能好。那么这个呢,可能也是在 java 之后啊,最重要的一个东西了,就是虚拟现成。

gdk 一点八的新特性?虽然现在 java 的版本已经被 orico 迭代了十九的版本,但是呢,国内啊还是使用 gdk 一点八是比较多的,那无论是因为懒啊还是摆烂,还是这个怕背锅啊,在还没有全民使用到 gdk 十七之前,咱们肯定要把 gdk 一点八的一些特性搞定, 那么其中最常用的肯定就是 lam 的表达式了,那其次呢,还有配合 lam 的的一些函数是接口,比如说咱们的 consumer 啊,方格神, oppo 神的 filter 以及死 dream 等等, 那尤其是集合类中的死这么函数,他让咱们扎瓦可以实现类似于死咖啦 pass 这种语言的相对比较方便的编程方式,还有 interface 中提供了一些静态方法以及默认方法的功能,本质呢,其实也是为了兼容咱们的 lam 的表达式,那除了 lam 的相关的之外呢,还 提供了一些新的时钟类,比如说啊 localdata 呀, localdatatime 之类的,那可以直接规避掉了咱们使用 dad 十各种麻烦的操作,同时也可以跳出咱们的心口, dad 方骂他在并发时现成不安全的问题。 那还有一些这种方法的饮用,咱们可以采用冒号这种关键字呢,在内部去使用方法,还有一些多重柱姐之类的。那总之现在 gr 的 gdk 一点八特性已经被普遍的使用了,哈哈哈哈,哎呀,腰疼。

有假发,我自信我是带着假发的程序员。这一期我们来说说 jdk 一点八中 pass map 是如何确定一个元素应该放在数组的什么位置的?上一期中有的朋友说我讲的扩容讲错了,我会在下一期 蒋扩荣的视频中进行解释,欢迎关注。那么当我们执行下面的代码时,还是 map 到底做了什么?首先还是 map 在虐的时候是不会出事化数组的, 在第一次执行 pos 房法的时候,会先初始化数组,数组的长度默认是十六,当然即使你指定的默认容量他是 map, 也会将初始容量修改为大于或者等于你指定的值得一个二的。整次秘书我们继续回到 pos 方法中添加元素的操作。 pass map 会对加入的元素的批进行一个还是运算,如果批是 no, 则计算的还是值为零,如果批不是 no, 会进行如下的计算,源马如下。 具体的操作就是首先获取 p 的 hashcoat, 通过将 p 的 hashcoat 的右移十六位将高位扩展到低位,然后再使用原来的 hashcoat 和移动后的直进行抑或运算,目的是为了降低 hash 碰撞。再将得到的结果和数组的长度减一的数字进行与运算,源码如下, 这里会得到一个零到 lex 减一的数字,这就是这个元素要放的位置。我们来看一些具体的例子,比如使用默认的方式创建 s map, 数组长度为十六,放入的 t 为 hello, hello 的 so 的是九九幺六二三二二转成二进之为 经过右移十六位得到结果如下。再使用 hello 原生的 hascode 和右移十六位之后的直进行一或运算得到结果,九九幺六三四五幺二进制表示为在使用数组的长度减一十五和上面得到的结果 进行语运算得到结果转成实际制就是十一,所以这个元素在数组中的缩影就是十一。通过观察上面的计算,我们不难发现,任何数字和十五进行与运算得到的结果必然在零到十五之间。如果数组的长度是三十二,那么就是 has 得到的结果和三十一进行与运算。 三十一的二禁制表示形势如下,同样的道理,任何数字和三十一进行与运算得到的结果也是零到三十一之间。 在这个过程中如果产生的了 hish 碰撞,就会使用链表或者红黑树或者扩容。这部分内容我们下期再说,关注假发,每天学习奇怪的知识。

首先,禁止使用 oracle jdk, 所以 我们只能使用 open jdk。 问一个尝试问题, oracle jdk 和 open jdk 有 什么区别? open jdk 是 开源的,可以免费商用,而 oracle jdk 需要购买商业授权,需要付费使用。 如果你是个人使用,比如说开发、学习、测试,其实没有什么区别,但如果你需要部署一个 oracle jdk 到一个生产商业环境里,那你就需要就按照 cpu 的 核心和用户数付费订阅 来购买它的商业授权。而 open g d k 是 永久免费商用的。但其实除了是否付费以外,最主要的是在国内的使用环境当中是政策和合规性。因为信创首先禁止使用 oracle g d k, 所以 我们只能使用 open g d k。 其次,也不是所有的 open g d k 它都可以随意使用,必须是信创产品名录中的国产 g d k。 你 比如说华为的必升,然后阿里的 joker 以及腾讯的 cola, 而且它需要支持国民适配。

各位 gdk 八的兄弟们,我扛不住诱惑,先去升级到 gdk 十七了,现在 gdk 的版本升级的非常快,已经到 gdk 二十了。 gdk 的版本虽多,但应用最广泛的还是 gdk 八,正所谓他发任他发,我用张老八。 其实我也不太想升级 gdk 版本,感觉投入高,收益少。而不过有一次我看到了一些使用 gdk 时期的信誉卡写的代码,让我改变了对升级 gdk 的看法,因为这些信誉卡我确实想用。废话不多说,上代码。 首先是文本块,这个更新非常实用,在没有这个特性之前,编写长文本非常的痛苦。虽然 rde 等计算开发工具可以自动处理,但最终效果仍然丑陋,充满拼接的符号。现在通过字符串块,我们可以轻松的编写 gs, html 等内容,效果更清爽。 这个新特性值得很高分的评价,因为他让我们只需关注字不串的本身,而无需关心拼接的操作。然后是控制针异常的增强 空指针异常一直是扎瓦成员的痛点,对于报测信息,无法直观的指出哪个对象为空,只掏出了一个 npe 和一堆对战的信息。定位问题非常的耗时而且麻烦, 尤其是遇到喜欢急联调用的代码时,租行的排查真是令人头疼。现在扎瓦时期的新特性提供了更详细的控制异常的信息,帮助开发者迅速定位问题的源头。然后是 record, 在扎瓦中, p o, p o, d, t, o 等通常包含对象变量以及相应的 get 和赛的方法。尽管可以通过工具化 i d, e 去生成这些代码,但修改和维护起来仍然非常麻烦, 为此扎瓦引入了标准解决方案,为靠他通过简洁的语法定义数据类,大大简化了 top 类的编写。接下来是全新的 switch 表达式,在扎瓦十二的时候就引入了 switch 表达式,注意这里是表达式,而不是语句,原来的 switch 是语句,如果被清楚两者的区别的话,最好先了解一下, 主要的差别就是表达式有返回值,而语句则没有再配合。模式匹配,全新的思维使用起来非常的爽。然后是私有接口方法,所以在战马时期里面,如果一个得放的方法体很大,那么可以通过新增接口私有方法来进行一个合理的拆分。最后是模式匹配,在 gdk 时期中,模式匹配主要用于 instinct 表达式, 模式匹配增强了一丝丝恶物的语法和功能,向类型检查和类型转换更加简洁和高效。你还知道哪些新特性呢?

你们有没有被 jdk 版本坑到破房的经历呢?前阵子老板的一句话,要给系统接入 ai 大 模型,我当时心里美滋滋的,心想不就调用几个 api 吗?结果一做进入选行人直接傻了。咱们 java 对 接 ai, 首选肯定是 supreme ai 框架,可它基于 supreme boot 的 三点零,最低要求 jdk 十七起步, 其他主流框架要么和 supreme 全家桶是配差,要么生态不行。可我们那跑了五年的老项目,上百万行的代码集,十个微服务,全是 jdk 八写 的。这哪是接入 ai, 分 明是拆老房子重建啊!说实话,一开始我特别抗拒这件事, jdk 八多详啊,稳定成熟,网上资料一搜一大把,团队所有人闭着眼睛都能写,但是为了接入 ai, 没办法,必须得升级。整整折腾了一个知名大坑,今天全部分享给大家。 如果你在准备面试,我特意整理了一份二百万字的面试题合集,其中呢,里面就包含各种高频面试点,不同企业的考题,通读理解它,百分之八十的面试都能帮你稳稳拿捏住,再也不慌面试官的问题了。只要是我的粉丝留言,六六六都能打包带走。 第一坑呢,项目一启动就刷屏,非法访问异常。原来是 jdk 九引入的模块化系统, jdk 十六开始直接禁止非法反射,以前常用的反射黑科技全废了。 解决办法很简单,能升级的依赖全升级,反射骚操作全删除掉,用 jdk 官方 api 重写。第二个坑,依赖地狱 升级 jdk 就 得升级 spring boot 到三点零以上。可他把 java x 包全部改成了 jata 全局八千多出的引用,还有老依赖不兼容,改的我像个考古的。 如果遇到这种情况,大家可以先梳理依赖,换成适配的版本,再改包名,别白忙活。第三个坑, gc 参数全废了, gc 十七,移除了 cms 回收器, 我直接复制了参数,改成了 j 一 j c 压测后负二 j c 暴涨,后来肯官方文档反复压测才调好。在意外发现 j d k 时期,内存占用占了百分之三十,吞吐量涨了百分之二十,这波算是血赚的。第四个坑,工具链适配 代码能跑,雷肯斯构建失败,刀刻镜像暴涨到两百兆,后来发现原来是构建环境没有同步升级,之后同步更新工具,用 j ling 裁剪 j d k 模块才把镜像压回去。 最后呢,给大家五条避坑指南,先扫描风险边缘服务试水 jc 残骸重新调优,留足回归压测时间,做好灰度回滚。这次升级虽说是被盗逼的,但不仅接上了 ai, 还白捡了性能提升。你们公司还在用 jdk 八吗?升级都踩过什么坑?

扎瓦十八都快出来了,你怎么还用八呢?我要说我乐意,你来气不?最近蹦出一条信息, supermeboot 三点零最低支持杰迪 k 十七。一时间相关的文章铺天盖地的蹭热度,又是什么里程碑了,又是这个跨时代了,但是对于我们这些战斗在第一线的来讲,我们却都很淡定, 爱说啥说啥呗,有能耐你让全球除接地费十七以外的项目都下线,或者是让他重购啊。如果真是这样,我估计可能就没有线上的项目, 这个就像 html 和 xhtml 一样。你想的倒是挺好,又是这个又是那个的,你真把它整规范了吗? 项目要的是稳定,那不是心,对于我们携带码的而言,需要的是完整成熟的解决方案,也不是心心有个卵用,出了问题上网想找个解决方案都没有,通过自己各种苦逼的尝试去解决,问 这个不是不行,耗费时间和精力,公司也不会因为这个人买单。别说现在快出到十八了,就算哪天出到八十了,用不用这个也得看市面上的占有率,还得看成熟的解决方案到底有多少。那你觉得什么时候 gdk 十七能被普及呢?

兄弟们,接下来呢几个视频,我们去看一下虚拟县城实战和它的原码架构分析。 为什么去聊这个?因为呢,有很多小伙伴去私信我说在面试的时候经常被这个 g d k 二十一卡住,就是它 g d k 二十一有个新特性啊,就是虚拟县城,为什么要去虚拟县城,以及它里面的一些特性原码,很多同学都懵了,所以说我很有必要给大家一把,聊清楚。 ok, 那 我们再去聊这种实战和原码之前呢,我们先去看一下,哎,为什么要有虚拟县城这么一个东西啊?那他到底去解决什么样的问题?哎,实际上呢,从我们那个传统平台县城的一个困境, 因为在我们 java 里面的传统 java, 它实际上你看它是一个县城,对应我们操作系统里面的一个县城, ok, 它的创建成本很高。哎,这个呢,是我们传统县城,并且呢,你看它上下文切换昂贵,数量受限,你看一台机器只能支撑几千个活跃县城,还有我们呢,你看, 哎,这些特点,那如果说你的业务是高并发 io 密集型的时候,那么大多数的外部应用时间都在等待,等待数据库各种各样情况,那此时你的核心瓶颈, 那实际上如果说你堵塞的话,是不是有大量的现成,那个切换, ok, 大 量现成切换时候是不是需要你?是不是需要我们一些资源?所以说在这个地方你看就很明显浪费了我们宝贵的 os 现成资源,而不是 cpu, 说到底就是你加挖平台及现成的资源,而不是 cpu, 说到底就是你加挖平台及现成传统的,哎,它切换太费劲了, 就这么一个事,他切换,你看从我们上下文里面特别耗资源,那针对于这种情况怎么去干?而在 gd 跟二十一里面就提出了一个新的想法,想法 实际上就在我们 java 内部调度有个复合庄严在他之上,再去抽象画出一些虚拟相片,虚拟相片一一二三四, ok, 就 相当于说虚拟相片它不是一个真正的相片,它实际上是一个 java 对 象。 这个点一定要去,很多同学哈,可能都蒙了,就是我们的虚拟相册到底怎么虚拟了?那他实际上就是一个虚拟对象, ok, 他 实际上哈,就是在我们加完内部调度,哎,就什么 fork 转引这么一个调度相册池,在这个上面去抽现出来很多的虚拟相册一二三四,哎,你看在这块就有个映射,就是说我们最擅长应用层就虚拟相册 n, 那 针对于这么多虚拟相册 n 的 话,他有个 m 对 n 的 一个调度模型,那这个呢?在最后我们去聊视频的时候,聊原码的时候还会去聊, 那实际上你看我们的虚拟县城跟我们 gvm 内部的一个平台级县城是有个 m n 的 调度关系, ok, 这个点我们再去看原码时候看,那我们虚拟县城,你看它的创建成本极低,一个虚拟县城就是一个加挖对象,那主设时的话就是 amount, 就是 释放你的资源, ok, 释放你的加挖平台级县城,去执行其他的一些虚拟县城, 那可以轻松创建百万级虚拟县城。那是到底,实际上哈,就说我在每一次创建县虚拟县城的话,实际上就是创建一个加法对象,我的虚拟县城是在堆上的,那这一点很重要,很重要,我在最后去讲源码,回去聊, ok, 那, 哎,你看代码无需改动,就是你看一句话,就是虚拟县城让你用同步的写法去享受着异步框架的通途量。 ok, 怎么去讲呢?哎,在这块我有个实战, 你看这这块有个实战,那我们先去看一下,你看虚拟线材,让你用同步的写法显示的一步的吞吐量,你看不需要各种各样,你看不需要练习调用,让你写出来代码从就是顺序的。但是在这个你再去用虚拟线材的底层的时候,他加法已经给你这个虚拟线材进行调度了。 ok, 那 么你在用的时候其实很舒服,那比如说你看一行代码就可以创建出来虚拟线材时, 那通过你看 exuberant 点 new virtual, 你 看一个县城值,他会给你开一个县城,那这个县城指的就是虚拟县城。 ok, 那 我们在最后去聊原码,去聊一些更深调域的时候,都是基于这个方法去聊的,那你看就通过这么一看方法就实现了一个虚拟县城值的一个调度。 哎,那我们这个视频呢?就到这,哎,我们在下个视频直接去看一看。哎,我们的虚拟县城值里面的这些原码架构。 ok, 那 这个视频呢?到这我们下个视频一定要跟紧,我们继续。



我们现在呢这个演示啊,使用的是这个 winware 啊,里边安装的一个 jdk 一 点八啊, jdk 一 点八,那我们刚才讲啊,我们可以通过什么方式呢 啊?就是各位同学在这个官网上下载的这个 jdk 啊,它可能是一个安装版的,它还有一些这种叫做绿色版的,就是一些压缩包版的。那这个压缩包呢?在解,解完了之后,它就是这样的一个软件包啊,它就是这样的一个文件夹 啊,这就是一个 j d k 的 一个标准的文件夹,里边有 b 啊,有 d b 啊啊,你看有 j r e 对 不对?这就是一个标准的 j d k 的 文件夹,那我们怎么知道我们电脑上现在的一个这个, 这个加这个 j d k 已经安装好了呢?啊,对,这个同学,我看有同学问虚拟机啊,这个就是一个虚拟机,虚拟机的话就是相当于在我的电脑上又去虚拟化出来一台新的电脑 啊,那我们也可以在新的电脑里边去进行各种操作,它就等于是一台真正的电脑一样。那我们来看一下现在的这个 jdk 啊,在你的电脑上安装完了之后,它就会有一个文件夹在这个文件夹里边呢。啊,我们选中你的这个文件夹的 url, 然后输入我们的命令 c m d 啊,敲回车啊,我们就可以直接基于当前的路径打开一个 c m d 的 终端啊,终端的这个东西我们在上节课的时候也简单讲过了,终端就是一个提供了命令行操作的这样的一个东西啊, 那我们使用的第一个代码呢,就是 java 杠 vr s l n 版本啊, 那这个时候呢,你看他报错了,他说 java 不是 一个命令,也不是可运行的程序,为什么呢?说明我们的计算机现在不认识 java 这个命令 啊,说明我们的计算机不认识 java 这个命令,那我们怎么能让它认识呢?我们来进到它的闭目录下,我们再来执行一下上次上边的这个东西。 我们进到 b 目录下啊,我们通过一个语法叫做 cd 啊, cd 的 话是 windows 下可以就是去切换文件夹的这样的一个命令啊,我们再来执行 java。 刚 我们是不是能看到就是它输出了一些新的内容啊,输出了一些新的内容, java 的 版本是一点八杠零点一七一啊, java 的 运行环境版本啊,是一七一杠 b 幺幺 啊, java 的 虚拟机是个六十四倍的 server 啊,用的是什么什么什么什么混合模式啊,当我们输入 java 杠 version 的 时候,它现在已经能识别到这个 java 了,说明了什么?说明了 java 在 你的电脑上已经安装成功了, 但是呢,我们只能在 bin 的 这个目录下去使用这个 java, 这样的话就会有问题。什么问题呢?就跟 啊,之前很多同学就是问我一个事情吗?就是我每次进游戏的时候,我都要通过我的文件夹一层一层找到那个游戏,然后双击那个游戏的 exe 文件啊,从而去进入到这个游戏里,对不对? 但是其实不用啊,其实的话我们可以通过什么呢啊?鼠标右键有一个这种叫做发送桌面快捷方式 啊,发送啊,在这发送到桌面快捷方式啊,这样的一个东西,然后呢,它就可以 啊,我可以通过这个东西快速的去执行我的游戏。那这个东西的底层逻辑是什么呢?这个东西的底层逻辑就是环境变量啊,环境变量 我们来看一下, 底层的逻辑就是环境变量, pass 是 我们系统底层的环境变量,它指的是系统的路径啊,告诉我们的系统,我们不同的程序要去哪里去找 啊?如果没有配置 pass, 就是 没有配置环境变量的情况下,我们使用 java 的 这个命令,它会告诉你它不是一个有效的语法啊。环境变量就像我们手机的通讯录 啊,电脑它在存了,比如说啊,张三李四啊,我的手机号是幺八八八八八八八八八八,对不对啊?一堆 数字,是不是比我记某一个人名啊,或记一个简称啊?要方便啊,要更好地去理解这个东西,就和 pass 的 本质是一样的啊,这个东西就叫环境变量 啊,理论上来说我们就是现在新时代啊,或者说这个 ai 的 时代,是不需要去讲这些东西的。但是呢,为什么我们要讲 啊?我们为什么要讲这些东西?因为未来如果你真的从事这个编程行业啊,或者说从事编程相关的这个岗位,你是一定要去理解环境变量 啊,或者相关的这个东西的啊,他可能就会在你未来某个小地方去卡你一下,如果你不理解这个事情,你会发现有些东西我明明就已经整好了,但是他就是执行不了啊,这是一种情况。另外一个的话就是 很多东西明明我都理解,我都知道,但是他就是不行啊,也是跟这个东西会有关系,那我们再回到这个虚拟机啊,我们回到虚拟机, 我们怎么能让啊?我们的计算机在时时刻刻,任何时候我们写代码的过程中啊,都能理解啊,我现在是要用 java 去执行我们的事情呢。好,那这个就是我们刚才说的 环境变量。环境变量在哪里配置啊?在你我的电脑啊,对,我的电脑这个啊, 有一些同学可能桌面上就有啊,那就右键啊,找他的这个啊,这个是快捷方式,不太行啊,你要找到这个我的电脑的这个原始啊地址,然后对他 啊点我的属性,他就会显示你计算机的一些属性相关的内容,那其中会有一个高级系统设置啊,在高级系统设置里边我们找到环境变量 啊。环境变量不止就是刚才我们讲的不只是可以用于 java 配置环境变量, 大多数的啊,所有的很多的,甚至包括我们的一些通讯协议啊,底层都和这个环境变量有关,所以环境变量本身是一件很重要的事情,但是他在现在大多数的地方他都会被弱化,就这个 内容很简单啊,然后也不是那么的就是重要,但是环境变量这个东西我们大家都应该要知道这是环境变量。 那首先呢我们需要做什么?我们首先需要新建一个 java home 啊, java home 它是什么呢? java home 对 吧?那这个顾名思义它指的就是我们的啊, java 的 主类就是我们 jdk 啊,它的一个地址。那我们先来看一下我们 jdk 当前的地址是什么?我们可以看到我们当前的这个 jdk, 因为它是在桌面上放着嘛, 所以它用的是 c 盘, users, 网币啊, d desktop, 然后 jdk 一 点八,这个就是我们当前 jdk 的 啊, java, 它的一个原始的路径啊,或者说它的一个原始的地址,那我们把它设置为 java 啊, 你看我们现在在讲这个环境变量的过程中对不对?我们又啊,是不是又触发了一个很小的知识点, 你看这个地址我明明是在桌面上,对不对啊?我在桌面上的一个 jdk, 我 的地址怎么就变成了 c 盘 users, 我 的 mean 下 的 desktop 呢?这就是一个小的知识点啊,所有的桌面默认情况下,它就是在你的 c 盘,你的 users, 所以 你的桌面上放着的东西越多 啊,你的 c 盘的空间就会越少。这也是有些同学啊,说, c 盘的空间怎么越来越少了啊, c 盘的东西越来越多,电脑越来越卡啊,就会和你的桌面上的文件有关系。 另外一个对于编程的同学来说,一定一定不要把自己的桌面设置成 c 盘,如果 啊,包括就是所有已经工作了的同学啊,一定一定不要把重要的东西放 c 盘啊,也就是说不要放桌面,为什么?因为我们重新做系统的时候, c 盘啊,就是我们的系统盘, 一定是会被格式化的,一定是会被格式化的,什么意思呢?就是一旦你的电脑坏了,就说白了,你 c 盘相关的所有的东西,你都不可能再找到了 啊,你 c 盘的东西都不可能找到了。 所以我们啊,已经工作了的这些同学,桌面上如果是在 c 盘的情况下,一定不要放重要的东西,重要的东西 啊,怎么做呢?一定是在电脑的其他盘里边,我们假如这个不是不是 c 盘,对不对?我们可以在 d 盘、 e 盘、 f 盘,你自己的盘上创建新的文件夹,然后怎么办呢?发送到桌面快捷方式啊, 这样你在里边做的所有的操作啊,这样你在里边做的所有的操作,它的原始文件都会被你保存到 d 盘、 f 盘、 e 盘里边 啊,这样你就不用担心你东西放在桌面上啊,到时候你的电脑出问题了,他东西就不见了啊,找不到了,这样的一个问题啊,这也是一个小知识点啊,他也是基于这个,我们在讲这个环境变量的过程中,对不对?我们讲到了这个文件夹的一个地址啊,触发的这样的一个知识点 啊,那我们接着说,我们接着说刚才讲到这个迅疾啊, java, 那 我们在新建完 java 之后呢,我们还要再新建一个文件,新建一个什么文件呢?就是叫做这个 class pass 啊,这样的一个文件。 class pass 呢?它是用来做什么的?就是我未来所有需要生成 我们刚才讲的 class 文件自检码文件的时候,我需要去引用的一些地址啊,这个就是 java 默认的一个东西,它就叫 class pass, 那 通常情况下呢, 我们会把它配置成什么,它都是在 java home 下, java home 刚才我们讲了,对不对?是什么东西是我们的 啊? jdk 的 原始文件夹就是 jdk 一 点八,这个文件夹下所有的东西都是在我们的 java home 下,它就是我们整个的一个集合包, 可以简简单的这样去理解。那我们的 class pass 下,它所需要用到的第一个东西啊,是我下边的这些 library library 啊,需要跟你的这个文件夹的名称一致啊, jdk 里的东西你不要去改,你说我把它改成大写小写,我配置环境变量里边也改成大写小写行不行?行。但是一些其他奇奇怪怪的程序引用啊,都会有这种奇奇怪怪的问题, 包括就是啊,很多同学啊,包括像我们以前工作的时候,有一些这种中文文件夹 啊,就是很多同学,包括可能在这个玩游戏的过程中,对不对?他也是会建一些这种中文文件夹,有一些老游戏,或者说一些这种啊要求比较多的游戏吧,他就不能让你在中文目录下 啊,他就会有一些奇奇怪怪的问题啊,就跟这个把它改成大写是一样的,就是很多东西看起来都没问题啊,就是因为某些变量或者某些地方配置出现了一些小小的奇怪的问题啊,他就会造成你的整个程序就用不了 啊,这是一个很严肃很严重的问题,所以大家一定要注意,就是大小写也好,中文啊,路径也好这些事情,就是如果我们未来在做开发的时候,一定要去尽量的注意去避免大小写和中文啊,都是要去严格的进行区分的。 然后我们再讲一个知识点啊,就这个百分号,看到没有?就是我为啥不能在这直接去写加完 home 要加一个百分号 啊,说明了什么?说明了我们百分号中间的这个东西,你就不是在作为一个字母串啊,就不是在作为一个 java home 它本身去处理了,而是我会在我的系统变量里边去找,有没有名字叫 java home 的 啊。然后就是这个东西等效于什么呢?它就等效于刚才我们说的 c 盘什么什么什么什么什么下的来着 啊,这个东西就等效于后边这句话,你如果不用加后,你用后边的这句话行不行啊?也行, 这个东西其实本质是什么?它的本质就已经是了一个变量啊,他就已经引入了一个变量的这样的概念啊,这个东西未来我们再去啊,仔细的去讲啊,第一块是刚才讲的这个 labor 啊,他需要有这个 labor 目录, 那第二个呢,还需要一个东西啊,就是刚才我们看到的这样的一个 pos 的 一个东西,我们加完 home 下的 library 下的一个 pos 点价啊,可能啊,有同学又问了,这个 pos 点价是一个什么东西? library 下的一个 host 点架啊,就是它,对不对?就是它,我们在配置完这个 classpath 之后呢,它可以让我们的系统,就是我们刚才讲的 在任何时候调用和 java 编程相关的东西啊,它都知道,我需要从 jdk, 从虚拟机去找到哪些东西 来把这个东西翻译成计算机可以认识的这个过程,它需要有一些指导,告诉计算,告诉 java 啊,或者告诉 jdk 啊,我需要用什么东西去做一个什么样的事情,它的本质就是这样, 那这个 tools 啊,也是需要去配置的。至此,这个 classpath 啊就配好了,但是呢,我们前边需要再加一个啊,一个点和分号啊,真的这个东西呢,也是一个啊,你可以把它理解成一个固定的语法啊,不需要去过多的纠结这个事情。 那至此,我们的这个 class pass 啊,路径也配好,最后呢,我们就只需要把我们刚才配好的这个路径,对不对?我们给它怎么呢?去添加到 pass 路径下啊,去添加到这个 pass 路径下,稍等一下啊, 好,那我们现在最后来配置这个 pass 路径,我们找到这个 pass 路径,打开啊,双击或者编辑它打开这个 pass 路径。 pass 路径呢,就是系统, 就是我们讲了现在已经有了的各种啊,让电脑能知道,比如说你像这个泡泡线啊,它就是能让你在随时随地去打开 cmd 啊,打开它的命令。行啊,都是有这些不同的这些东西 才让计算机知道啊,我找不同的软件应该要去哪啊?可能就是使用 win 十一的同学,他是一格一格的,会比现在的这个更清晰啊, win 十的这个版本呢,相对来说他这个变量是用分号去隔开的 啊,可能有的一些这个同学使用 win 十一的电脑,他就不需要你用分号去隔开了,你就一行一行里边去填写这个就行了啊,这个要注意一下, 那在这个 win 十的环境下啊,我们需要添加一个分号跟前面的隔开,然后呢去配置什么我们 的 java home 下的 bin 啊。好,这个就是我们的 pass 变量里边啊,告诉了我们,你平时在这个路径下用 java 的 时候,你都要去 bin 里边啊,去执行我的 java 命令啊。好, 至此呢,我们的这个环境变量应该是就配好,我们来看一下这个效果, 我们随便在任何的一个文件检查下,我们使用 java 命令,你看我们在输入了一个 java 之后啊,它就会告诉你这个 java 的 语法是什么,它有什么样的参数,什么啊?乱七八糟各种,对不对 啊?能出现这个情况,或者我们使用刚才我们的这个命令出现了,说明了什么?说明了我们的计算机现在啊 时时刻刻任何情况下我都可以识别到我的 jdk 环境了,就是识别到我的 java 环境了, 那说明了什么呢?说明了我们的计算机现在就已经具备了可以写 java 代码的啊这个环境了啊,跟这个事情,那我们接下来来看一个实际的例子啊,我们来看一个例子,假如说我现在 我们刚才讲我们的电脑现在已经具备了这个啊,开发 java 语言啊,开发 java 软件的这个功能啊,对不对?那我们现在呢就新建一个记事本啊,我们新建一个记事本,大家稍等一下啊,我来去找一个, 我们来输入一个一段这个 java 命令,我们来看一下效果,来看一下效果 好,那我们呢现在就是复制了一个一段加二代码,对不对?我们复制了一段加二代码啊,这个加二代码呢,具体什么意思呢?我们在后续的课程里边再去解释。 那我们现在呢就是已经复制了一段加二代码,这一段代码呢就是用来输出啊,一二三四五六七啊这样的一个过程,这就是我们的一个加二代码, 然后呢我们把我们的名字啊和我们刚才的这个 java 代码呢去进行一个匹配,同时呢我们也可以看到我们现在是一个点 txt 文件,对不对?我们在之前的课上也讲了 程序是怎么分辨不同的软件所要使用的这些内容呢?啊,也是通过这个后缀名啊,我们可以看到现在这个 txt 的 后缀名,我们直接双击执行它,它就会使用记事本啊,给我们打开。 那假如说我们把它换成 java, 我 们再去双击它 啊,它现在就是一个啊,你看它就这个计算机当前不认识这个 java 啊,因为它现在不知道我要用什么样的软件去打开它,对不对?那我们现在呢也不需要去打开它,我们需要去做什么呢?我们现在就 找到当前的这个路径,我们来找一下 我们使用还是使用这个 cd 命令啊?我们移动到 哪点啊?好,这个呢,就是我们现在的桌面文件夹,对不对?我们现在的这个桌面文件夹我们使用了 啊, cd 啊,命令找到我们对应的这个桌面文件夹,我们现在已经知道了桌面文件夹下现在有了一个 java 文件,那我们呢就可以怎么样呢?我们就可以去啊使用这个 java 文件了,对不对?一个单个的 java 文件怎么样去用呢?我们就可以用 java, 你看如果我们的命令啊,如果我们当前的这个路径是对的,并且我们的路径下有这个文件的情况下,我们先看一下啊, l s 是 这个 linux 的 命令,稍等一下啊, 这个 啊,我们在 windows 下可以使用 d i r 这个命令啊,去查看我当前路径下所有的文件,你看我们就能看到这个啊, test 点 java 了,它是用了一百二十三个字节,好像啊, 对不对?好说明呢,我们现在已经在 test 的 这个啊,这个文件的这个路径下了,那呢,我们现在做一个什么事情呢?就刚才我们说的用 java 命令去执行啊,当你的这个 文件路径是对的情况下,你是可以使用这个 table 键,你看到没有啊,老师只输了一个 t, 再按 table 键啊,它就会自动把你当前下识别到的啊,这些文件给补全了啊,给补全了, 那我们现在使用 java, 它报错了,对不对?那为什么报错了?因为我们现在的这个文件啊,电脑还不能使用 java 虚拟机去执行你的这个 java 文件,它需要干什么呢?它需要我们刚才讲了对不对?需要先把你的 java 文件 给翻译成计算机啊,系统能识别的字解码文件,所以这个时候需要用到 java c 啊,我们先翻译一下这个文件, 可以看到我们的桌面上现在是不是又多了一个新的文件,叫做 test 点 class 啊,这个 test 点 class 就是 给我们的计算机,我们的这个 windows 系统啊,给他用的 啊,那我们这个时候再去执行我们的 java test 啊,这个时候我们需要注意一下啊,因为我们已经配置了什么 class pass 啊,因为我们已经配置了 class pass 这个 啊,环境变量了,所以我们在这个地方的时候,不需要再去告诉他去执行点 java, 点 class 啊这些东西了,你就直接使用 java 的 命令啊,它会自动的去识别和找到你在当前路径下 同名的点 class 文件,因为文件它是不可能同名的啊,同名的一定就是文件的后缀是不一样的, 系统里边不会在同一个路径下出现完全一样的一个文件啊,如果你的文件名一样,那你的后缀名一定是不一样的,它是不可能允许你重名的啊,所以它就会找到对应的这个名称下的这个 class 文件 啊,你看啊,同学们看,它就已经输出了刚才我们的这个 java 代码 啊,至此说明了我们当前的这个电脑上是不是就已经具备了开发 java 软件的这样的一个能力了。 好,那我们再来看,我们刚才是怎么去开发的呢?我们刚才啊,是不是用记事本去开发的? 那可能有同学说了啊,老师,老师,我现在拿记事本去写代码,这都已经开始用 ai 写代码了,你再用记事本去写代码啊,是不是有点太过分了 啊?因为这你看这才多少行,这才一二三四五啊,算上换行可能也就六七行代码啊,你拿记事本随便敲一敲啊,这样写写也还没问题。 那你正常一个软件啊,我们就不说企业级的这些应用,你但凡是一个正常的软件,你怎么着不也得几万行代码啊,几万行代码,啪啪啪,我就在这啊记事本里边去敲啊,那不可能, 对吧?你记事本别的不说,你记事本的文件一旦超过什么,我们可以看一下现在的这个文件大小一百二十三个字节,对不对?你几十万行代码,怎么着不也得几十币吗?啊?几十 m b 吗?啊, 那你当你记事本文件别的不说啊,当你的记事本文件大到一定程度的时候,你打开它都很费劲啊,你也不知道有没有同学啊,我们以前 啊,我们以前有个同事,你都不知道他有多离谱,当时是一个什么东西呢?当时应该是一个电商的系统后台啊,然后当时有一个这个同事,他在做这个日制输出的时候啊,他没有做分片,没有做分区啊,没有做这个分割 啊,他把整个一天的啊,所有用户的操作记录啊,所有平台的所有操作记录,整成了一个 log 文件啊,好家伙,他一个 log 文件几个 g 大, 然后我印象特别深,然后当时就是系统有了点问题,然后那个领导上去查问题,卧槽啊,他那个文件啊,我打都打不开,哈哈哈。 啊,他这个文件真的我打都打不开啊,也没法去看日记。然后后来怎么处理的呢?网上找了一个这种啊,给文件去进行分割的一个软件啊,把他这个记事本里面的这个文件拆分成了几百个文件啊,然后后来按照时间去找的 啊,所以说明了什么呢?就是我们写代码肯定不能用记事本这样去啊,那是不现实的啊,不现实的, 所以有什么了呢?就是我们的这个东西啊,我们现在看到的这个东西叫做啊, intel。 什么 idea 啊? idea 是 一个什么 idea? 它是一个 ide, ide 是 什么? ide 就是 统称的啊,语言软件开发工具,它就叫 ide 啊,只不过恰巧呢,这个工具的名字叫 ide, 和 ide 很 像,对不对?但实际上呢,它是 ide 啊,英文 ide 主义啊, 这个它的这这个 ide 啊,它就叫 ide。 那 我们就演示一下如何安装 ide, 那 我们其实这个 ide 安装很简单啊,就是大家下一步,下一步基本上就行了啊,有一些同学就是刚才我讲的,就尽量不要安装到 c 盘, 换一个盘符就可以了,装到你的 d 盘, e 盘, f 盘啊,就可以了。那这个时候呢啊,我们啊这些内容需不需要去关联啊?这些都无所谓,不会影响你后续的使用的啊,就把这个桌面快捷方式给他点上就行了啊,就把它给点上就行。 然后这个是开始菜单中要不要创建啊?你创建就行,不用管它,就让它自己去装啊,就可以了啊,这样的话,这个 idea 啊就装好,那我们先让它先装着,我们先来接着讲其他的事情, 我们再回到我们的这个 ppt, 再回到我们的这个 ppt 啊,我们刚才讲了配置环境变量啊, 那环境变量的这个配置步骤呢,刚才我们也都给大家啊,去实现了一下。那很多 jdk 安装过程中啊,新手小白同学啊,会遇到很多问题, 你像 cmd 之后啊,识别不了 java, 那 就说明你的 pass 环境啊是有问题的,一定要一个一个的去比较,然后显示的版本号不对啊,说明你的电脑上之前安装过其他的 jdk 版本 啊,下载太慢啊,那这个问题呢,就啊不太好问,但是你可以找这个老师,老师到时候可以给你一些最新的 jdk 啊, 安装目录找不到,就是我装了一个,比如说就是有一些同学没有使用刚才我说的啊,这种压缩版的绿色版呢,而是使用了 exe 文件啊,他下一步,下一步啊,去安装了,然后他有可能也找不到了, 什么情况呢啊?他就在你的 c 盘下啊, pro graphics 里边有个 java, 你 就可以去找一找啊。有一些粗心的同学啊,在安装软件的时候就无脑的下一步,下一步啊,这种情况非常不推荐 啊,因为他会把你的这些软件都安装到 c 盘去啊, c 盘刚才我们讲的一个是会影响你电脑未来的一个卡顿的使用,另外一个就是一旦你的电脑出问题了啊,所有的东西就没有了。 所以啊,各位同学,在安装的时候啊,无脑下一步的时候一定要注意一下,最起码换一个盘符啊,还有就是配置后不生效啊,那这种情况你就把你的这个命令行啊,给它关掉,重新打开啊, 那包括就是后续大家如果在这个安装 jdk 的 过程中啊,出现各种问题,然后解决不了的时候,那可以来找老师,老师给你去看一看啊,你到底这个问题是什么情况 啊?那最后呢,就是刚才我们说的为什么需要这个 id, 老师看一下 id 安装完了没好, id 安装完了啊,为什么要用 id 啊? 你用记事本写记事本,刚才我们也看到了,灰色单调啊,什么东西都没有啊,也没有各种提醒,写错一个字母你都不知道,那几十万行的情况下,你写错一个字母,好家伙,那享福了属于是啊, 那 ide 写代码呢,它会彩色的啊,不同的关键字有不同的颜色啊,代码呢,可以补全啊,然后运行呢,也非常方便。我们刚才 啊,给大家演示运行代码的时候是不是很恐怖啊,很恐怖,我们需要先 java c 翻译这个文件, 翻译完了呢,我还要去 java 再执行这个文件啊,非常恐怖。那我们在 ide 里边啊,所有的东西都是由我们的软件开发工具帮我们一键就去解决了,所以我们刚才讲的这些很恐怖的事情,其实在你未来的开发过程中是不会有的啊,因为就是由我们的 ide 啊,他会把这些恐怖的事情都给你去解决了。那 ide 呢?就也是啊,会有一些官方网站啊,可以去下载,下载完了呢,就像刚才我们演示的那样啊,一点一点的去执行就行了 啊,那我们现在呢看一下我们的 ide 安装完了没, 那我们现在可以看到我们的 idea 安装程序结束啊,它已经安装完成了,那我们直接运行它, 你看它现在就是啊, configure or instruction dictionary, 它这个是什么意思呢?就是同学第一次在打开 ide 的 时候,它会让你去配置一个工作目录 啊,配置一个工作目录就是你未来的啊,你的这些软件都在哪?那我们现在呢就先随便选一个,大家根据自己的实际情况啊,你自己去放在合适的地方就行了,那我们现在先随便选一个, 嗯,好家伙,他还说这个,嗯,目录不让用啊, c 盘什么什么什么什么 configure 什么什么不让用啊,他还不让我选这个,他说没有,他没有识别到你当前是一个有效的工作路径啊,那我们现在先不管了,我们先不导入设置。 好,那我们现在就打开这个 idea 了,打开这个 idea 之后呢,第一次我们可以看到啊啊,我们当前使用的这个二零二三版啊,它是需要你去激活的啊,它需要去激活的 啊,它不是一个免费的版本。那我们上边呢,有一个免费试用啊,有一个免费试用,我们可以先免费试用。 那关于这个 idea 的 激活啊啊,这些事情呢,就是后续也可以找老师,老师会告诉你具体怎么执行,这一节课我们不作为重点讲啊,就这个事情大家 啊自己下去解决啊,那现在的话,我们使用虚拟机的情况,他就能解决最简单的一个问题,因为之前不是有同学问这个虚拟机有什么用吗?啊,那现在虚拟机的话,就是你每三十天你就可以构建一个新的虚拟机,然后免费的去使用它的这个试用。 那我们呢现在使用啊,开始三十天的免费试用。那我们进到这个 id 啊,进到这个 id 二, 我们在进到 idea 之后呢啊,我们可以看到对不对?这个就是 idea 的 一个主画面了,那我们他现在呢啊,欢迎使用 idea 啊, mini sata 对 不对啊?欢迎我们使用。那我们现在呢有三种选项, 第一个选项呢就是新建一个项目,第二个的话呢是打开本地的一个项目,第三个的话就是从一些版本控制工具里边啊去导入项目。那我们现在呢就先新建一个项目, 那我们在新建项目的时候呢,我们可以看到有很多选项啊,那这些我们以后啊,我们以后再去聊这些东西都是干什么的?我们现在呢就先新建一个默认的 java 项目,默认的一个 java 项目就可以, 那我们的语言呢就是 java, 你 看它这个 ide 是 不是啊? python 啊, go 啊, p r b 啊,什么它可以啊?去 install plag, 就是 说这个 idea 呢,它不只可以写 java 的 这个语言,它还可以写其他的一些语言啊,只要你装的这个插件把它给加上就可以。 那我们在新建完这个项目名称之后呢,我们可以看到它下边啊,要求你使用 jdk, 如果我们的 jdk 已经正常安装的情况下,就是啊,它会自动的显示你当前使用的这个 jdk。 如果,如果你的 jdk 版本有很多的情况下,那你也可以根据你的项目需求选择不同的 jdk 版本啊。 这个 jdk 版本该怎么讲?就是刚才我们说的啊,除了我们推荐的那个最新的 jdk 十七 gts 那 个版本以外,就是 jdk 一 点八 啊。 jdk 一 点八呢?是因为什么呢?是因为早些年啊,早些年在这个甲骨文,他在这个发布各种 jdk 版本的时候,大家都有一个毛病啊,这个毛病是什么呢? 啊?就跟这个啊,使用苹果手机的啊,这些同学,他可能对这个事情啊感知上更深啊,为什么呢?因为大多数的普通人啊,他都不会啊,也不愿意去升级苹果最新的系统啊,为什么就是大家都会有一个算是那个, 怎么说呢?算是一个认知,或者说算是一个刻板印象啊,就是新系统出来之后啊,一定会卡啊,苹果啊,顾客啊,他就是想让我换手机啊,所以他在这一直研发新的系统啊,所以呢,就是当时这些圈内搞开发的这些人啊, 也有这个毛病啊,就是大家可能都会觉得,哎,新的版本你稳定不稳定啊?我这现在这么多用户啊,你给我换一个不稳定的版本,我到时候出问题了怎么办啊? 只要不是这个 jdk 的 版本里边出现过重大恶性 bug 的 情况下啊,大多数的人他都不会去升级你这个版本啊, 他都不会升级你这个版本。所以这就造成了一个很奇妙的现象,是什么呢?就是基本上啊,一五年以前啊,一五年以前的这些项目 老像可能大多数现在还是用的 gdp 一 点八啊,为什么啊?为什么他现在不愿意去升级用新的啊?我给你们举一个例子啊,就是你们就能很直观地感受到这个事情吗?就是 老的版本,我给你举个例子啊,就是我们以后会学到 api 啊, api 是 一个什么东西? api 你 就把它当成是一个固定的语法堂啊,或者说它就是一个固定的啊,这样的一个调用的一个东西,它叫做 api, 那 jdk 一 点八的 api, 在 jdk 时期它就可能改名字了啊,它就可能改名字了。这个事情怎么理解呢?就是好比我现在写了一篇论文啊,论文这个过程中 我叫张三啊,然后我是大一的,我举个例子啊,我是大一的,然后,但是呢,我这个论文写的时间有点长啊,我写到大二这个论文才写完。然后呢,那我是大一的,这个啊,大一的,这个事情不准确啊。啊, 政治面貌啊,政治面貌这个东西非常的合理,就是假如说我在写了一个东西的过程中,我写这个东西的过程非常的漫长啊,这个文档或者这个论文,一直到我成为党员了, 我才把这个文章写完。但是呢,我这个过程中又有很多和我身份相关的地方啊,比如说我的政治面貌是党员在这个文档中一共出现了一千多位, 那你在现在的这个 wps 和 office 这些 word 管理工具中啊,甚至这个记事本里边儿,你都可以通过 ctrl 加 h 文本替换的方式, 把我的这个叫什么?我的政治面貌啊,把我从团员换成党员,对不对?你可以很简单地在这些文件编辑器里边儿啊,把这些东西给替换成 从团员替换成党员。但是你在整个项目中,它不是简单的,你刚才的这个一键替换就能去处理了。 因为 jdk 不 同的版本之间,它不单单是换一个名字这么简单啊,它会把以后 我们,他会把以后我们里边涉及到的什么各种行餐啊、参数啊,甚至调用,甚至各种东西,他都会改变,就是他改,不是改一个名字,他改的是你可以理解成文件夹下所有的东西一串 啊,他在不同的 jdk 版本之间,他的调用都是不一样的,所以这就造成了一个情况,什么情况呢? 一旦涉及到升级 g、 d、 k 的 版本,他就已经相当于是最底层,对于我们搞 java 的 人来说,就已经算是最底层的一个东西了。如果你的这个产品在一开始的这个框架和底层的版本没有选择好的情况下,未来如果要去升级 啊,那这个事情就是一个非常恐怖的事情。你就可以理解成刚才我们说的在一个 几百万行的文件中,还不让你用搜索,甚至不让你用 ctrl f 去搜索,然后把刚才我的这个团员 啊给改成党员,你就想想这个事情有多恐怖啊,这就是为什么啊,搞开发的这些人不愿意去升级 jdk 的 版本的原因啊, 那为什么我们还用一点八呢?那就是刚才我讲的很多老的项目他都是在用一点八,所以呢,就是未来如果你再不确定你的这个产品用什么版本的时候,你就可以相对来说选择一些较新的,或者说是一些稳定的啊, 那这个就是 jdk 版本,那我们现在创建好了,对不对?我们创建好了这样的一个文件,看一下这是什么东西,这个没什么,没什么影响,没什么影响我们就不管它了,那我们现在, 那我们现在能看到这就是一个标准的啊, java 项目的一个文件夹,它会给你啊, test 的是我们的这个项目名,它会告诉你你当前的这个项目名所处的一个地址, 那下边呢,是我整个项目文件夹的一个具体的地址。 s r c 下, s r c 啊,我们以后要注意一下,所有的 java 的 源代码都是在这个 s r c 下啊, 我们可以看到它现在就是给你了一些提示对不对?可以 shift f 十快速去进行执行,或者按你的这个三角形去执行啊, 那我们呢,现在把这些提示什么的都先删掉,先不管他啊,有兴趣的同学回头可以大家自己再去看看啊,下边是这样这样的一个循环的语句啊,我们也不管他。好,我们现在呢, 在他新建的这个文件夹里边啊,我们现在就写我们的第一个 java 代码。什么呢? hello world 啊,你好世界啊,每一个这个入行程序员写的第一行代码啊,都是这个 hello world 啊,大家有一些同学啊,假如说你是这个已经从事这个编程了,或者相关的一些同学,你可以想想啊,你写的第一行代码是不是这个 hello world 啊?好,那我们第一行代码写完了,对不对?他这怎么有个 断点啊?断点,那我们刚才讲了,我们点这个绿色的标 run 啊,它就可以去执行这个加号代码,或者我们鼠标右键啊 run 啊,也是一样的, ctrl shift f 十,它会告诉你一些快捷键。 好啊,至此我们是不是可以看到我们现在的这个控制台啊?这个东西叫做控制台啊,它就输出了我们的 hello world 啊,你好,世界啊,至此我们的这个第一行代码就是可以通过我们这节课啊,在你自己的电脑上去进行执行了啊。

网贷正在掏空中国年轻人的未来。现在网贷广告无孔不入,点外卖、打顺风车、刷短视频、翻朋友圈,到处都在提醒你可以领钱,这种诱惑你扛得住吗? 我见过原本前途大好的高学历年轻人,被网贷一步步拖近深渊,你以为网贷是救急的帮手,其实他早布好了收割的大网等你跳。今天给大家扒两个最常见的网贷陷阱。 第一个是利率幻觉,万分之五的日息借一万,每天才还五块。很多人觉得连杯奶茶都不到,随手就点了, 可仔细算,年化利率居然高达百分之十八点二五,远超银行各贷利率,快摸到国家监管红线。 更坑的是第二个套路,借一万分十二期还。表面看年化百分之二十好像还能接受,可你本金每个月都在减少,第一个月还了八百本金, 第二个月实际只欠九千两百,平台却还按一万全额算息,到最后一个月只剩八百多本金,利息还一分不少。 这不跟你租整套改住单间,还交全额房租一样离谱啊。我有个朋友借八万还不上,以贷养贷,最后滚成几十万,压得喘不过气。 平台根本不怕你不还,大数据早就把你摸的门清。就爱找收入不高还爱超前消费的年轻人。真逾期了就把债务卖催收,报通讯录,电话轰炸, 报个人信息,百分之九十的人扛不住都会还款,那点坏账根本不影响他们赚大钱。 给大家四个实在建议,第一,买东西先问自己是不是真需要,别被消费主义洗脑。第二,每个月强制存百分之十到二十的钱当底气。 第三,关掉所有网贷额度,欠债别超六个月可支配收入。第四,欠了债千万别以贷养贷,赶紧找亲友帮忙,别等利滚利到还不上的地步。