很多的小伙伴这两个语言它是搞不清楚的,这个里面它也有一个 java, 然后后面还有这个 script, 其实它是两门完全不同的语言,它的应用领域也不一样。这个以前呢 java script 它主要用于写前端, 但是呢,后来由于出现了这个叫 node js 这种引擎之后啊,现在这个 java script 它其实前端后端都可以写。因为现在啊这个人工智能大模型,在这个呃大的背景下,实际上 跟大模型衔接比较紧密的就是 javascript, 但是 java 它就是一个纯后端的语言,它的强项就是做企业级的这种应用。
粉丝268获赞2600

大家好,欢迎来到编程知识讲解视频,今天我们将一起学习 java。 在 这个视频中,我们将包含以下几个核心知识点, java 基本概念 java 是 一种面向对象的编程语言, 它像一个万能工具箱,能帮你打造各种软件产品。想象一下,你想做一个能力攻击系统, java 就 像里面的螺丝刀、扳手等工具,让你能轻松搭建各种功能模块。 java 的 核心特点是跨平台, 就像你用 usb 接口的设备,不管插在 windows 还是 mac 电脑上都能工作,它通过虚拟机 jvm 实现这一点。就像一个翻译官,把 java 代码翻译成不同操作系统能理解的语言。学 习 java 就 像学开车,掌握了基础操作后,就能驾驶各种类型的车辆。 java 开发环境学习 java 首先要搭建开发环境,这就像开餐厅前要准备厨房设备,你需要安装 gdk java development kit, 它就像厨师的全套刀具,包含了翻译、运行 java 程序所需的所有工具。然后配置环境变量,就像餐厅里的食材摆放位置,让系统知道去哪里找需要的工具。最后选择一个合适的 ide, 如 eclipse intelligence ide 道 就像选择一个宽敞明亮的厨房,让你能更高效的烹饪美食。记住,环境配置是基础,就像盖房子要先打好地基。 java 基本语法 java 的 语法规则就像英语的语法,有固定的结构和表达方式。变量声明就像给物品贴标签,告诉系统这是什么类型的东西。 数据类型就像超市里的分类货架,把不同类型的商品、整数、福典、数字符等分开存放。运转符就像厨房里的调料,能让简单的食材组合出丰富的味道。控制语句就像菜谱里的步骤说明,告诉程序下一步该做什么。 学习语法就像学做菜,掌握了基本步骤后,就能做出各种美味佳肴。面向对象思想面向对象是 java 的 核心思想,就像现实世界中的事物分类,比如你想设计一个动物管理系统,每个动物都可以看作一个对象,它们有共同的特征、属性和行为方法。类就像动物手册, 定义了某类动物的共同特征。继承就像家族遗传子类,可以继承父类的特征,并添加自己的特色多肽。就像同一个动作,在不同对象上有不同表现,比如叫这个动作,狗会汪汪叫,猫会喵喵叫。理解面向对象就像理解家族关系,能帮你更好的组织代码结构。 java 核心类库 java 提供了丰富的类库,就像一个大型超市,里面有各种现成的商品供你使用。比如集合框架,就像超市里的购物车,帮你管理和操作一组数据,让你能方便的读写文件和网络数据。 日期处理类就像日历,帮你管理时间相关的操作。学习类库就像逛超市,知道哪里有什么商品能帮你更快的完成购物任务。记住不要重复造轮子,就像做菜时直接用现成的调料包,而不是自己从头制作。 异常处理机制异常处理是 java 中处理错误的机制,就像生活中的京剧医院,当程序运行出现问题时, java 会抛出异常。就像火灾报警器发出警报,你可以用 try catch 语句来捕获异常。就像消防员接到警报后立即出动 final 一 块,就像火灾后的清理工作,不管有没有异常,都要执行合理的异常处理。就像给房子买保险,虽然平时用不上,但关键时刻能帮你避免更大的损失。 记住,不要忽视异常,就像不要忽视身体发出的警告信号。 java 多现成技术多现成就像餐厅里的多个服务员同时为顾客服务,能提高程序的效率。 单县城程序就像只有一个服务员的餐厅,顾客需要排队等待。多县城能让程序同时处理多个任务,就像你可以一边听音乐一边写作业,但多县城也会带来问题。就像多个服务员同时服务同一个顾客,可能会混乱,这时候需要同步机制。就像餐厅里的叫号系统,确保每个任务有序进行 学习。多县城就像学习团队协助,掌握了协调方法后,能让团队效率大大提高。 java 网络编程 java 网络编程就像邮局系统,让不同电脑之间能传递信息。 socket 就 像邮局的信箱,让两台电脑能建立连接。 instream 和 opcmos 就 像信封和信纸, 用来封装和传递数据,用来封装和传递数据,用来殚慰到网络上的资源。网络编程能让你开发聊天软件、在线游戏等。 就像邮局,让你能和远方的朋友通信。记住,网络编程需要考虑安全性,就像寄快递时要选择可靠的矿机公司。 java 数据库操作 java 数据库操作就像图书馆管理系统,让你能方便地存储和查询数据。 j d b c java database connectivity 就 像数据库打交道。 c q 语句就像借书还书的流程,告诉数据库该做什么操作。连接池就像图书馆的预约系统,能提高资源利用率。 学习数据库操作就像学习如何使用图书馆,掌握了查询方法后就能快速找到需要的信息。记住,操作数据库时要注意事务管理,就像图书馆借书时,要确保所有流程都正确完成。 java 高级特性 java 的 高级特性就像汽车的高级功能,能让你的程序更强大。饭型就像超市里的分类货架,让你能更安全的处理不同类型的数 据。注解就像商品标签,能让你看到程序运行时的内部结构。 lamda 表台式就像快捷指令,能让你用更简洁的方式编辑代码。学习高级特性就像学习汽车的高级功能,虽然不是必须的,但能让你的驾驶体验更舒适。记住,不要过度使用高级特性,就像不要在城市道路上开跑车。以上就是今天关于 java 的 全部内容。

我的天, java 已经沦为老四!在二零二五年的十二月,全球最权威的编程语言排名网站 qb 上面, java 语言已经调到了第四名,而霸占前三名位置的分别是 python、 c、 c、 加加。虽然小辉早已经不在公司写代码,但曾经身为一名 java 程序员,看到这个结果仍然有些感慨。回想起十年前的二零一五年,同样是在 java 程序员,看到这个结果仍然有些感慨。回想起十年前的二零一五年,同样是在 java 语言稳居第一名, 而 python 则排名第四。没想到十年时间,物是人非, java 和 python 的 地位居然完全颠倒过来。为什么会出现这样的结果呢?因为时代变了。在十年前的移动互联网时代, java 语言满足了大量的服务端开发需求,而如今进入 ai 时代, python 语言在机器学习大模型方面的优势开始显现出来。 面对这样的改变,我们该怎么办呢?没有与时俱进,适应变化。不知大家有没有看过一部名叫神鞭的老电影,电影的主角是一位生活在清朝末年的武术青年,他凭借着祖传的辫子神技打遍天下无敌手。 后来赶上八国联军入侵,青年果断加入义和团。然而在洋枪洋炮面前,他的辫子不再无敌,甚至被洋人用枪打断了。但青年并没有自暴自弃,他转而拿起手枪,从头修炼起了新的绝技,最终成为了一名百发百中的神枪手。对于我们程序员来说,编程语言仅仅是工具, 无论是 java 还是 python, 无论是 d 代码还是 ai 编程,什么工具能更好地适应这个时代,我们就去学习和驾驭什么工具,只要我们的学习能力还在,执行力还在, 我们就不惧怕任何改变。最后小辉借用电影神编中的一句经典台词来结尾,变简了,神留着。大家对 java 语言的衰落怎么看?欢迎把你的想法打在留言区。

接下来我们进行 java 语言基础模块的讲解,首先来跟大家讲解一下 java 相关的基础知识,在 java 程序的开发过程呢,我们需要去明确一下,我们是怎么从程序员代码中的原程序,然后部署到应用程序中进行运行的。 在这个过程中,我们所生成的原程序,注意一下,原程序学的文件名后面的是点 java 的 形式啊,经过编辑器之后,我们会经易经过这个编辑器之后,这个阶段的文件名依旧是点 java 的 形式。 在生成字节码文件以后啊,这个文件会变成点 class 的 形式。这个地方注意一下啊,在有一些填空题中,可能会考察在不同的阶段,你所生成的文件是以什么结尾的。 我们要注意的是,生成字节码文件以后,这种 d r class 的 文件才能部署到应用程序或者是一些小应用程序中去进行。这个应用程序可能是一些一些 java 的 解释器,再或者是这种你部署到一些网页上面,像这种小应用程序,它是用浏览器去进行执行的。 然后我们来看一下 java 的 一些语言结构啊,首先在代码上面的话呢,最上面的话,一般是我们会有一个这种 package 啊, package 的 语句呢,它大概是零条或者是一条啊,这个是必须放在文件的最开始, 最开始的地方啊,因为在一个这个 package 下面呢,你可能有很多个这个 class 文件,所以说你在最上面的地方需要需要有一个这个 package package 语句啊, 然后呢,这个 package 语句的这个下面的话,你可能会有一些 import 语句啊,这个 import 的 话呢,你需要这个 import 呢?是导入的意思,你可能需要去导入一些包,或者是导入一些包中的工具类, 那么这个 import 操作我们是必须放在所有的类定义之前啊,然后我们导完了包,然后我们才才能够去写对应的这个 public 或者是这个 private class 等等啊,那这个地方我们才会需要去定义一下文件名, 然后文件名的话必须跟该类的类名是完全相同的啊,那下面的一些类定义呢?你在一个 class 中,下面的类定义以及接口的定义,这个个数就是不限了,可最少的话有零个,最多可以有无数个啊,然后涉及到一些包名,类名等等的写作规范呢,这里面注意一下,像这种 pick 制啊, pick 啊,这个包名的话,后面一般都是全小写的啊,基本上都是名词,因为这个包本身是一种静态的内容啊,静态的,这个静态的东西,你这里面都是小写啊,然后呢涉及到一些类名的话呢?其实类名他没有一个说是我必须全都小写,或者是必须全部大写的, 但是为了遵循编码规范,以及在阅读的时候,我们看着会尽量的舒服一些,我们会采取首字母大写的形式,然后这里面我们尽量选择这种驼峰式啊, hello world app 啊,就是 首字母大写啊,然后呢到每一个单词的首字母也都大写,这样我们看起来会更加舒服一些。然后涉及到了接口名的话呢,接口关键词是 interface 啊,这里面我们也跟类名一样啊,每一个单词的首字母大写, 然后每一个类下面你可能会定义若干个方法啊,这个方法我们可以给他理解成一种能够实现某一些功能的一些动态的代码块啊,这里面就一般是动词啊,比如说我定义一个类,我叫做猫啊,那猫能做什么事情呢? 什么等等,它可以吃啊,可以喝,可以睡觉啊,然后也可以玩啊,那么我们在定义这些方法名的时候,那么这个 it think 等等啊,依次类推,我们都是这个,一般是动词啊,当然那个尽量的是这个,呃,尽量这个小写字母开头啊,然后后面如果是有一些这种两个单词接在一起的啊,你像这种每一个单词的首字母大写,这样读着会进来会比较舒服一些。 然后涉及到一些变量名的话呢,就我们一般都是小写啊,然后一些常量名啊,基本的类型的常量名,我们尽量都给他大写啊,对象常量大小呢,可以写混合。 然后来看一下这个 java 中的注解方式啊,这样,这种呢就是一般是一些文档上面的文档上面的注解啊,然后你像这种呢,是 斜杠加上星号的形式啊,这个你就可以写在程序内的任意位置,被注解掉的内容在程序执行的时候不会读到它啊。然后如果你想是注视这一行,比如说你把这个 system 点 out 输出的语句注视掉, 那你就直接写在这啊,那程序运行的时候,它就不会走到这一句话里面了啊。然后我们在实际写代码的时候,可能对于某一个类都需要有一些注是,那么这个注是你就可以这么去写 啊,这个,呃,具体的这个类我是怎么实现的啊?这个实现的这个目的啊,将特级字母串显示到标注输出。同学们在编程的过程中也要养成良好的 编写注注解的方式啊,因为有一些代码你可能在一个月之前你是是你自己写的,但是一个月之后你会发现啊,这全都忘了。所以说适当的增加一些注解,这个是有助于提高我们编程以及阅读程序的效率。呃,那这里面的话呢,可以看一下啊,就是这个 针对于变量注式啊,我去说一下下面的这个变量主要是充当整数计数啊,然后方法注式,然后下面这个方法主要功能是计数啊,像这种题式的语言,大家在编程的时候可以写一些啊,然后考试的时候呢,他可能会怎么考呢?就是他会问你啊,就是这个进这个地方,他只能考小题啊,这大题不可能考的。 首先就是他可能问你一下,就是对于本行的注是,那你要怎么去写啊?再或者说他可能会考考一些这个选择题啊,比如说 a 选项他给你啊,然后 b 选项啊, c 选项, 然后 d 选项 啊,一个型啊,然后他就会问你,下列哪一个不是 java 语言中的基本注式类型啊?那是不是应该应该选这个啊?这个是前端要用到的这种注式啊, 然后我们来看一下数据类型啊,那针对于数据类型来说,我们要知道啊,数据类型我们分为两大类啊,分别是基本的数据类型和引用的数据类型。 在基本的数据类型中,我们又分为整数型、浮点型、字母型和布尔类型。首先我们逐条的去进行介绍啊,自结型我们用 bet 啊,这个 bet 我 们一般是用于处理一些文件以及网络传输等自结自结级别的数据啊, 然后这种 int 类型呢,这个也是我们使用最广泛的整数类型啊,比如我们在处理一些学生的学号啊,身份证号啊,这种。呃,整数类型的,全都是去进行用这个 int 去定义, 然后 short, 它是一个短整型啊,顾名思义呢,它这个长度其实是默认长度是比较短的,所以说我们可以用于一些节约内存空间的需求啊。 long 表示的是长整型,可以用于处理较大值的整数运算。在浮点类型中,我们分为这种单精度浮点类型的 float 和双精度浮点类型的 double。 呃,像 float 的 话,我们一般是用一些科学计算以及需要高精度计算的场景啊,当然我们平时用这个浮点类型,可能我们用的是 double 啊,这个也是使用比较广泛的一种浮点类型。 呃,字体型我们也表示的是叉啊,这个也是我们应用比较广泛的一种字体类型啊,比如我们定义学生的基本信息啊,教师的基本信息,或者是说我定义学生的身份证号的时候,其实身份 身份证号这些东西我们也可以用字母型去进行表示啊。然后波尔值的话,我们就是用于条件判断和波尔运算啊,这里面波尔值波尔型的取值我们是只能够取出和 false 啊,就是对和错。 第二个大的类型叫做引用类型啊,那么像这个引用类型中呢,包括数组、接口类等等啊,比如说我再去进行类的一个具体实力的调用的时候呢,我们需要去创建对象啊,然后对象是类的一个具体 实力,他可以有拥有类定义的属性和方法。加拉接口也是一种引用类型啊,我们接口通过类的实现来实现出具体的功能,那么数组的话,他也是一种引用类型啊,注意,因为数组我们是由相同类型的数据元素组成的集合, 我们可以通过锁引的形式去访问一个数据库啊,这个数据库的话,这个如果我们做图,它大概是长成这个样子啊,每个格子里面它有存储,存储一个数据,我们可以通过锁引的方式访问数数据库中的数据,也或者说循环 循环来便利数据库中的数据啊。那么在这种情况下呢,我们对于就引用数据类型来说呢,引用类型在 java 的 使用中是非常广泛的啊,我们也可以通通过他们去实现一些复杂的数据结构计算,以及实现一些相对比较困难的算法。 但是我们在使用引用数据类型的时候,需要注意一下内存管理和引用传递等问题,这样用来保证程序的正确性和性能。 这张表格里面写的是数据类型对应的这个所占的位数啊,当然我们复习 java 的 话,可以就简单的看一看这个所占位数和值的范围就可以了。那么所有的基本类型大家要知道哈,就所占的位数他都是已经确定好的了啊,他不会因为操作系统的不同而不同, 然后所有的基本类型关键词注意哈,一定要小写啊,加外语言它是区分大小写的。那这里面的一个所占位数哈,其实大家可以重点看一下啊,像这个等,就像这个短整型 啊,长整型啊,整型和长整型,对吧?它占的这个位数它是依次递增的,嗯,然后这里面的 float 和 double 啊, double 是 float 两倍啊,值得范围这种比较细枝末节的东西,考试不一定会考啊,但是呢,针对于基本数据类型有哪几种, 以及引用数据类型有哪几种啊?像这一个分类的图片,我们需要给他记好啊,接 下来我们来看一下运算符的表达式啊,在考试中的话,其实运算符他可能会考一些小题,他一般不会放在大题里面考,但是在一些这种程序设计的大题里面,他可能就会融入这个运算符的考察。 比如读程序的时候呢,他会问你这个 i 加加和加加 i 有 什么区别?再或者呢,就是他可能会把这个除除法运算跟除膜运算混淆在一起去考你。那这里面我们先把所有的运算符先去 任意变啊,首先这个是加运算,减运算,乘运算除运算,然后这个是除膜运算哈,他跟除运算是不一样的,比如说这里面哈,如果说我们是十五除二,对吧?那这个地方我们取的是什么能能整除的啊?是不是七?然后呢,如果是说十五 对二除膜啊,这除膜运算大家还记不记得啊?这个是应该是小学课,小学的课程了啊,但是可能大家都不记得了,那这个地方跟大家说一下哈,就是十五对二进行除膜运算,那能被整除的是不是二乘七,然后于一对吧,所以说这里面 除膜运算我们输出的应该是多少呀,对吧?他应该是一 啊,这两个大家不要搞混了啊,然后加加和减减,一会我们再说啊,关系运算符中,这个都是比较好理解哈,大于小于,大于等于,小于等于等于和等于等于,然后这个是不等于呃,波尔运算符中呢?这里面是呃,首先这这里面一会我们说一下这两个的区别啊,然后未运算符, 像未运算符中啊,这个符号它表示的是又位于运算符 啊,这个右位移运算符它表示的是按照二进制的形式,把所有的数字向右移动对应的位数,然后低位移出高位去空位补零啊,然后左位移算的话跟右位移运算是相似的,它只是往往左移动对应的位数啊,然后 这个东西叫做无符号右移啊,什么是无符号呢?首先就是你先说一下什么是有符号的右移啊?有符号的右移,就是当这个数字是正数的话呢,右移前面补零,如果数字是负数,右移前是补一, 无符号右移,他不管是正数还是负数啊,他就向前面去补零好,当然这个未运算符的话,考试的时候考的概率相对不是不是那么大啊,所以说这里面就不展开给大家去举例子了。 然后这个先说这个吧啊,这个东西它表示的是按位的 e 或运算啊,然后这个符号它所表示的是 这个东西表示的是非运算符啊,就是将,比如说这里面 a 啊,这这里面就是将这个 a 的 所有二阶值全部取反啊,比如这里面的这个计算机的这种, 大家比如说他在计算机里面的二进制是这样的啊,零一零一零,那么全都取反变成一零一零一啊,就是这样。 呃,然后重点的话我们来说一会,我们来重点说一下这两个啊,然后呢,这个负值计算符就是等于啊,以及他的扩展的计算符加等于减等于啊,这个其实加等于就是说 a 等于 a 加上 i 啊,或者是说 a 等于 a 减上 i, 然后这两个啊乘等于除等于啊,是一样的。然后来看一下条件运算符啊,也有一部分的书籍中叫做双目运算符, 这里面啊, a、 b、 c 分 别是三个表达式啊,条件运算符的运算规则是,如果表达是 a 为真,那么就以表达是 b 的 值作为整个条件表达式的值。如果表达是 a 的 值,它为 假啊,那么我们就用表达式三对应的纸来做整个条件表达式的纸啊。然后我们来一下来看一下这个一个与符号和两个与符号的区别。 比如这里面我们有两个表达式,分别在以语的左边和语的右边,那么左,如果在单语的情况下,左边无论是真假,那右边都需要进行匀算啊,如果是双语的情况下,如果左边为真,右边才会参与匀算。 如果左边为假,那么右边不参与运算啊,那么货啊,单货和双货这个是同理的啊,如果说双货的情况下啊,左边为真,右边就不参与进算啊,这个单货的情况下,不管左边是真还是假,右边的表达式都参与运算, 那对于表达式的概念呢?其实比较简单啊,就是由操作数和运法形式组成的一些符号虚列, 它可能是一个常量或者是一个变量的名字啊,比如 x, 再比如说三点一四啊,那么这个值就是该表达式的常量或者是变量的值。表达式的值还可以用做其他预算的操作数,形成一些更加复杂的表达式。 比如这里面我们看到的两个数相加,先相加,再相乘,再相加,以及又取或又取与等等,这些都是一些最基本的表达式。 那么在考试的时候所考察的重点其实是通过这些表达式所组成的一些程序,让我们判断一下,有可能是判断程序是不是有错改,有错的改错,再或者是说我们去判断一下程序输出的结果。 这里面大家重点的去看一下加加运算和减减运算。加加运算和减减运算都可以作为前置和后缀的运算符,那么下面分别去进行一个介绍。 比如这里面我们定义了一个 i 等于十五,如果我直接给他输出的话,那么他直接输出的结果是十五啊,那如果我们输出的是 减减呢啊? i 加加或者是加加 i 啊,这个 i 加加和加加 i 的 区别,大家重点看一下啊,非常重要。首先 i 加加表的表示的是你看好加号在 i 的 后面,那也就是说我要做的是使用 i 之后,再使 i 的 值加一, 因此执行完 i 加加之后,整个表达式他是 i 加是 i, 而 i 的 值变为 i 加 e。 比如这里面如果我在这里执行了 i 加加之后,这个时候我输出的结果啊,注意这个加在后面,所以我输出的结果还是这个数据本身啊,但是呢,我再去输出一下 i 的 话,那么他输出的结果还是这个数据本身啊,但是呢,我再去输出一下 i 的 话,那这个地方应该是十六 啊,然后加加 i, 它是同理的啊,那个加加 i 的 话呢,因为它在 i 的 前面啊,所以它在使用 i 之前就已经是 i 加一了,所以执行完表达式之后,整个表达式输出的结果和 i 的 值它都是 i 加一, 比如这条结果中我们输出的是十六啊,那下面我再输出一下 i, 它也是十六。那么同样我们可以类比一下 i 加加 i 加,类比一下 i 加加之后,大家去反推一下 i 减减啊, i 减减和减减 i, 它跟 i 加加 加加 i, 它的原理是一样的,这里面就不再给大家重复的这一些语句。 java 的 语句它是分为五类的啊,当然在考试的时候,它不会去问你 java 语句一共分为哪五类啊,而是会直接用这些语句它组成一些代码来考你。 首先最简单的是一是这种输出的语句啊,当然呢,这个方法调用的语句,它不只是这个控制台打印的一个结果啊, system 点 out, 点 print hello, 我 这个是控制它打印的结果啊,当然这个其实调用了一个现成的一个打印的方法啊。然后第二种呢,是一些表达式的语句,比如说给 x、 y、 z 去赋值,再比如把一些基本的变量,我去进行一些加法,进行一些减法 啊,然后再或者是一些复合语句啊,如果是复合语句的话,我可能不会按照这种顺序去执行,我可能会复合语句跟控制语句我放到一起去执行。 那复合语句的话呢,我们可能会用一些用这种大括号的形式,我把一些语句给它括出来啊,然后一会我们重点说一下控制语句, 这个控制语句和复合语句一起用哈,比如说 if, 一 些条件,然后一个大括号,然后 else 啊,那么这种情况下我就实现了根据不同的条件,要么走到这个代码里,要么走到这个代码里啊,这这这就形成了一个判断的规则。 那么控制语句呢,我们又分为选择、循环和跳转语句,那在考试的时候,大家其实重点要准备的是 if、 else、 well, 还有否啊?这三个呢?那是比较常考的。然后跳转语句的 continue 和 break 的 区别,一会大家给给大家重点讲一下啊,这两个大家也需要重点的去 听一下啊,然后 return 的 话,它就是单纯的,我就进行一个值得返回啊。第五种呢,就是 package, package 和 import 语句啊, package 是 用来说明你这个类属于哪个包里面的啊?一个 class 里面的 package, package 在 最上面啊,然后下面的话呢,可能是 import 啊, import 可能有好几个啊,然后再之后你才能够写这个 public class 啊,然后什么什么啊,然后再往这里面你去写其他的一些语句啊,然后选择语句的话呢,其实期末里面基本上必考的就是这个 if else 啊,那这个 if else 其实它本质是一个基于不为人表达式的一个逻辑, 在 if 的 这个括号里面啊,它会按照这种不为人表达式的判断,如果成立的话,它会走到这个 if 里面, 然后波尔表达式的话,他是任意一个返回波尔类型的表达式,而且必须是啊,这个波尔表达式的话,其实要比 c 或者 c 加加要更加严格一些啊,但是跟这个 c 跟 c 加加的是一样的,就是每一个单音的语句后面,大家注意哈,要有分号,要有分号啊,没有分号你放到 呢这个 excel 或者是 idea 中,他会直接给你报错啊,然后考试的时候,如果你是你的学校,是手写代码的情况下,那没有分号,这地方没写分号,老师是最少会给你直接卡。这个扣一分啊,这个扣一分啊,然后两分就没了啊, 每一个单一语句后面有分号呢,同时为了增强程序的可读性啊,就是我们应该将 if 跟 else, 对 吧?你看这个 if 的 后面,这个 if 跟 else, 对 吧?这个 if 啊, i 一 小于 i 一, 大于 i 二,那我走这这一块啊,然后 else 啊,另一种情况下,那我再去走走这一个啊,那么 if else 的 话呢,其实这个最简单的一种形式啊,他就是直接是 if 什么什么啊, else 什么什么,就两个分支了, 那你在考试的时候,它可能会有好几种这个 if else 的 情况,对吧?那这个时候呢,我要怎么去写啊?大家注意一下,就首先这个是 if 啊,然后一个条件判断,然后中间是代码块,然后后面的话呢,还有 else, if 啊,再来一个代码块,然后再来一个 else, if 啊,它可能有好几个代码块啊,那最后一个代码块,你可以写 else 啊, else 的 话呢,这个时候可能他就,呃,他有可能就是不需要你去写一些条件了啊,就是其他满足其他的条件他都可以,那就是一个 else 啊。然后如果说大家不太确定的话,那么为了图本,那你就直接是在考试的时候你多个分值,你就全都是写这个 else if, 因为这个可能是说啊,这个条件是这个 a 啊,比如说判断学生乘除啊,比如说 a 大 于一百啊,小于九十啊,他是优秀啊,然后 a 大 于等于九十 啊,小于八十啊,然后 a 再大于等于八十,小于七十等等啊,这么去判断,然后 else 语句的话,他是任选的啊,当然呢,他不能单独作为语句去使用啊, if 可以 单独出现,但是 else 不 可以 啊,然后 if 他 一般是总和离他最近的一个 if 去进行一个配对的啊,因为你这个 if 里面其实你还可以,你要这一个 if 里面其实还可以再去签到一个 if, 然后是选择语句啊,这个选择语句其实它跟 if else 的 一个这个功能是比较类似的啊,但是考试的时候它大概率会考这个 if 语句啊,因为这个 switch 语句的话,其实在实际应用的时候用的也是比较少的。 呃,首先针对于这个 switch 中的这个表达式啊, switch 它跟 if 一 样,它中间需要有一个对应的表达式啊,那么这里面表达式我返回值的类型必须是这几种类型之一啊,这个 int byte 叉, short 叉啊,或者是 string 啊,在加括号其中加括号其中它是被支持的,那然后这里面的这个 case value, case value 的 值它必须是一个常量,而且所有的 case 子句中的值应该是不同的啊,那这里面其实你针对于这个 value 的 话,你可以大家可以类比一下,你是就是判,如果判断学生成绩是优秀,良好还是中等等等。其实 if else 的 语句完全可以写成是 switch 的 形式 呃,然后这里面的一些这种可能到最后它会有一些 default 之类的一些子句,那这个子句其实是任选的,你就是写什么都可以啊。然后这里面中间它可能会有一些这个,它有这个 break 的 语句啊, break 的 语句呢,它是用来执行的这个 case 的 一个分支之后你需要使程序跳出,对吧?跳出这个框框 啊,然后呢,就是终止这个 switch 语句的一个执行啊。然后如果说某一个 case 的 分支后面他没有 break 的 一个语句,比如说这个,这个假装是没有的啊。然后呢,这个时候没有这个 break 语句,那么程序将不再做,不再去做比较啊,然后我再去执行下一个分支啊。 虽然说 switch 语句的功能可以用 if else 语句实现,但是某些情况下使用 switch 语句更加简练啊,但是在实际的这个,呃,实际的我在在企业中进行开发的过程中,还是 if else 的 这种形式用的更多一些 啊。然后来看一下三个循环语句啊,那么这三个循环语句我们在学习的时候,其实重点呢,你需要去看一下,就是说你循环什么时候结束啊?首先先来说一下 while 循环和 for 循环,这两个考试的时候考的会多一些, 那这里面的 well 循环呢?我们需要在 well 的 外面先去定义好循环体里面的一些数据的一个初始值啊,那首先呢,这里面 int n 等于一, sum 等于零的时候,我们开始整个 well 循环。 那第一轮进来的时候,我们先看一下啊,这里面的 n 第一轮是 n 等于一啊,第一轮 n 等于一,然后 n 呢,它是满足小于等于十的,所以满足情况的基础上,它会进到这个框框里面,然后这个 sum 等于 sum 加上 n, 对 吧? 那第一轮 sum 的 取值应该是零加上一等于一, 对吧?然后第二轮的话呢,我们在满再加一的情况下,执行了 n 加加啊,那么第二轮的时候 n 等于二啊,然后 n 等于二的情况下,它还是满足 n 小 于等于十啊,那么这种情况下,那么再去执行一个 sum 等于 sum 加上 n 等于三, 那么如此循环若干次之后啊,那到了最后一轮,就说你 n 等于十的时候,对吧?那么这个 sum 加上十啊,然后等于多少啊?咱就不算了。然后在下一轮的时候啊,你执行完了,这 n 等于十,你进去之后,你下一轮的话,是不是 n 就 n 再加加 n 等于十一了,那 n 等于十一的时候呢?不满足这个 while 循环,那么这个时候我们整个循环就结束掉了啊, 然后来看一下 do well 循环啊, do well 循环呢,就是先去赋值,再去进行判断啊,那么 do well 的 这种情况下呢,就是来看一下哈,就是我具体怎么执行这个循环的过程。 首先这个 sum 加等于 n 啊, sum 加等于 n 的 话,其实这个是 sum 加上 n 的 一个简写的形式啊,那么第一轮的时候啊, n 等于十啊, sum 等于零啊,那么 我们 do will 是 先循环后判断啊,那先循环的话,那我先先循环报啊, sum 等于 第一轮啊, sum 等于 sum 加上 n 等于十啊,哎,第一轮循环的时候, sum 加等于零,那么 sum 等于 sum 加上 n, 那 么零加上十等于十啊,然后 n 减减,那这个时候 n 是 九, 然后来判断一下,这里面的 n 是 n 等于九, n 大 于零,那我们再去进行第二轮的循环,第二轮的循环中, sum 等于十啊,十加上九等于十,九, 然后下一轮的这个 n 等于八,那么如此反复之后啊,若干次啊,到若干次之后,那么 n 如果是到了 n 等于, 比如 n 等于一的这一这一轮啊,那 n 等于一的这一轮的话呢?这个地方 n 已经记 n 已经计算了,计算完了啊,这个 sum 等于 sum 加上一啊,具体就是等于多少我们不管了。 然后这里面的这个 n 减减啊,那么一再去减一的话等于零了,那这个时候呢,再去进行 well 判断 n 不 满足大于零的条件啊,那么这个 do well 的 循环我们就可以停止了 啊,这三个循环语句啊,大家重点的去复习一下,考试的时候,他可能会跟着一些运算符去混在一起,给大家去进行考察 啊。然后来看一下这个跳转语句啊,跳转语句的话,我们分成了两个关键词,分别是 break 和 continue 啊, break 和 continue 的 作用大家要知道, 首先 break 的 话呢,它不管是哪一种循环啊,你是这个 for 也好啊,还是这种 e f 也好呀, 这一旦在这种循环体中啊,你去出现了这个 break, 那 么系统就将完全结束循环,开始执行这个循环之后的代码, 比如这里面我们标记的代码块,如果这里有一个 break, 那 么我们会直接跳到后面啊,从这个循环后的代码开始执行啊,那么 continue 它是不一样的啊, continue 的 话呢,一般是会跳,它是这个会跳过本次循环中剩下尚未执行的语句啊,比如这里面的这个 continue, 放在这 if i 等于等于五的情况下,那么通过这一轮的否循环, 后面啊,这个我否循环到了这个 i 等于等于五的情况下,那么我们就跳过了这次循环,然后我再去进行下一轮啊,那么这个通过这个跳转语句,我们也来讲一下这个否循环啊,这个否循环的话呢,我们是 从这个 for 的 循环题里面,我们就已经把出式值以及循环条件定义好了, for 循环和 while 循环其实在某一某种情况下是可以互相转化的啊,那这里面的话呢,假如说这里我再去定义一个 int n 等于零啊,然后正常的这个 正常,我让它每循环一次,然后就做一个这个 n 加加的这个操作啊, 或者,哎,这样吧,就叫 n 等于 n 加一啊,那么我们来看一下啊,就如果是说你这个 i 和 n, 你 每一轮的这个取值是什么 啊?首先呢,就是你 i 等于零的情况下啊,他这个也是满足 i 小 于十的啊,然后这个时候我们需要去进行这个 i 加加的一个操作,那对应的这个 n 啊, n 的 话,他是 n 等于 n 加一,他是等于一的啊,那么你在循环的若干次之后,那如果是说你到了这个 i 等于等于五的情况下啊,那么这里面如果你再附加一些其他的条件,他就会直接给你跳过了啊。 continue 他 是跳过本次循环中剩下的尚未执行的语句啊,然后立即进行下一次循环的条件判断 盘顶啊,就是它不会像 brick 一 样,我直接是说可能 i 等于等于五的时候,它还有几轮没循环完啊,它就直接跳过了 continue, 不是 啊, continue 是 跳过了这一次之后,然后下一轮的循环还是继续进行的啊,这个是 brick 和 continue 的 一个区别。 然后我们来看一道练习题啊,这道题大家重点的复习一下啊,这个也是很多学校期末考试中啊,每年都会考的一个重点的题目。呃,首先这个这个题目是让我们找到第 n 个水仙花束啊,然后水仙花束指的是一个三位数 其个位数字的立方和等于该数本身啊,也就是说像这个一五三是一个水仙花数,那么一五三的啊,一的三次方加上五的三次方加上三的三次方等于 它本身啊。那所以说这道题我们的一个思路是什么哈,既然我们要算这个水仙花数,那么我们要去找到这个第 n 个水仙花数, 那在这种情况下,我要只需要先要去把整个题目去进行逐条的分解啊,大家在做这种编程大题的时候,不要想的是一步到位。 首先第一步我们知道了水仙花数是一个三位数,那也就是说如果我用负循环的话,我应该让他有一个条件,就是这个数从 从这个三位数开始循环啊,或者是说呢,那个你直接让他,你可能从其实从一开始循环也可以啊,就是这里面,因为毕竟你这么去计算的话,其实你这个没有到这个第三位数的情况下,你这个 百位你取不到,所以说你其实从零开始也可以,那所以说你如果是从零开始的话,你要让他这个循环的一个截止点要小于一千啊,然后呢,我可能从零开始,我一个一个去判断,每次都加一,然后每次再加一,再加一啊, 然后呢个位数字的立方和等于该数本身,那我肯定是要像这个一五三,我肯定是要先把这个 百位、十位和个位我是不是给他拆出来啊?所以说呢,我们需要去有一个这个对应的预算的方式,你去把这个百位、十位、千位给拆出来,那具体怎么去拆呢?首先百位你怎么去拆啊?比如说你这个一五三,你想把一百一百拆出来,我其实我们第一个想到的是除预算, 对吧?比如说你一百五十三,你除以一百的话啊,你是不是你能你能给他拆出来的是他等于一,然后这个于五十三啊?那假如说是二百五十三呢,对吧?你如果是直接是做这个除以算,你是等于二,然后于五十三, 所以说呢,那你如果是求百位的话,那肯定是你直接就是一个除运算了啊,这个是百位,然后呢这个十位我十位我怎么求啊?那我们想的是呢,那你这个你再去求这个十位的时候啊,你这个十位的五我要怎么给他剔出来? 那把这个五给剔出来的时候呢?其实我们可以观察到啊,在我们对于这个一百五十三啊,你去求这个,你去做这个除法运算的时候,他这个余数里面他是五十三,对吧?他是带五的,那么在这个五十三的这个基础上,哎,我是不是说可以考虑一下, 直接就给他做一个除膜的运算,对吧?那直接直接就是一百五十三,他对于一百做一个除膜的运算啊, 一百五十三,我做一个这种除膜的预算啊,然然后这种情况下,我是不是说我就对一百啊?对一百去做一个除膜的预算,那这个时候其实我直接就能够把这个五十三给他摘出来了,对吧? 然后然后这个五十三我给他摘出来之后,哎,我怎么去做呢?我在考虑的就是说我如果是再做一个除法啊,五十三除以十的话,是不是我就是等于五,然后于三, 那么这种情况下呢,就是针对于十位呢?我就是先这种,我先除魔,我先把五十三摘出来啊,然后我再去做一个除法除十,我再去把五摘出来啊,这个过程,然后是个位数了啊,那个位数其实就是比较简单了啊,因为你想想个位数的话呢,我就是直接是一百五十三,然后我对于十我做一个除魔预算, 那这个时候我得到的是不是等于十五,然后于于三,对吧?那是一百五十三对十做出门预算,我直接就能把这个三输出了啊,那这个时候我百位,十位个位我就全有了,那我们再去做这个三次方的运算,是不就比较简单了啊?就是直接就是你用一个 if 语句去判断百位 三次方啊,十位三次方、个位三次方,然后加到一起等于 i, 然后输出啊,这个具体某某某数,它是一个数学函数啊,大家也可以尝试着在这个 eclipse 或者 idea 里面,我们尝试着把这个过程输出一下。

大家好,我是程序员于皮,从夯到拉,瑞平,三十九个前端技术一口气说完,那之前我做了后端技术的从夯到拉排名,很多同学留言说想看前端版,但说实话,刚开始我是拒绝的, 因为前端技术实在是太多了,而且更新速度很快。之前有着学弟还跟我吐槽什么前端娱乐圈之类的,咱也不懂好吧, 但是既然大家想看,那我就来一期,而且这期我还会评选出唯一的前端技术之王, front and the chain。 那 大家可以先猜一猜会是哪个,我敢说不超过百分之一的同学能猜对,那正式开始前,先郑重声明。由于每个前端技术都有自己的应用场景,很多时候没有办法绝对公平地去比较,所以接下来的排行会带有一定的主观性。 本期鱼皮只是希望帮大家学到知识,认识更多的技术。大家也可以在弹幕打出自己的评价,看看跟我的想法是否一样。那接下来我将从五个维度来评价这些前端技术,分别是实用性、生态成熟度、学习成本、开发效率和稳定性。那作为开发者,我个人最看重的是实用性和生态成熟度。 实用性就不多说了,毕竟技术是用来解决问题或者找工作赚米的,而生态好不仅意味着遇到问题你能快速找到解决方案,更重要的是因为训练数据多,社区案例丰富, ai 生成的代码质量也会更高。所以再次声明,下面的排名并不代表技术本身的优劣,会具有一定的主观性。 先说说 c s, c s 预处理器可以让你用编程的方式写样式。 写过原声 css 的 同学都知道,一堆重复的颜色值,一层套一层的选择器,维护起来非常头疼。而 size 它支持变量、嵌套、混合继承等高级特性,就可以解决这些问题。 size 的 优点是功能强大,社区成熟,但缺点是需要翻译,而且现在 css 原声也支持变量和嵌套了。 但考虑到它还是很多大型项目的标配,给到人上人。第二个是 bootstrap, 它是推特开源的 ui 框架,提供了现成的样式和组建,让你不用从零去写 css。 它曾经是前端开发的标配,一套山格系统打天下,但是二零二五年了还在用。 bootstrap 的 项目基本都是遗留系统,组建样式过时,定制困难,体积臃肿。而且 react will 当道的时候,谁还会用这种全局样式污染的框架呢?给到啦, 下一个是 tailwind css, 这是原子化 css 框架的代表,快速写样式的神器。它的理念是不写 css 文件,直接在 html 里用 class 拼样式。 比如这一串,可以一行代码搞定。居中那有朋友张开始可能会觉得这玩意比较丑, class 名字一大串,觉得不就是把 css 写到 html 里了吗?但是用习惯后 真香能明显提升开发效率,而且再配合组件化开发,完全不用担心样式会冲突。这玩意还有一个加分项,现在很多的 ai 工具生成的前端代码默认都用 tailwind。 像有朋友好奇,哎,为什么 ai 生成的很多界面是蓝紫色? 这是因为 ai 训练时吃了太多 tailwind ui 的 网站,而 tailwind ui 的 默认配色就是蓝紫色,那考虑到它对开发效率的巨大提升和 ai 生成界面的巨大贡献,得到,哼。下一个 element plus, 它是 will 框架的主流 ui 组建库,由饿了么团队开发。如果你用 will 做中后台系统,那 element 基本是标配。它的优点是组建丰富,文档清晰,国内社区活跃。但缺点是样式比较传统,不太适合 c 端项目,而且有些组建不够灵活。 但是考虑到在国内 will 生态的主流地位, element 又是很多前端新人的启蒙。组建库给到人上人 下一个 antideon 是 蚂蚁金服出品的企业级 u i 组建库,在开发弊端、中后台管理系统方面一手遮天。它不仅组建质量高,设计规范完善,而且生态非常丰富。 推出了 antideon pro 脚手架 pro components, 高级组建 ant 微数据可化,以及最近很火的 antideon 叉 ai 组建库,而且同时有 react 和 will 版本。我个人非常喜欢用它, 但缺点也很明显,体积大,样式定制麻烦,没有那么适合 c 端系统。但考虑到它在国内 b 端的统治地位,得到人上人 下一个类 ui 早期的轻量级 ui 框架也是情怀之作。它采用了原生的 java script, 并不依赖 will 和 react, 就比较适合那些。哎,你不想学前端框架,只想快速搭着后台的同学,那我大学刚开始学前端的时候就在用它,但是呢,它在组建化的时代显得格格不入,那整体的生态和社区活跃度都比不上主流方案。 ai 生成代码也不会选择这个 u i 吧,只能逮到 n p c 下一个 sa 的 c n u i。 这可能是二零二五年最火的 u i 方案。注意,它不是一个组建库,而是一套可复制粘贴的代码集合。 它不需要使用 n、 p、 m 来安装依赖,而是直接把组建代码复制到你的项目里。它的好处是极度灵活,代码在你手里,你想怎么改就怎么改,但缺点是需要自己维护。组建代码版本升级会比较麻烦,所以等到人上人。下面我们来聊一聊构建工具。 首先是 webpack, 它是前端工程化的奠基者,也是模块儿打包的开山鼻祖。构建工具的作用是把你写的代码打包压缩,转换成浏览器可以运行的文件。那很多年前做前端 webpack 配置是必修课,什么 loder 啊, plugging 啊, coding splitting 啊,面试必问。 虽然它生态成熟,功能强大,但问题是配置文件动辄几百行,你如果学会了 webpack 配置,都能去应聘配置工程师了。 而且他的热衷心慢到怀疑人生,改着代码等半天才生效,开发体验被 wait 降维打击,也是正在逐渐被时代淘汰,只能逮到 npc。 那 下一个自然是 wait 新一代构建工具 webpack 终结者。他用原生的 es model 实现毫秒级热衷心能启动速度吊打 webpack。 而且它的配置简单,开箱即用,开发体验好到飞起,而且还支持各种主流前端框架,已经成为现代前端项目的标配,必须逮到吭!下一个是 grunt glop, 这是上主时代的任务运行器,比 webpack 还老的构建方案, 它是通过配置任务来处理文件、压缩代码、翻译和合并等操作。但是现在构建工具早就内置了这些功能还在用,这俩的项目估计都是几代员工的祖传代码了。逮到拉中拉, 接下来聊聊包管理工具。首先自然是 npm, 前端包管理的祖师爷,能帮你安装和管理项目依赖的工具。由于安装 node js 就 自带 npm, 所以 npm 生态特别成熟,几乎所有的 js 包都会发布到 npm, 但缺点是安装速度慢, node models 文件夹动辄挤着剂, 可以说是宇宙中最重的物体,还有幽灵依赖的问题,不过考虑到它是前端开发的核心工具,生态无可替代,所以得到顶级。 下一个是 p n p m 是 性能正高的 n p m 也是目前最高效的包管理工具,它用硬连接和符号连接的方式共享,依赖一个包只存一份多的项目共用,从而节省空间,安装正快。因此也有越来越多的项目都在迁移到 p n p m 给到吭。 下一个是 yan, 它是为了解决 n p m 的 速度和一致性问题而生的,也是曾经风流一时的包管理工具,像 loft 文件、离线缓存并且安装这些概念都是 yan 先提出的, 但是 n p m 后来也跟进了这些特性,而 p n p m 在 性能上又超越了压弹,所以导致现在压弹处于一个非常粘炸的位置。得到 n p c。 下一个是 boer, 上古时代的前端包管理器,老前辈了,但自从 n p m 支持前端包管理加 webkit, 统一了模块化方案之后, boer 就 彻底退出历史舞台了,官方都宣布不再维护。得到拉, 接下来聊聊前端工程化相关的技术,信息量会比较大,大家一定要集中精神。首先是 typescript 全体起立。 typescript 是 gs 的 超级前端大项目的救世主, 以前写 gs 变量类型全套拆,运行时才知道哪里报错,而 ts 给 gs 加上了类型,系统 通过类型安全 i d e 智能提示翻译时检查,解决了 js 的 类型混乱问题。大型项目没有 type script, 简直寸步难行。二五年八月, ts 超越了 python 和 js, 成为 get up 上最广泛使用的语言。现在连 ai 生成的代码都优先生成 ts 要说不足之处呢,就是有一定的学习成本。什么类型体操对于前端新人来说还是挺头疼的吧,一不留神就变成 enigma 了, 那作为现代前端的标配,必须得到夯。下一个是 prettier, 代码格式化工具,也是团队协助神器,它能自动把你的代码按照统一的规则格式化,保存时自动整理、缩进、换行、引号等等,不管你是喜欢单引号还是双引号, prettier 说了算。同一个项目的代码就是要整整齐齐, 但考虑的不是刚需,给到人上人。下一个是 es link, 代码规范检查工具,团队协助必备,它能帮你发现潜在的 bug, 统一代码风格,强制使用最佳实践。 比如什么未使用的变量啊,可能的空指针啊,不规范的写法, es link 都能帮你揪出来。那现在的前端项目几乎都会配置 es link, 配合 ts 和 preiter 使用,能大大提升代码质量,给到顶级。 哇,下一个厉害了! turbo ripple, 现代前端大厂的 mono ripple, 巨型仓库管理神器。 mono ripple 就是 把多着项目放在一个代码仓库里统一管理,比如你有官网管理后台、移动端 app。 传统的做法是建三个仓库, 但 mono ripple 就 会把它们放在一起共享代码,统一构建。像 turbo ripple 能帮你管理这种复杂的项目结构,提供增量构建、智能缓存、任务编排等功能。你改了一个包后,只重构受影响的部分,重构速度甚至可以提升几十倍。 但是要注意, mono ripple 不是 必要的,更多的时候是大厂在采用。得到顶级,下一个乾坤听名字就有点东西,这是蚂蚁金服拆员的微前端框架的扛把子。 微前端就是把一个大型前端应用拆分成多着独立的小应用,每个小应用可以独立开发、独立部署、独立运行,最后由一个主应用把它们整合在一起。哎,说到这里,聪明的你一定想到了有些应用就是这么占的。 乾坤提供了应用加载、沙箱隔离、应用通信等核心能力,可以让不同技术占的项目共存。比如主应用用 react, 则应用可以用 will android 互不打扰。 乾坤适用于大型企业应用,多团队协助和遗留系统的改造。它的缺点是架构复杂度高,调试麻烦,而且性能拆消比单体应用大,所以不是所有的项目都需要微前端给到顶级。 下面大家期待的重点来了,我们来聊一聊前端开发框架。首先是 angela, 这是谷歌出品的企业级前端框架,大而全的重量级选手 路由表单 h d、 d p 状态管理通通内置,开箱即用它原生支持 type script, 采用依赖注入模块化设计,写起来有种 java 的 spring 那 味儿,但缺点是概念太多,学习成本高,项目启动慢,就学 android 的 时间都够学完 will 和 react 了。 那虽然 android 的 全球市场还行,但在国内的存在感确实越来越弱了,基本只有外企在用。给到 npc, 下一个是 jettree, 前端活化石,盗墓操作的老祖宗。每当我看到 dollar 符号这种写法,都忍不住落下两滴晶莹剔透的小泪珠,真是满满的回忆杀啊! 如今随着 react, will 这些组建化框架的崛起,以及浏览器原生 a p i 的 完善, jettree 的 优势已经荡然无存,备战成时代的眼泪了。现在除了维护老项目外,基本上没有理由用 jettree 了。给到啦, 下一个是 swalt, 翻译型前端框架,性能怪兽,它在翻译时把主线转成原生 java script, 运行时没有框架,开销包的体积更小,速度快。我在二零年的时候用 swalt 写过一些 demo, 开发体验还是挺不错的。响应式变量的声明很简洁, 但是生态比 react 和 will 差了不少,尤其是国内用的更少。你想快点找前端工作,就先别学它了,所以暂时得到 npc。 接下来终于到了大家期待的 will 了,国内最受欢迎的前端框架。它采用渐进式设计,你可以只用它做页面的一小部分,也可以用它搭建完整的单页应用非常灵活。 它的单文件组建和模板语法简单直观,而且生态完善。像 wit pina, will use 这些配套工具支持的都很好,官方文档写得也清晰易懂,上手难度比 react 低了不少。这么说,在国内少前端工作不会 will 等于少了一半的机会,那考虑到面向薪资,编程给到吭, 那如果说 will 是 国内老大, react 就是 全球前端霸主,像组建化思想、虚拟 dom、 单项数据流这些概念都是 react 带火的。 虽然学习难度略大一些,但是我个人更喜欢 react。 像我们团队的产品也基本都是基于 react 开发的,那一方面 react 的 护士用起来很爽,另外一方面跟 vivo 比起来, react 全球范围的生态更强。按理来说应该给到吭, 但是最近 react 服务端组建爆出了一个严重的远程代码执行漏洞,我们团队好几个项目都中招了,服务器沦为了抗击,让我们被迫加班。 考虑到这种全站化带来的安全风险,我这次只能把 react 降到顶级啊。不是说 react 不 行啊,纯个人情绪好吧。 下一个是 next js, 这是目前最火的 react 全站框架,支持服务端渲染、静态站点生成、 api 路由等功能,让前端也能写后端接口。和它类似的还有 next 点 js, 那 这是 vivo 生态的 ssr 服务端渲染首选技术国内用的很多, 如果你要做 seo 友好的网站,或者想用前端技术站搞定整个项目,优先选这两者给到顶级。接下来聊聊前端开发的一些工具和库。首先是 winoprice, 这是 winoprice 官方出品的文档站生成器, winoprice 的 继任者。 如果你要搭建技术文档网站,用 matchdown 来写文档,那么 winoprice 的 体验很好,主题定制也很灵活。 winoprice 的 体验很好,主题定制也很灵活。 winop 的 官方文档都在用它, 但使用场景比较窄,主要就是做文档网站,使用性相对有限。给到 npc, 下一个是 extra, 这是最近增长最快的静态站点生成器。它的核心理念是群岛架构,页面默认是静态的 html, 只有需要交互的部分才加载 gs, 所以 页面加载飞快。 而且 ostro 很 灵活,可以同时使用 react, wheels、 weld 组建,不挑框架。如果你要做博特、文档站、营销落地页这些内容型的网站, ostro 非常合适。像我们团队的剪切助手官网就是用 ostro 生成的,给到顶级。 下一个是 pinier, 这是 vivo 三官方推荐的状态管理库,用来管理组建间共享的数据。相比 vivo x, pinier 的 语法更简洁, typescript 的 支持更好,没有那些 mutations 啊 actions 的 繁琐概念,用起来更舒服。那现在 vivo 三项目的标配都是 pinier, vivo x 基本退休了,给到人上人。 下一个是 azure s h t d p。 请求库的标配,前后端数据交互必备工具。虽然浏览器有原生的 fashion, 但 azure s 的 api 更友好,而且支持自动转换。 jason 请求拦截、响应拦截这些功能都帮你封装好了,用起来非常的方便。 它的优点是国内外项目几乎都在用,生态成熟,文档完善。缺点是包体积略大,但是五 g 时代也无伤大雅,再加上请求库本身的重要性,给到,哼。 下一个是 k y, 这是轻量级 h t d p。 请求库啊,不是骂人的,那叫 k y 了。它基于 fresh api 封装,体积只有两 kb。 如果你追求极致的包体积, k y 是 个不错的选择,但它的知名度和使用率远不如 asher, 国内用的就更少了,生态也差一些,给到 npc, 下一个是 lodash, 这是 js 工具,函数库的老大哥,类似 java 的 糊涂,帮你封装了很多,像数值操作啊,对象处理啊,函数的截流、防抖等等的常用功能,拿来就能用,听起来很强大对吧? 但问题是 lodash 沉寂了整整五年,直到最近才更新了一个小版本,而且现在 es 六本身就支持了很多原声的功能,像数值查找啊,展开预算服务等等。新项目越来越少,主动引入 lodash 了, 属于是还在用,但可以不用,并且不推荐新项目用的状态给到 n p c。 接下来聊聊跨端开发框架。首先是 uni f, 它是基于 will 的 跨端框架,国内小程序开发的神器。它最大的优势就是一套代码可以发布到各个平台,像微信小程序、 h 五 app 全都支持,省了大量重复开发。不过这也是跨端开发框架的通病了,给到顶级。 然后是 terro, 这是京东拆源的跨端解决方案, react 技术栈的小程序开发首选,跟 uniapp 类似,也是一套代码多端运行。那如果你的团队习惯 react 就 选 terro, 习惯 will 就 选 uniapp, 那 相比 uniapp, terro 的 市场占有率还是稍低一些,所以得到人上人 下。一个是 react native, 跨平台移动开发的主流选择,跟 flatter 并称跨平台双雄。用 react 语法写原声 app, 一 套代码 ios 安卓都能跑, 而且支持热中心调试,很方便,生态也很成熟。但它的缺点是性能不如纯原声开发,某些复杂的动画需要写原声代码,得到人上人。下一个是 electron 跨平台桌面应用框架 啊。如果你会前端,用 electron 就 能开发桌面应用,一套代码 windows、 mate、 linux 上全都能跑,像 vs code 啊, qq 啊,还有我们的剪切助手软件,都是用 electron 写的。 它的优点是开发效率高,可以直接附用前端技术栈,能快速把网页变成桌面应用。但缺点是内存占用大,包的体积大,一个简单的应用动辄上百兆。考虑到它的成熟度,虽然有 torry 这些新框架,还是给到人上人。最后再聊一些有点特殊的前端技术。 首先是 three g s, 这是外部三 d 领域的绝对王者,高薪的敲门砖,能让你用 javascript 在 浏览器里渲染三 d 场景,像圆宇宙啊,数字孖生、格式化大屏这些高大上的项目基本都离不开 three g s。 它的缺点是学习难度很大,需要一定的图形学知识。 不过现在有 ai 了,可以直接让 ai 帮你生成复杂的三 d 场景代码,学习成本大大降低。给到人上人, 下一个是 web assembly 外部性能的天花板。 web assembly 是 一种可以在浏览器里运行的二进制指令格式,性能接近原声代码。你可以用 c、 c、 加加、 rust 等语言写高性能模块儿,编辑成 w、 a、 s、 m, 然后在浏览器里跑。它最大的优势就是快 像、视频剪辑、图像处理、三 d 渲染、游戏引擎这些计算密集型任务,用 wism 能提升几十倍的性能。缺点呢,自然是开发门槛高,而且调试比较麻烦。但随着工具链的完善和 ai 生成代码能力的增强, wism 的 应用场景会越来越广,给到顶级。 下一个是 coffeescript。 呃,等等,这不是 java 吗?这是曾经风流一秒的 java script 替代方案,它的理念是用更简洁优雅的语法写代码,然后翻译成 js。 但 e s 六出来后, g s 自己支持了箭头函数啊,类啊,模板字不串这些特性, copyscript 瞬间没了存在价值,被 ts 完全取代。给到啦最后的最后来揭晓我们的前端技术之王,唯一真夯 web coding, 你 猜对了吗?什么是 web coding 呢?就是用 ai 辅助编程,你描述需求,说人话, ai 帮你写代码。它不是某种特定的框架或库,而是一种全新的编程范式。它改变的也不是某个技术环节,而是整个开发流程。 这也是近年来前端开发最革命性的变化,没有之一。虽然 webpodding 不 算是前端技术,但是我就问一句,现在哪个前端不用 ai 来写代码?像我现在写代码基本离不开 carson 这种 ai 编程工具了,开发效率提升十倍以上,真不是吹的,必须憨爆了。 ok, 就 分享到这里,如果你们还想看哪些技术的排名,或者你觉得哪只技术的排名不合理,都可以在评论区告诉我啊,我是鱼皮,关注我,带你解锁更多的编程和 ai 知识!

新手入门篇之 java 就是, 哎,现在打开抖音对吧?打开社交媒体,我们听到最最最多的一句话就是 java 四九年入股军,太卷了,你毕业就失业,找不到工作的。 但是就是先说结论,如果大家现在想干计算机,然后又不知道学什么, java 肯定是你最好的一个选择。 不是因为 java 最好,也不是因为 java 最酷,而是说现在 java 的 岗位最多,最稳。你打开任何一个招聘平台,后端开发的岗位里, java 至少占一半以上, 大厂也有在用,中厂也在用,小厂也在用,这意味着什么?意味着你学完 java 之后不愁找不到工作。那当然了,岗位多也代表学的人多,竞争也大, 但是至少你是有竞争的啊,总比像我们学的土木啊,或者一些其他的会计律师啊要强一点。当然了,这里没有歧视的意思,是客观的分析市场。而且 java 有 一个好处,就是它和 ts 的 语法很像。后面呢,你可以转前端, 因为直接上 vivo 三啊,或者说你去小一点的公司做全站,这都是可以的。再包括你张华学不明白,你可以去学 python, 然后也可以去做数据分析,自动化测试,你的容错率是很高的。 那张华适合什么样的人去学呢?想进大厂,大一点的公司,然后不知道学什么的,然后想稳定就业的,想拿高薪的, 这些都可以学 java。 那 你如果想追求新潮,想做前沿技术,你可以考虑 go 和 ai 方向,那 ai 呢?双九 go 的 话一般都是要求二幺幺级以上, ok。 学完 java 之后到底能做什么?后端开发,这是最主流的岗位,接口也有逻辑,那 java 架构师是就是技术的天花板的,年薪三到五十万以上,那大数据开发呢? 像 haldspake 生态都是 java 的, 那 java 的 薪资到底怎么样?我说一下真实的情况啊,应届生一年 中小厂大概是八千到一万五,大厂的话是一万五到两万五,三年的话中小厂是 一万五到两万五,大厂是两万五到四万。那五年当然了,这个中场两万到三万五是你需要努力努力的,因为五年是一个台阶吗?这个你如果只会增改山茶肯定是拿不到的,但是如果按照正常的发展, 你应该是没太大的问题的。然后这里的薪资也是按照一线城市定的,老规矩,二线城市砍掉百分之二十,三线城市,四线城市砍掉百分之四十,大家可以作为一个参考。那加股是就是年薪五十万起步,大厂甚至能捞年薪百万, 那扎瓦锡多久能找到工作呢?就给大家大概的说一下。每个人是不同的啊,如果是全职学习, 每天八个小时,差不多半年左右就能达到找工作的水平了。那如果是在校或者在职,每天两到小两三个小时的话,差不多是一年到一年半左右,你就可以达到稳定就业的水平了。 那至于我们的学习阶段,像我的 se 对 吧?很多人说现在加快基础,稍微持续就行了,直接上框架,那个是错误的方向,你如果地基没有打牢,后面全是坑, 你后面去学一些底层原理方法。封装的时候,尤其是在继承菠菜封装这几个板块上,你完全看不懂 这个阶段学什么?一些基础变量哎,基础的数据类型,流程控制,数组方法,这个是每个语言都要学的,但是呢,大家要认真一点啊,看得懂。第二就是面向对象,这是 java 核心的思想,也是很多新手觉得难的地方, 那初七觉得难没关系,我们去稍微做一个理解,到后面慢慢的补上来。最后就是,哎,核心的 api, 这部分是重中之重,因为我工作中天天用到,对吧。面试也是必考的啊, spring, spring 集合框架 l 流程都得会, 像我们的面试预警啊, hashmap, 然后包括现场安全这种都是面试的必考题。然后大家学的时候要会理解啊,要会理解你不一定会写,但是你必须要理解, 哪怕你不会用都没关系,你面试的时候要答的上来,知道吧。然后第二个阶段就是我们的数据库 my circle, my circle 是 当今一个比较主流的款,那个后端数据库啊,我们就不说了。 然后第三阶段就是我们的主流框架啊,先说如果大家时间及这个 spring 可学可不学,但是 springboard 的 话 一定要学 springboard, my butts, my circle。 这是一个完整的技术站,很多中小营的公司技术站要求也就这么多了,只要你学会就可以达到这个找工作的标准了啊。当然呢,你想进大厂,你要去学其他的 咋为服务呢?先说清楚,这是一个可选项,或者说他是一个加分项,如果大家时间充足的话,可以去考虑一下,差不多学两个两个月左右,但是不是所有的公司都在用, 因为很多中小型公司他有很多单体应用的项目用不到这些,但是如果你想进大厂,哎,想拿高新,拿为服务,你肯定是必须要会的。 什么是微服务呢?就是简单的去说一下,它就是把一个大系统拆分成很多小服务,像我们电商系统来拆成用户服务、订单服务、商品服务、支付服务,每个服务独立部署,独立扩展, 然后像我们的 newcos, 哎,是肯定要学的, release 也肯定是要学的。 第五个阶段就是我们的这个进阶阶段,这个时候我们是已经达到公司,哎,正常 就是上班,然后有一个可以独立工作的能力了啊,这个阶段我就我们就该考虑往下走了,哎,往往哪走呢?往高处去走,要去去优化,学习优化, 像 gvm 并发,然后源码的阅读,哎。设计,呃,就是思维, 但这些他不一定是必须的,但是你想拿高薪就必须会这些东西,就是一些常见的误区啊。我跟你们讲一讲,很多人着急学框架,觉得基础用不到,但是基础用不到 是一回事,你将来往高处走,他对你这个基础的考验又是一回事,大家一定要一定要把基础给打好。那最后就是,呃,这个,呃,不要只会增改山茶,一定要去了解他的原理,不了解他的原理了,将来很可能就是被优化的那一批 啊。第三就是我们的这个只,只动,只看不动,对吧?哎,这个看都不看啊,只看不写,一定要多写,项目从需求的设计, 到本地的运行,再到部署的上限,这都是你将来找工作时候的一个加分项。 最后最大的坑呢,就是某贷培训贷啊。网上,第一就是网上免费的资源够了。 第二呢,就是如果自学能力不行,你可以考虑不干计算机无所谓,条条大路通罗马。那如果真的想干,可以考虑付费课程,但是一定要结合着自身的经济条件,千万不要贷款 给不同的人的建议啊,就是我们在校大学生一定一定要把基础打好,刷刷算法,大一大二打基础,大三学框架做项目,大三下出来实习,大四春招秋招 杂瓦,这个行业一定一定要去博你的实习,没有实习你将来寸步难行。想转行的,首先是不太建议,尤其是二十五岁以上的,基本上就没什么希望了。但是如果真的想拼一拼啊, 那就是每天抽点时间去学一学,差不多半年左右,你就能够检验你到底适不适合干这一行了。 像我们时间比较紧的大三的同学,哎,很多人说主播,我现在迷途知返,我要学 java, 那 怎么办?去抓重点,学集合异常, i o 多现成这些难的,后面再深入我们, 呃,数据库直接学增改删查,然后缩影事务框架,直接是上 spring, bot my best spring 原理,我们也是后期进到公司之后再学,这样的话,差不多半年左右你就可以达到工作的最低要求了。那最后就是账号值不值得学呢? 说实话,虽然说想法确实比前几年卷了。那当然呢,计算机的整体趋势都是这样,但他相比一些其他的土木会计啊,律师啊,他还是我们普通人的第一选择。 然后就是说所谓的 java 要被取代了,要被构取代了?那不可能,任何中小型的公司,他们没有时间,没有成本,或者不想花这个钱去重构项目,他们的这些项目都是依赖于 java 的, 知道吧?所以最后就给大家一句话,呃,还是努力加油,不要焦虑,学习是一个长期的过程,不要急于求成,只要你明天比今天强一点,你就是在进步。 ok, 加油。

我们 java, 呃,首先我们来了解一下什么是 java 语言。 呃, java, 它是由,它是,呃,是一九九五年 由赞公司 推出的一门极富 创造力, 极富创造力的一个面向对象语言。 呃,它是由伽勒之父詹姆斯戈什林 研发的 三文鱼编写的程序, 是翻译,既是编意型的, 既是编意型的, 又是解释型的。 嗯, java 虚拟机将对自己,将对自己码进行解释和运行。然后就是 java 的 九大应用领域, 第一个领域就是桌面,一些桌面应用系统开发, 第二个就是接入式系统开发, 第三个就是电子商务电子商务 电子商务应用。第四个就是其交互企业级应用,企业级应用开发。 第五个叫交互式系统开发, 第六个叫多媒体系统开发,第七个叫分布式系统 系统开发,第八个叫 web 应用系统开发, 第九个叫移动端应用开发。 那么 java 的 开发工具 ice leafs 和 intel i g i i i, 然后还有 night beans 以及 g builder, 但是我们这个这个录制里面的视频使用的是这个工具。 之后是 java 的 版本, java 的 版本, java 主要的两个版本主要分为两个版本, 第一个版本就是 java se 和 java e, java se 是 标准版, java e 是 企业版。 嗯,标准版它主要是用于的是 桌桌面应用程序桌面应用程序开发。 企业版呢,它主要就是 开发服务器应用程序, 开发服务器应用程序, 兼容 java s e 版本。 然后呢就是 g、 d k, 我 们是从网上下载即可。 o, 一 步一步安装,安装到 c 盘即可。然后我们再把这个软件也是一步一步安装,安装到 d 盘,安装到 d 盘即可。 然后之后我们需要了解一下 o 盘 g d k 多酚 g d k 有 以下几个,它的一个特点是有以下几种,第一个就是所有的代码都配源。 第二个就是虽然代码 k 虽然是代码配源,但功能不完整,只包含的是我们 g d k 中最精简的功能。 第三个不包含 不包含 oracle gdk 的 部署功能。 第四不能使用 java 的 咖啡图标。 第五个性能不如 oracle ddk ddk 高, 这就是我们的这个。然后之后呢,我们再来了解一下加外语言的特性。 第一个呢,它就是简单,也就是说它是一个简单明了,容易掌握的。另一点它是与 c 加加是类似的。然后第二个呢,就是它是面向对象的。 呃,面向对象是加外语言的基础,也是加外语言的一个特性,它本身就是一种纯面向对象的同声数学语言,强调万物皆对象,语法中不能在内外面单独定义数据函数, 也就是说加外语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。第三个就是分布型, 那么分布性包括操作分布和数据分布。其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存储在多个不同的主机上,这些主机是网络中的不同成员,那么可以凭借 url 对 向访问网络对象,访问方式与访问本地系统相同。第四个就是可移植性, 也就是说我们的这个代码它可以移植到不同的,它可以移植到网络上不的不同的计算机当中,也就是说我们可以从这一台计算机上的 java 代码可以移植到另外一台计算机上。 第五个解释型, 运行 java 需要运行 java 程序,需要解释解释器。 任何一只 java 解释器的计算机或其它设备都可以用 java 字典码进行解释执行字典码独立于平台,它本身携带了许多翻译的信息,使得连接过程更加简单,开发过程更加迅速,更加更具探索性。 第六是解释性。第六是安全性。 java 语言取消了类 c 语言中的指向和匿存释放等语法,有效地避免用户对匿存的非法操作。 java 程序 代码要经过代码校验、职称校验等很多测试步骤才能够运行,因此未将有意思的 java 程序不可运行,不可能运行,也不可能出现损害系统平台的行为。而且使用 java 可以 编写出防病毒和防修改的系统。 第七个是健壮型,三万元的设计目标之一是能编写出多方面可靠的应用程序。因此 java 会检查程序在编引 和运行时的错误并消除错误。例行检查能帮助用户检查许多在开发早期出现的错误。集成开发工具有出现延时的编印和运行,加密程序更容易。第八个是拖线虫。 交互语言支持多线城机制,能够使应用程序在同一时间并行执行多项任务,并而且相应的同步机制可以保证不同县城能够正确的共享数据。使用多线城可以带来更好的交互能力和实时行为。 第九高兴了。相关编辑后的字典码是在解释器中运行的,所以它的速度较多数交互式应用程序提高了很多。另外字典码可以在程序运行时被翻译成特定平台的机器指令, 从而进一步提高运行速度。第十个动态, 那么在很多方面比 c 和 c 大家更能够适应不断发展的环境,可以动态的调整库中方法和变量的增加,而客户端不需要任何更改。在 java 中进行动态调整是非常简单和直接的。 那我们现在来去输出一个 java 语言程序,我们将它打开的程序软件是这个 intel, 点 a e e, 然后我们可以新建一个项目。 呃,我们在这里面新建,先新建一个目录,我们这样编一张初识 java 语言, 然后在这里面我们来新建一个建, 然后我们叫第一个 java 程序。 等一下不能这么创建, 我们先来新建一个项目, 然后我们给它新建到 d 盘当中,然后, 然后我们新建一个目录。像第一个啊,不是像初十加文, 然后在这个里面去新建一个文件。嗯? 什么情况? 那我们在这儿新建一个文件包, 我们要在 s r c 的 目录下去创建这样的一个换钱包。之后点击 java 类创建叫第一个 java 语言。 如果我们嫌这个字迹小的话,我们可以在设置里面去寻找,我们可以把这个调成这个白色,然后我们再去输入字体,在字体当中我们可以把它调整大小, 然后呢我们在这儿去输入 s, y, s, t m, 点 out, 点 p r, t, l, n, 然后我们说出这是第一个 java 程序。 好,你没有设置它的一个程序入口,它是有一个程序入口在这里面的。 这回对,这回应该可以了, 由于刚才是我的这个一个疏忽,然后我们现在可以来运行一下, 这样就可以输出这是一个 java 程序, 这一块它也是需要 c r v, 也是需要有一个 m a 函数作为一个程序的入口。然后这块呢是我们的 java 类,然后这块是类名,这个我们明天去学习 java 语言基础的时候会具体指出, 然后我们今天只是先去运行一下这样的一个程序。

你说一下对于 g m m 内存模型的理解啊, g m m 内存模型它包括堆区,站区,还有传输寄宿器啊,堆存对象,还有宿主,有新生代,老年代, 然后站的每一个县城,它都是独立的,存局部变量,还有程序计数器等等。啊,不太记得了,你说错了啊,你讲的是 g m 的 运行数据区, g m m 是 java 内存模型,他定义的是县城如何访问共享变量,保证可见性和有序性的。不过呢,我可以先帮你把你讲的部分理清楚, 二零二五年已经接近尾声了,然后马上到二零二六年了,很多同学呢,其实还是在准备面试,包括对于二零二六年的整个面试的这个准备,其实也是没有太大的一个方向。所以呢,我给大家整理了一份啊,两百万字的保姆式的一个面试的这个准备其实也是没有太大的一个方向。所以呢,我给大家整理了一份啊,两百万字的保姆式的一个面试的攻略,可以免费领取一下。 运行数据区按县城是否共享分两类,那县城共享区里面包括堆和方法区,那堆里面存放的是所有对象实力和宿主,它是 g c 的 主要战场, 分新三代和老零代。第二个方法区和原空间,它存的是内源信息,包括场量啊,还有计量,变量等等。县城私有区也分几个部分,第一个是虚拟战,它是每个方法调用的时候都会生成一个战争,然后存的是局部变量,操作数占和方法出口。 第二个就是本地方法站,他为 neto 方法提供服务的。第三个是程序计数器,记录的是当前县城执行的自检码航号,那县城切换回来以后能够基于这个计数器来恢复执行位置的。 那他为什么这么分啊?因为共享区他要支持多线的协助,而石油区呢,要保证县城隔离,这是即便病发安全的一个基础。基于这个问题,在面试过程中可能还会做一些深度的延展,你也需要去准备一下。比如说对溢出 占一出,原空间一出或者频繁 g c。 那 原空间一出就是加载的类太多了嘛?那频繁 g c 一 般是因为对内存不足或者对象生命周期设计不合理嘛?所以这个部分我建议你深度的去梳理一下,去准备一两个案例。 然后基本内存结构呢?它是理解整个性能调优、 o m 排查和 g c 机制的一个基石,而真正的 g m m 它管的是 volatile signal nice 背后的一个内存可见性。理解了吗?嗯,理解了。嗯。

面对前端技术日新月异,框架层出不穷,你是否曾感到焦虑?底层 java script 都没学透,新技术学的再多,是不是也像在沙地上盖楼?被全球开发者誉为前端圣经的 java script 高级程序设计,如今已更新到包含 e c mark script 二零二四的第五版。这本书的作者马特弗利斯比接续了尼古拉斯、泽卡斯等人的传奇, 它不教你某个框架的速成技巧,而是致力于做一件事,为你构建起坚实、完整、面向未来的 javascript 知识体系。这本书为什么历经多年依旧不可替代?因为它从 javascript 的 起源与本质讲起,带你穿透各种语法堂和工具,直达语言的核心。 它系统剖析了从基础语法到类契约、迭代器代理等高级特性的完整链条,并紧密结合 d o m 事件、 fetch、 api 模块工作者现成等实际开发中最关键的浏览器与 web 规范。它不是知识的简单堆砌,而是为你描绘出一幅互联互通的知识地图, 掌握它对你意味着什么。面对复杂问题,你有清晰的解决思路。当需要优化一个高频触发的动画时,你能从事件流一步渲染队列的底层原理中找到方向,而不是盲目试错。 学习任何新框架都变得事半功倍。当你理解了 proxy 和 promise 的 规范本质,再去学习 voe 三的响应式系统或 exos 的 封装,就能一眼看穿其设计思想,在团队和面试中建立真正的技术自信。你能说清 asic await 指是 promise 和生成器的语法堂, 能解释模块化如何解决依赖管理问题。这种对底层机制的透彻理解是区分普通开发者和资深工程师的关键。这本书的第五版特别加入了 fetch、 api、 es 模块、 web workers 等现代开发不可或缺的内容。 他就像一位经验丰富的架构师,不仅告诉你砖块怎么造,更教你如何根据蓝图建造出稳固可扩展的大厦。在前端领域追逐时髦框架或许能解一时之需,但深入理解 java script 的 这门语言的程序设计本质,才是你职业生涯中抵御技术变迁的压舱石。 他让你从被动的框架使用者成长为主动的问题解决者和技术决策者。关注我,带你读好书,掌握那些经得起时间考验的硬核知识,看透技术浪潮下的不变本质。