自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (6)
  • 收藏
  • 关注

转载 字符编码问题

字符编码问题以下是从廖雪峰的官方网站学习过程中发现其对字符编码问题有较易懂的解释,特转载至此与大家分享转载地址:廖雪峰的官方网站======================================================================因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个...

2019-08-02 14:15:03 174

原创 linux下使用自带mail发送邮件

安装软件ubuntu: sudo apt-get install heirloom-mailxcentos: yum -y install mail修改配置文件#ubuntu 为 /etc/s-nail.rc centos 为 /etc/mail.rc添加以下内容:set from="[email protected]" set smtp=smtp.163.comset smtp...

2019-06-08 12:52:47 520

原创 Ubuntu 16.04 配置局域网静态ip

Ubuntu 16.04 配置局域网静态ip查看将要配置的ip的详细信息ifconfig这里wlp3s0是作者将要配置的ip标识,每个人的标识可能都不一样当你查看的时候,很可能出现不止一个ip信息,你需要选择你要配置的网络。那怎么找到你要配置的ip信息呢?方法一:假设我要将连接到WiFi为a1的网络配置成静态ip,先连上WiFi a1,通过命令‘ifconfig’查看所有ip信息...

2019-06-04 14:59:54 2267

原创 从Web技术演化角度理解Web服务器、应用服务器、Servlet、Servlet容器、Web容器等概念

从Web技术演化角度理解Web服务器、应用服务器、Servlet、Servlet容器、Web容器等概念文章目录从Web技术演化角度理解Web服务器、应用服务器、Servlet、Servlet容器、Web容器等概念Web服务器Web 技术演化应用服务器诞生Web服务器&应用服务器Servlet和Servlet容器诞生Servlet与CGI程序相比,Servlet的优点Servlet容器(S...

2019-04-26 17:43:03 713

原创 第六届蓝桥杯大赛个人赛省赛Java B组真题

文章目录第六届蓝桥杯大赛个人赛省赛Java B组真题1. 三角形面积(结果填空)2. 立方自变身(结果填空)3. 三羊献瑞(结果填空)4. 循环节长度(代码填空)5. 九数组分数(代码填空)6. 加法变乘法(结果填空)7. 牌型种数第六届蓝桥杯大赛个人赛省赛Java B组真题1. 三角形面积(结果填空)如图所示所示。图中的所有小方格面积都是1。那么,图中的三角形面积应该是多少呢?请...

2019-02-08 22:51:56 590

原创 2016年第七届蓝桥杯java B组省赛试题

目录2016年第七届蓝桥杯java B组省赛试题1. 煤球数目(结果填空)2. 生日蜡烛(结果填空)3. 凑算式(结果填空)4. 分小组(代码填空)5. 抽签(代码填空)6. 方格填数(结果填空)2016年第七届蓝桥杯java B组省赛试题1. 煤球数目(结果填空)有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(...

2019-02-03 13:19:08 5247

原创 取球博弈问题(第七届蓝桥杯个人省赛JavaB组真题)

取球博弈问题 (第七届蓝桥杯个人省赛JavaB组真题)题目描述:思路:代码实现:无记忆深度优先搜索代码实现加上记忆化保存的代码实现题目描述:取球博弈两个人玩取球的游戏。一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。如果无法继续取球,则游戏结束。此时,持有奇数个球的一方获胜。如果两人都是奇数,则为平局。假设双方都采用最聪明的取法,第一个取球的人...

2019-01-30 15:53:41 1297 1

原创 初次使用GitLab—idea中GitLab项目导入导出(详细)

开始在命令行中使用Git打开shell选择适用于您操作系统的shellMac OSX的TerminalWindows上的GitBashLinux上的Linux Terminal下载后打开就ok啦~接下来就通过命令行进行如下操作↓↓↓检查Git是否已经安装Mac和Linux上通常会预装Git。键入如下命令:git --version该命令会输出您计算机上所安装的Git版...

2018-11-23 21:42:21 26786

原创 通过链接获取云服务器图片资源-----搭建简易资源服务器

应用场景举例:       开发一款应用,在进行用户注册的时候需要上传头像,我们作为后台工程师要实现这个功能,应当将前端上传的的头像图片存放到服务器的某个文件夹(假如是/images)里。      如果在用户登录后我们需要显示该用户的头像,这时候前端就要向后台请求图片资源。对于刚学web编程的小朋友来说可能只尝试过通过jsp给前端页面提供工程下的图片资源。在前后端分离的情况下,通常我...

2018-11-22 08:55:55 2610 1

《计算机是怎样跑起来的》

内容简介 · · · · · · 本书倡导在计算机迅速发展、技术不断革新的今天,回归到计算机的基础知识上。通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的最新技术时,能够迅速掌握其要点并灵活运用。 本书以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及SE 的相关知识。 图文并茂,通俗易懂,非常适合计算机爱好者和相关从业人员阅读。 作者简介 · · · · · · 作者简介: 矢泽久雄 YAZAWA股份有限公司董事长兼总经理。GrapeCity信息技术集团顾问。电脑作家之友会会长。 曾在某大型电子公司从事过电脑生产,在Software House做过程序员,现主要从事软件开发工作。工作之余笔耕不辍,从电路到编程语言均有涉及。代表作有《程序是怎样跑起来的》《使用C语言学习程序设计的基础》《征服C++类和继承》等。自称软件艺人。 译者简介: 胡屹 多年从事Web开发工作。热爱编程,关注设计模式,致力于提升软件开发的质量。曾获得SCJP和PHP ZCE证书。 目录 · · · · · · 第1章 计算机的三大原则  1 1.1 计算机的三个根本性基础  3 1.2 输入、运算、输出是硬件的基础  4 1.3 软件是指令和数据的集合  6 1.4 对计算机来说什么都是数字  8 1.5 只要理解了三大原则,即使遇到难懂的最新技术,也能轻松应对  9 1.6 为了贴近人类,计算机在不断地进化  10 1.7 稍微预习一下第2章  13 第2章 试着制造一台计算机吧  15 2.1 制作微型计算机所必需的元件  17 2.2 电路图的读法  21 2.3 连接电源、数据和地址总线  23 2.4 连接I/O  26 2.5 连接时钟信号  27 2.6 连接用于区分读写对象是内存还是I/O的引脚  28 2.7 连接剩余的控制引脚  29 2.8 连接外部设备,通过DMA输入程序  34 2.9 连接用于输入输出的外部设备  35 2.10 输入测试程序并进行调试  36 第3章 体验一次手工汇编  39 3.1 从程序员的角度看硬件  41 3.2 机器语言和汇编语言  44 3.3 Z80 CPU的寄存器结构  49 3.4 追踪程序的运行过程  52 3.5 尝试手工汇编  54 3.6 尝试估算程序的执行时间  57 第4章 程序像河水一样流动着  59 4.1 程序的流程分为三种  61 4.2 用流程图表示程序的流程  65 4.3 表示循环程序块的“帽子”和“短裤”  68 4.4 结构化程序设计  72 4.5 画流程图来思考算法  75 4.6 特殊的程序流程——中断处理  77 4.7 特殊的程序流程——事件驱动  78 COLUMN 来自企业培训现场  电阻颜色代码的谐音助记口诀  82 第5章 与算法成为好朋友的七个要点  85 5.1 算法是程序设计的“熟语”  87 5.2 要点1:算法中解决问题的步骤是明确且有限的  88 5.3 要点2:计算机不靠直觉而是机械地解决问题  89 5.4 要点3:了解并应用典型算法  91 5.5 要点4:利用计算机的处理速度  92 5.6 要点5:使用编程技巧提升程序执行速度  95 5.7 要点6:找出数字间的规律  99 5.8 要点7:先在纸上考虑算法  101 第6章 与数据结构成为好朋友的七个要点  103 6.1 要点1:了解内存和变量的关系  105 6.2 要点2:了解作为数据结构基础的数组  108 6.3 要点3:了解数组的应用——作为典型算法的数据结构  109 6.4 要点4:了解并掌握典型数据结构的类型和概念  111 6.5 要点5:了解栈和队列的实现方法  114 6.6 要点6:了解结构体的组成  118 6.7 要点7:了解链表和二叉树的实现方法  120 第7章 成为会使用面向对象编程的程序员吧  125 7.1 面向对象编程  127 7.2 对OOP的多种理解方法  128 7.3 观点1:面向对象编程通过把组件拼装到一起构建程序  130 7.4 观点2:面向对象编程能够提升程序的开发效率和可维护性  132 7.5 观点3:面向对象编程是适用于大型程序的开发方法  134 7.6 观点4:面向对象编程就是在为现实世界建模  134 7.7 观点5:面向对象编程可以借助UML设计程序  135 7.8 观点6:面向对象编程通过在对象间传递消息驱动程序  137 7.9 观点7:在面向对象编程中使用继承、封装和多态  140 7.10 类和对象的区别  141 7.11 类有三种使用方法  143 7.12 在Java和.NET中有关OOP的知识不能少  145 第8章 一用就会的数据库  147 8.1 数据库是数据的基地  149 8.2 数据文件、DBMS和数据库应用程序  151 8.3 设计数据库  154 8.4 通过拆表和整理数据实现规范化  157 8.5 用主键和外键在表间建立关系  159 8.6 索引能够提升数据的检索速度  162 8.7 设计用户界面  164 8.8 向DBMS发送CRUD操作的SQL语句  165 8.9 使用数据对象向DBMS发送SQL语句  167 8.10 事务控制也可以交给DBMS处理  170 COLUMN 来自企业培训现场  培训新人编程时推荐使用什么编程语言?  172 第9章 通过七个简单的实验理解TCP/IP网络  175 9.1 实验环境  177 9.2 实验1:查看网卡的MAC地址  179 9.3 实验2:查看计算机的IP地址  182 9.4 实验3:了解DHCP服务器的作用  184 9.5 实验4:路由器是数据传输过程中的指路人  186 9.6 实验5:查看路由器的路由过程  188 9.7 实验6:DNS服务器可以把主机名解析成IP地址  190 9.8 实验7:查看IP地址和MAC地址的对应关系  192 9.9 TCP的作用及TCP/IP网络的层级模型  193 第10章 试着加密数据吧  197 10.1 先来明确一下什么是加密  199 10.2 错开字符编码的加密方式  201 10.3 密钥越长,解密越困难  205 10.4 适用于互联网的公开密钥加密技术  208 10.5 数字签名可以证明数据的发送者是谁  211 第11章 XML究竟是什么  215 11.1 XML是标记语言  217 11.2 XML是可扩展的语言  219 11.3 XML是元语言  220 11.4 XML可以为信息赋予意义  224 11.5 XML是通用的数据交换格式  227 11.6 可以为XML标签设定命名空间  230 11.7 可以严格地定义  XML的文档结构  232 11.8 用于解析XML的组件  233 11.9 XML可用于各种各样的领域  235 第12章 SE负责监管计算机系统的构建  239 12.1 SE是自始至终参与系统开发过程的工程师  241 12.2 SE未必担任过程序员  243 12.3 系统开发过程的规范  243 12.4 各个阶段的工作内容及文档  245 12.5 所谓设计,就是拆解  247 12.6 面向对象法简化了系统维护工作  249 12.7 技术能力和沟通能力  250 12.8 IT不等于引进计算机  252 12.9 计算机系统的成功与失败  253 12.10 大幅提升设备利用率的多机备份  255

2019-04-02

《大型网站技术架构:核心原理与案例分析》(完整版)

《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。 《大型网站技术架构:核心原理与案例分析》不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经理、项目经理、测试运维人员等了解网站技术架构的基础概念;还可供包括企业系统开发人员在内的各类软件开发从业人员借鉴,了解大型网站的解决方案和开发理念。 第1篇 概述 1 大型网站架构演化 2 1.1 大型网站软件系统的特点 3 1.2 大型网站架构演化发展历程 4 1.2.1 初始阶段的网站架构 4 1.2.2 应用服务和数据服务分离 4 1.2.3 使用缓存改善网站性能 5 1.2.4 使用应用服务器集群改善网站的并发处理能力 6 1.2.5 数据库读写分离 7 1.2.6 使用反向代理和CDN加速网站响应 8 1.2.7 使用分布式文件系统和分布式数据库系统 9 1.2.8 使用NoSQL和搜索引擎 10 1.2.9 业务拆分 11 1.2.10 分布式服务 11 1.3 大型网站架构演化的价值观 13 1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对 13 1.3.2 驱动大型网站技术发展的主要力量是网站的业务发展 13 1.4 网站架构设计误区 14 1.4.1 一味追随大公司的解决方案 14 1.4.2 为了技术而技术 14 1.4.3 企图用技术解决所有问题 14 1.5 小结 15 2 大型网站架构模式 16 2.1 网站架构模式 16 2.1.1 分层 17 2.1.2 分割 18 2.1.3 分布式 18 2.1.4 集群 19 2.1.5 缓存 20 2.1.6 异步 20 2.1.7 冗余 21 2.1.8 自动化 22 2.1.9 安全 23 2.2 架构模式在新浪微博的应用 23 2.3 小结 25 3 大型网站核心架构要素 26 3.1 性能 27 3.2 可用性 28 3.3 伸缩性 29 3.4 扩展性 30 3.5 安全性 30 3.6 小结 31 第2篇 架构 4 瞬时响应:网站的高性能架构 34 4.1 网站性能测试 35 4.1.1 不同视角下的网站性能 35 4.1.2 性能测试指标 36 4.1.3 性能测试方法 39 4.1.4 性能测试报告 41 4.1.5 性能优化策略 41 4.2 Web前端性能优化 42 4.2.1 浏览器访问优化 42 4.2.2 CDN加速 43 4.2.3 反向代理 44 4.3 应用服务器性能优化 45 4.3.1 分布式缓存 45 4.3.2 异步操作 52 4.3.3 使用集群 53 4.3.4 代码优化 54 4.4 存储性能优化 58 4.4.1 机械硬盘vs. 固态硬盘 58 4.4.2 B+树vs. LSM树 59 4.4.3 RAID vs. HDFS 61 4.5 小结 64 5 万无一失:网站的高可用架构 66 5.1 网站可用性的度量与考核 67 5.1.1 网站可用性度量 67 5.1.2 网站可用性考核 67 5.2 高可用的网站架构 69 5.3 高可用的应用 71 5.3.1 通过负载均衡进行无状态服务的失效转移 72 5.3.2 应用服务器集群的Session管理 73 5.4 高可用的服务 76 5.5 高可用的数据 78 5.5.1 CAP原理 79 5.5.2 数据备份 82 5.5.3 失效转移 84 5.6 高可用网站的软件质量保证 85 5.6.1 网站发布 85 5.6.2 自动化测试 86 5.6.3 预发布验证 87 5.6.4 代码控制 88 5.6.5 自动化发布 90 5.6.6 灰度发布 91 5.7 网站运行监控 91 5.7.1 监控数据采集 92 5.7.2 监控管理 93 5.8 小结 94 6 永无止境:网站的伸缩性架构 95 6.1 网站架构的伸缩性设计 97 6.1.1 不同功能进行物理分离实现伸缩 97 6.1.2 单一功能通过集群规模实现伸缩 98 6.2 应用服务器集群的伸缩性设计 99 6.2.1 HTTP重定向负载均衡 100 6.2.2 DNS域名解析负载均衡 101 6.2.3 反向代理负载均衡 102 6.2.4 IP负载均衡 103 6.2.5 数据链路层负载均衡 104 6.2.6 负载均衡算法 105 6.3 分布式缓存集群的伸缩性设计 106 6.3.1 Memcached分布式缓存集群的访问模型 107 6.3.2 Memcached分布式缓存集群的伸缩性挑战 107 6.3.3 分布式缓存的一致性Hash算法 109 6.4 数据存储服务器集群的伸缩性设计 112 6.4.1 关系数据库集群的伸缩性设计 113 6.4.2 NoSQL数据库的伸缩性设计 117 6.5 小结 119 7 随需应变:网站的可扩展架构 121 7.1 构建可扩展的网站架构 122 7.2 利用分布式消息队列降低系统耦合性 123 7.2.1 事件驱动架构 123 7.2.2 分布式消息队列 124 7.3 利用分布式服务打造可复用的业务平台 126 7.3.1 Web Service与企业级分布式服务 128 7.3.2 大型网站分布式服务的需求与特点 129 7.3.3 分布式服务框架设计 130 7.4 可扩展的数据结构 131 7.5 利用开放平台建设网站生态圈 132 7.6 小结 134 8 固若金汤:网站的安全架构 135 8.1 道高一尺魔高一丈的网站应用攻击与防御 136 8.1.1 XSS攻击 136 8.1.2 注入攻击 138 8.1.3 CSRF攻击 139 8.1.4 其他攻击和漏洞 140 8.1.5 Web应用防火墙 141 8.1.6 网站安全漏洞扫描 142 8.2 信息加密技术及密钥安全管理 142 8.2.1 单向散列加密 143 8.2.2 对称加密 144 8.2.3 非对称加密 144 8.2.4 密钥安全管理 145 8.3 信息过滤与反垃圾 146 8.3.1 文本匹配 147 8.3.2 分类算法 148 8.3.3 黑名单 149 8.4 电子商务风险控制 150 8.4.1 风险 151 8.4.2 风控 151 8.5 小结 153 第3篇 案例 9 淘宝网的架构演化案例分析 156 9.1 淘宝网的业务发展历程 157 9.2 淘宝网技术架构演化 158 9.3 小结 162 10 维基百科的高性能架构设计分析 163 10.1 Wikipedia网站整体架构 163 10.2 Wikipedia性能优化策略 165 10.2.1 Wikipedia前端性能优化 165 10.2.2 Wikipedia服务端性能优化 166 10.2.3 Wikipedia后端性能优化 167 11 海量分布式存储系统Doris的高可用架构设计分析 169 11.1 分布式存储系统的高可用架构 170 11.2 不同故障情况下的高可用解决方案 171 11.2.1 分布式存储系统的故障分类 172 11.2.2 正常情况下系统访问结构 172 11.2.3 瞬时故障的高可用解决方案 173 11.2.4 临时故障的高可用解决方案 174 11.2.5 永久故障的高可用解决方案 175 12 网购秒杀系统架构设计案例分析 176 12.1 秒杀活动的技术挑战 177 12.2 秒杀系统的应对策略 177 12.3 秒杀系统架构设计 178 12.4 小结 182 13 大型网站典型故障案例分析 183 13.1 写日志也会引发故障 184 13.2 高并发访问数据库引发的故障 184 13.3 高并发情况下锁引发的故障 185 13.4 缓存引发的故障 185 13.5 应用启动不同步引发的故障 186 13.6 大文件读写独占磁盘引发的故障 186 13.7 滥用生产环境引发的故障 187 13.8 不规范的流程引发的故障 187 13.9 不好的编程习惯引发的故障 188 13.10 小结 188 第4篇 架构师 14 架构师领导艺术 190 14.1 关注人而不是产品 191 14.2 发掘人的优秀 191 14.3 共享美好蓝图 192 14.4 共同参与架构 193 14.5 学会妥协 194 14.6 成就他人 194 15 网站架构师职场攻略 196 15.1 发现问题,寻找突破 197 15.2 提出问题,寻求支持 199 15.3 解决问题,达成绩效 201 16 漫话网站架构师 203 16.1 按作用划分架构师 203 16.2 按效果划分架构师 204 16.3 按职责角色划分架构师 205 16.4 按关注层次划分架构师 205 16.5 按口碑划分架构师 206 16.6 非主流方式划分架构师 207 附录A 大型网站架构技术一览 208 附录B Web开发技术发展历程 215 后记 218

2019-04-02

《轻量级微服务架构》(上、下册)

本系列从开发与运维两方面分别对微服务架构的实践过程进行描述,全套分为上下两册,上册偏重于开发,下册偏重于运维。在上册中读者会学习到微服务架构所需的开发技能,包括使用SpringBoot搭建微服务开发框架,使用Node.js搭建微服务网关,使用ZooKeeper实现微服务注册与发现,使用Docker封装微服务,使用Jenkins部署微服务。通过阅读上册,读者可轻松搭建一款轻量级微服务架构。 《轻量级微服务架构(上册)》适合对微服务实践感兴趣,以及想成为微服务架构师的人员阅读。 《架构探险:轻量级微服务架构(下册)》将重点关注微服务基础设施方面,其中大部分内容涉及微服务运维相关技术。《架构探险:轻量级微服务架构(下册)》以实践的角度进行编写,读者首先将学习轻量级微服务架构的全景视图,随后的各个章节将围绕微服务的日志、监控、通信、解耦、测试、配置六大方面进行展开。读者可亲自动手,从零开始搭建轻量级微服务架构,充分享受架构探险的乐趣。 《架构探险:轻量级微服务架构(下册)》适合对微服务实践感兴趣,以及想成为微服务架构师的人员阅读。

2019-04-02

《Java多线程编程核心技术》

资深Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著 结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等最难突破的核心技术与应用实践 Java多线程无处不在,如服务器、数据库、应用。多线程可以有效提升计算和处理效率,大大提升吞吐量和可伸缩性,深得广大程序员和公司的青睐。很多人学习完JavaSE/JavaEE之后想往更深入的技术进行探索,比如对大数据、分布式、高并发类的专题进行攻克时,立即遇到针对java.lang包中线程类的学习,但线程类的学习并不像JDBC一样简单,学习曲线陡峭,多弯路与“坑”。要学习这些热点技术,Java多线程技术避无可避。而本书将引领读者拿下该“技术高地”。 本书有以下特点: 不留遗漏——全面覆盖Java语言多线程知识点; 直击要害——实战化案例精准定位技术细节; 学以至用——精要式演示确保开发/学习不脱节; 潜移默化——研磨式知识讲解参透技术要点; 提升效率——垂直式技术精解不绕弯路; 循序提升——渐进式知识点统排确保连贯。

2019-04-01

《java并发编程的艺术》pdf

并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。 《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。

2019-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除