![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其他
文章平均质量分 86
java小霜
有免费的视频资料 可以关注私信我哦~
展开
-
一文弄懂二叉树的三种遍历方式
俗话说:学如逆水行舟,不进则退;心似平原走马,易放难收。这句话对程序员而言,体会更深。这行已经越来越卷了,时刻准备着,。 二叉树,在面试中,已是必备的开胃菜。而在二叉树相关的面试题目中,遍历更是常考题目。本文将从二叉树的遍历角度入手,从递归和非递归角度来分析和讲解二叉树的遍历。遍历❝二叉树的遍历是指从根节点出发,按照某种次序依次访问二叉树中的所有节点,使每个节点被且仅被访问一次。❞二叉树的遍历,有「先序遍历」、「中序遍历」以及「后续遍历」三种。图一上面三种遍历方式中的原创 2021-12-28 19:55:50 · 268 阅读 · 0 评论 -
看完这篇还不懂高并发中的线程与线程池你来打我
一切要从 CPU 说起你可能会有疑问,讲多线程为什么要从 CPU 说起呢?原因很简单,在这里没有那些时髦的概念,你可以更加清晰地看清问题的本质。CPU 并不知道线程、进程之类的概念。CPU 只知道两件事:从内存中取出指令 执行指令,然后回到 1你看,在这里CPU确实是不知道什么进程、线程之类的概念。接下来的问题就是 CPU 从哪里取出指令呢?答案是来自一个被称为 Program Counter(简称 PC)的寄存器,也就是我们熟知的程序计数器。在.原创 2021-12-27 14:27:51 · 555 阅读 · 1 评论 -
学习Java和python哪个更好呢?
在学习方面,两者没有好坏之分。只要我们认真学习一种知识,努力把相关的知识学好,那么两者都是很好的选择。如果你想知道学习Python和Java哪个更好,这取决于你从事的是哪种工作。如果是大型企业项目,最好选择Java进行一些软件和后台开发。如果是人工智能和深度学习,最好选择python。它具有简单、面向对象、分布式、健壮、安全、平台无关和可移植、多线程、动态等特点。Python还具有简单、易学、快速、免费、开源、可移植、可嵌入、可扩展和丰富库的优点。如果您看看语言本身,python语法更简单,更易..原创 2021-12-24 14:02:56 · 3238 阅读 · 0 评论 -
为什么大多数银行和金融机构服务使用Java?
金融科技软件,例如银行应用程序和金融机构,比以往任何时候都更加重要。我们生活在一个我们严重依赖定期让我们的生活更轻松的程序的世界中。过去,所有这些银行流程都是手动执行的,因此容易出现人为错误。但是今天,这些流程的很大一部分是自动化的。银行提供最安全的交易,并倾向于拥有易于被每个目标群体使用和理解的用户友好界面。银行和Java回到银行软件开始受到广泛关注的时代,Java 是首选的编程语言,原因有几个。两个主要原因是:银行爱安全 银行喜欢移植性Java 作为一种编程语言,恰恰提供了:出.原创 2021-12-24 13:17:38 · 2627 阅读 · 1 评论 -
程序员在35岁的时候依然被公司抢着要?
程序员圈子里一直流传着一个魔咒:35 岁的中年危机。他们说,35 岁程序员的精力和体力会无法避免地下降;他们说,35 岁程序员的丰富经验没有年轻员工的创新活力吃香;他们说,35 岁程序员会面临越来越窄的职业上升通道和日益复杂的社会压力。这些“传说”令许多程序员每离 35 岁进一步,就更焦虑一分,并迫切寻找打破这一魔咒的方法。35 岁,真的是职场荣枯线吗?前段时间看到知乎上的这个帖子:35 岁似乎已成职场荣枯线,失业风险叠加中年危机加剧焦虑,你如何看待「 35 岁危机」?个人觉得的,其实原创 2021-12-20 13:42:46 · 7912 阅读 · 6 评论 -
自学编程真的很无力吗?不,完全可以相信自己。【肝 5000+字自述java自学】
博主是一个普通三本的物联网工程学生,但是我们专学校安排到了计算机学院,我之前在没有上大学的时候根本就不知道什么是编程。身边也没有从事这一行业的,我也不知道我最后选择了干这行。首先说下博主 目前在岗实习,虽没有像培训班里的那种一出来就是10k-20k,但也不算差,等到毕业有毕业证因该也能够到。为什么学这段大多讲的是博主在大学的学习科目,可以跳过向下看,如想看也可以看看。我大学专业物联网听着以后发展都好,但是越是这样的专业,越是让你感到无力,物联网也是新型行业,我上学那年好像物联网研究生都没有出原创 2021-12-17 15:35:33 · 2631 阅读 · 1 评论 -
CountDownLatch实现原理
前言CountDownLatch是多线程中一个比较重要的概念,它可以使得一个或多个线程等待其他线程执行完毕之后再执行。它内部有一个计数器和一个阻塞队列,每当一个线程调用countDown()方法后,计数器的值减少1。当计数器的值不为0时,调用await()方法的线程将会被加入到阻塞队列,一直阻塞到计数器的值为0。常用方法public class CountDownLatch { //构造一个值为count的计数器 public CountDownLatch(int count原创 2021-12-17 13:17:13 · 781 阅读 · 0 评论 -
CyclicBarrier实现原理
前言CyclicBarrier,字面意思“循环屏障”,用于多个线程一起到达屏障点后,多个线程再一起接着运行的情况。例如,线程1和线程2一起运行,线程1运行到屏障点a时,将会被阻塞,等到线程2运行到屏障点a后,线程1和线程2才可以打破屏障,接着运行。如果有屏障点b,则他们需要像打破屏障a一样打破屏障b,如此循环往复。常用方法public class CyclicBarrier { //构造方法,传入线程总数以及打破屏障点前的任务 public CyclicBarrier(in原创 2021-12-17 13:17:24 · 643 阅读 · 0 评论 -
面试官疯了吗,问我为什么浮点数不精确?
很多人都知道,Java 中的浮点数并不精确,需要用 BigDecimal进行精确计算,但是,很少有人知道为什么浮点数不精确呢?不精确为什么还要用呢?本文就来展开分析一波;我们知道,计算机的数字的存储和运算都是通过二进制进行的,对于,十进制整数转换为二进制整数采用"除2取余,逆序排列"法具体做法是:用2整除十进制整数,可以得到一个商和余数; 再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止 然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次原创 2021-12-16 16:38:01 · 68 阅读 · 0 评论 -
3分钟带你彻底搞懂 Kafka
一、认识kafkaKafka到底是个啥?用来干嘛的?官方定义如下:Kafka is used for building real-time data pipelines and streaming apps. It is horizontally scalable, fault-tolerant, wicked fast, and runs in production in thousands of companies.翻译过来,大致的意思就是,这是一个实时数据处理系统,可以横向扩展,并原创 2021-12-16 14:13:30 · 323 阅读 · 0 评论 -
你敢信?清华毕业前辈用了一个坦克大战项目就讲完了23种设计模式
坦克大战一、需求分析坦克大战中有我方坦克和敌方坦克,我方坦克有一个,敌方坦克有多个。坦克可以移动,也可以发射子弹。我方坦克可以通过上下左右键来控制方向,敌方坦克自动改变方向。在游戏窗体中有障碍物,包括砖墙、钢墙、水墙和草地。坦克可以穿过草地,在遇到其他障碍物时,我方坦克停止移动,并通过操纵改变方向再移动,敌方坦克遇到其他障碍物时可以自动的改变方向。我方坦克有三次生命值,当与敌方坦克或敌方子弹相撞时,生命值减- -, 当生命值是零时,敌方胜利,游戏结束。敌方坦克的生命值为-一,当敌方坦克与我方坦克或者转载 2021-12-16 13:44:32 · 106 阅读 · 0 评论 -
Sass基础语法
SASS是SCSS3的新语法SASS允许使用变量,所有变量以$开头。$red:red;div{color:$red;}//也可以镶嵌在字符串里面使用,必须需要写在#{}之中,作用于属性名$left:left;margin-#{$left}:30px;SASS允许在代码中使用算式。body{ margin:(14px/2); top:50px+100px; right:$var*10%; }...原创 2021-12-16 13:24:23 · 122 阅读 · 0 评论 -
MVC、MVP、MVVM的区别及联系
MVC、MVP、MVVM MVC模式: 从大锅烩时代进化,引入了分层的概念,但是层与层之间耦合明显,维护起来不容易; MVP模式: 在 MVC 基础上进一步解耦,视图层和模型层完全隔离,交互只能通过管理层来进行,问题是更新视图需要管理层手动来进行; MVVM模式: 引入双向绑定机制,帮助实现一些更新视图层和模型层的工作,让开发者可以更专注于业务逻辑,相比于之前的模式,可以使用更少的代码量完成更复杂的交互; MVC、MVP、MVVM 模式是我们经常遇到的概念,其中 MVVM 是...原创 2021-12-16 13:19:21 · 269 阅读 · 0 评论 -
React Native面向未来架构
既然面向未来,那么项目的架构设计采用React/React native的新特性,并且为即将来到的新特性预留位置;对核心依赖库保持最小代码侵略性和最底依赖;且满足以下这几点。 高性能 高效率 易拓展 低耦合 易测试 少bug 协作开发 我们先从项目最小的一个点开始讲:组件这里有一个性能关键点, 举个例子A组件:constA=({count})=>{React.useEffect(()=>...原创 2021-12-16 13:14:45 · 796 阅读 · 0 评论 -
不得不说说微信钉钉后端亿级用户架构那些事
大家工作生活中可能经常使用微信、钉钉这样的即时通讯工具,作为技术开发的你有没有想过它们后端的技术架构是如何做的?一般来说,钉钉和微信后端主要就是一个IM的即时通讯软件,再加上很多周边功能,我们先来看下IM这块的核心功能包含哪些模块:0)用户:系统的使用者。1)消息:是指用户之间的沟通内容(通常在IM系统中,消息会有以下几类:文本消息、表情消息、图片消息、视频消息、文件消息等等)。2)会话:通常指两个用户之间因聊天而建立起的关联。3)群:通常指多个用户之间因聊天而建立起的关联。4)终端原创 2021-12-12 16:12:10 · 2668 阅读 · 0 评论