00 开发环境搭建 我们来着手在本地计算机环境安装 TensorFlow 最新版本框架。TensorFlow 框架支持多种常见的操作系统,如 Windows 10、Ubuntu 18.04、Mac OS 等等,同时也支持运行在 NVIDIA 显卡上的 GPU 版本和仅适用 CPU 完成计算的 CPU 版本。我们以最为常见 Windows 10 系统,NVIDIA GPU,Python 语言环境为例,介绍...
00 PyTorch 开发环境搭建 我们来着手在本地计算机环境安装 TensorFlow 最新版本框架。TensorFlow 框架支持多种常见的操作系统,如 Windows 10、Ubuntu 18.04、Mac OS 等等,同时也支持运行在 NVIDIA 显卡上的 GPU 版本和仅适用 CPU 完成计算的 CPU 版本。我们以最为常见 Windows 10 系统,NVIDIA GPU,Python 语言环境为例,介绍...
Java 面试题 hashcode相等两个类一定相等吗?equals呢?相反呢?能否介绍一下集合框架?HashMap、HashTable底层实现什么区别?HashTable和ConcurrentHashTable呢?HashMap和TreeMap什么区别?低层数据结构是什么?线程池用过吗?都有什么参数?底层如何实现的?Sychonized和Lock什么区别?Sychonize 什么...
HashMap 源码深入 一提到HashMap我们再熟悉不过,HashMap也是我经常使用的一种容器,常用来存储一些属性值。HashMap常作为局部变量,或者并发性比较小的环境使用,因为HashMap是非线程安全的。学了这么久的Java,只是知道如何使用并不知道其内部原理,只有了解内部编码和实现方式,才能写出高效的代码和功能。那么接下来我们就进一步学习HashMap的源码。。。。。 一、构造函数 ...
CentOS下安装Redis 一、了解一下Redis Redis是一个开源、支持网络、基于内存、键值对的Key-Value数据库,使用ANSI C编码,并提供多种语言的API,它上手非常地简单,只需要几分钟我们就能完成安装工作,并让它开始与应用程序集成协作。只需肯投入一小部分时间与精力,大家就能获得立竿见影且效果极佳的性能提升,可以说它是一个非常简单缓存解决方案。它支持存储的Value值类型不仅限于字符串,...
JavaMail 实现邮件发送与收取 已使用 163 邮箱测试通过,且支持 SSL 连接。发送邮件示例:Jack 发送一封邮件给 Rose。 public class SendMail { public static void main(String[] args) { boolean isSSL = true; String host = "smtp.163...
100个高质量Java开发者博客 从事开发就要有一个积极进取的心,走上了技术这条路你就要认为这是不归的,既然这样那就大胆的继续走下去反正回不了头了。向大牛学习,向神一样的存在膜拜,用一个虔诚的心拥抱技术。ImportNew注:原文中还没有100个。作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表。欢迎你也参与推荐优质的Java开发博客。 本文的主要目的是收集全球范围内100个高质量Java...
轻量级分布式RPC框架 RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。 RPC可基于HTTP或TCP协议,Web Service就是基于HTTP协议的RPC,它具有良好的跨平台性,但其性能却不如基于TCP协议的 RPC。会两方面会直接影响RPC的性能,一是传输方式,二是序列化。 众所周知,TCP是传输层协议,HT...
负载均衡层设计方案(3)--Nginx进阶 上篇文章《负载均衡层设计方案(2)--Nginx安装》中,我们介绍了Nginx的核心设计思想、基本安装和使用。本来准备继续介绍Nginx的几个使用特性,但是奈何博文篇幅太长,只有将一篇文章拆成两篇。本文我们将承接上文,继续讲解Nginx的实用特性,包括gzip功能、rewirte功能和一个第三方的节点监测模块。本文我们还将提到Taobao团队对Nginx的深度改造Tengine。...
负载均衡层设计方案(1)--负载场景和解决方式 从本片文章开始,我们将首先详细讲解负载均衡层的架构原理和选型场景。 1、不同的负载场景 我们知道负载均衡层的作用是“将来源于外部的处理压力通过某种规律/手段分摊到内部各个处理节点上”,那么不同的业务场景需要的负载均衡方式又是不一样的,架构师还要考虑架构方案的成本、可扩展性、运维难易度等问题。下面我们先介绍几种典型的不同业务场景,大家也可以先想一下如果是您,会怎么架设这些场...
负载均衡层设计方案(2)--Nginx安装 前一篇文章中我们描述了要搭设负载均衡层的业务场景和负载均衡层搭建和扩展思路。从这篇文章开始的后几篇文章,我们将详细介绍Nginx、LVS和Nginx+Keepalived、LVS+Keepalived和LVS+Nginx+Keepalived的安装细节,以及它们的性能优化方式。 Nginx和LVS都是可以独立工作的,Keepalived作为检测机制,不但可以和Nginx、LVS...
InnoDB存储引擎redo和undo log 1、Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有...
MySQL的Innodb引擎中的MVCC 一、MVCC简介 MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能 读锁:也叫共享锁、S锁,若事务T对数据对象A加上S锁,则事...
00 设计模式的准则 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 2、里氏代换原则(Liskov Substitution Princi...
Java开发必知的代码片段 Java开发过程中看似很简单,但是往往存在一些需要注意的细节,掌握这些简单的技巧和代码块,就能让你在编码上面高人一筹。那就让我来学习一下这些必须知道的代码片段,下面我们进入正题。 实现equals()class Person { String name; int birthYear; byte[] raw; public bool...
MySQL的事务隔离级别 一、锁的种类 MySQL中锁的种类很多,有常见的表锁和行锁,也有新加入的Metadata Lock等等。表锁是对一整张表加锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做ddl处理时使用。行锁则是锁住数据行,这种加锁方法比较复杂,但是由于只锁住有限的数据,对于其它数据不加限制,所以并发能力强,MySQL一般都是用行锁来处理并发事务。 二、锁粒度...
MySQL的乐观锁 一、乐观锁介绍 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检查,乐观锁适用于大量读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。类似SVN 二、实现方式 1、使用数据版本(Ve...
MySQL的悲观锁 关于mysql中的锁 在并发环境下,有可能会出现脏读(Dirty Read)、不可重复读(Unrepeatable Read)、 幻读(Phantom Read)、更新丢失(Lost update)等情况,所以mysql引入了很多锁的概念。MySQL InnoDB对数据行的锁定类型一共有四种:共享锁(读锁,S锁)、排他锁(写锁,X锁)、意向共享锁(IS锁)和意向排他锁(IX锁)...
Windows下MySQL解压安装 环境准备 1. 下载安装包 到Mysql官网下载想要的版本,我们下载的是mysql- 5.6.38-winx64 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是:"D:\Program Files\MySQL\mysql-5.6.38-winx64" 将解压目录下默认文件 my-default.ini 拷贝一份...
01 UML类图几种关系的总结 在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。 1.泛化(Generalization) 【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种;...