前言 之前写了一个蓝牙的小Demo,看的人还是有一些的,也有人私信我说,在学Kotlin,能不能出一版Kotlin的博客讲述这个蓝牙开发,这个想法还是不错的,不过就怕写了没有人看,因为在国内Kotlin...在上面的代码中DeviceAdapter继承了BaseQuickAdapter,这一点和Java的相似,如下图所示 [在这里插入图片描述] 而Kotlin的语法可以让你把构造方法的参数作为类参数使用,这样解释不知道是不是对的...(R.id.item\_device) 这几行代码也没有什么好讲解的了,都讲过了,这也是when的另一种使用方法,可以直接赋值使用。...,和Java的逻辑如出一辙,无非就是不知道这个**it**是什么意思,it就是它本身的意思,结合方法中的逻辑来看就容易理解了,权限请求自然会有两种结果,同意和不同意,也就是结果是true和false的结果...MainActivity中的方法,在MainActivity中写入,或者Alt+Enter [在这里插入图片描述] 然后你就会看到这样的一个方法 fun scanBluetooth(view: View
它跳过了Java开发中常见的重新构建,重启以及重新部署的循环操作。 JRebel使开发人员能够在相同的时间内完成更多的工作,让开发人员的编码过程变得更加流畅。 ?...它还提供了运行/调试当前文件所在模块的快捷操作,以及简化查找和排除冲突依赖关系的方法。 ?...: 按行倒序 按行随机排序 区分大小写A-z排序 区分大小写z-A排序 不区分大小写A-Z排序 不区分大小写Z-A排序 按行长度排序 通过子选择行排序:每行仅处理一个选择/插入符号 对齐: 通过选定的分隔将选定的文本格式化为列...BrowseWordAtCaret 允许轻松浏览下一个/上一个字的插入符号,并高亮显示所选单词的外观 用法:使用CTRL-ALT-UP,CTRL-ALT-DOWN浏览 注意:在默认键盘映射中,这个快捷键也适用于下一个...Shifter 检测插入符号、行或关键字的类型,并在键盘快捷键上将其“向上”或“向下”移动。 如果一行中只有一个可移动的单词,则可以移动而不用插入它。
它跳过了Java开发中常见的重新构建,重启以及重新部署的循环操作。 JRebel使开发人员能够在相同的时间内完成更多的工作,让开发人员的编码过程变得更加流畅。...它还提供了运行/调试当前文件所在模块的快捷操作,以及简化查找和排除冲突依赖关系的方法。...: 按行倒序 按行随机排序 区分大小写A-z排序 区分大小写z-A排序 不区分大小写A-Z排序 不区分大小写Z-A排序 按行长度排序 通过子选择行排序:每行仅处理一个选择/插入符号 对齐: 通过选定的分隔将选定的文本格式化为列...BrowseWordAtCaret 允许轻松浏览下一个/上一个字的插入符号,并高亮显示所选单词的外观 用法:使用CTRL-ALT-UP,CTRL-ALT-DOWN浏览 注意:在默认键盘映射中,这个快捷键也适用于下一个...Shifter 检测插入符号、行或关键字的类型,并在键盘快捷键上将其“向上”或“向下”移动。 如果一行中只有一个可移动的单词,则可以移动而不用插入它。
等图片加载成功后才可以进行绘制。 而drawImage这个方法,当图片在没加载完的情况下使用,他会不被调用。绘制就会失败。 原来如此! 就有人抬杠说img标签里的图片不需要时间加载吗?...大概顺序是这样的: window.onload = function(){ drawImage } 如果不是在html结构中插入的图片,就被我的粗心绕过了这个限制: 图片作为一个资源请求...但是因为没有限制,极大的情况是当图片还没有加载完毕就调用了drawImage,此方法他是不起作用的。 解决: 那有没有好的方法解决因图片加载顺序导致drawImage绘图失败的情况呢?...等图片加载成功后才可以进行绘制。 图片对象是准备好了,但你怎么知道图片什么时候真的加载完成呢?...找了半天直到我把背景图关掉才看到: ? 啊,原来他被背景图盖住啦! 可是,为什么呢? 我在想有两种可能 1、层级问题 2、先后问题 关于1,就像css的z-index那种感觉,是背景图在上盖住了红线。
,不过就怕写了没有人看,因为在国内Kotlin是受众群体确实比较少,当然了也是有大的方向在往这边推动的,但是小公司依然不会去用Kotlin,如果你看不惯我这个说法也不要告诉我。...(R.id.item_device) 这几行代码也没有什么好讲解的了,都讲过了,这也是when的另一种使用方法,可以直接赋值使用。...,和Java的逻辑如出一辙,无非就是不知道这个it是什么意思,it就是它本身的意思,结合方法中的逻辑来看就容易理解了,权限请求自然会有两种结果,同意和不同意,也就是结果是true和false的结果,而这个...MainActivity中的方法,在MainActivity中写入,或者Alt+Enter ?...然后你就会看到这样的一个方法 fun scanBluetooth(view: View) {} 首先想清楚这个里面要做什么?难道仅仅只有扫描蓝牙吗?
前提故事 骚年在上次与博主进行了直接插入排序的讨论后,找到了博主,说:“博主,对于直接插入排序,我有重大的发现”,博主想了想,就问:“什么发现?”...上述两个条件过于苛刻,现实中记录少或者基本有序都属于特殊情,有条件当然是好,条件不存在,我们创造条件,也是可以去做的;骚年与博主进行了研究与讨论,我们可以对序列进行分组,分割成若干个子序列,然后对每个子序列分别进行直接插入排序...那么问题就来了,我们分割待排序记录的目的是减少待排序记录的个数,并使整个序列向基本有序发展。而如上面这样分完组后,就各自排序的方法达不到我们的要求。...基本思想 将整个序列按照相距某个“增量”进行拆分,然后逐个对子序列进行直接插入排序,使得得到的结果基本有序,最后对基本有序的序列进行一次直接插入排序,使得整个序列有序 代码实现 java实现...这里“增量”的选取就非常关键了,本例中是以gap=gap/2的方式选取增量的,可究竟应该选取什么样的 增量才是最好,目前还是一个数学难题,迄今为止还没有人找到一种最好的增量序列。
了解到我研究生的研究方向是图像处理中的模式识别这块,就问如何实现车牌识别,你觉得应该怎样做。...过了会,工作人员找到我说你还有一轮要面,问是否今天面,还是明天面,果断明天面,今天再面下去还不得崩溃。...你以后要做什么方向。好吧,我承认我犯了个错,我说我想做java方向的,因为前两个面试官都问过我以后要是从事java开发,愿不愿意。...HR姐姐不乐意了,你是因为阿里java用的多才这么想的吗,你为何要放弃自己擅长的C++,而去用java开发。你不能只看到表面啊,各有各的使用领域啊,如何如何,教育了我一顿。...我就频频点头,回答嗯嗯,是我看的太肤浅了,看到网上说现在java用的多才这么想的。好吧,再被伤一次。 8. HR姐姐问,TX的offer是什么部门,说了下,那你去TX吗。
使用final修饰方法会提高速度和效率吗 使用final修饰变量会让变量的值不能被改变吗; 如何保证数组内部不被修改 final方法的三条规则 final 和 jvm的关系 写 final 域的重排序规则...读 final 域的重排序规则 如果 final 域是引用类型 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看...final使用 final变量 final变量有成员变量或者是本地变量(方法内的局部变量),在类成员中final经常和static一起使用,作为类常量使用。...另外,final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。...在使用final修饰方法的时候,编译器会将被final修饰过的方法插入到调用者代码处,提高运行速度和效率,但被final修饰的方法体不能过大,编译器可能会放弃内联,但究竟多大的方法会放弃,我还没有做测试来计算过
使用final修饰方法会提高速度和效率吗 使用final修饰变量会让变量的值不能被改变吗; 如何保证数组内部不被修改 final方法的三条规则 final 和 jvm的关系 写 final 域的重排序规则...读 final 域的重排序规则 如果 final 域是引用类型 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 - final 本系列文章将整理到我在GitHub上的《Java面试指南》仓库...final关键字在java中使用非常广泛,可以申明成员变量、方法、类、本地变量。...final使用 final变量 final变量有成员变量或者是本地变量(方法内的局部变量),在类成员中final经常和static一起使用,作为类常量使用。...另外,final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。
因此,在编写程序时,必须要求程序员手动地在任何访问到这些容器的地方进行同步处理,这样导致在使用这些容器的时候非常地不方便。 所以,Java提供了同步容器供用户使用。...在Collections类中提供了大量的方法,比如对集合或者容器进行排序、查找等操作。最重要的是,在它里面提供了几个静态工厂方法来创建同步容器类,如下图所示: ?...因此为了解决同步容器的性能问题,在Java 1.5中提供了并发容器,位于java.util.concurrent目录下,并发容器的相关知识将在下一篇文章中讲述。 2.同步容器真的是安全的吗? ...也有有人认为Vector中的方法都进行了同步处理,那么一定就是线程安全的,事实上这可不一定。...也许有朋友会问:Vector是线程安全的,为什么还会报这个错?
小勤:我在Power Pivot里建了两个表的关系,你看: 大海:这个没啥问题啊。 小勤:但是,做数据透视表的时候是错的啊,这个关系明显没有起作用嘛!你看: 大海:还有这种事? 小勤:那你试试?...小勤:那我做的为什么有问题? 大海:你这透视表都没做完!就拉了两个字段到行里,值都没放! 小勤:那关系就不起作用了? 大海:其实这不是表间关系不起作用,而是表间关系不直接对两个筛选器进行互相约束。...小勤:那有什么意义?反正我放了值进去都会起作用的,自然就变成了其相对应的关系了,干嘛不直接在拉字段到行字段的时候就限制好呢? 大海:在Power Pivot里,那可不一定被这层关系完全限制住啊。...还记得前面我们讲《Calculate的忽略(删)筛选上下文》的例子吗?...小勤:有什么实际的应用例子吗? 大海:这方面的例子很多,后面再逐步跟您讲。
在Python中,有更牛逼的文档字符串这样的语言级特性支持,看注释用help()很方便。 不过对于Lua这样的弱类型解释型语言,注释就比较难处理了。这里以Lua为例给出一种注释的解决方案。...这里的注释犯了几个错: 方法注释为“查询”,这简直就是废话!方法名已经告诉别人这是查询方法了,还在这个注释里写这两个字有什么意义呢?而且到底查询些什么这里也没说! 参数没有注释。...; // 抛出异常 } } 我想给正在犯上面的错的同学提个醒: 使用日志框架,并用合适的级别输出日志非常重要。...什么时候需要进行参数校验 我认为一个方法或者函数在满足以下条件时有必要进行参数校验: 方法或者函数是对外公开的,不是私有的。 参数有可能为空指针的时候。...长大后,体验过了生活中会有很多的无奈,不再鄙视“不诚实”的老师。甚至低下了高贵的头,自己也变得那般模样。 未来,你还会教育你的后代“要诚实”吗? 恐怕会!
ToB面向企业级别用户文档是一个必不可缺的产物,但用心整理的产品文档并提供用户也会遇到一些问题,譬如产品运营的过程中我们经常与用户交集的Helper(在线服务客服)会比较困扰因为用户没有看文档的习惯更喜欢直接来问...有了文档结构后在此基础上我们将老的文档中一些信息进行整理并灌入新文档系统中,这里强调一下我们使用的是GitBook来管理我们文档,有很多内部系统依然使用Word文档来管理,笔者觉得更加推荐GitBook...它有版本管理功能,在并行开发文档过程中避免出现错误与覆盖的情况,同时可以对比不同版本间的差异方便我们优化文档,最主要他呈现给所有人是一个WEB网站,信息更新也更加的实时。...Unix面向更加专业的用户 ,Unix的开发者喜欢清晰、简单的操作,用户告诉做什么就做什么,即便用户使用的命令等价于“向我开枪”的命令。...这些文档多由老的日志系统开发撰写,在实际操作过程中我们发现安装文档执行并非100%执行成功或者说文档只写了在安装过程中最好的情况下是什么样的,我们通过多位测试同学不断的对文档验证与校对,并对文档中的内容进行重新排序与分类最终达到我们预期的效果
在Python中,有更牛逼的文档字符串这样的语言级特性支持,看注释用help()很方便。不过对于Lua这样的弱类型解释型语言,注释就比较难处理了。这里以Lua为例给出一种注释的解决方案。...这里的注释犯了几个错: 方法注释为“查询”,这简直就是废话!方法名已经告诉别人这是查询方法了,还在这个注释里写这两个字有什么意义呢?而且到底查询些什么这里也没说! 参数没有注释。...; // 抛出异常 } } 我想给正在犯上面的错的同学提个醒: 使用日志框架,并用合适的级别输出日志非常重要。...什么时候需要进行参数校验 我认为一个方法或者函数在满足以下条件时有必要进行参数校验: 方法或者函数是对外公开的,不是私有的。 参数有可能为空指针的时候。...长大后,体验过了生活中会有很多的无奈,不再鄙视“不诚实”的老师。甚至低下了高贵的头,自己也变得那般模样。 未来,你还会教育你的后代“要诚实”吗? 恐怕会!
有个小伙伴提了一个问题: 有一个关于JVM名词定义的问题,说”JVM内存模型“,有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说(深入理解JVM虚拟机)上说Java内存模型是JVM的抽象模型...JVM中的堆啊、栈啊、方法区什么的,是Java虚拟机的内存结构,Java程序启动后,会初始化这些内存的数据。 ? 内存结构就是上图中内存空间这些东西,而Java内存模型,完全是另外的一个东西。...因为在writer方法中,可能发生了重排序,y的写入动作可能发在x写入之前,这种情况下,线程B就有可能看到x的值还是0。...在Java内存模型中,描述了在多线程代码中,哪些行为是正确的、合法的,以及多线程之间如何进行通信,代码中变量的读写行为如何反应到内存、CPU缓存的底层细节。...但从缓存的角度看,似乎这个问题只会影响多处理器的机器,对于单核来说没什么问题,但是别忘了,它还有一个语义是禁止指令的重排序,对于编译器来说,同步块中的代码不会移动到获取和释放monitor外面。
下面是正题: (3)二叉树了解吗?说一下怎么求出二叉树每层节点的最大值。...(当时一紧张说错说成用栈,应该是队列) 然后他觉得我说的有问题,就让我登录collabedit上面写给他看,然后讲一下,这题就这么过了。 (4)问我动态规划了解吗?...(5)TCP UDP 区别 TCP的流量控制 (6)TCP三次握手 以及为什么不是两次 (7)想问我C/C++的指针,被我机智的躲过了(因为我主攻的JAVA)。 (8)了解排序吗?...说一下堆排序的思想?怎么初始建堆?是否稳定? (9)Linux(也回绝了,说没用过) (10)数据库 mysql中CHAR和VCHAR的区别 怎么删除一个表 如果有下一次的话HR会联系 。...总结:准备了项目和JAVA 相关知识毛都没问,真是准备什么不问什么,各位参考一下吧。
算法: Leetcode 862:和大于等于K的最短子数组 (还好之前做过了不然一时半会真不会) Leetcode 105:从前序和中序遍历还原二叉树 反问 ❝面试官头顶发亮,一看就是个大佬。...最后丢了两个算法题感觉是想劝退来着,结果运气好第一题上次在水群看到有人问就跑去写了下(当时也不会看了题解),于是给他搞出来了。...❞ 2022-03-22:网易二面 48min 自我介绍 你有提到 Java、Python、C++,这三种语言怎么导入和安装使用包的? Maven 是干嘛的?什么功能和作用?...Java 的项目在 Linux 和 Windows 部署运行有什么区别吗?需要做什么调整吗?...合并 K 个升序链表 ❝前面挂了之后过了一天就被捞了,说是组长觉的面评还不错可以再给一次机会。一面面试官挺和善的,写代码的时候报个错我还没反应过来他直接说你没重载拷贝构造函数。
一、引言 拖拽排序(Draggable Sortable)是现代Web应用中常见的交互功能之一,尤其是在需要用户对列表项进行顺序调整的场景下。...本文将由浅入深地介绍React中拖拽排序组件的常见问题、易错点及如何避免,并通过代码案例进行解释。...四、易错点及避免方法 (一)状态管理错误 直接修改数组 在处理排序事件时,直接修改原始数组会导致不可预测的行为,因为React的状态应该是不可变的。...,但在实际开发中也存在一些常见问题和易错点。...通过了解这些问题及其解决方案,我们可以更好地利用这些组件,提升用户体验和应用性能。希望本文能帮助你在React项目中顺利实现拖拽排序功能。
问题 当下互联网技术成熟,越来越多的趋向去中心化、分布式、流计算,使得很多以前在数据库侧做的事情放到了Java端。今天有人问道,如果数据库字段没有索引,那么应该如何根据该字段去重?...大家都一致认为用Java来做,但怎么做呢? 解答 忽然想起以前写过list去重的文章,找出来一看。...做法就是将list中对象的hashcode和equals方法重写,然后丢到HashSet里,然后取出来。这是最初刚学Java的时候像被字典一样背写出来的答案。...换个思路,不用HashSet可以去重吗?最简单,最直接的办法不就是每次都拿着和历史数据比较,都不相同则插入队尾。而HashSet只是加速了这个过程而已。...这个在背的时候略微有些逻辑混乱,但只要了解了HashMap的实现方式就不会觉得拗口了。HashMap先根据hashcode方法定位,再比较equals方法。
领取专属 10元无门槛券
手把手带您无忧上云