自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 敖丙思维导图-Redis

Redis快速的原因纯内存操作。单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题。采用了非阻塞I/O多路复用机制。Redis数据结构底层实现String (sds(Simple Dynamic String, 简单动态字符串)代替c字符串)String 缓存结构体用户信息,计数Hash保存结构体信息可部分获取不用序列化所有字段Listtwitter的关注列表,粉丝列表等都可以用Redis的list结构来实现(.

2020-06-28 17:09:46 3269 12

原创 Java 工程师成神之路-基础总结

文章目录Java基本类型值传递与引用传递二、使用步骤1.引入库总结Java基本类型计算机的基本单位:bit .  一个bit代表一个0或1byte(字节):1byte = 8bit     1个字节是8个bitshort:2byteint:4bytelong:8bytefloat:4bytedouble:8byteboolean:1bytechar:2byte提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器

2021-03-05 13:58:52 722

原创 Spring cloud Alibaba小白入门指南

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 官网链接:https://github.com/alibaba/spring-cloud-alibaba/wiki学习一个项目,首先就是配置好自己的idea咯~mark 一些快捷键...

2021-03-04 14:26:03 323

原创 Eggo-Go语言底层学习

字符咋存?utf8咋编码?string啥结构?字符8个比特组成一个字节。存字符就是存编号。(字符集)utf8 go语言默认编码存汉字怎么破 - 定长编码 - 变长编码strings = "test"s[2] 可以打印,但不能被修改。要修改的话,可以重新赋值字符串。或者转为slice字符串变量可以共享底层内容。Slice扩容规则。newCap个元素需多大内存这里和语言的 内存管理模块 决定。匹配到合适的内存规格。例如这里 newCap = 5,需要 5*8 = 40byt

2021-03-02 15:44:08 787 1

原创 Go专家编程-定时器

本文为《Go专家编程》读书笔记~Go专家编程

2021-02-25 12:10:36 220

原创 Go专家编程-并发控制 Channel/WaitGroup/Context +反射

本文为《Go专家编程》读书笔记~Go专家编程并发控制ChannelWaitGroup信号量数据结构Add(delta int)Wait()Done()ContextContext接口Deadline()Done()Err()Value()cancelCtxDone()接口实现Err()接口实现cancel()接口实现WithCancel()方法实现timerCtxDeadline()接口实现cancel()接口实现valueCtxValue()接口实现tips并发控制协程A执行过程中需要创建子协

2020-11-18 17:28:18 412

原创 Go专家编程-协程

本文为《Go专家编程》读书笔记~Go专家编程协程线程池的缺陷Goroutine调度器Goroutine调度策略队列轮转系统调用工作量窃取GOMAXPROCS设置对性能的影响协程线程池的缺陷任务队列中的每一个任务称作G,而G往往代表一个函数。线程池中的线程worker线程不 断的从任务队列中取出任务并执行。而worker线程的调度则交给操作系统进行调度。如果worker线程执行的G任务中发生系统调用,则操作系统会将该线程置为阻塞状态,也意味着该线程在怠工,也意 味着消费任务队列的worker线

2020-11-17 16:00:15 348

原创 Go专家编程-常见控制结构实现原理

本文为《Go专家编程》读书笔记~Go专家编程常见控制结构实现原理defer规则一:延迟函数的参数在defer语句出现时就已经确定了规则二:延迟函数执行按后进先出顺序执行,即先出现的 defer最后执行(栈)规则三:延迟函数可能操作主函数的具名返回值函数返回过程主函数拥有匿名返回值,返回字面值主函数拥有匿名返回值,返回变量defer原理select实现原理case数据结构select实现逻辑总结range优化:range for slicerange for maprange for channel

2020-11-17 11:37:39 290

原创 Go专家编程-常见数据结构实现原理

本文为《Go专家编程》读书笔记~Go专家编程常见数据结构实现原理1.1 chan1.前言2.chan数据结构环形队列等待队列类型信息锁3.channel读写向channel写数据从channel读数据关闭channel1.2 sliceSlice 扩容Slice Copy总结mapbucket数据结构哈希冲突负载因子渐进式扩容增量扩容等量扩容查找过程插入过程structTagiotastring[]byte转string字符串拼接常见数据结构实现原理本章主要介绍常见的数据结构,比如channel

2020-11-16 19:52:41 327

原创 Java转Go初步学习(并发)

最近面试成功了腾讯教育子公司。以后得从事Go语言开发相关工作啦,特此在这记录下Go基础学习。参考链接: https://tour.go-zh.org/Go并发Go程信道 (<-)无缓冲通道带缓冲的信道range循环信道需要配合close关闭select 语句sync.Mutex 互斥Go程Go 程(goroutine)是由 Go 运行时管理的轻量级线程。// 会启动一个新的 Go 程并执行 f(x, y, z)go f(x, y, z)信道 (<-)信道是带有类型的管道,你可

2020-11-05 11:49:06 270

原创 Java转Go初步学习(方法和接口篇)

最近面试成功了腾讯教育子公司。以后得从事Go语言开发相关工作啦,特此在这记录下Go基础学习。参考链接: https://tour.go-zh.org/Go方法和接口方法指针接收者方法与指针重定向选择值或指针作为接收者接口接口与隐式实现接口值nil 接口值空接口类型断言 (访问接口值底层具体值)类型选择 switch v := i.(type)Stringer接口错误Reader方法Go 没有类。不过你可以为结构体类型定义方法。方法就是一类带特殊的 接收者 参数的函数。方法接收者在它自己的参数

2020-11-03 09:31:42 1012

原创 Java转Go初步学习(基础篇)

最近面试成功了腾讯教育子公司。以后得从事Go语言开发相关工作啦,特此在这记录下Go基础学习。参考链接: https://tour.go-zh.org/包、变量、和函数包 (package main)每个 Go 程序都是由包构成的。程序从 main 包开始运行。在 Go 中,如果一个名字以大写字母开头,那么它就是已导出的。函数函数可以返回任意数量的返回值。当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。没有参数的 return 语句返回已命名的返回值

2020-10-31 18:09:59 788

原创 一些项目架构设计

秒杀系统资源静态化 提前将页面放入cdn服务器秒杀链接加盐 URL动态化前端限流 按钮置为灰色后端限流 卖1000件,允许进入1w个请求。 Nginx再做负载均衡风险控制 去除机器账号Redis集群 库存预热,使用事务操作确保不超卖消息队列 流量削峰填谷数据库分库分布式事务TCC和最终一致性其实不是很适合,TCC开发成本很大,所有接口都要写三次,因为涉及TCC的三个阶段。最终一致性基本上都是靠轮训的操作去保证一个操作一定成功,那时效性就大打折扣了。两段式(2PC)和三段式(3P

2020-10-24 13:49:18 937

原创 SpringBoot下Postgre GeoJson数据查询处理

1. 一条 Sql 命令直接从 Postgre 数据库,查询出 GeoJson 格式数据GeoJson数据一般存储在Postgre 数据库,参考其它blog查询出来对应的json数据。 SELECT row_to_json ( fc ) FROM ( SELECT 'FeatureCollection' AS type, array_to_json ( array_agg ( f ) )

2020-10-14 10:54:01 849

原创 敖丙思维导图-Dubbo

敖丙思维导图系列目录这些知识整理都是自己查阅帅丙资料(当然还有其他渠道)加以总结滴~ 每周都会更新知识进去。如有不全或错误还请大家在评论中指出~敖丙思维导图-集合敖丙思维导图-多线程之synchronized\ThreadLocal\Lock\Volatitle\线程池敖丙思维导图-JVM知识整理敖丙思维导图-Spring敖丙思维导图-Redis敖丙思维导图-RocketMQ+Zookeeper敖丙思维导图-Mysql数据库敖丙思维导图-网络基础敖丙思维导图-Dubbo本文章目

2020-10-05 14:38:01 646

原创 Elasticsearch7.X 打卡学习(随缘更新。。)

文章目录ElasticSearch概念索引(index)映射(mapping)文档(document)字段(field)集群(cluster)节点(node)分片和副本(shard)ElasticSearch7.0重大改进ES 的一些基本原理es 写数据过程写数据底层原理删除/更新数据底层原理es 读数据过程es 搜索数据过程底层 lucene倒排索引ElasticSearch概念索引(index)类似的数据放在一个索引,非类似的数据放不同索引, 一个索引也可以理解成一个关系型数据库。映射(map

2020-09-28 17:15:25 178

原创 idea Error:(3, 32) java: 程序包xxxx不存在

项目场景: 最近新买的电脑安装idea后,跑以前的程序总会报错。重新下载一个Spring Boot项目还是启动不起来。。后面才发现问题所在![在这里插入图片描述](https://img-blog.csdnimg.cn/20200826093351483.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbnRMaWdodA==,size_1

2020-09-21 18:01:44 741 1

原创 敖丙思维导图-网络基础

脑图来自csdn-敖 丙

2020-09-14 15:30:37 748 4

原创 shell脚本定时同步远程数据库数据

两个数据库之间同步数据有很多种方式,基于binlog解析、基于kettle处理、亦或者基于mysqldump处理。由于我们这两台服务器仅作数据记录使用,实时性要求不高,故采用shell脚本+mysqldump处理。目录Shell脚本配置Linux定时任务配置打开crontab修改crontab配置Shell脚本配置#!/bin/bash# 配置数据库账号密码username='xxx'password='pppp'target_username='yyy'target_password=

2020-09-04 11:00:44 1507 1

转载 美团-从ReentrantLock的实现看AQS的原理及应用

文章目录前言1 ReentrantLock1.1 ReentrantLock特性概览1.2 ReentrantLock与AQS的关联2 AQS2.1 原理概览2.1.1 AQS数据结构2.1.2 同步状态State2.2 AQS重要方法与ReentrantLock的关联加锁解锁2.3 通过ReentrantLock理解AQS2.3.1 线程加入等待队列2.3.1.1 加入队列的时机2.3.1.2 如何加入队列2.3.1.3 等待队列中线程出队列时机2.3.2 CANCELLED状态节点生成2.3.3 如何解

2020-08-31 14:34:38 674

转载 美团Java线程池实现原理与常见问题

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。提示:本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。

2020-08-14 11:46:35 318

原创 敖丙思维导图-Mysql数据库

数据库三范式一: 确保每列的原子性二:非主键列不存在对主键的部分依赖 (要求每个表只描述一件事情)三: 满足第二范式,并且表中的列不存在对非主键列的传递依赖

2020-07-28 17:53:43 1227

原创 丙丙-2个月面试20家大厂的知识点总结和建议(答案)

面试问题汇总基础问题linux和网络基础(1)linux系统内核态和用户态是什么,有什么区别?当程序运行在3级特权级上时,就可以称之为运行在用户态,因为这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态;反之,当程序运行在0级特权级上时,就可以称之为运行在内核态。虽然用户态下和内核态下工作的程序有很多差别,但最重要的差别就在于特权级的不同,即权力的不同。运行在用户态下的程序不能直接访问操作系统内核数据结构和程序,比如上面例子中的testfork()就不能直接调用

2020-07-28 17:39:54 545 1

原创 Java图解23种设计模式-概要总结

适应设计模式Iterator迭代器模式引入Iterator后可以将遍历与实现分离开。Visitor 模式在遍历元素集合的过程中,对元素进行相同的处理。Adapter适配器模式类适配器模式(继承)对象适配器模式(委托)Adapter模式用于连接接口(API)不同的类,Bridge用于链接类的功能层次结构与实现层次结构。Adapter模式用于填补不同接口(API)之间的缝隙,Decorator模式则在不改变接口(API)的前提下增加功能。交给子类模板方法Template Me

2020-07-27 11:40:30 349

原创 敖丙思维导图-RocketMQ+Zookeeper

基础组成消息生产者(Producer)同步发送 - 需要Broker返回确认信息 (重要通知消息)异步发送 - 需要Broker返回确认信息 (链路耗时较长而对响应时间敏感)单向发送 (可靠性要求并不高)消息消费者(Consumer)pull(拉取式消费)主动调用Consumer的拉消息方法从Broker服务器拉消息、主动权由应用控制。push(推动式消费)Broker收到数据后会主动推送给消费端,该消费模式一般实时性较高。代理服务器(Broker Server).

2020-07-16 10:38:49 1524

原创 敖丙思维导图--分布式锁的实现比较

基于数据库基于表主键唯一做分布式锁基于表字段版本号做分布式锁 (基于MVCC机制,对数据库连接的开销无法忍受的。)基于数据库排他锁做分布式锁 (select xxx for update)基于 Zookeeper独占锁和读写锁独占锁1、多个客户端竞争创建 lock 临时节点2、其中某个客户端成功创建 lock 节点,其他客户端对 lock 节点设置 watcher3、持有锁的客户端删除 lock 节点或该客户端崩溃,由 Zookeeper 删除 lock 节点4、其他客户端获.

2020-07-16 10:37:43 311

原创 MySQL Innodb误删ibdata1后数据恢复流程(小白无坑)

起因最近碰到一个bug,去网上一阵搜索看到了这个老哥的回答。本着试一试的心态把生产环境的以下文件删除了,主要是ibdata1共享表空间文件。。。(下次一定要记得删除操作要备份!!)果然,MySQL是能跑起来了。但所有Innodb引擎的表都无法显示了,MyISAM引擎的表都在。(太坑了啊啊啊啊。。)排查在命令行中执行 show tables还是可以看到原来的所有表的。这里我们还可以用查询语句查询相关表结构。(说明数据还能抢救)SELECT t.TABLE_NAME,t.TABLE_COMMENT

2020-07-10 11:34:20 874 1

原创 Spring Boot Connection is not available, request timed out after 30000ms问题排查解决

最近上线的项目凌晨出现了下图异常因为以前从没碰到过这种情况,首先怀疑是hikari链接池配置问题。最后配置修改如下:spring.datasource.dynamic.datasource.master.type=com.zaxxer.hikari.HikariDataSourcespring.datasource.dynamic.datasource.master.hikari.min-idle=5spring.datasource.dynamic.datasource.master.hikar

2020-07-06 17:34:33 29740 1

原创 mysql insert语句报错1292 - Truncated incorrect DOUBLE value 完美解决

今天需要将一个表的数据经过筛选后插入另一个表。首先先写查询语句:select innerid from aa inner join bb on aa.id=bb.id where innerid >0这里一查当然没啥问题,数据是那么的整齐。接下来将数据插入到另一张表中:INSERT INTO r (innerid)select innerid from aa inner join bb on aa.id=bb.id where innerid >0what??? 为啥会报这个错

2020-06-24 11:22:58 11950

原创 敖丙思维导图-Spring

设计模式Spring结合了工厂模式和反射机制实现IOC容器。Spring下默认的bean均为singleton,可以通过singleton=“true|false” 或者 scope=“?”来指定。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。观察者模式:listener的实现。如ApplicationListener。模板方法: xxxApplicationContex.

2020-06-22 10:57:46 1293

原创 敖丙思维导图-JVM知识整理

JVM内存模型以Sun HotSpot虚拟机为例。Java内存模型(Java Memory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。其中方法区和堆是所有线程共享的,栈,本地方法栈和程序虚拟机则为线程私有的(编译时确定所需内存大小)。程序计数器(为了线程切换可以恢复到正确执行位置)如果线程执行的是个java方法,那么计数器记录虚拟机字节码指令的地址。如果为native【底层方.

2020-06-16 15:51:07 1370

原创 java 树形层级列表查询

项目中需要从海康视频列表取到对应的层级关系,一开始考虑使用递归。后来发现java8的stream表达式就能轻松解决,现在分享一下~数据库中通过两个code指定父子层级关系/** * 现在存在名称相同的情况,需要进行合并处理。 */ List<String> nameLists = Lists.newLinkedList(); Map<String, List<VideoHaiKangVo>> par

2020-06-16 11:35:34 1356

原创 sql group by后获得每组中其它条件最大的记录(无坑)

现在有一个需求,对地震信息做筛选。一个参考位置会发生多次地震,只保留震级最高的那个。SELECT * from earth_quake_original WHERE location = '云南大理州洱源县'这里我们要获得所有数据中magnitude最大的那一个。很多blog里面说这么写 (完全不对好吧)SELECT * from (SELECT * from earth_quake_original order by magnitude DESC)t GROUP BY location

2020-06-15 15:09:50 259

原创 敖丙思维导图-多线程之synchronized\ThreadLocal\Lock\Volatitle\线程池

Synchronized底层实现有序性 (as-if-serial 单线程情况下程序的结果是正确)可见性 (JMM)原子性 (同一时间只有一个线程能拿到锁)可重入性 (锁对象的时候有个计数器,清0释放锁)不可中断性 (一个线程获取锁之后,另外一个线程处于阻塞或者等待不会被中断)同步代码JVM 中,对象在内存中分为三块区域对象头:Mark Word(标记字段):默认存储对象的HashCode,分代年龄和锁标志位信息Klass Point(类型指针)虚拟机通过这个指针来确定这个对象是哪个.

2020-06-09 16:14:18 1176

原创 敖丙思维导图-集合

今天开始准备系统的复习下Java基础体系啦,以敖 丙的复习脑图走啦~(ง •_•)งHashMap:数组里面每个地方都存了Key-Value这样的实例,在Java7叫Entry在Java8中叫Node。1.8插入数据时判断链表长度是否大于 8并且数组长度大于64, 大于的话链表转换为红黑树;HashMap 中的 Iterator 迭代器是 fail-fast。**快速失败(fail—fast)**是java集合中的一种机制, 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修

2020-06-02 20:43:58 1487

原创 Nginx前端Https配置与后端接口反向代理

在一般的前后端分离项目中,前端资源放在nginx中,后台一般放在tomcat中。项目上线后需要对Nginx配置Https证书,但后端接口此时就会报错。处理很简单,见下面的nginx配置~server { listen 80 ssl;# https 监听的端口地址 (根据你的实际改喽一般是443) server_name www.xxxx.com; keepalive_timeout 100; ssl_session_timeout 5m; ssl_ciphers ECDHE-

2020-05-27 14:40:03 2190 4

原创 剑指Spring框架-IOC容器设计

IOC容器设计// 作用在类上的@Target(ElementType.TYPE)// 运行时获得@Retention(RetentionPolicy.RUNTIME)public @interface Component {}提取标记对象指定范围,获取范围内的所有类遍历所有类,获取被注解标记的类并加载进容器里public class ClassUtil { ...

2020-05-21 20:30:49 233

原创 Java使用freemarker导出docx(WPS、OFFICE都可以看!)

继上篇导出一个完美的doc后,业务又发生了变化必须生成docx格式的word才行(哭泣)。但是利用freemarker生成的word文档(doc/docx)利用notepad++打开是xml格式。而正常的文档格式利用notepad打开是乱码。很明显,就算你废了九牛二虎之力导出来的word OFFICE也绝对打开不了(WPS作为小可爱确可以打开= =)。例如下图:目前你生成的doc/docx底层还是xml格式的,转pdf或者在手机上看都只能看到xml文件。MS-Office下的word在2007

2020-05-13 20:21:59 3816 13

原创 SpringBoot 导出Word文档(doc\docx) Office无法打开,WPS正常等坑

首先引入freemarker依赖<!--引入freemarker 模板依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemar...

2020-04-29 16:11:20 6520 3

原创 校招-高级知识点

外部排序如何排序10G个元素 (扩展的归并排序)将数据分为左右两半,分别归并排序,再把两个有序数据归并。[1,3,6,7],[1,2,3,5] 1[3,6,7],[1,2,3,5] 1[3,6,7],[2,3,5] 2push(2);push(1);push(3);push(4)pop() == 1当某路数字拿完了,再去外部存储中拿缓冲区大小的数据。归并使用Ite...

2020-04-22 22:30:01 178

达内NETCOSS电信计费系统

达内NETCOSS电信计费系统(完整版),适合网上购买java课程的下载使用!

2018-05-11

空空如也

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

TA关注的人

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