自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 GCC与gcc,g++区别

什么是gcc / g++首先说明:gcc 和 GCC 是两个不同的东西GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。gcc是GCC中的GUN C Compiler(C 编译器)g++是GCC中的GUN C++ Compiler(C++编译器)一个有趣的事实就是,就本质而言,gcc和g++并不是编译器,也不是编译器的集合,它们只是一种驱动器,根据参数中要编译的文件的类型,调用对

2022-03-28 11:36:43 719 1

原创 C++内联函数(inline)

内联函数是综合宏函数和普通函数的优缺点而产生的。宏函数:优点:代码内嵌,避免了函数调用,以空间换时间;缺点:易产生歧义,易使代码段体积增大,不会进行类型检查普通函数:优点:一段高度抽象的逻辑,不易产生歧义,使代码体积变小,会进行类型检查;缺点:函数调用的压栈和出站的开销内联函数:优点:避免调用时的额外开销(入栈和出栈操作)代价:内嵌在代码中,会出现多个“副本”,会增加代码段空间本质:以牺牲代码空间为代价,提高程序的运行时间的效率适用场景:函数体很小(十行以内),且被频繁调用的

2022-03-11 20:56:40 992

原创 JavaScript 之BOM基础

JavaScript 之 BOM 基础Target什么是BOM浏览器的顶级对象 window页面加载事件以及注意事项两种定时器函数及区别JS执行机制使用location对象完成页面之间的跳转知晓navigator对象涉及的属性使用history提供的方法实现页面刷新一. BOM概述BOM提供了独立于内容而与浏览器窗口进行交互的对象 和 属性.BOM没有标准, 兼容性较差, 以下为兼容性较好的内容BOM的顶级对象为window, DOM包含于BOM中window 中的主要

2021-02-23 23:09:06 174

原创 HTML基础

第一章 HTML简介什么是网页?网站是指在因特网上根据一定的规则, 使用HTML等制作的用于展示特定内容相关的网页集合. 网页是网站中的"一页", 童冲是HTML格式的文件, 它要通过浏览器来阅读.什么是HTML?超文本标记余元, 用来描述网页的, 由许多标签组成.超文本有两层含义:图片, 声音, 多媒体;跳另一个文件.网页的形成:前端人员开发代码->浏览器解析,渲染->生成最后的web页面.第二章 常用的浏览器火狐, 谷歌, 苹果, IE(

2021-02-14 11:21:08 131 1

原创 Linux 集群时间同步

需求:Linux系统可以配置网络时间同步,但是有时候由于网络延迟问题,会导致集群服务器之间有时间差,因此考虑通过集群内某一台机器作为时间服务器, 其他机器向该服务器通过内网请求时间同步,来保证集群间系统时间一致。时间服务器配置步骤:1.检查集群机器是否安装ntp服务(需root用户):rpm -qa | grep ntp2.若已安装ntp服务,检查ntp服务是否运行: service ntpd status3.若ntp服务正在运行,需要将ntp服务停止: service ntpd stop4

2020-11-28 00:19:50 302

原创 Linux 配置ssh免密登录

一、所有机器上生成公钥、私钥:使用rsa非对称加密算法生成公钥和私钥:ssh-keygen -t rsa中间三次回车即可;二、收集所有需要机器的公钥到authorized_keys文件:将所有机器的公钥发送到某一台主机上:ssh-copy-id 主机01执行完后, 可以在主机01的/home/用户名/.ssh目录下看到生成的authorized_keys三、将authorized_keys文件分发到所有主机的/etc/home/用户名/.ssh目录下:rsync -av /etc/ho

2020-11-26 00:24:09 174 1

原创 线性索引查找

1. 稠密索引:稠密索引是指将数据suoyin集中的每个记录对应一个索引项。特点: 稠密索引适合数据量小,关键字码有序表的查找。2. 分块索引:特点:把数据分成若干块,块间有序,块内无序;块间有序:可以利用折半查找,插值查找等方法;块内无序:只能顺序查找。复杂度分析:1.当块间和块内 都采用顺序查找时:设:n个记录分成m块,每个块有t条记录从公式可以得出:平均长度不仅取决于数据集的总记录数n,还与每个块的记录个数t有关。最佳情况为块数m和块中记录数t相同。2.块间采用折半查找或

2020-05-24 17:16:10 205

原创 有序表查找

1. 折半查找:公式: public int BinarySearch(int[] a, int key){ int low = 0; int high = a.length()-1; while(low <= high){ int mid = (low + high)/2; if(key < a[mid]){ high = mid - 1; }else if(key > a[mid]){ low = mid + 1; }else{ return

2020-05-24 16:44:58 230

原创 顺序表查找

顺序查找(Sequential Search) 又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录;如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等时,则表中没有所查的记录,查找不成功。1.普通顺序查找:int Sequential_Search(int[] a, int key){ int len = a.length(); for(int i = 0;i&l

2020-05-24 15:56:43 1802

原创 简单选择排序

基本思想:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。public static int[] selectSort(int[]a,int n){ for(int i = 0;i<n;i++){ fo...

2020-03-19 14:27:37 324

原创 希尔排序(缩小增量排序)

原理:希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。/****dk: 步长*/pub...

2020-03-19 10:57:59 206

原创 插入排序

基本思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是...

2020-03-18 18:24:52 96

原创 快速排序

原理:排序算法入参(3个):待排序序列;待排序序列始端index(low);待排序序列末端index(high);//以低位为基准值public static int[] quickSort(int[] a,int low,int high){ //1.结束条件 if(low>=high){ return a; } //2.设置基准值...

2020-03-18 17:39:01 80

原创 Java7 的Random伪随机数和线程安全的ThreadLocalRandom

一、Random伪随机数:Random 类专门用于生成一个伪随机数,它有两个构造器: 一个构造器使用默认的种子(以当前时间作为种子) ,另 个构造器需要程序员显式传入一个 long 整数的种子.当使用默认的种子或传入相同的种子构造 Random 对象时,它们属于同一个种子,只要两个 Random 对象的种子相同,而且方法的调用顺序也相同,它们就会产生相同的数字序列 也就是说, Random 产...

2020-03-08 16:22:02 1231

原创 日常开发中异常的正确处理方式

在日常功能开发完成后,由于用户的操作不当或代码逻辑健壮性不足会导致许多不友好的异常信息展现给用户.那么,该如何正确的处理开发过程中的异常呢?一、异常分类:数据层异常(sql异常);业务层异常(代码健壮性不足);二、异常的正确处理方式:1.数据层异常:对于sql可能产生的异常首先应该从代码的健壮性考虑,避免逻辑不同导致sql语句在不同状态下的执行异常;其次考虑数据库表结构字段类型...

2020-01-18 19:18:33 769

原创 匿名内部类中使用类名.this.属性名或类名.this.方法名调用外部类属性或方法

示例:public class WxMessageInMemoryDuplicateChecker{ /** * 一个消息ID在内存的过期时间:15秒. */ private final Long timeToLive; /** * 每隔多少周期检查消息ID是否过期:5秒. */ private final Long clearPeriod; ...

2019-12-27 14:25:35 1082

原创 使用fasterxml.jackson反序列化json串

说明:如果直接使用类似JsonHelper.fromJson()方法反序列化json串到Java的List对象集合时,容易将List集合内的对象反序列化为LinkedHashMap(),此时使用对象的get方法获取属性的值时抛异常,因此使用fasterxml.jackson的以下方法完美解决:ObjectMapper mapper = new ObjectMapper();//设置反序列化时...

2019-12-23 15:20:43 605

原创 JVM 类加载器

一、概述:类加载是指将类从磁盘或网络读到 JVM 内存,然后交给执行引擎执行。二、JAVA 类生命周期分析:类的生命周期指的是从加载到卸载的基本过程,此过程包含 7 个阶段,如图:说明: 一个已经加载的类被卸载的几率很小,至少被卸载的时间是不确定的,假如需要卸载的话可使用System.exit(0);三、类加载器执行过程分析:1. 加载分析(loading):我们知道类的加载过程...

2019-12-09 20:37:39 93

原创 JVM调优GUI工具

一、Jconsole (JDK 自带) :JConsole 是一个内置 Java 性能分析器,可以从命令行(直接输入 jconsole)或在 GUI shell (jdk\bin 下打开)中运行。它用于对 JVM 中内存,线程和类等的监控。它可以监控本地的 jvm,也可以监控远程的 jvm,也可以同时监控几个 jvm。这款工具的好处在于,占用系统资源少,而且结合 Jstat,可以有效监控到 ...

2019-12-08 17:33:02 334

原创 JVM调优命令行工具

一、jps指令:Jps [options] [hostid] (hostid为ip或域名地址)jps 是用于查看有权访问的 hotspot 虚拟机的进程,当未指定 hostid 时,默认查看本机 jvm 进程。-q: 不输出类名、Jar 名和传入 main 方法的参数-m: 输出传入 main 方法的参数-l: 输出 main 类或 Jar 的全限名-v: 输出传入 JVM 的参...

2019-12-08 17:21:05 729

原创 Java JVM

一、学习JVM可以干什么:防止内存泄漏(Memory leak),防止内存溢出(Out of Memory);了解线程锁的工作原理,进而优化线程锁的使用 (Thread Lock)提高性能;科学进行垃圾回收 (Garbage collection);提高系统吞吐量 (throughput);降低延迟(Delay),提高其性能(performance)二、字节码底层执行过程:1....

2019-12-08 11:47:08 129

原创 并发下Volatile的作用

一、Volatile的作用:保证可见性(一个线程修改结束,其他线程可见)禁止JVM进行指令重排序二、指令重排序概念:假设一个java对象的创建过程如下:1. 堆内存开辟空间;2. 对象属性初始化;3. 执行构造方法;4. 为对象属性赋值;如果对象属性中没有加Volatile关键字,java程序在JVM上运行时JVM会对执行指令顺序进行优化从而提高执行效率,但如果在并发情况下进...

2019-12-04 20:13:58 99

原创 SpringMVC异常处理

一、全局异常处理类:(处理共性异常)@RestControllerAdvicepublic class GlobalExceptionHandler{ @ExceptionHandler(Exception.class) public GlobalResponse GlobalExceptionHandle(Exception e){ if(e instanc...

2019-11-30 17:01:36 79

原创 Java反射

一、反射Java 中特有一种技术: 其他编程语言一般没有这种特性JAVA 中自省特性的一种实现: 对象运行时动态发现对象成员是实现 JAVA 动态编程的基石: 例如 AOP,…二、反射的入口:在 java 中这个入口是字节码对象(Class 对象)。其获取方式如下:1. 类名.class2. Class.forName(“包名.类名”);最常用3. 实例对象.getClass(...

2019-11-30 10:03:46 78

原创 MySQL格式化时间参数

MySQL使用DATE_FORMAT(date, format)函数格式化时间参数:二、在mysql中,DATE_FORMAT(date, format) 函数根据format字符串格式化date值。%M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数...

2019-11-26 10:08:33 416

原创 Java序列化

一、概念:序列化: 将对象转化为字节或字符的过程.反序列化: 将字节或字符转化为对象的过程.二、序列化场景:网络传输本地存储写内存(缓存等)三、序列化步骤:Pojo类实现Serializable接口;添加序列化id(保证反序列化成功);借助输入输出流进行序列化和反序列化四、序列化中的数据安全:在需要序列化加密的pojo对象中添加writeObject()...

2019-11-21 14:40:32 92

原创 Flume概念

一、概念:Flume: 分布式日志收集系统,支持接收多种数据来源,可以对日志信息进行简单处理,然后写出到数据存储系统中。特点:灵活重要概念(5个):Event: 事件,数据载体,flume使用Agent将一批日志数据包装成为一个event进行传输处理,其结构非常简单,就是json串。Eg:{“headers”:info(自定义些内容),”body”:info(日志本身)}其中header...

2019-11-19 15:11:19 222

原创 Java泛型

一、概念:参数化类型,是JDK1.5的新特性。(定义泛型时使用参数可以简单理解为形参),例如List,Map<K,V>编译时的一种类型,此类型仅仅在编译阶段有效,运行时无效.因此可以利用反射在运行时向泛型对象中存入泛型类型之外的数据.例如List在运行时String会被擦除,最终系统会认为都是Object.二、使用泛型的优点:泛型是进行类型设计或方法定义时的一种约束规范,基...

2019-11-10 11:26:36 73

原创 SPI思想

SPI(Service Provider Interface):一种以接口方式提供服务的标准.实现方式:在项目的src目录下创建META-INF目录;在META-INF目录下创建services文件夹;以接口全路径名命名创建文件;在文件中添加该接口的自定义实现类(多个实现类可以加多个);Web服务器(如:tomcat)在Servlet3.0之后版本启动时会自动读取该文件...

2019-11-09 20:55:39 404 1

原创 linux服务器安装分布式文件存储系统fastDFS

一、安装gcc命令: yum install make cmake gcc gcc-c++二、安装libfastcommon1.上传:libfastcommon-master.zip到文件目录下,进行解压:命令:unzip libfastcommon-master.zip -d 解压到的目录2.进入目录:cd /usr/local/解压目录/libfastcommon-master/,进...

2019-10-28 21:08:36 424

原创 EL表达式

一、概念EL表达式: 全程Expression Language,一种写法非常简单的表达式;作用: 让jsp写起来更加方便,简化在jsp中获取作用域或对象强转请求数据的写法,也会搭配JSTL来使用;语法结构: ${表达式}如果是通过request.setPartner存的数据: ${param.键名}获取;request.setParameter中有同键不同值数据: ${param...

2019-10-27 19:46:54 217

原创 JSP干货

一、 概念:JSP全名Java Server Pages,中文名叫Java服务器网页,其根本就是一个简化的Servlet设计,一种动态网页技术标准.特点 :本质还是Servlet;跨平台,一次编写处处运行(Java的特点);安全性和健壮性(健壮性指多复杂的业务逻辑都能处理);二、JSP工作原理:Web服务器如Tomcat只认识java编写的Servlet,当浏览器根据jsp访问路...

2019-10-27 11:54:15 111

原创 Servlet干货

1. Servlet接口开发:编写普通的java类,并继承HTTPServlet;重写service方法;在service方法中编写逻辑代码;在webRoot下的WEB-INF文件夹下的web.xml文件中配置servlet2.默认情况下,Web容器(Tomcat)启动时将web.xml加载到内存,但还未使用,当第一次发起Servlet请求时,根据web.xml配置将对应的Servl...

2019-10-26 19:48:19 76

原创 Html5中input新增属性、标签和事件

1. 所有的主流浏览器都支持h5,(Chrome,Firefox,Safari),IE9及以上版本有选择性支持h5,IE9以下不支持h5,IE10以后全部支持h5,需要做兼容性处理.2. h5新增了多媒体标签,如:video,audio,canvas(h5之前网页中引用多媒体的话需要flash插件,苹果不支持flash插件)3. h5新特性:语义特性,本地存储特性,网页多媒体,二维三维动画(h...

2019-10-13 21:26:47 1092

原创 正则表达式表

正则表达式匹配的字符串kkabcabc[abc]a, b, c[abc][123]a1,b3,c2,a3,b1,c2[a-z]a,z,g,r[a-zA-Z_0-9]a,A,0,9,_[\u4e00-\u9fa5]中文范围\d数字 [0-9]\D排除数字 [^0-9]\w单词字符[a-zA-Z_0-9]...

2019-10-12 17:18:24 225

原创 枚举基础

1.如何理解枚举:枚举是JDK1.5以后推出的一种新的类型(特殊的类),主要用于更加严格的约束变量类型,例如现有一个产品对象,此对象有一个性别属性,请问此属性的类型如何定义?2. 枚举应用场景:基于枚举更好限定变量的取值,例如一个变量要求有A,B,C三个值,该如何定义?此时就可以使用枚举,枚举类中一般定义的是几个固定的常量值.3.案例分析:JDK:public enum Reten...

2019-10-12 16:26:04 187

原创 Stream流基础

1.stream流的操作特性:stream不存存储数据;stream不改变源数据;stream不可重复使用;(stream完成一步操作后返回一个新的流,旧的流被关闭)2.流的操作类型:中间操作:调用中间操作会返回一个新的流.通过连续执行多个操作便组成stream的执行管道,这些管道被添加后并不会真正执行,只有等到调用终止操作才回被执行;终止操作:调用该操作后执行之前所有的中间操作...

2019-10-11 23:16:19 377

原创 Lambda表达式基础

1.Lambda表达式使用条件:方法参数类型必须为接口;接口只有一个方法,默认实现除外(default);如果接口中有Object类下的非默认方法除外,如:toString();自定义接口如果要声明为函数式接口加@FunctionalInterface注解(也可不加);2.Lambda表达式的三种编写方式:单语句表达式:语句块:方法引用(包括:自身对象引用,构造方法引用,静态...

2019-10-11 22:24:14 106

原创 Oracle基础

1. 项目中一个项目Mysql对应一个数据库,一个项目在Oracle中对应一个用户(一个用户下有几张表);2. Oracle创建表空间:create dataspace 表空间名datafile '数据文件路径' size 100m --数据文件大小autoextend on --空间不足时自增长开启next 10m; --自增长大小3. 删除表空间:drop dataspace...

2019-10-11 19:22:00 98

原创 mysql高级

1.explain性能指标分析:id:执行sql查询的顺序,越大越先查询,相同时越靠上越先查询;select_type:simple 简单查询(单表查询);primary 主查询(多表查询时的主查询);subquery 子查询;derived 衍生表查询(将一条查询结果新命名的表);union 和uniton result联合查询type:本次查询索引使用类型 从好到差...

2019-10-11 19:21:14 123

空空如也

空空如也

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

TA关注的人

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