Java的所有异常可以分为**异常(Exception)**和**错误(Error)两大类**,其中异常又可分为**可查异常**(CheckedException,或理解为编译时异常)和**运行时异常**(RuntimeException)。 #### 一、异常(Exception) 1、可查异常(CheckedException): 必须进行处理的异常,不处理的话是无法通过编译的。处理方式由两种: - 使用try...catch住 - 使用throws往外抛,谁调用,谁处理 常见的可查异常包含FileNotFoundException(文件不存在异常)、...
我们在sql调优的时候经常需要用到海量数据(最好是10w条以上才有参考意义),所以这里记录一个可以生成亿万级的测试数据的方法。 1、新建数据表(此处假设新建一个博客文章表): ```sql CREATE TABLE `blog` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '标题', `content` text ...
团队实力还不够的时候,通常会选择一些开源的框架,此项目的前端也是选用第三方UI框架。基于vue的移动端webUI框架很多:VUX、Vant等,经过一番研究了解,最终选择有赞团队维护的Vant。(建议大家在选择正式项目的框架时,从几个角度去评判:维护团队的实力、维护计划,是否仍在维护中等) 接下来就是将vant融合到项目中的步骤: ###### **一、安装vant:** 1. 执行安装命令: ```shell npm i vant -S ``` 2. 引入组件: 1) 有四种引入组件的方式,墙裂...
鉴于微信生态庞大的用户基础,所以基于微信公众号的二次开发还是很受欢迎的。最近有项目前端需要用到Vue,因此顺手做了个基于Vue的微信二次开发的项目脚手架,这个脚手架并不是一个完整的业务项目,它的定位只是当您遇到满足对应技术栈需求的项目时,能在它的基础上快速地进行项目的业务开发。 接下去会用几篇文章做个记录,第一篇主要讲项目的初始化,主要步骤如下: 一、Vue项目基于node环境,所以先安装node 8.9+ - 安装方法详见官网(官网文档是最好的指南): https://nodejs.org - 设置淘宝镜像加快速度: `...
#### MySQL主从复制原理 MySQL 的主从复制并不是数据库磁盘上的文件直接拷贝,也不是直接使用某个编程语言脚本将主服务器数据取出,然后写入到从服务器。 主服务器数据库的每次操作都会记录在二进制日志文件*mysql-bin.xxx(保存文件位置可自行配置)* 中。从服务器的I/O线程使用专用帐号登陆到主服务器中读取该二进制文件,并将文件内容写入到自己本地的中继日志relay-log文件中。然后从服务器的SQL线程会根据中继日志中的内容执行SQL语句。 ![55-01.png](http://images.kuryun.com/blog/typecho/55-01.pn...
#### 什么是递归函数 我们都知道基本上的编程语言都支持在一个函数中调用其他的函数。如果这个函数在内部调用它自己,那么我们就称这个函数为递归函数。 ------ #### 递归函数的作用 - 可以执行for或while语句相同的任务 - 有些情况可以少写代码,让代码看起来更简练 举一个例子,数学中我们有学习过求一个正整数的**阶乘。**阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积。我们使用PHP语言用两种方法实...
#### 问题描述 编写一个函数strrindex(s, t),用于返回字符串t在s中最右出现的位置,如果 s中不 包含t,那么返回-1。 ------ #### 问题分解 - 主函数main - 工具函数 get_line(s, max), 注意不能按照书上的getline,因为getline 已经在头文件stdio.h定义了 - 核心函数 strrindex(source, searchfor)。这道题是根据书中strindex例子进行变化,我们先来看看strindex的程序实现: ```C int strindex(char s[]...
#### 问题描述 编写函数itob(n, s, b) ,用于把整数n转换成以b为基数的字符串并存到字符串s中。例如, itob(n, s, 16) 表示将n转换成16进制数,并存入s中。 ------ #### 问题分解 - 主函数main - 工具函数reverse(s) ,用来逆置字符串 - 核心函数 itob(n, s, b)。这道题其实也是习题3-4的一个引申了,我们先来回顾3-4 的itoa函数的实现: ```C void itoa(int n, char s[]) { int sign...
#### 问题描述 在数的反码表示中,上述的 itoa 函数不能处理最大的负数,即 n 等于-2^(字长-1) 的情况。请解释其原因。修改该函数,使它在任何机器上运行时都能打印出正确的值。 ------ #### 问题分解 - 主函数main - 核心函数 itoa(n, s)。先来看原文的函数实现: - - ```C void itoa(int n, char s[]) { int i, sign; if((sign = n) < 0){ ...
#### 问题描述 编写函数expand(s1, s2),将字符串s1中类似于a-z一类的速记符号在字符串s2中扩展为等价的完整列表abc...xyz。该函数可以处理大小写字母和数字,并可以处理a-b-c、a-z0-9与-a-z等类似的情况。作为前导和尾随的-字符原样打印。 ------ #### 问题分解 - 主函数main - - 核心函数 expand(s1, s2)。根据题意,假设s1="-a-z0-9A-D--",那么期望得到的值s2="-abcdefghijklmnopqrstuvwxyz01123456789ABCD--"。观察发现,头...