自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (7)
  • 论坛 (1)
  • 收藏
  • 关注

原创 分布式Zookeeper面试题

ZooKeeper 是一个开放源码的分布式协调服务, 它是集群的管理者, 监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终, 将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。Zookeeper 保证了如下分布式一致性特性:1、顺序一致性2、原子性3、单一视图4、可靠性5、实时性( 最终一致性)客户端的读

2020-07-05 15:56:23 122

原创 Java语言之父James Gosling介绍

周末了,B哥今天不聊技术,聊点轻松的话题,聊聊Java作者James Gosling的经历和介绍。50年前,一个寒冷的冬天,在加拿大一个村庄里,Gosling家的第一个男孩哇哇落地了。家人给他起了名字,叫James。谁也没有想到的是,长大之后,他成为了一个改变计算机语言的天才。James Gosling从小就喜欢技术,爱鼓捣东西。12岁的时候,他用报废的电话机和电视机中的部件做了一台电子游戏机。附近农民的康拜因(联合收割机)出了问题也常常找他修理。14岁的时候,中学组织到附近大学参观,他记住了大学计算中

2020-07-05 15:42:10 853

原创 一个30岁JAVA程序员的肺腑之前,不管是刚入行,还是干了几年的人,一个忠告,一个建议

本人喜欢技术,喜欢攻克一个问题给自己带来的快感,就像是那种被征服的感觉一样。可能很多人仅仅是为了工作。但是仅仅是喜欢远远是不够的,最近在看工作。突然发现一个问题。自己简历上居然找不到亮点。感觉自己写了很多代码,但是呢似乎都很普通。那问题来了。如何让自己简历上有亮点呢?废话不多说。直接谈谈自己的看法吧 首先,作为一个程序员一定要有规划,如何规划,其实就是看你内心是不是喜欢技术,想一直干技术。如果想,那么肯定特别希望去那些大厂子里面,工资高,技术层面高,遇到的问题难,自我提升特别快。但是呢,想去,不是说去就.

2020-05-30 13:48:16 8920 11

原创 普通 Java 面试 ,这是在评估者的知识结构。

普通 Java 面试 ,这是在评估者的知识结构。JVM原理多线程数据结构和算法高并发设计模式等内容P7 的技术问这些:Redis实现分布式缓存有哪些坑?如何避免缓存穿透的问题?缓存数据一致性如何解决?MySQL Innodb 索引结构是 B+树,具体 Innodb 的索引有什么特性?如果遇到慢查询、遇到高并发后,你从哪几个方向去优化MySQL?交易场景下,你的状态流转是怎么设计的?很多人全都是业务代码,你怎样才能做到更高层面的抽象?微服务架构下,对于服务降级和边界条件,你是怎么看的,

2020-05-23 16:52:45 561

原创 垃圾收集器ParNew&CMS

标记-复制算法为了解决效率问题,“复制”收集算法出现了。它可以将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收都是对内存区间的一半进行回收。标记-清除算法算法分为“标记”和“清除”阶段:标记存活的对象, 统一回收所有未被标记的对象(一般选择这种);也可以反过来,标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象 。它是最基础的收集算法,比较简单,但是会带来两个明显的问题:...

2021-07-29 18:49:21 7

原创 jvm常见监控工具&指令

一、jvm常见监控工具&指令1、 jps:jvm进程状况工具jps[options][hostid]如果不指定hostid就默认为当前主机或服务器。命令行参数选项说明如下:-q不输出类名、Jar名和传入main方法的参数- l输出main类或Jar的全限名-m输出传入main方法的参数- v输出传入JVM的参数例如:2、jstat: jvm统计信息监控工具jstat 是用于见识虚拟机各种运行状态信息的命令行工具。它可以...

2021-07-29 18:48:42 29

原创 java如何判断一个类是无用的类

方法区主要回收的是无用的类,那么如何判断一个类是无用的类呢?类需要同时满足下面3个条件才能算是 “无用的类” :该类所有的对象实例都已经被回收,也就是 Java 堆中不存在该类的任何实例。 加载该类的 ClassLoader 已经被回收。 该类对应的 java.lang.Class 对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。...

2021-07-24 21:21:12 10

原创 Docker是什么?

Docker简介Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程 序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。Docker的优点如下:1,简化流程2,避免选择恐惧症3,节省开支Docker的架构Docker daemon( Docker守护进程) Docker daemon是一个运...

2021-07-22 21:53:01 16 1

原创 领域驱动设计-DDD

DDD思想的来源三个项目的对比一种思潮现有项目的四个痛楚1,新区求越来越难2,开发越来越难3,测试越来越难4,创新越来越难

2021-07-22 09:10:02 11

原创 java并发多线程

一,并发多线程1,为什么要多线程2,线程生命状态,线程池3,JMM线程模型4,syn加锁1,同步锁,2,JVM内置锁,3,可以加载静态代码快,加载方法,加载类上4,加锁原理(Monitor)(1)1.6之前 Linux-Mutex,互斥锁,重量级锁。性能低。线程上下文的切换(2)1.6之后锁的优化升级,偏向锁,轻量级锁,重量级锁。(3)怎么实现。在JAVA的数据结构中有对象头,实例数据,对饮填充位,(4)偏向状态。0.1(后2位)锁状态标致,在对象头里面记录当前对象的锁的状态,根据标

2021-07-21 16:21:17 16

原创 分布式事务解决方案

分布式事务seata1,角色划分RM 资源管理者TM 事务管理者 充当全局事务的发起着TC 全局事务的协调着,决定事务的回滚和提交2,二阶段提交一阶段只执行不提交二阶段提交事务

2021-07-21 16:20:45 6

原创 spring IOC核心流程

1,控制反转创建对象的过程交给工厂容器,需要时,从工厂中直接获取,不需要关注对象的创建过程2,依赖注入有了控制反,才会有依赖注入3,循环依赖(依赖注入引起)二级缓存,三级缓存(保证代理对象的循环依赖)4,正式有了spring 的IOC的核心功能(控制反转 依赖注入),第三方框架想法设法的将自己的组件集成到spring容器里面比如 spring 和mybatisspring整合Redis Redistemplatespring整合Nacosspring 整合zookpeeper5,sp

2021-07-21 16:20:23 8

转载 java中注解的原理和实现机制

一.什么是注解: 注解是标记,也可以理解成是一种应用在类、方法、参数、属性、构造器上的特殊修饰符。注解作用有以下三种: 第一种:生成文档,常用的有@param@return等。 第二种:替代配置文件的作用,尤其是在spring等一些框架中,使用注解可以大量的减少配置文件的数量。 第三种:检查代码的格式,如@Override,标识某一个方法是否覆盖了它的父类的方法。二.注解的底层实现原理: 注解的底层也是基于反射实现的,注解和接...

2021-07-21 16:04:57 10

原创 电商管理系统需要实现的基础功能

电商管理系统思维导图,及需要考虑的问题,如下

2021-02-19 23:55:03 74

原创 数据结构与算法-总结-大纲

数据结构与算法-总结-大纲

2021-01-10 19:00:11 24

原创 数据结构与算法-二叉树,前序,后续,中序遍历

树的几个重要元素1,节点:树里面的元素2,父子关系:节点之间相连的关系3,子树:当节点大于1是,其余不相交的节点的集合称作子树4,度:一个节点拥有子树的数量称作度5,孩子:节点的子节点6,双亲节点7,兄弟节点9,森林:由N个不相交的树组成节点的高度:节点到叶子节点的最长路径节点的深度:根节点到该节点的边个数节点的层数:节点的深度+1树的高度:根节点的高度二叉树1,每个节点最多有两个节点2,第N层最多有2^(N-1)个节点满二叉树:除叶子结点外,每个结点都有左右两个子结点。完

2020-12-28 11:51:44 32

原创 采坑-rabbitmq线上消费消息特别慢,一条消息延迟最高超过5分钟

在使用spring-boot +rabbitimq时,发现消息延迟的厉害,严重影响系统使用。经过三天的排查发现一个巨大的坑。贴出核心代码:这个是用户注册的一个消息处理器,某人居然在消息处理的过过程中使用线程睡眠的方式将整个消费队列的睡眠2分钟。这个会导致同一个消费队列下的消费能力下降N个档期,优化方案,将代码删除。使用延迟方案解决...

2020-12-25 09:42:56 826

原创 spring-boot +data jpa+系统启动超级慢和蜗牛一样

spring-boot +data jpa+系统启动调优

2020-12-22 14:27:18 407

原创 数据结构与算法-算法的魅力-一行代码性能提升千百不止

无意计算机底层原理及JVM底层后,就发现一行代码竟然会让系统性能提升一千倍不止。不是吹牛,本人亲测优化后:唯一的区别就是将临时变量提取出来,如果是200w+数据,第一种方式需要很久很久很久才会出结果,而加了临时变量后,性能提升千倍不止;原因分析:频繁的开辟新的空间导致JVM频繁的垃圾回收,导致运行效率下降个人建议:在开发中如果需要用到临时变量,最可能避免频繁的开辟大空间,销毁空间,这对系统性能提升有很大很大的帮助接下来看下归并排序优化前package edu.sort;import java

2020-12-22 14:14:53 38

原创 数据结构与算法-贪心算法

贪心算法的套路:一定会有一个排序。哈夫曼编码,贪心算法,压缩算法。最短路径贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心算法其最重要的两个点就是:贪心策略:排序通过局部最优解能够得到全局最优解一般通过以下问题就可以通过贪心算法解决:1.针对某个问题有限制值,以及有一个期望的最好结果,通常是从某些数据中选出其中一些,达到最好的结果。2.一般会有一个排序,找出贡献最大的。3.举例看贪心

2020-12-21 21:00:03 83

原创 数据结构与算法-插入,冒泡,选择,希尔,归并,快速排序优缺点及使用场景

常见的算法对比如下如何选择使用什么排序算法1 分析场景:稳定还是不稳定2.数据量:数据量小的时候选什么?比如就50个数,优先选插入,数据量比较大如(5000*5000=25000000)则选择其他排序3.分析空间:综上所述,没有一个固定的排序算法,都是要根据情况分析的。但是如果你不会分析的情况下 选择归并或者快排。C++ qsort:快排+插入排序jdk里面有arrays.sort:一种是基础类型,int double 用的快排。对象排序,用的是归并+timeSort...

2020-12-20 18:43:20 137

原创 数据结构与算法-冒泡排序

核心思路:冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序工作。package edu.sort;import cn.hutool.core.util.ArrayUtil;/** * 冒泡排序 * 时间复杂度:O(n^2) * 空间复杂度:O(n) * 思路:冒泡排序智慧操作相邻的的两个数据, * 每次冒泡操作都会对相邻的两个.

2020-12-20 18:39:38 92

原创 数据结构与算法-插入排序

1.将数组分成已排序段和未排序段。初始化时已排序端只有一个元素2.到未排序段取元素插入到已排序段,并保证插入后仍然有序3,重复执行上述操作,直到未排序段元素全部加完。循环次数:2,时间复杂度:n^2最好的情况 O(n)最坏的情况 O(n^2)package edu.sort;/** * 插入排序 * * @author: LHT * @date: 2020/12/14 14:44 */public class InsertionSort { /** .

2020-12-20 18:38:03 63

原创 数据结构与算法-快速排序

1.时间复杂度:nlogn 最坏的情况就是O(n^2)2.空间复杂度:O(n)3.稳定性:不稳定4.快排和归并的对比:(1)归并排序的处理过程是由下到上的,先处理子问题,然后再合并。(2)快排其实就是从上到下,先分区,在处理子问题,不用合并。其优化就是优化基准数,提供一个取三个数中间的思路.package edu.sort;import cn.hutool.core.util.ArrayUtil;/** * 快速排序 * 核心概念:基准数。一般取第一个。 * 第一遍对比,结果

2020-12-20 18:36:21 205 4

原创 数据结构与算法-插入排序和归并排序

常见的算法快速排序、冒泡排序,希尔排序,二分排序(二路归并)(nlogn),桶排序,堆排序,基数排序插入,希尔,归并选择,冒泡,快速堆排序:##分析算法的指标1,时间效率2,空间复杂度3,比较次数和交换次数4,稳定性1 9 3 5 3第一种:1 3 3 5 9第二种:1 3 3 5 9哪一种是稳定的?相同的两个数排完序后,相对位置不变。意义:电商里面订单排序:首先会按金额从小到大排,金额相同的按下单时间。我从订单中心过来的时候已经按照时间排好序了。1插入排序假设有个这样的问

2020-12-14 16:48:36 56

原创 数据结构与算法-递归思想,及使用场景和优化思路

什么情况下可以使用递归1,一个问题可以分解为几个子问题的解,我们可以通过分治思想将一个数据规模大的问题分解为很小的问题2,这个问题和分解之后的子问题,求解思路一样。3.一定有一个最后确认的答案,技递归的终止条件斐波那契数列1 1 2 3 5 8求解公式fn(n)=fn(n-1)+fn(n-2)package edu.rec;/** * 什么情况下可以使用递归 * 1,一个问题可以分解为几个子问题的解,我们可以通过分治思想将一个数据规模大的问题分解为很小的问题 * 2,这个问题和分解

2020-12-14 11:55:33 51

原创 基础数据结构与算法-数组,队列,链表,栈

package edu.stack;/** * @author: LHT * @date: 2020/12/13 11:38 */public class MyStack { String[] data = new String[1]; int index; /** * 入栈 * * @param value * @return */ public int push(String value) { .

2020-12-13 15:41:27 36

原创 数据结构与算法-链表

1.链表的定义链表通过指针将一组零散的内存块串联在一起。其中,我们把内存块称为链表的“结点”。为了将所有的结点串起来,每个链表的结点除了存储数据之外,还需要记录链上的下一个结点的地址。画图演示:2.特点(1)不需要连续的内存空间。(2)有指针引用(3)三种最常见的链表结构:单链表、双向链表循环链表和单向表类似,不过头尾相连(4)头结点:第一个节点(5)尾结点: 最后一个节点...

2020-12-12 16:20:32 35

原创 数据结构与算法-算法设计原则,评价算法的两个重要指标及时间复杂度计算的意义

1,设计原则正确性,可读性,健壮性,高效性与低内存内存占用小,CPU占用最小,运算最快2,评价算法的两个重要指标时间复杂度:运行一个程序所需要的时间 O空间复杂度:运行一个程序索引需要的空间 OOM3,账时间复杂度计算的意义?怎么测试接口的性能?压测,冒烟,要依赖测试环境,流程长,规模和数据不准确比如排序算法:123 、321 效率不一样一个数和1亿个数不一样。导致结果不准确。所以需要自己计算时间复杂度时间复杂度表达方式:O(n) O(ologn)...

2020-12-12 16:04:37 346

原创 centor6.7安装rocketmq

centor6.7安装rocketmq1.首先下载安装文件下载地址:http://rocketmq.apache.org/release_notes/release-notes-4.7.1/wget安装wget https://mirror.bit.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip安装unzip的安装包unzip rocketmq-all-4.7.1-bin-release.zip运行Roc

2020-12-12 16:04:19 32

原创 数据结构与算法-基础数据结构-数组

数据结构与算法(基础数据结构-数组)1.数组的定义所谓数组,是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。int 的数组你就不能存float 也不能存double数组是用于储存多个相同类型数据的集合。通常用Array表示,也称

2020-12-12 16:03:21 45

原创 JAVA面试题,判断一个数是否是2的N次方

1,while(n>1){n%2==0;//不等于0,肯定不是,等于0及,n=n/2;}2,位运算1: 012:103: 0114: 1007: 01118: 1000判断方法if(n&(n-)==0) 是 否则 不是代码/** * 高效率和低内存 * 判断一个数是否是2的N次方 */public class ACM2N { /** * 1: 01 * 2:10 * 3: 011 * 4: 100

2020-12-07 21:25:52 193

原创 什么是Mybatis?优缺点及使用技巧

1、什么是Mybatis?1、Mybatis 是一个半 ORM( 对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身, 不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能, 灵活度高。2、MyBatis 可以使用 XML 或注解来配置和映射原生信息, 将 POJO 映射成数据库中的记录, 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。3、通过 xml 文件或注解的方式将

2020-12-03 15:09:05 739

原创 如何在3亿个整数存储0,2亿个数据,判断是否存在,限制内存500M

问题:如何在3亿个整数存储0,2亿个数据,判断是否存在,限制内存500M解决方案1,分治,2,布隆过滤器3,Redis4,Hash,开辟3亿数组5,数组,2亿个数组位运算左移8: 0000 0000 0000 000 0000 0000 0000 1000–>2^3=8<<2: 0000 0000 0000 000 0000 0000 0010 0000–>2^5=32右移2 0000 0000 0000 000 0000 0000 0000 0010

2020-11-29 16:46:54 153

原创 Hash函数的整理和归纳,以及应用

1,加密:MD5,Hash加密算。存在密码冲突,128位的二进制串。不可逆。破解,将MD5密码库存起来了, 利用穷举列举出来2,怎么判断视频是否重复3,相似性检测,论文检测,指纹算法,每一个论文有一个指纹,计算汉明距离4,负载均衡,NGINX 两台机器计算IP落到那个机器上5,分布式系统:数据分库问题。10亿数据:hash()%10,将数据分配到10个库里面。分表问题,id%10 =()?出现的问题:动态扩容问题。查询问题。数据量很大。迁移问题6,一致性哈希,哈希环:假如有K个表,数

2020-11-29 14:20:27 102

原创 JVM垃圾收集器分带收集理论介绍

分代收集理论年轻代1,标记-复制,把存活的对象标记出来,复制到另外一个区域,然后把这个区域的全部删除缺点:1,标记的对象太多,效率不高老年代使用2,标记-清理(缺点,内存会有很多碎片,不易管理,性能高)3,标记-整理(内存中不会有碎片,但是性能低于清理)4,Serial垃圾收集器串行收集,stop the world,简单5,Paralle; 垃圾收集器串行收集,多线程性能高。默认线程数是和CPU核数一样的6,ParNew可以和 CMS配合使用,负责年轻代使用7,CMS垃圾收集器

2020-11-21 15:06:41 76

原创 postgresql 查询集合结果用逗号分隔返回字符串

postgresql 查询集合结果用逗号分隔返回字符串处理SELECT string_agg(key||’’ , ‘,’) FROM table where item_id=item.id

2020-11-19 17:33:32 326

原创 2020Mybatis面试题

1、什么是Mybatis?1、Mybatis 是一个半 ORM( 对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身, 不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能, 灵活度高。2、MyBatis 可以使用 XML 或注解来配置和映射原生信息, 将 POJO 映射成数据库中的记录, 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。3、通过 xml 文件或注解的方式将

2020-07-05 16:08:53 150

原创 2020年缓存Redis面试题与答案

1、什么是Redis?Redis 是完全开源免费的, 遵守 BSD 协议, 是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis 不仅仅支持简单的 key-value 类型的数据, 同时还提供 list, set, zset, hash 等数据结构的存储。Redis 支持数据的备份, 即 master-slave 模式的数据备份。Re

2020-07-05 15:52:47 1030

原创 Docker快速入门与实操实践

Docker简介Docker是一个开源的容器引擎,它有助于更快地交付应用。Docker可将应用程序和基础设施 层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部 署应用程序,并可以缩短从编写到部署运行代码的周期。Docker的优点如下:1.更高效的利用系统资源docker对系统资源的利用率更高,无论是应用执行速度,内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相同配置的主机往往可以运行更多数量的应用。2.更快速的启动时间传统

2020-07-05 15:40:11 237

ju-gui 反编工具

一个很小、很好用的反编译软件。不支持加密反编译。反编译之后不能够看到以前的注释,这一个缺点。也可以了。能看就不错了

2014-09-11

极简黑色java工程师求职简历word简历模板.docx

极简黑色java工程师求职简历word简历模板.docx

2021-05-14

粉色小清新风格JAVA工程师求职简历word简历模板.docx

粉色小清新风格JAVA工程师求职简历word简历模板.docx

2021-05-14

现代风格java工程师求职简历word简历模板.docx

现代风格java工程师求职简历word简历模板.docx

2021-05-14

深蓝色简约市场专员简历word简历模板.docx

深蓝色简约市场专员简历word简历模板.docx

2021-05-14

经典简洁风格财务会计求职简历word简历模板.docx

经典简洁风格财务会计求职简历word简历模板.docx

2021-05-14

JsonView.zip

JSONVIEW,开发神器,格式化JSON数据,可以快速检查出JSON数据是否合法合规,并且可以准确定位数据。开发利器

2020-05-16

Tomcat超级慢!项目下只有这一个项目

发表于 2013-04-26 最后回复 2013-04-28

空空如也

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

TA关注的人 TA的粉丝

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