粉丝7.8万获赞28.6万

hello, 大家好,今天给大家讲一下 java 新手入门第三十三课 run 的随机数,我们打开我们的开发工具啊,把上一节课的代码呢,我们直接删除, 然后这一节课的这个 rend 生成谁激素呢啊 啊,我给大家简单的准备了一下代码,但是我不能啊,跟之前的课程一样,直接把代码写好,因为这节课的代码我需要一点一点的写给大家看一下,因为这节课的代码是要详细讲解,对不对?首先呢,这个润的 生成水激素的这个功能,他跟啊键盘录入的那个功能有点相似,我们直接写给大家看,首先我们 在一个方法里面,我们自己定义的一个方法写上这个 rend 啊,写上了以后,大家看到了没有,这个啊,开发工具它有提示,我们写到这里的时候,我们可以按一下回车啊,按一下回车,再按下回车,对不对? 这个时候呢,大家看啊,可以看到我们上面他就会导入一个这个 run 的生成随机数的一个 功能包啊,大家可以这么理解就对了,跟我们键盘录入啊的这个功能是一样的,首先得先导入这个啊认的功能包, 导入完以后啊,对不对?我们给这个功能啊,生成随机数的这个功能取个名字,那后面的 啊,大家就可以跟着我的这个来洗啊,就是一样的,对不对啊?定义一个生成随机数的功能对不对?然后名称 功能的名称,是啊,我这里取名简写随机啊,大家跟着我来写啊,然后呢,这里我们再定义一个, 定义一个整数型的啊,变量是数字来接收我们随机数的这个功能啊,随机,然后 这里有一个整数型,比如说在这里面随机接收一个整数型的随机数,这里面比如说我们填写十。啊,那 他这个啊, born 的啊, bold, 可能我的英文不是很好,大家看到啊,我们在这里面写上我们想要的随机数呢,他这里就会自动去填充啊,自动去填充这个单词。 然后呢这里我给大家讲一下,就是从零到十,随机 生成一个数字啊,这里这一行的功能就是从零开始到十,随机的去生成一个数字。好,最后我们直接去输出我们 随机生成的这个数字,我们直接啊运行,看一下代码,这样是最好的了。 运行 好,他现在正在运行当中,我们等待一下,好,他运行好了啊,大家看到了 他这里啊,输出七,从零到十当中随机生成一个数字,对不对啊?我感觉这个啊信息框输出,信息框放在右边,我还是不太习惯,我可以移移到底部了,移移到底部好了,大家 啊,大家习惯这个信息框在哪呢?可以按照自己的这个习惯来改,对不对?我们可以再运行一遍啊,再运行一遍,我们再看一次,他第一次是输出七,第二次输入输出九,对不对? 他是在零到十之间随机随机去输出的啊,大家要记得这里给大家讲一个小技巧,如果我不想要这个数字,从零到十输出,我想要一到十,就是我不想要零,有些时候可能会出现这个情况,对不对啊?零, 那我们就从啊输出一到十,对不对?输出一到十,我们这里可以写加一,对不对?加一,然后这里呢,我们可以写九,对不对?写九。那这样如果当他随机输出的时候是零的时候就是一了,对不对?那输出九的时候就是十,对不对?我不,我不要零 啊,我不想要这个零,有些时候会遇到这种情况,对不对?遇到这种情况啊?这是一个小技巧,对不对?这是一个小技巧,看到没有?他一直在从啊零到九 这里面零到九啊,随机输出,而我们在外面加了一,就会从一啊,从一啊到十,他就会随机输出啊。大家记得这个问题啊,所以我们这个功能 run 生成随机数的这一个功能,大家学会了以后记得回去亲手写一下啊。如何使用这个生成随机数的功能?嗯,好,那这节课就到这里。

大家好,今天给大家带来的是如何在 idea 里面创建属于自己的第一个包语类,并执行第一条抓二语句。好,那么我们来进入正题,双击打开 idea, 进入 ide 之后,这个页面会显示的是英文,如果有些小伙伴对英文这方面比较薄热的话,可以去在这里面安装一个中文的插件即可。 好,那么回归正题,我们创建的第一步,首先要点击 no project, 我 们进入项目之后,这里面有一个 java 跟一个空的项目,一般正常情况之下,我们是以空项目为主,它在创建包的过程中比较灵活一点, 所以个人倾向于选择这种空项目,然后命名的话,依据个人的习惯来去命名。 进入软件页面之后,我们会发现这个项目 test 文件项目下,它是没有任何的包跟内的,所以我们这里需要自己手动去创建这个包以内, 所以我们可以右键这个项目,然后随意创建一个类, 那么对于这个类是不规范的,因为正常的一个项目结构,它是由包跟内组成,所以如果我们单独创建一个类的话,这样其实是不是很规范,所以我们直接右键创建一个包 package 包,这个包的命名我们是划分等级去命名,正常的话我们是以三个等级为主,比如说 dot com driver, 我 们第一阶段是以 s e 为准, 在这里我们会看见任务 driver s e 的 一个任务,我们暂且为 s e 的 任务一,那么在这里我如果说这一个项目, 在这里项目一,比如说我学习的第一阶段已经学习完了,我需要学习第二阶段,那么我创建一个二,那么他会同时把这个任务分为两段,如果说在这里抓娃 se 学完之后,我要进入到抓娃意义阶段, 我同时可以在这里命名为抓娃意义,并且命名为 se, 在这里我们可以看到 java e e 也有个任务 e, 那 么说这个任务 e 我 也学完了,我是不是可以创建个任务二, 大家都可以发现这里会以 com 为一个目录, java e e 为一个目录,然后下面分别为任务一、任务二, 这就是一个比较方便,供后续 可自由调整的一个目录结构。好,那么好,那么接下来我们开始创建我们第一个 java 程序,在这里我们选中 java se 的 任务 e, 我 们在此右键创建 java, 创建 java 文件,比如说这里的文件名称供自己去命名, 大家会发现这里一个 java 文件跟这个 test one 它的之间会有什么区别? java 里面它是仅仅只有一个 class 类,但是在 test one 的 java 文件里面它会有一个包,看到没, 这就是之间的区别,这也是稍微比较规范一点的操作。好,那么创建好之后,我们来执行第一个语句。 好,那么我们开始来执行我们的第一条语句,首先我们需要写一个主方法,那么主方法的作用是什么?也就是说我们在执行程序中,这个方法它就相当于一个入口, 那么我们有入口之后,我们就可以写我们自己想要的一个,那么接下来我们就可以执行我们的第一条抓二语句, 那么这是一个打印语句, 那么这是个输出语句, 输出语句它指的就是会把内容,它会把内容 输出到控制台,那么很多小伙伴会问什么叫控制台呢?好,接下来会给大家展示一下什么叫控制台, 在这里这里为什么要加一个双引号?这个是英文的双引号,把字幕转放在里面,比如说 hello, 好,那么我们按 ctrl 加 s 直接来保存,保存完之后我们直接来执行, 那么在这里打印出来的就是我们刚才输出语句,把这个内容输到控制台,这里面就是控制台,下面所出现的就是, 好,那么到这里我们执行的第一个语句,那么就结束了。

加码后端代码能力差的看过来,建议加码后端代码能力差的人一定要学会自救。一、每天投入一点五小时死磕底层原理,优先攻克 jdm 内存模型、堆栈结构、 gc 算法并发编程,每个知识点需结合源码调试和绘图复盘,确保能口述其设计思想与性能影响。 二、若框架使用不熟练,选择敏捷实战课程,从搭建企业级单体应用,如锐级外卖起步,重点吃透 ioc 容器加载流程、 aop 代理机制,每阶段完成配套 cud 练习,避免盲目追星框架三、里特扣蛋专题分优先级刷题先攻克高频算法,字幕串处理哈希映设二、差数便利,每日两题,限时四十分钟, 先暴力求解再优化至欧安。重点记录时间空间复杂度权衡思路。四、积累高可信度项目经历复刻 get up 高性能项目。重点添加分布式所控制库存、 reddit 缓存优化查询等模块,用 artist 记录调优过程并生成技术复盘文档, 针对性准备大厂高频八、股文,如 hashmap 破融。十、红黑数转换预值为什么事发 spring 循环依赖三级缓存作用,整理底层结构应用场景异常排查应答模板。六、考取技术认证佐证能力,阿里云 acacp 云计算认证、 spring professional 认证简历中关联微服务部署和云原生实践经验 部署企业及技术落地能力。七、瞄准中小厂核心业务组,这类岗位更看重快速输出业务代码的能力,投递时附 ipad 链接,展示封装好的工具类,如分布式 id 生成器,证明工程化思维。八、考虑传统企业数字化转型部门重点准备 linux 服务,部署数据 初级后端内部工具开发岗作为跳板,此类岗位对高并发要求低,但重视代码规范。入职后参与全链路开发,积累 free blog 实战经验后转核心业务,使简历量化技术产出。 如通过锁影优化加缓存预热,将接口 r t 从八百米秒降至一百二十米秒,重构现成值参数配置 u p s 提升百分之三百,用 r s 监控截图和 g c 预测佐证。十一、 针对性深耕目标公司技术站投递前突击学习其内部中间件,在面试中展现技术生态适配性。十二、准备三个线上故障排查案例,按照现象定位工具根音解决方案结构梳理,如 夫 g c 频繁如何通过推转储分析内存泄露。十三、建立技术迭代清单,每月更新掌握的原码解析 spring 事务传播机制,实现项目难点分库分表,全区 id 设计行。

今天咱们来聊一聊秒杀系统的设计思路,这也是面试中的一个高频问题。一个优秀的秒杀系统本质上还有几个,三个核心挑战损失高并发症、库存一致性、系统的稳定性。 第一,我们去应对损失高并发症,核心的思路是层层过滤异步,消封,前端通过 c、 d、 n 去缓存热点数据,提前预热 流量进来后, gpus 会去做载均衡,结合云服务器的弹性伸缩功能,动态的去调整资源。最关键的是我们用消息堆列,比如说像什么卡不卡 rocket and q 去进行异步的处理, 瞬间的红风流量转换成平稳的队列消费,避免直接去冲击数据库。而数据库底层再配合我们的分库分表读写分离,进一步的去提升我们的承载能力。第二, 保证库存的一致性,这是秒杀的技术核心,要严防超卖,我们可以利用 radis 的 一个单线成的特性,通过 lua 脚本来扣减库存,保证原则性。如果并发量可控, 也可以用数据库的悲观锁。同时还要设置用户限购规则,比如说每个人只能买一件,防止 恶意抢购。第三,确保系统的高可用。架构上采用集群部署的方式来避免单点的故障,结合容器化技术实现快速的扩缩容运维上搭建完善的一个监控告警系统,比如说你像普罗米修斯加 grappa, 实时的去掌控我们系统的状态,还要做好熔断降级,在系统压力过大的时候去保护核心的服务,给用户友好的降级体验或者降级提示。简单总结就是秒杀系统设计的一个原则就是前端限流 中间一步,后端消封,加上全面路的监控保护,搞定这几个关键点,系统就能扛得住大流量的一个冲击了。好了, 今天的分享就到这里了,如果大家对于具体的技术实现,比如说你像刚才说前端限流中间的一个异步,比较感兴趣的同学,大家可以在我还会给大家去做更加细致的一个分享。

今天灭了一个五年经验的 java 后端,前面八股文对答如流。于是主办问了一个高频场景题,如何设计一个支持千万级用户的高性能及时通讯系统,结果候选人一下子卡住了,完全没有思路。这其实暴露了很多资深工程师的通病,就是缺乏对高并发实时系统的全列路架构能力。 如果你也经常被这类场景题难住,建议看看我这份我整理的高频场景题,有需要的可以拿去,希望对你们有所帮助。主播所期待的完整方案应该是这样的, 一、连接层设计用。 net 实现 web socket 长连接服务器通过一致性哈希绑定用户与网关连接,支持连接绑活断线重连,单机支撑十万连接。第二, 消息,路由消息先写入咖啡 a 分 区,由路由服务根据接收者在线状态推送到对应网关,离线消息存入 radis 暂存,上线后拉取。第三,存储,设计最新消息存 radis 服务器, set 一时消息用 h 贝斯分瑞警存储,单聊、群聊系统消息分别设计存储结构。第四,扩展性网关无状态,可水平扩展消息路由服务,通过监听 c、 f、 c 实现解偶数据库按 u、 a、 d 分 库分表。第五,可能性 消息必达,通过 a、 c、 k 确认,加重视机制,消息顺序通过发送端序号保证监控连接数,消息延迟,消息丢失率。个人觉得,五年经验开发者 本该具备复杂系统的架构能力,能设计出可扩展到可用的实时系统,但很多人还停留在 c、 r、 u、 d 和简单微服务层面。我的建议是建立自己的分布式系统知识体系,从协议选型、 tcp web socket、 网络编程、消息、中间件 存储方案到监控告警,每个环节都要深入实践。如果还不知道如何系统提升,可以带着具体问题参考我刚才提到的场景题库,针对性的查漏补缺。