<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Java极客技术]]></title><description><![CDATA[Java 人的社区,专注 Java 一百年!]]></description><link>https://blog.youkuaiyun.com/javageektech</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; javageektech]]></copyright><item><title><![CDATA[JDK里面自带了这么多的exe，你都挨着试过么？]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101478</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101478</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:23:27 +0800</pubDate><description><![CDATA[JVM
话说面试这块，JVM算是一个经典的也是三年必问的知识点了，而且这个知识点算是最重要的一个知识点，你如果会这个内容，那么对你的在之后的面试中，能够喊出一个不错的价格。
而关于JVM和还有关于垃圾回收算法的解析，阿粉在这里就不在给大家进行讲解了。大家有兴趣的可以看一下阿粉之前推出的这几篇文章
性能监控工具
我们都在最开始学Java的时候，安装过Java，不管是直接安装版本还是复制过来解压好的，大家都可以在JDK的安装目录中找到一些exe的程序，而这些exe的程序里面，有很多是我们不怎么去关注的性能的监控]]></description><category></category></item><item><title><![CDATA[启动线程时使用 start 而不是 run]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101450</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101450</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:22:50 +0800</pubDate><description><![CDATA[今天团队里面的妹子问阿粉，为什么在启动线程的时候，都使用 start 方法，而不是 run 方法呢

还好阿粉平时一直有在学习，要不真的被妹子问住了
在多线程中，如果想让一个线程启动，你使用的方法一定是 thread.start() 方法,而不是 thread.run() 方法（啥，你用的不是 thread.start() 方法？乖，你的打开方式不对哦，下次不要这样了
有没有疑惑，为什么每次我们都习惯调用 start() 方法，为什么不直接调用 run() 方法来启动线程呢？
而且如果去看源码的话，你会发现]]></description><category></category></item><item><title><![CDATA[一张很大的表应该如何做查询优化]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101418</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101418</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:22:06 +0800</pubDate><description><![CDATA[Hello，大家好，我是阿粉，今天是周六，你是在放假还是跟阿粉一样在加班呢？今天的课题是跟大伙聊聊数据表的优化问题，这个问题小伙伴们在工作应该会遇到而且在面试中还经常会问到。

我们都知道当 MySQL 中的表很大的时候，我们的查询就会变得很慢，即使是在进行分页查询，使用 count(*) 计算总条数的时候也是很慢，MySQL 的数据一般达到千万级别的时候就会变得很慢，往往这个时候我们就需要进行优化了，那么优化主要从哪几个方面呢？请听阿粉慢慢道来。
控制数据量
对于线上大表进行查询的时候，我们控制允许查询的]]></description><category></category></item><item><title><![CDATA[RPC和 MQ如何选择？]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101396</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101396</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:21:26 +0800</pubDate><description><![CDATA[阿粉最近看了一场架构师之路沈剑老师的一场直播，最近又重温了一下，根据自己的认知总结了一下，分享给大家。
MQ 想必大家或多或少都用过，接入 MQ 之后的整体架构如下：

可以看到使用 MQ 之后，上下游通信就变成图上的这种方式。
这种跨进程的通信方式，我们还有一种常用的解决方案，使用 Dubbo 等这类 RPC 服务。
理论上使用 RPC 的跨进程通信的场景，使用 MQ 也能解决，当然反过来也能说通。
那为什么不都用 RPC，或者 MQ 来解决那？
这其实都是业务场景决定的，抛开业务场景来谈架构都是耍流氓！]]></description><category></category></item><item><title><![CDATA[并发编程把我整的是服服气气的了]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101346</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101346</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:20:26 +0800</pubDate><description><![CDATA[阿粉因为原来的编程习惯，已经很久没有去考虑并发的问题了，结果之前在面试的问题就回答的不是很完善，而阿粉也用心学习了并发编程这一块的所有内容，一起来分享给大家。

为什么需要并发编程
因为现在的CPU我们大家也都知道，什么几核几线程，各种各样，而我们并发编程的目的是为了让程序运行得更快，这里的更快说的并不是让我们无限制启动更多的线程就能让程序进行最大可能的并发操作，但是我们在进行并发编程的时候，很容易遇到很多的问题，比如说死锁问题，再比如说上下文的切换的问题，这都是问题所在。
实现多线程的几种方式，面试中最简]]></description><category></category></item><item><title><![CDATA[Gitbook 接入 Gitlab Webhook 功能，实现文档实时在线更新]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101307</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101307</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:19:38 +0800</pubDate><description><![CDATA[步骤

安装 Node 和 NPM；
安装git， gitbook，gitbook-cli；
配置 Gitlab Webhook；
创建 Webhook 监听服务；
编辑文档检查实时更新；

安装 Node，NPM
第一步我们先安装 Node 和 NPM，
# 下载压缩包
wget https://nodejs.org/dist/v9.10.1/node-v9.10.1-linux-x64.tar.gz
# 解压
tar xzvf node-v9.10.1-linux-x64.tar.gz
# 重命名
mv]]></description><category></category></item><item><title><![CDATA[HashMap 数据覆盖问题]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101276</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101276</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:18:54 +0800</pubDate><description><![CDATA[阿粉今天就来谈谈这个，这个问题在 1.7 版本和 1.8 版本中都有，阿粉分别来说说
在说之前，咱们先要达成一个共识： HashMap 发生数据覆盖的问题，是在多线程环境 &amp; 扩容下产生的，接下来咱们具体来看
jdk 1.7
	void transfer(Entry[] newTable, boolean rehash) {  
        int newCapacity = newTable.length;  
        for (Entry&lt;K,V&gt; e : table) ]]></description><category></category></item><item><title><![CDATA[RandomAccess 明明是个空接口，能有什么用呢]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101234</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101234</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:18:03 +0800</pubDate><description><![CDATA[背景
打开 JDK 源码，搜索 RandomAccess 我们可以看到，如下代码块，就是一个申明，里面空空如也，啥也没有。要是放在以前阿粉肯定会觉得这种写法肯定没什么用，但是毕竟看过二哥之前的文章，阿粉已经学到了，不会再那么年轻了。
public interface RandomAccess {
}

在介绍RandomAccess 的作用之前我们先看下集合 List 的两个基本的实现ArrayList 和LinkedList ，这两个的区别主要有下面几个

底层数据结构不同，Arraylist 底层使用的]]></description><category></category></item><item><title><![CDATA[HashMap的实现原理]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101199</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101199</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:17:11 +0800</pubDate><description><![CDATA[如果你是个 Java 程序员，那一定对 HashMap 不陌生，巧的是只要你去面试，大概率都会被问到 HashMap 的相关内容
那这篇文章你就一定要读一读了
HashMap 的底层数据结构
先来聊聊 HashMap 的底层数据结构
HashMap 的底层数据结构， 1.7 版本和 1.8 版本是有些不同的，但大体上都是 数组 + 链表 的形式来实现的， 1.7 版本是这个样子：

1.8 版本是这样：

很明显就能看出来， 1.8 版本怎么多了一个树？还是红黑的？
这就要来分析 1.7 版本 HashMa]]></description><category></category></item><item><title><![CDATA[来说说垃圾回收怎么样~]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/116101085</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/116101085</guid><author>javageektech</author><pubDate>Sat, 24 Apr 2021 19:15:48 +0800</pubDate><description><![CDATA[JVM 的自动内存管理，让原本应该是开发人员去做的事情，变成了垃圾回收器来做的事情

既然是别人帮忙做的事情，那么可能就不是自己想要的，所以就需要我们了解一下垃圾回收相关的内容
引用计数法与可达性分析
垃圾回收，垃圾回收，那就是有的内存分配给了一些对象，但是这些对象已经用完了，那么它所占用的内存也就应该该释放掉了，却还没有释放
那么，这里就有个问题：该如何确定一个对象用完了呢？
其中一种方法就是引用计数法
引用计数法就是给每个对象添加一个引用计数器，来统计指向该对象的引用个数
比如:如果有一个引用，被赋值为]]></description><category></category></item><item><title><![CDATA[常用sql脚本总结]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/115622548</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/115622548</guid><author>javageektech</author><pubDate>Mon, 12 Apr 2021 14:51:38 +0800</pubDate><description><![CDATA[一、摘要
本文主要以 Mysql 数据库为基础，对常用 SQL 语句进行一次深度总结，由于篇幅较长，难免会有些遗漏的地方，欢迎网友批评指出！
具体内容主要有以下几个部分：

库操作
表操作
数据操作
运算符
视图
函数
存储过程
触发器
序列
用户权限

二、库操作
2.1、新增库
创建数据库比较简单，在创建的时候直接指定字符集、排序规则即可！
CREATE DATABASE IF NOT EXISTS `库名` default charset utf8mb4 COLLATE utf8mb4_unicode]]></description><category></category></item><item><title><![CDATA[来说说垃圾回收怎么样~]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/110251591</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/110251591</guid><author>javageektech</author><pubDate>Fri, 27 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[每天早上七点三十，准时推送干货JVM 的自动内存管理，让原本应该是开发人员去做的事情，变成了垃圾回收器来做的事情既然是别人帮忙做的事情，那么可能就不是自己想要的，所以就需要我们了解一下垃...]]></description><category></category></item><item><title><![CDATA[比马克的脑机更科幻的技术，皮肤就是手机]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/110211783</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/110211783</guid><author>javageektech</author><pubDate>Thu, 26 Nov 2020 10:25:24 +0800</pubDate><description><![CDATA[特别科幻的文章还在马克的脑机沉浸，比脑机更科幻的技术：未来将没有手机出现，皮肤就是手机。《画皮》大家都看过吧，犹记那夜，茫茫大漠，战马嘶鸣，刀光剑影，杀气冲天。鲜红的血，如雨般溅落。你眉...]]></description><category></category></item><item><title><![CDATA[「非广告」支付宝面试系统设计真题分享]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/110152272</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/110152272</guid><author>javageektech</author><pubDate>Wed, 25 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[每天早上七点三十，准时推送干货Hello、早上好~最近阿粉的朋友出去面试了一下蚂蚁金服，一面的时候收到一道系统设计题，今天跟大家分享一下。ps:偷偷告诉你，这道题星球球友之前面试的时候也...]]></description><category></category></item><item><title><![CDATA[太全了！学Java项目，上这个网站就够了]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/110102165</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/110102165</guid><author>javageektech</author><pubDate>Tue, 24 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[你有多久没好好学习一个开源项目了？你是否经常为找不到好的开源项目而烦恼？你是否为不知道怎么入手去看一个开源项目？你是否想看别人的项目学习笔记？你是否想跟着别人的项目搭建过程一步一步跟着做...]]></description><category></category></item><item><title><![CDATA[年轻人不讲武德，竟然重构出这么优雅后台 API 接口]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/110102154</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/110102154</guid><author>javageektech</author><pubDate>Tue, 24 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[每天早上七点三十，准时推送干货Hello，早上好，我是阿粉~最近偶然间在看到 Spring 官方文档的时候，新学到一个注解 @ControllerAdvice，并且成功使用这个注解重构我...]]></description><category></category></item><item><title><![CDATA[阿里云盘正式上架，速度25MB/s！（附下载链接+邀请码）]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/110016948</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/110016948</guid><author>javageektech</author><pubDate>Mon, 23 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[今年 8 月，阿里巴巴推出了一款名为 “阿里云网盘”的独立 App。定位为C端用户提供服务，网盘空间更大，下载速度更快。但之后很快这款App就下架了，也许是阿里没有准备好，在经历过几个月...]]></description><category></category></item><item><title><![CDATA[JVM 是如何加载 Java 类的？]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/110016945</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/110016945</guid><author>javageektech</author><pubDate>Mon, 23 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[每天早上七点三十，准时推送干看到这个题目的时候，你可能就会觉得，阿粉，这不是挺简单的一个问题么如何加载？不就是 加载，链接，初始化 这三步嘛，说白了不就是类加载过程么那么，你知道这三步具...]]></description><category></category></item><item><title><![CDATA[绝了！秒杀全场的SpringCloud微服务电商项目(附源码)，文档贼全！]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/109912712</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/109912712</guid><author>javageektech</author><pubDate>Sat, 21 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[做公号很久了，听到粉丝问的最多的问题就是：有没有新的完整的项目，因为现在很多流传的项目都太老了，实战意义不是很强。很多程序员每项技术单独拿出来有可能很厉害，例如：springcloud、...]]></description><category></category></item><item><title><![CDATA[卧槽！微信可以改彩色昵称了！！！]]></title><link>https://blog.youkuaiyun.com/javageektech/article/details/109881792</link><guid>https://blog.youkuaiyun.com/javageektech/article/details/109881792</guid><author>javageektech</author><pubDate>Fri, 20 Nov 2020 07:30:00 +0800</pubDate><description><![CDATA[今天给大家分享个超级好玩的微信小技巧，真可谓是装逼必备神器！众所周知，在微信中，每个人的昵称都是黑色字体显示的，无论是字母还是文字，都被统一了颜色，有些小伙伴就觉得很没个性了。最近，小编...]]></description><category></category></item></channel></rss>