自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

原创 mysql 创建用户并赋予权限

-- 创建mysql 用户create user 'visualmap'@'%' identified by '123456'; -- mysql 给用户授权grant all privileges on GPS_DEMO.* to 'visualmap'@'%' identified by '123456';

2019-11-07 10:06:11 117

原创 常用办公软件相关

一、Excel1、从两列数据中找出相同的数据,可以使用如下公式=IF(COUNTIF(C:C,D4),"有","MEIYOU")2、从两列数据中查找相同的数据,还可以使用如下公式=ISNUMBER(D2(B8,C:C,0))...

2019-09-14 12:17:14 253

原创 Redis 高级特性-重新认识Redis

关于Redis的基础数据类型,在前面已经做了介绍,那么Redis能做什么呢?这一节中,我们从Redis的全局角度重新认识一下Redis,并讨论Redis在生产业务系统中的应用场景和某些场景的解决方案一、回顾Redis定义官方文档中定义:[Redis is an open source (BSD licensed), in-memory data structure store, used ...

2019-08-21 09:15:13 134

原创 设计模式 - 程序设计原则

在程序设计中,前辈们总结出来了一些通用原则,只要遵循这些原则,就能改善你程序的设计,并指导你完成程序设计学习地址:http://www.gulixueyuan.com/my/course/323一、代码应该遵守的一些原则 1、单一职责原则(SingleResponsibility Principle) 1、降低类的复杂度,一个类只负责一项职责 ...

2019-08-08 08:45:35 101

原创 Redis 基础数据结构(五)

这一节我们介绍Redis的集合(set)和有序集合(zset)两种数据类型一、set(集合)1、Redis的set相当于java里面的HashSet,他的内部的键值是无序的,唯一的。内部实现是一个所有value都是一个值null的字典结构。2、当集合中最后一个元素被删除后,数据结构被自动删除,内存被回收3、set结构具有去重功能,可以保证数据的唯一性。com.xiaozham...

2019-08-04 16:06:23 188

原创 Redis 基础数据结构(四)

这一节我们介绍Hash(字典)数据类型一、hash(字典)简单介绍1、Redis的hash相当于java语言里面的HashMap,内部存储了很多键值对,实现结构也和HashMap是类似的,都是基于数组+链表实现的二维结构。2、不同的是Redis的字典结构只能存储字符串。3、Redis的rehash操作采用了渐进式resha策略,渐进式rehash会在rehash操作时,保留新旧两个...

2019-07-30 09:18:59 110

原创 Redis 基础数据结构(三)

这一节我们介绍Redis的列表(list)一、list(列表)简单介绍1、Redis列表相当于java语言里面的LinkedList,注意它是链表而不是数组。这意味着list的插入和删除操作的时间复杂度为O(1),但是查找时间复杂度为O(n)2、列表中每个元素使用双向指针,支持前向后向遍历。列表最后一个元素弹出之后,该数据结构被自动删除,内存回收。3、Redis列表结构可以用来做异...

2019-07-28 13:40:18 117

原创 Redis 基础数据结构(二)

接下来我们逐个介绍Redis基本数据结构一、String(字符串)简单介绍1、Redis的String是最简单的数据结构,他的内部表示就是一个字符数组。2、Redis的字符串是动态的字符串,是可以修改的字符串(这点是区别于java里面的字符串String的),类似java语言里面的ArrayList实现,Redis采用预分配冗余空间的方式来减小内存的频繁分配。如下图所示,redis内部...

2019-07-27 19:21:12 128

原创 Redis 基础数据结构(一)

前言Redis 有5种基础数据结构,分别是String(字符串),list(列表),Hash(字典),Set(集合),Zset(有序集合)。而Redis所有的数据结构都有一个唯一的key字符串作为名称。然后通过这个唯一的key来获取相应的value,不同数据结构的差异在于value对应底层的数据结构不同。对Redis以上五中基础数据数据结构的使用,是Redis使用过程中最重要最基础的部分。...

2019-07-27 14:43:33 91

原创 Redis 深度历险(Redis安装)

前言对于Redis的使用一直停留着仅会用和使用过的阶段,经历过Redis线上故障导致系统奔溃后,笔者认识到,对于任何在生产工程中使用的基础组件,必须做到知其然,知其所以然。但笔者水平有限,索性借助其他大牛的一些书籍,分享来夯实自己的基础,在Redis学习过程中,笔者看了钱老师的《Redis深度历险·核心原理与应用实战》这本书籍,里面提到了诸多之前未层接触,但非常有用的内容,在学习的过程中,笔者...

2019-07-15 09:05:23 229

原创 Java面试题 - 汇总

如下是笔者整理的一些面试题,java后端,工作年限 3-5年。希望可以帮到正在找工作或者即将准备找工作的小伙伴一、个人表达能力01、自我介绍一下吧02、聊聊项目(挑一个你最熟悉的项目)03、你觉得你有什么优点和缺点?你觉得你相比于那些比你更优秀的人欠缺什么?二、基础01、HashMap、ConcurrentHashMap源码。HashMap是线程安全的吗?Hashtable呢?Co...

2019-07-15 08:47:52 220

原创 Java面试题(一)

笔者在面试的过程中,遇到的一些面试题目,面试后不管结果如何,都做一下重新梳理一、2018-11-01 给定矩阵(二维数组),要求斜向打印解题思路:打印的下一个元素下标的规律为:横向坐标减1,纵向坐标加1,如果该元素存在,则打印输出,否则跳过。当纵向坐标大于0时,开始位置为当前行最后一列元素。需要注意的是:虽然是双层循环遍历,但是因为内层循环的跳出条件为只打印最后一列,所以解题的时间复杂...

2018-11-03 14:39:20 123

原创 Java虚拟机-类加载机制

Java虚拟机类加载机制参考:《深入理解Java虚拟机》-jvm高级特性与最佳实现(周志明著)一、类加载过程1、Java虚拟机中类的加载全过程包括:加载,验证,准备,解析,初始化这五个阶段2、Java虚拟机中类的生命周期为:加载,验证,准备,解析,初始化,使用,卸载七个阶段,其中我们把验证,准备,解析三个过程称为连接二、Java虚拟机的类加载器1、什么是类加载器?虚拟机...

2018-10-05 11:05:33 106

原创 垃圾收集器与内存分配策略——内存分配策略与回收策略

内存分配策略与回收策略参考:《深入理解Java虚拟机》-jvm高级特性与最佳实现(周志明著)前言Java技术体系所倡导的内存管理最终可以贵大为自动化解决两个问题:给对象分配内存以及回收分配给对象的内存。如下的内容是基于Client模式下默认的垃圾收集器组合一、内存分配的普遍规则1、对象优先在Eden空间分配,大多情况下,对象在新生代的Eden空间进行分配,当Eden空间没有...

2018-10-04 14:53:53 141

原创 垃圾收集器与内存分配策略——垃圾收集算法与HotSpot虚拟机算法实现

垃圾收集算法的具体实现涉及大量的程序细节,这里只描述其算法的基本思想和发展过程一、常见的垃圾收集算法对比如下收集算法 具体实现 优点 不足 标记-清除算法 1、首先标记出所有需要回收的对象 2、标记完成之后,统一回收所有被标记的对象   效率低:标记和清除两个过程效率都不高 空间问题:标记清除之后又大量的碎片,...

2018-10-04 12:56:50 132

原创 垃圾收集器与内存分配策略——判断对象是否存活

参考:《深入理解Java虚拟机》-jvm高级特性与最佳实现(周志明著)前言1、Java内存运行时区域的各个部分,其中程序计数器,虚拟机栈,本地方法栈3个区域随着线程而生,随着线程而灭;在方法结束后,占用的内存跟着就回收了,不需要过多考虑垃圾回收问题;2、但是Java堆和方法区则不一样,一个方法中多个分支需要的内存也不一样,我们只有在程序运行期间才知道会创建哪些对象?这部分内存的分配都是...

2018-10-03 18:54:52 168

原创 Java 内存区域与内存溢出异常(三)

实战:OutOfMemoryError 异常参考:《深入理解Java虚拟机》-jvm高级特性与最佳实现(周志明著)之前的两篇中介绍Java虚拟机中各个运行时内存区域的作用,这节中通过人为异常的方式验证各个运行时区存储的内容一、Java堆溢出Java堆中用于存储对象的实例,所以只要不断创建对象,并且保证GC Roots到对象之间有可达路径(保证对象有引用,而不会被GC回收)来避免垃圾...

2018-10-03 14:11:32 196

原创 Java 内存区域与内存溢出异常(二)

一、虚拟机中Java对象的创建参考:《深入理解Java虚拟机》-jvm高级特性与最佳实现(周志明著)语言层面上,创建Java对象通常仅仅是一个new关键字而已。在虚拟遇到new指令时:1、首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个类的符号引用代表的类是否已经加载,解析和初始化过。如果没有,则必须执行类加载过程2、接下来为新生对象分配内存,对象所需的...

2018-10-03 10:22:45 133

原创 Java 内存区域与内存溢出异常(一)

一、Java 运行时数据区域参考:《深入理解Java虚拟机》-jvm高级特性与最佳实现(周志明著)Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的区域,这些区域有各自的用途,以及创建和销毁的时间。根据Java虚拟机规范的规定,Java虚拟机所管理的内存,包括如下几个区域:程序计数器,Java虚拟机栈,本地方法栈,Java堆,方法区,运行时常量池,直接内存...

2018-10-02 20:45:28 124

原创 JVM 内存模型(一)

Java 内存模型参考:《深入理解Java虚拟机》-jvm高级特性与最佳实现(周志明著)一、前言多任务处理是现代计算机操作系统中一项必备的功能,不仅仅是因为计算机的运算能力强大了,还有一个原因是因为计算机的运算速度与它的存储和通信子系统速度差距太大,大量的时间耗费在磁盘I/O,网络通信或者数据访问上,如果不希望处理器大部分时间里都在等待其他资源的状态,就必须使用一些手段把处理器的运算能...

2018-10-02 12:58:10 124

原创 二、Java-并发【多线程使用】

前言:    前面一篇介绍了并发编程的一些是名词解释,并罗列了相关疑惑点。这篇将介绍在并发编程的实际应用一、创建多线程的方式概述:多线程创建的方式,有人说3种,有人说4种,其实具体数字并没有什么意义,在实际使用中,根据具体应用场景,选择合适的方式即可。下面介绍几种常见的多线程创建-使用方式1、编写自己的任务类,继承Thread类,复写Thread类的run方法,在驱动线程中创建任务...

2018-09-01 22:50:46 194

原创 一、Java-并发【基本概念】

参考资料:《Java编程思想》一、什么是并发?生活中大多的问题可以通过顺序执行来完成,但是某些时候,并发是必须的,且可提高效率,例如:火车站买票的问题,可以在一个窗口完成售票,大家都选择排队,这个没有什么问题。但是效率会令人崩溃,如果开设多个售票窗口,同时进行售票操作,大家并行购票,极大的提高了效率,这个就是并发的优势之一。二、并发的多面性1、正如上面举的例子,并发可以提高效率,在...

2018-09-01 21:53:17 158

原创 Java-IO体系学习

Java-IO 体系学习笔记这是我第一次尝试写博客,选择了Java IO 体系这个话题,是因为我自己对IO的理解不是很透彻,加之平时使用IO时有点手忙脚乱,总是从这里复制,到那里粘贴,看得明白,自己写出来又有困难,所以想借此来完整学习一下IO本文参考书籍包括《Java 编程思想》-机械工业出版社,第四版《Head First设计模式》-中国电力出版社整理内容IO 类...

2018-06-03 22:49:51 395

原创 设计模式(Decorator Pattern)——装饰者模式

一、装饰者模式简介:在HeadFirst 介绍装饰者模式的导论中,这么介绍装饰者模式给爱用继承的人一个全新的设计眼界那么更通俗讲,什么是装饰者模式呢?装饰者,包装原有的对象,使之变成具有包装着功能的新事物。举个栗子,你去一家面馆吃面,这是一家专门做面食的餐馆,他们已经有现成的面条,汤料,狮子头,酱料包……,然后顾客来吃面的时候,首先准备一碗面条,然后根据顾客的需求,爱吃炸酱的,带汤的,加卤蛋的等等...

2018-06-03 10:09:26 222 1

空空如也

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

TA关注的人

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