我就是这样的一个人,23岁才突发奇想:其实我可以学学编程。我并非计算机专业出身,也可以说我的工作跟编程扯不上半毛钱的关系,甚至连电脑都很少接触。可能有人会问:那你学编程有什么用呢?是啊,有什么用?...我不知道学习编程对于我有什么用,或许这一辈子都接触不到相关的工作,或许编程于我只是一个符号,一个程序,一串代码。但是,我知道我得保持一个积极学习新知识的心态,我得锻炼自己接受新事物的能力。...今天的我们是昨天造就的,而明天的我们会成为什么样的人,完全取决于今天我们都干了些什么!所以,不要问有什么用?人生前期越嫌麻烦,越懒得学,后来就越可能错过让你心动的人和事,错过风景。...最后,用凯鲁亚克的《在路上》来结束今天的文章,也希望与你一起共勉:“我要再和生活死磕几年。要么我就毁灭,要么我就铸就辉煌。如果有一天,你发现我在平庸面前低了头,那么请向我开炮。”...我相信:努力不一定能够成功,但一定可以收获成长。
为了趁热打铁,我决定提前三天放出原定本周日Release的文章。希望能及时让大家了解一下Kotlin。...那我们接下来看一看Kotlin的特点,当然这也是我改用Kotlin的重要原因。...如下面的代码就是Kotlin实现空指针安全的一个例子,而且相对Java实现而言,简直是一行代码搞定的。 fun testNullSafeOperator(string: String?)...比如下面的代码就是我们结合Jsoup,来抓取某个proxy网站的数据,代码更加简单,实现起来也快速。...最近使用Kotlin写了一段抓取proxy的代码,实现起来非常快捷。甚至比纯JavaScript实现起来要快很多。
当时我第一次看到这些解释时,不禁倒吸了口冷气,这不会是在说我自己的吧,回想起工作后的这几年,总觉得自己都啥都会了,就好像自己站在愚昧之山而完全不自知。 而把我从愚昧之山推下绝望之谷的,就是写作。...通过这半年来的技术输出,写作让我跌入达克效应的绝望之谷,差点起不来。...就拿我自己写公众号来说,有时候为了写一篇文章,由于知识的欠缺,我需要查阅十几篇资料,还要组织语言,排版,有时能写到深夜一两点。...通过写作,我发现自己对很多知识的掌握并没有自己想像的那么好,于是我就不断的给自己输入,订阅更多优秀的公众号,知识星球,得到专栏,极客专栏,不断地给自己充电。...大佬们都认同一个观点:“利他的事情,长期下去一定会利已”,我也深以为然。我写的公众号目前并没有取得任何成就,看得人也少得可怜,但是读者在慢慢增加,后台交流的人也渐渐增。
为了趁热打铁,我决定提前三天放出原定本周日Release的文章。希望能及时让大家了解一下Kotlin。...那我们接下来看一看Kotlin的特点,当然这也是我改用Kotlin的重要原因。 语法简单,不啰嗦 Kotlin支持类型推断,没有Java那样的啰嗦。...如下面的代码就是Kotlin实现空指针安全的一个例子,而且相对Java实现而言,简直是一行代码搞定的。...最近使用Kotlin写了一段抓取proxy的代码,实现起来非常快捷。甚至比纯JavaScript实现起来要快很多。 关于性能 Kotlin的执行效率和Java代码的执行效率理论上一致的。...做个比较现实的比拟,Java就像是一趟从我的家乡保定开往北京西的耗时将近2个小时甚至更长的普通列车,而Kotlin则是那趟仅需40分钟就能到达的高铁。
为什么要实现Serializable 工作中我们经常在进行持久化操作和返回数据时都会使用到javabean来统一封装参数,方便操作,一般我们也都会实现Serializable接口,那么问题来了,首先:为什么要进行序列化...最后:我做一些项目的时候,没有实现序列化,同样没什么影响,到底什么时候应该进行序列化操作呢? 网上找了很多资料,但是感觉大都没有说的很清楚,所以结合自己的理解做一下总结。...实现serializable接口的作用是就是可以把对象存到字节流,然后可以恢复,所以你想如果你的对象没实现序列化怎么才能进行持久化和网络传输呢,要持久化和网络传输就得转为字节流,所以在分布式应用中及设计数据持久化的场景中...,你就得实现序列化。...数据库中,并没有与我们java基本类型对应的数据结构,所以在往nosql数据库中存储时,我们就必须将对象进行序列化,同时在网络传输中我们要注意到两个应用中javabean的serialVersionUID要保持一致
相对于后端的先慢后快,前端是先快后慢,易学难精 选择前端,当然也是因为我算法这方面水平太次了 随意搜索一下“如何才能成为优秀的前端开发工程师”,就能发现前端要学的东西是不可估量的 也正是因为这样,我喜欢挑战
HttpServlet为什么要实现serializable?在什么情况下,servlet会被序列化? 如果未显示定义serialVersionUID,系统会用什么算法给指定一个?...简单点将,就是实现了这个接口后,实例就可以转化为数据流了。 Servlet 是有状态的,所以需要持久化到本地(钝化),然后当 Tomcat 重启时,重新加载出来。
最近在看一些项目的源码,发现他们很多类最终都实现了Serializable接口,于是开始琢磨这个接口到底有啥作用?为什么需要实现该接口?...Serializable接口概述类的可序列化性由实现 java.io.Serializable 接口的类启用。未实现此接口的类将不会对其任何状态进行序列化或反序列化。...但是,强烈建议所有可序列化的类都显式声明 serialVersionUID 值,因为默认的 serialVersionUID 计算对类细节高度敏感,这些细节可能因编译器实现而异,因此可能在反序列化期间导致意外的...因此,为了保证在不同的 java 编译器实现中具有一致的 serialVersionUID 值,可序列化的类必须声明一个显式的 serialVersionUID 值。
作为分布式实施的基础,跨进程通信的技术也是五花八门,为什么Core WebApi越来越火,被众多大牛们一直推荐?小编这就为你一一解答!...DAY3 各种Filter扩展定制,像异常处理、鉴权授权、跨域、缓存压缩等常见功能,都是基于Filter的AOP实现的,必须得扎实下。
修改旧接口删除冗余数据的方案往往开发人员不会选择,这是为什么呢?...如果能这样做的话,那么后端程序猿小哥可能要开心死了,前端妹子也不用那么苦口婆心地劝说后端小哥哥了。 所以GraphQL隆重出世了!那么问题来了!...我用动图来分别演示下REST和GraphQL是怎么样的一个过程。...是什么让我放弃了restful api?了解清楚后我全面拥抱GraphQL GraphQL执行逻辑 有人会问: 使用了GraphQL就要完全抛弃REST了吗? GraphQL需要直接对接数据库吗?...服务端实现 在服务端, GraphQL 服务器可用任何可构建 Web 服务器的语言实现。
对此我深有体会,最近我刚换了新的数据科学工作。 为什么有那么多的数据科学家在找新工作呢? 在回答这个问题之前,我想声明的是我仍然是一名数据科学家。...我热爱这份工作,我也不想阻止那些想成为数据科学家的人,因为这份工作有趣,刺激而有价值。本文的目的是向你们介绍这份工作背后不那么光鲜的一面。 从我看来,数据科学家主要出于四个原因对他们的工作感到不满。...当中具体有很多原因,在此我不能一一列举,这里只举出我所遇到的情况。 每家公司情况不同,不能一概而言。...我认为我能对全球各地的人们产生巨大的影响,而不仅仅是在公司内部。事实上,如果公司的核心业务不是机器学习(我的上家公司是媒体出版公司),那么你所进行的数据科学工作可能只会带来少量的价值。...02 决策至上原则 我曾经早上6点起来研究支持向量机。当时我想:“这真的很难,但至少会给我未来的雇主带来价值。“ 但如果我有时光机的话,我会回到过去打消这个念头。
对此我深有体会,最近我刚换了新的数据科学工作。 为什么有那么多的数据科学家在找新工作呢? 在回答这个问题之前,我想声明的是我仍然是一名数据科学家。...我热爱这份工作,我也不想阻止那些想成为数据科学家的人,因为这份工作有趣,刺激而有价值。本文的目的是向你们介绍这份工作背后不那么光鲜的一面。 从我看来,数据科学家主要出于四个原因对他们的工作感到不满。...当中具体有很多原因,在此我不能一一列举,这里只举出我所遇到的情况。 每家公司情况不同,不能一概而言。...我认为我能对全球各地的人们产生巨大的影响,而不仅仅是在公司内部。事实上,如果公司的核心业务不是机器学习(我的上家公司是媒体出版公司),那么你所进行的数据科学工作可能只会带来少量的价值。...决策至上原则 我曾经早上6点起来研究支持向量机。当时我想:“这真的很难,但至少会给我未来的雇主带来价值。“ 但如果我有时光机的话,我会回到过去打消这个念头。 ?
RandomAccess 接口,而 LinkedList 却没有实现 RandomAccess 接口,这是为什么呢?...那么为什么要这么设计呢?既然涉及到二分搜索的遍历操作,那么现在我们来分析一下 ArrayList 和 LinkedList 遍历元素的性能如何?...LinkedList通过for遍历所消耗时间:47 测试LinkedList通过iterator遍历所消耗时间:1 我们来分析一下测试结果:ArrayList 通过 for 遍历比通过 iterator 遍历要稍快...所以说在我们的应用中,要考虑使用 List 接口的哪种实现类,可以更好更高效的满足实际场景需求。所以在这里通过实现 RandomAccess 接口来区分 List 的哪种实现类。...最后总结一句话:实现 RandomAccess 接口的 List 可以通过 for 循环来遍历数据比使用 iterator 遍历数据更高效,未实现 RandomAccess 接口的 List 可以通过
我将个中的基本含义提取了出来,以节省您的时间。 我为什么要在乎区块链? 区块链技术可能会取代掉你现有的工作!不过不是那个意思,而是您的角色可能会转变为带有其它责任的角色。...但是,这可能需要一年甚至几年的时间才能实现。...——以较低的成本实现近实时的资金可用性 税收 税收方面对我们每个人都有影响。...其次,问题不在于如何利用这项技术来取代现有的系统,而是要考虑该如何实现超越传统的替代品。理论上,我们可以利用区块链技术支付每笔交易的联邦和州的税金类似于我们如何支付销售/县/市税。...Peck, IEEE Spectrum :《区块链:他们是如何工作的,他们为什么会改变世界》 Naval Ravikant 推特:在区块链网络上的风暴 技术: 来自UC Berkeley的Max Fang
我曾在我的博客和其他地方多次吐槽 Go,但我也经常在私下里赞美 Go。今天,我想来好好地夸一夸 Go,因为虽然我经常吐槽它,但 Go 仍然是我使用过的最好的编程语言之一,而且我对这门语言充满了敬意。...Go 开发团队的工作态度非常严谨,每个功能都经过了深思熟虑,力求最简单且最完整的解决方案,而且他们小心翼翼地限制了实现范围,紧紧贴合这些解决方案。在这些方面,Go 几乎没有任何失误。...首先,Go 提供了一门语言和标准库,且设计和实现都非常卓越,这本身就是一项了不起的成就; 其次,Go 语言提供了简单且优雅的设计,整个社区都可以利用 Go 语言设计出优秀的软件。...Go 的标准库高效、简洁、正确地实现了丰富的网络协议,并巧妙地结合了协作/抢占式多任务处理模型,因此使用 Go 编写可扩展的互联网软件非常容易。...总的来说,虽然我经常吐槽 Go,但我还是非常欣赏 Go。我认为 Go 是有史以来最好的编程语言之一。
有趣的是,还有人问了我一个“棘手”的问题:为什么下水道井盖是圆的? 最后,我在开发者体验和宣传部门获得了一个职位,成为了一名位于波兰华沙的受众营销经理。...我还和部门主管进行了一对一的会面,他告诉我不能再做一个叛逆者了,并威胁我要更加小心,因为微软给了我一个“金笼子”,如果我出去,我将要面对残酷的现实。 是的,这句话的意思是:你年轻又活泼,这很酷。...但现在你要冷静下来,永远不要想离开,因为外面的世界会把你活活吃掉,好吗? 与此同时,我也分手了,我很痛苦。但不知何故,我的事业似乎在蓬勃发展。...我甚至无法解释的,对我来说去帮助他们,表现出兴趣,假装去支持他们的所作所为有多么可怕。 你可能会想,为什么我不对他们说实话呢?我试过了。...我告诉我的领导,那一年我不想要任何奖金,因为我在雷蒙德工作,对当地没有什么影响,他应该奖励其他人。 我也不应该得到奖金,我再也不能忍受我的工作了,但仍然没有勇气辞职。
ArrayList的父类AbstractList已经实现了Iterator接口,为什么ArrayList还要自己实现Iterator接口呢?...ArrayList实现Iterator,是为了避免ArrayList在迭代过程中数组结构发生变化的而产生的问题,这个处理机制称为Fail-Fast机制,实际是一个乐观锁,实现如下。...如果要解决多线程,要在add()和remove()中加上modCount的效验了。
有一部分小伙伴被这个【轻量级】、【标记】、【语言】等名词直接劝退,还口中言语:【已经学了这么多种语言了】,【我不要再学新语言了】之类的话,我要说的是,你大概误会它了,Markdown 的语法可以说是非常简单...有序列表 3 如果要控制列表的层级,则需要在符号 - 前使用 tab,如下: - 无序列表 1- 无序列表 2 - 无序列表 2.1 - 无序列表 2.2 4)Markdown链接 正常 Markdown...我是微软雅黑我是华文彩云<font color=#0099ff size=7 face...无转义特殊符号无法正常显示** 5)URL 图床工具用来上传图片获取 URL 地址: 开源工具 https://draw.io/ 制作后再导入图片 围脖图床修复计划 Droplr 6)流程图和时序图 实现流程图和时序图的制作...7)复选框 使用 - [ ] 和 - [x] 语法可以创建复选框,实现 todo-list 等功能,如下: [x] 已完成事项 [ ] 待办事项1 [ ] 待办事项2 七、Markdown工具 本地 APP
但还是得静下心来想想为什么不能用float 为什么不能使用float存储金额?...有效部分为规约形式的小数部分,取小数的前23位即10100110011001100110011,最后拼接到一起即01000000110100110011001100110011 到这里已经大致可以知道float为什么不精确了
order2, ""); System.out.println(map); } } 再次运行输出: {Order{orderId=1000000001}=} 我们简单看下源码(为了好理解,我只截取了重点代码...这就是为什么当使用自定义对象作为HashMap的Key时如果重写了equals要同时hashCode。 反过来说:重写了hashCode,equals需要重写吗? 答案是要的,都要重写!...为什么要判断equals呢?因为根据hashCode找到的是一个链表,需要根据equals在链表中找到Key相等的那个值。 什么场景会用到自定义类做key?
领取专属 10元无门槛券
手把手带您无忧上云