25 篇 Java 入门技术博文,送给正在自学的你
很多大学生或者正在自学的程序员问我:“二哥,能否提供一个 Java 入门的学习路线?”刚好我之前花了 7 周多的时间写了 25 篇 Java 入门的技术博文,于是我想不妨把这些整理成一个系列分享出来,给大家作为一个参考。 先来通过思维导图看一下这 25 篇 Java 入门技术博…
如果有人再问你 Java 的反射,把这篇文章扔给他
在 Java 中,并不是所有的类型信息都能在编译阶段明确,有一些类型信息需要在运行时才能确定,这种机制被称为 RTTI,英文全称为 Run-Time Type Identification,即运行时类型识别,有没有一点“知行合一”的味道?运行时类型识别主要由Class类实现。 …
Node.js 中实践 Redis Lua 脚本
Lua 是一种轻量小巧的脚本语言,用标准 C 语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。由于 Lua 语言具备原子性,其在执行的过程中不会被其它程序打断,对于并发下数据的一致性是有帮助的。 Redis 支持两种运行 Lu…
Java异常处理:给程序罩一层保险
本着负责任的态度,我们程序员在写代码的时候,都非常的严谨。但程序在运行的时候,往往会出现一些令人意想不到的错误,导致那些不被期望的事件发生,最终,程序没有按照我们的预期正常地执行下去——异常发生了,是任程序自生自灭,还是将错误输出给用户? Java为此提供的解决方案是——异常处…
Java泛型的重要目的:别让猫别站在狗队里
泛型,有人拆解这个词为“参数化类型”。这种拆解其实也不好理解,还是按照沉默王二的意思来理解一下吧。 这么一说,你是不是感觉不那么抽象了?泛型其实就是在定义类、接口、方法的时候不局限地指定某一种特定类型,而让类、接口、方法的调用者来决定具体使用哪一种类型的参数。 就好比,玻璃杯的…
Java 集合类入门篇
开门见山地说吧,Java 提供了一套完整的集合类(也可以叫做容器类)来管理一组长度可变的对象(也就是集合的元素),其中常见的类型包括 List、Set、Queue 和 Map。从我个人的编程经验来看,List 的实现类 ArrayList 和 Map 的实现类 HashMap …
Java 数组,看这一篇就够了
在 Java 泛型出现之前,只有数组可以用来存储指定类型的对象;在自动装箱机制出现之前,只有数组可以用来存储基本数据类型;也就是说,在泛型和自动装箱机制出现之前,数组在 Java 当中的分量举足轻重。 况且数组还是一种效率最高的存储和随机访问对象序列的方式,但遗憾的是,数组的长…
GitHub年度报告出炉:中国开源贡献仅次美国、Python成第二热门语言
据报告介绍,当前使用 Github 的开发者数量超过 4000 万,大部分来自美国之外(80%)。过去一年时间,约有 1000 万新的开发者用户加入,超过 44% 用户在 2019 年创建了自己的首个 repo,130 万开发者首次为开源项目做贡献。 学校中的学生正在成长为下一…
通过 Django Pagination 实现简单分页
当博客上发布的文章越来越多时,通常需要进行分页显示,以免所有的文章都堆积在一个页面,影响用户体验。 Django 内置的 Pagination 能够帮助我们实现简单的分页功能,在上一篇教程中我们使用脚本批量生成了几百篇博客文章,正好用于测试分页效果。 下面的代码摘自 Djang…
HBASE的列式存储是啥?
行式存储传统的数据库是关系型的,且是按行来存储的。如下图:其中只有张三把一行数据填满了,李四王五赵六的行都没有填满。因为这里的行结构是固定的,每一行都一样,即使你不用,也必须空到那里,而不能没有。来一张形象的图:不管你坐或不坐,座位都在那里,不离不弃。列式存储为了与传统的区别,新型数据库叫做非关系型
MySQL索引为什么要用B+树实现?
前言在从一堆数据中查找指定的数据时,我们常用的数据结构是哈希表和二叉查找树,表本质上就是一堆数据的集合,所以MySQL数据库用了B+树和哈希表来实现索引B+树是通过二叉查找树,再由平衡二叉树,B树(又名B-树)演化而来的,B+树中的B不是代表二叉(binary),而是代表平衡(balance),因为
Java 流程控制语句
Java 中涉及控制执行流程的关键字有 if-else、while-do-while、for、switch、return、break、continue 等等;我们来挑几个来说道说道。 稍微解释一下:第一次循环之前要进行变量初始化 int i = 0,随后进行条件测试 i < s…
入门 Node.js Net 模块构建 TCP 网络服务
想做一个简单的 Web API,这个时候就需要搭建一个 Web 服务器,在 ASP.NET 中需要 IIS 来搭建服务器,PHP 中需要借助 Apache/Nginx 来实现,对于新手在还没开始之前看到这么多步骤,也许就要放弃了,但是在 Node.js 中开启一个 Web 服务…
Node.js v13.1.0 发布
Node.js v13.1.0(Current)于 2019-11-06 发布,以下为一些显著的的变化。 添加了一个新标志(--trace-uncaught),该标志使 Node.js 在引发未捕获的异常时打印堆栈跟踪而不是在创建 Error 对象时。 默认情况下禁用此功能,因…
GAN:「太难的部分我就不生成了,在下告退」
选自 arXiv,作者:David Bau, Jun-Yan Zhu等,机器之心编译,参与:Panda W。 生成对抗网络(GAN)在合成逼真的图像方面能力出色,但我们不禁要问:怎样才能知道 GAN 无法生成的东西呢?模式丢失或模式崩塌被视为 GAN 所面临的最大难题之一,此时…
最全的 pip 使用指南,50% 你可能没用过
所有的 Python 开发者都清楚,Python 之所以如此受欢迎,能够在众多高级语言中,脱颖而出,除了语法简单,上手容易之外,更多还要归功于 Python 生态的完备,有数以万计的 Python 爱好者愿意以 Python 为基础封装出各种有利于开发的第三方工具包。 这才使用…
Redis持久化应该怎么配置?
正文众所周知,Redis是一个内存数据库。但它与其它内存数据库(如memcache)等有一个很大的区别,就是Redis可以持久化到磁盘。有了持久化方案,Redis就可以对数据进行备份、恢复、复制。Redis提供了两种持久化方案:RDB和AOF。在Redis4.0中,提供了一个新特性:两者的混合持久化
一个命令,让你的网站支持https
介绍最近写小程序,但是小程序的接口得通过https的形式访问,所以用nginx转发了一下。想到Google搜索引擎会提升https网站的权重,索性把我的网站改造成同时支持http和https了。看效果http形式访问https形式访问我是用LET'SENCRYPT来生成证书的,这个应该是用的最多的一
吃人的那些 Java 名词:对象、引用、堆、栈
作为一个有着 8 年 Java 编程经验的 IT 老兵,说起来很惭愧,我被 Java 当中的四五个名词一直困扰着:对象、引用、堆、栈、堆栈(栈可同堆栈,因此是四个名词,也是五个名词)。每次我看到这几个名词,都隐隐约约觉得自己在被一只无形的大口慢慢地吞噬,只剩下满地的衣服碎屑(为…
Java 并发编程(四):如何保证对象的线程安全性
本篇来谈谈 Java 并发编程:如何保证对象的线程安全性。 先让我吐一句肺腑之言吧,不说出来会憋出内伤的。《Java 并发编程实战》这本书太特么枯燥了,尽管它被奉为并发编程当中的经典之作,但我还是忍不住。因为第四章“对象的组合”我整整啃了两周的时间,才啃出来点肉丝。 读者朋友们…