sun cat
码龄6年
  • 430,208
    被访问
  • 233
    原创
  • 3,036
    排名
  • 1,869
    粉丝
关注
提问 私信

个人简介:只有让自己变得更优秀,才无所畏惧

  • 目前就职: 美的集团
  • 加入CSDN时间: 2016-12-21
博客简介:

suncat的博客

查看详细资料
  • 5
    领奖
    总分 1,051 当月 99
个人成就
  • 美的集团后端开发工程师
  • 博客专家认证
  • 获得332次点赞
  • 内容获得92次评论
  • 获得1,637次收藏
创作历程
  • 5篇
    2022年
  • 58篇
    2021年
  • 26篇
    2020年
  • 143篇
    2019年
  • 1篇
    2017年
成就勋章
TA的专栏
  • Java基础总结补充
    1篇
  • java基础总结
    37篇
  • 实际中一些问题
    12篇
  • Spring相关
    11篇
  • 后端相关工具
    6篇
  • 计算机网络基础
    4篇
  • 数据库及SQL
    5篇
  • 大数据
    13篇
  • Java容器
    15篇
  • Java容器源码
    6篇
  • Java复用类
    3篇
  • Java数据结构与算法
    12篇
  • Java多态
    2篇
  • Java接口及抽象类
    5篇
  • Java内部类
    5篇
  • Java序列化
    3篇
  • Java字符串及基本类
    9篇
  • Java注解
    2篇
  • Java泛型
    2篇
  • Java虚拟机
    6篇
  • Java线程及进程
    32篇
  • Java反射
    1篇
  • Java回收机制
    2篇
兴趣领域 设置
  • 大数据
    mysqlhadoophiveredissparketl
  • 数据库管理
    数据仓库
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

EasyExcel-(1)使用篇

EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。本博客将介绍其如何使用。
原创
发布博客 2022.06.05 ·
73 阅读 ·
0 点赞 ·
1 评论

CAS详情汇总讲解

一、CAS是什么Compare and Swap,即比较再交换。二、CAS原理CAS机制当中使用了3个基本操作数:内存地址V值,预期值A,修改完成后的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V值相同时,才会将内存地址V对应的值修改为B。三、CAS的缺点:1.CPU开销较大在并发量比较高的情况下,如果许多线程反复尝试更新某一个变量,却又一直更新不成功,循环往复,会给CPU带来很大的压力。2.不能保证代码块...
原创
发布博客 2022.04.03 ·
327 阅读 ·
0 点赞 ·
0 评论

与(&)、非(~)、或(|)、异或(^) java运算符

运算符 运算符符号 使用规则 个人理解 与 & 两个操作数中位都为1,结果才为1,否则结果为0。 有0为0 非 ~ 如果位为0,结果是1,如果位为1,结果是0 0/1反过来 或 | 两个位只要有...
原创
发布博客 2022.03.29 ·
617 阅读 ·
0 点赞 ·
0 评论

throw和throws区别

我们先来直观的看看他们之间的用法:throw:一般出现在方法体内,并且在使用的时候是以抛出异常对象为结束,后面的代码不会再执行,比如:public void suncat(){ if(users.isEmpty()){ Thrownew RuntimeException("用户列表不能为空"); }}throws:一般出现在方法名字后,表示方法内的异常不做处理,抛给那些调用该方法的程序。比如:public static void function
原创
发布博客 2022.03.28 ·
395 阅读 ·
2 点赞 ·
0 评论

JVM垃圾回收算法-CMS算法

一、CMS算法是什么CMS算法是JVM中老年代常用的垃圾回收算法,全称是Concurrent Mark Sweep算法,即并发标记-清除算法。算法的执行步骤如下图所示,共有六个步骤。1 、初始标记(Initial Mark):CMS算法中两个会触发Stop the World事件中的一个,这个阶段会标记所有与GC Roots直接相关联的对象,以及被存活的青年代对象所直接引用的对象。2、 并发标记(Concurrent Mark):...
原创
发布博客 2022.03.27 ·
438 阅读 ·
2 点赞 ·
1 评论

大数据篇(2-3)--Hive(3)Hive调优

hvie调优可以分为几个模块进行考虑,数据的压缩与存储,hive参数的优化,sql的优化,解决数据的倾斜等。一,数据的压缩与存储格式1)压缩方式 压缩可以节约磁盘的空间,基于文本的压缩率可达40%+; 压缩可增加吞吐量和性能量(减小载入内存的数据量),但是在压缩和解压过程中会增加CPU的开销。所以针对IO密集型的jobs(非计算密集型)可以使用压缩的方式提高性能。 几种压缩算法: 压缩方式 压缩后大小 压缩速度 ...
原创
发布博客 2021.10.08 ·
102 阅读 ·
0 点赞 ·
0 评论

Redis(4)-Redis遇到的问题

问题一:aof文件过大解决方案:(1)使用BGREWRITEAOF命令(里面会有大部分是重复命令或者可以合并的命令(100次incr = set key 100)。aof重写机制的出现目的是给aof持久化文件瘦身,因为随着时间推移aof文件会变得越来越大。但是在aof文件内存储的字符指令实际上是可以进行合并重写的。经过几个月之后,发现还是存在aof文件过大的问题。所以,用定时任务来跑,不能解决根本问题。因为aof是记录了很多操作日志,就像Mysql的bin_l...
原创
发布博客 2021.10.08 ·
79 阅读 ·
0 点赞 ·
0 评论

MQ篇(3-6)--kafka特点

一、高可用性1.Kafka 本身是一个分布式系统,同时采用了 Zookeeper 存储元数据信息,提高了系统的高可用性。2.Kafka 使用多副本机制:当状态为 Leader 的 Partition 对应的 Broker 宕机或者网络异常时,Kafka 会通过选举机制从对应的 Replica 列表中重新选举出一个 Replica 当做 Leader,从而继续对外提供读写服务(当然,需要注意的一点是,在新版本的 Kafka 中,Replica 也可以对外提供读请求了),利用多副本机制在一定程度上提高了
原创
发布博客 2021.10.08 ·
154 阅读 ·
0 点赞 ·
0 评论

大数据篇(1-3)--Hadoop(3)-YARN

一、YARN 简介Apache YARN(Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。二、YARN架构(1)ResourceManagerResourceManager通常在独立的机器上以后台进程的形式运行,它是整个集群资源的主要协调者和管理者。ResourceManager负责给用户提交...
原创
发布博客 2021.07.03 ·
59 阅读 ·
4 点赞 ·
5 评论

大数据篇(1-2)--Hadoop(2)-MapReduce

一、MapReduce概述Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序。编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集。MapReduce 作业通过将输入的数据集拆分为独立的块,这些块由map以并行的方式处理,框架对map的输出进行排序,然后输入到reduce中。MapReduce 框架专门用于<key,value>键值对处理,它将作业的输入视为一组<key,value>...
原创
发布博客 2021.07.03 ·
83 阅读 ·
0 点赞 ·
1 评论

大数据篇(1-1)--Hadoop(1)-HDFS

一、HDFSHDFS(Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。二、HDFS设计原理HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成:NameNode: 负责执行有关文件系统命名空间的操作,例如打开,关闭、重命名文件和目录等。它同时还负责集群元数据的存储,记录着文件中各个数据块的位置信息。N...
原创
发布博客 2021.07.03 ·
55 阅读 ·
0 点赞 ·
0 评论

大数据篇(2-2)--Hive(2)Hive分区表和分桶表

一、分区表概念:分区为 HDFS 上表目录的子目录,数据按照分区存储在子目录中。如果查询的where字句的中包含分区条件,则直接从该分区去查找,而不是扫描整个表目录,合理的分区设计可以极大提高查询速度和性能。备注:Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大。使用场景:通常,在管理大规模数据集的时候都需要进行分区,比如将日志文件按天进行分区,从而保证数据细粒度的划分,使得查询...
原创
发布博客 2021.07.03 ·
79 阅读 ·
0 点赞 ·
1 评论

大数据篇(2-1)--Hive(1)简介

一、Hive是什么Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 Hadoop 上运行。特点:简单、容易上手 (提供了类似 sql 的查询语言 hql),使得精通 sql 但是不了解 Java 编程的人也能很好地进行大数据分析。 灵活性高,可以自定义用户函数 (UDF) 和存储格式。 为超大的数据集设计的计算和存储能力,集群扩展容易...
原创
发布博客 2021.07.03 ·
54 阅读 ·
0 点赞 ·
0 评论

Spring篇(5-1)--Spring事务流程原理

前言:我们知道,使用Spring事务只需要几个注解即可@EnableTransactionManagement @Transactional,那它是怎么做到的呢?一、@EnableTransactionManagement其实主要的方法在@EnableTransactionManagement 注解中,我们先来看看其源码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(T.
原创
发布博客 2021.04.19 ·
271 阅读 ·
2 点赞 ·
2 评论

Spring篇(3)--Spring Aop基本流程原理

一、代理对象的创建过程:AbstractAutowireCapableBeanFactory#initializeBeanprotectedObjectinitializeBean(StringbeanName,Objectbean,@NullableRootBeanDefinitionmbd){ if(System.getSecurityManager()!=null){ AccessController.doPrivileged((PrivilegedAction<
原创
发布博客 2021.04.18 ·
1403 阅读 ·
1 点赞 ·
8 评论

Spring篇(2)--Spring IOC基本流程原理

前言:Spring IoC 容器初始化的关键环节就在 AbstractApplicationContext#refresh() ⽅法中@Overridepublicvoidrefresh()throwsBeansException,IllegalStateException{ synchronized(this.startupShutdownMonitor){ StartupStepcontextRefresh=this.applicationStartup.start(
原创
发布博客 2021.04.12 ·
247 阅读 ·
0 点赞 ·
1 评论

Spring Cloud --- Feign

一、Feign是什么Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求。Spring Cloud引入 Feign并且集成了Ribbon实现客户端负载均衡调用。二、Feign解决了什么封装了Http调用流程,更适合面向接口化的变成习惯。三、Feign工作原理1.基于面向接口的动态代理方式生成实现类2.基于RequsetBean,动态生成Request3.使用Encoder将Bean转换为Http报文正文4.拦截器负责...
原创
发布博客 2021.04.10 ·
75 阅读 ·
0 点赞 ·
0 评论

SpringCloud --- Eureka

一、Eureka是什么Eureka是Netflix组件的一个子模块,也是核心模块之一。云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移Eureka服务端(以下简称服务端)与Eureka客户端(以下简称客户端)之间协同工作的流程:二、Eureka优缺点优点:(1)故障转移:在Eureka平台中,如果某台服务器宕机,Eureka不会像zookeeper选择leader的过程,客户端请求会自动切换到新的Eureka节点,当宕机的服务器重新恢复后
原创
发布博客 2021.04.10 ·
91 阅读 ·
0 点赞 ·
0 评论

MQ篇(3-5)--kafka核心组件之四-日志管理器

一、日志的存储Kafka的消息以日志文件的形式进行存储。不同主题下不同分区的消息是分开存储的。同一个分区的不同副本也是以日志的形式,分布在不同的broker上存储。日志的存储是以副本为单位的,每个副本对应一个log对象,一个log又划分为多个logSegment进行存储。kafka会在指定的目录下创建对应的文件夹,命名规则为“topic名称-分区编号”。logSegment代表逻辑上的一组文件,这组文件就是.log、.index、.timeindex这三个不同文件扩展名,但是同文件名的文
原创
发布博客 2021.04.10 ·
116 阅读 ·
0 点赞 ·
0 评论

MQ篇(3-4)--kafka核心组件之三-控制器

一、控制器是什么其实控制器也是一个broker,控制器也叫leader broker。Kafka的集群由n个的broker所组成,每个broker就是一个kafka的实例或者称之为kafka的服务。二、控制器选举kafka每个broker启动的时候,都会实例化一个KafkaController,并将broker的id注册到zookeeper。集群在启动过程中,通过选举机制选举出其中一个broker作为leader,也就是前面所说的控制器。有三种情况触发控制器选举:1、集群启动.
原创
发布博客 2021.04.10 ·
105 阅读 ·
0 点赞 ·
0 评论
加载更多