Box —— 我的开发助手
为什么要做 Box ? 其实源于开发过程中一些很小的需求,也许并不常见,但是每次碰到都要费一些功夫。所以想着写一个小应用,集成一些常用功能,给开发带来一些便利。下面这些小需求,你也遇到过吗? 看到别人优秀的 UI 界面想借鉴一下如何实现?看到别人的应用实现了自己不知道如何实现的…
什么是TensorFlow?
TensorFlow是什么意思?Tensor?Flow?这篇文章介绍TensorFlow一些最基础的知识。 接着我们来看看什么是Tensor,在官网的文档中,Tensor被翻译成”张量“。其中也给出了一个定义: 不知道你们看完这句话有啥感受,反正我当时就看不懂,啥是”张量“?。…
从零开始学TensorFlow
Python有好多个版本,在Mac中自带的Python版本是2.7,但相对而言比较老了。现在一般用Python3.x了,本次下载的版本是3.5.6 详情可参考如下的链接(总的来说,我根据下面的教程一下子就安装了我想要的Python版本,还是非常不错的。): Java有IDEA神…
走进 JDK 之 Float
如果你对这个答案抱有疑问,那么在阅读 Float 源码之前,我们先来看一下 Float 在内存中是如何表示的。 这样,二进制浮点数 10.11b 就转换成了十进制浮点数 2.75。 7 的二进制表示为 111,* 2^-2 表示将小数点左移两位,得到 1.11。所以,1.75 …
走进 JDK 之 Long
上一篇文章 走进 JDK 之 Integer 解析了 Integer.java,而 Long.java 和 Integer.java 的源码结构几乎是一模一样的,所以这篇文章会写的比较简略,没有细读过 Integer.java 源码的可以先看一下我的上一篇文章。这里就简单介绍一…
走进 JDK 之 Integer
开发的越久,越能体会到基础知识的重要性。抽空捋一下 JDK 源码,权当查漏补缺。读完之后,你会发现 JDK 源码真的会给你很多惊喜。 Integer 是基本类型 int 的包装类,它提供了一些处理 int 数值的方法,String 和 int 相互转换的方法。另外,它还提供了一…
Synchronized锁在Spring事务管理下,为啥还线程不安全?
简单来说:多线程跑一个使用synchronized关键字修饰的方法,方法内操作的是数据库,按正常逻辑应该最终的值是1000,但经过多次测试,结果是低于1000。这是为什么呢? 既然测试出来的结果是低于1000,那说明这段代码不是线程安全的。不是线程安全的,那问题出现在哪呢?众所…
过年了,给亲朋好友解释「啥是程序员」
程序员是一个新兴的职业,我在上大学以前不了解程序员到底是做什么的,对编程语言也一窍不通,也不关心玩过的「游戏」和天天逛的「网站」究竟是怎么来的。 当年加了计算机科学与技术专业的新生群,听着师兄和师姐们在聊天,其中就聊到了「程序员」这份职业。当时脑海里第一反应想象的竟是「复印机、…
一文带你认识Spring事务
Spring事务管理我相信大家都用得很多,但可能仅仅局限于一个@Transactional注解或者在XML中配置事务相关的东西。不管怎么说,日常可能足够我们去用了。但作为程序员,无论是为了面试还是说更好把控自己写的代码,还是应该得多多了解一下Spring事务的一些细节。 我们使…
Docker镜像细节
简单来说:Dockerfile是镜像的源码。 简单来说:通过Dockerfile文件可以知道我们拉取下来的镜像究竟是怎么构建的。 我们知道Docker Hub有很多常用的镜像,比如说Centos。我们去pull一个下来看看Docker中的Centos长啥样: 我们可以发现的是:…
SpringBoot自动配置原理
不知道大家第一次搭SpringBoot环境的时候,有没有觉得非常简单。无须各种的配置文件,无须各种繁杂的pom坐标,一个main方法,就能run起来了。与其他框架整合也贼方便,使用EnableXXXXX注解就可以搞起来了! @SpringBootConfiguration:我们…
Docker安装+HelloWorld+运行Tomcat
上一篇已经讲解了为什么需要Docker?,相信大家已经对Docker有一个简单的认识了。 一般从零学习一门技术(语言),都是从HelloWorld开始的,但这次我偏不。我先来讲讲Docker的相关术语~ 我们安装完镜像,就可以跑起来一个系统(Windows也好、Centos也好…
面试前必须要知道的Redis面试题
现在有个问题,如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。 在前面学习我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设置过期时间,并采用的是惰性删除+定期删除两种策略对过期键删除。Redis对过期键的策略+持久化 如…
为什么需要Docker?
估计大家也可能听过Docker这项技术(在论坛上、招聘技能上、交流群上等等),要是不了解Docker,都不好意思在网上冲浪的时候吹牛逼了。 所以这几天学了一下Docker,总结了Docker入门的相关知识,分享给大家(好让我们一起吹牛逼)。 自己写代码的环境叫做开发环境。 给测…
一分钟学会《模板方法模式》
无论是面试还是个人的提升,设计模式是必学的。今天来讲解模板方法模式~ 大家都知道,我每次写原创技术文章,开头总会有“只有光头才能变强”。我当然不可能每次写文章的时候都去复制这句话(因为这样太麻烦了)。 前言和最后都是固定下来的,至于第一点和第二点就得看是写什么文章,写不同的文章…
2018再见|2019你好
在2018年年初,我就给自己定下一个目标:“在今年暑假可以找到一份实习,如果实习单位就不错就一直做下去,我不希望爸妈担心我工作的事“。对的,是一个非常简单明确的目标。 所以我在年初的时候就"一早早"开始准备面试题了。当时是把自己写过的笔记复习一遍,再根据不同的技术类型来搜搜相关…
三分钟学会《门面模式》
无论是面试还是个人的提升,设计模式是必学的。今天来讲解门面(外观)模式~ 不知道大家有没有了解过门面模式,我去翻了一下《设计模式之禅》,发现非常简单,所以在这给大家分享一下。 一个电源总开关可以控制所有电器的打开或关闭状态。 无论是空调、冰箱、电视、电脑、风扇等等,只要是电器都…
策略模式原来这么简单!
无论是面试还是个人的提升,设计模式是必学的。今天来讲解策略模式~ 我一次听到策略模式这个词,是在我初学JDBC的时候。不知道大家有没有用过DBUtils这个组件。当时初学跟着视频学习,方立勋老师首先是让我们先自己封装一下JDBC的一些常用的操作(实际上就是模仿DBUtils这个…
Android逆向笔记 —— AndroidManifest.xml 文件格式解析
做过 Android 开发的同学对 AndroidManifest.xml 文件肯定很熟悉,我们也叫它 清单文件 ,之所以称之为清单文件,因为它的确是应用的 “清单”。它包含了应用的包名,版本号,权限信息,所有的四大组件等信息。在逆向的过程中,通过 apk 的清单文件,我们可以…
外行人都能看得懂的机器学习,错过了血亏!
没错,这篇主要跟大家一起入门机器学习。作为一个开发者,”人工智能“肯定是听过的。作为一个开发面试者,肯定也会见过”机器学习“这个岗位(反正我校招的时候就遇到过)。 首先我们来简单看看人工智能、深度学习、机器学习这些术语和它们之间的关系究竟是怎么样的。 不知道听到“人工智能”大家…