<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_48793913的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_48793913</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_48793913]]></copyright><item><title><![CDATA[基于springboot框架的极致细腻的脚手架。原生纯净【源码分享】]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107675517</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107675517</guid><author>qq_48793913</author><pubDate>Wed, 29 Jul 2020 21:18:29 +0800</pubDate><description><![CDATA[项目介绍

基于springboot的一款纯净脚手架。努力打造一款免费开源、注释全、文档全适合新手学习、方便快速二次开发的框架。

1. 没有基础版、没有vip版本、没有付费群、没有收费二维码

2. 遵循开源真谛，一切免费才是真开源

3. 不求回报，你使用快乐就是这个项目最大的快乐！

组织架构


Springboot
├─doc  项目SQL语句以及文档
│
├─common 公共模块
│  ├─base Base继承通用类
│  ├─conf springBoot所有配置
│  ├─domain ]]></description><category></category></item><item><title><![CDATA[还在手动整理数据库文档？试试这个（螺丝钉）数据库文档生成工具。简洁、轻量、设计良好。不需要 powerdesigner 这种重量的建模工具]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107635997</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107635997</guid><author>qq_48793913</author><pubDate>Tue, 28 Jul 2020 14:53:27 +0800</pubDate><description><![CDATA[简介

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出，从业以来，待过几家企业，关于数据库表结构文档状态：要么没有、要么有、但都是手写、后期运维开发，需要手动进行维护到文档中，很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后人，于是萌生了要自己写一个插件工具的想法，但由于自己前期在程序设计上没有很多造诣，且能力偏低，有想法并不能很好实现，随着工作阅历的增加，和知识的不断储备，终于在2020年的3月中旬开始进行编写，4月上旬完成初版，想完善差不多在开源，但由于]]></description><category></category></item><item><title><![CDATA[iBizPMS软件生产管理「源码分享」]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107621515</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107621515</guid><author>qq_48793913</author><pubDate>Mon, 27 Jul 2020 21:13:38 +0800</pubDate><description><![CDATA[iBizPMS（iBiz软件生产管理）

iBizPMS（iBiz Production Management System 软件生产管理）是iBiz对于软件生产管理的思考与探索所建立的项目，是iBiz软件生产体系的重要组成部分（管理模块）。它覆盖了软件生产从开始到结束，再到新的开始，往复循环，为软件生产提供有效的管理途径以及协调各阶段内、各阶段之间的信息与资源。它可以说是整个软件生产过程的“协调者”和“管理者”。

iBizPMS集成了禅道（开源版 ）的特性与功能，在提供传统的项目管理软件的管理能力（产.]]></description><category></category></item><item><title><![CDATA[你经常看的斗鱼直播平台，首次开源了自家项目]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107580563</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107580563</guid><author>qq_48793913</author><pubDate>Sat, 25 Jul 2020 16:23:58 +0800</pubDate><description><![CDATA[Jupiter 的诞生
	为什么选择 Go
	与其它微服务框架的区别
	微服务架构的意义
	拥抱开源的斗鱼
	关于未来
上个月，斗鱼将基于 Go 语言的微服务框架 Jupiter 开源。作为国内知名的互联网直播公司，这也是斗鱼首次以公司的名义正式推出开源项目。

近年来，得益于日渐增长的高并发业务需求，微服务架构开始在国内逐渐普及。同时，专为高并发而生的 Go 语言及其相关生态在国内的发展也突飞猛进。目前，市面上主流的微服务架构包括 Spring cloud、Dubbo 等，并且都有团队为之专门推出了对应的]]></description><category></category></item><item><title><![CDATA[面试官：小伙子听说你看过ThreadLocal源码？深度解析ThreadLocal]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107565126</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107565126</guid><author>qq_48793913</author><pubDate>Fri, 24 Jul 2020 17:02:03 +0800</pubDate><description><![CDATA[作者：一枝花算不算浪漫

出自：博客园

前言





这次趁热打铁再写一篇ThreadLocal的文章，同样是深入原理，图文并茂。

全文共10000+字，31张图，这篇文章同样耗费了不少的时间和精力才创作完成，原创不易，请大家点点关注+在看，感谢。

对于ThreadLocal，大家的第一反应可能是很简单呀，线程的变量副本，每个线程隔离。那这里有几个问题大家可以思考一下：

ThreadLocal的key是弱引用，那么在 threadLocal.get()的时候,发生GC之后，key是否为...]]></description><category></category></item><item><title><![CDATA[单怼多线程，60到面试题，你能答上几个？（附答案）]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107548441</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107548441</guid><author>qq_48793913</author><pubDate>Thu, 23 Jul 2020 21:32:37 +0800</pubDate><description><![CDATA[现在的面试对程序员要求越来越高，基础越扎实拿offer的概率就越高，大厂对基础还是很执着的，如果你基础功底好，面试官是会看中你的潜力，然后去培养的你的。

除了算法、网络、计算机基础等，多线程越来越被注重。废话不多说，直接把题分享给大家。

1.什么是进程?

进程是系统中正在运行的一个程序，程序一旦运行就是进程。

进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体，每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构，如果想让一个进程访问另一个进程的资源，需要使用进程间通信]]></description><category></category></item><item><title><![CDATA[美团java面试最常问的题：乐观锁与悲观锁各自适用场景是什么？]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107538626</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107538626</guid><author>qq_48793913</author><pubDate>Thu, 23 Jul 2020 15:35:58 +0800</pubDate><description><![CDATA[之前在牛客网上刷java面试的时候，经常看到美团面试官问这个问题，校招问的尤其多。下边就来分享一下：

一、概念上的区别

乐观锁（ Optimistic Locking）：顾名思义，对加锁持有一种乐观的态度，即先进行业务操作，不到最后一步不进行加锁，"乐观"的认为加锁一定会成功的，在最后一步更新数据的时候再进行加锁。

悲观锁（Pessimistic Lock）：正如其名字一样，悲观锁对数据加锁持有一种悲观的态度。因此，在整个数据处理过程中，将数据处于锁定状态。悲观锁的实现，往往依靠数据库提供的锁机制（也]]></description><category></category></item><item><title><![CDATA[基于spring boot+mybatis开发的纯净版后台管理引擎，源码分享]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107518670</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107518670</guid><author>qq_48793913</author><pubDate>Wed, 22 Jul 2020 17:29:44 +0800</pubDate><description><![CDATA[项目介绍

项目实现的功能介绍

1.用户,角色,权限管理(权限控制到按钮)

2.图片管理

3.操作日志(针对于用户,每次点击的记录都会被记录)

4.报表管理

5.代码生成 (支持可视化生成单表, 一对一, 一对多 ,多对多代码.)

项目的优势在哪里


1.目前市面上的代码生成工具绝大多数仅仅支持生成单表,该项目支持 单表, 一对一, 一对多 ,多对多 以及所对应的页面生成.大大简化了开发的工作量



2.该项目仅仅只是帮你生成单表以及多表的增删改查,不做任何底层的改动.只要你知道怎么使用 s]]></description><category></category></item><item><title><![CDATA[基于springboot框架的极致细腻的脚手架。原生纯净]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107487570</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107487570</guid><author>qq_48793913</author><pubDate>Tue, 21 Jul 2020 14:06:47 +0800</pubDate><description><![CDATA[项目介绍

基于springboot的一款纯净脚手架。努力打造一款免费开源、注释全、文档全适合新手学习、方便快速二次开发的框架。

1. 没有基础版、没有vip版本、没有付费群、没有收费二维码

2. 遵循开源真谛，一切免费才是真开源

3. 不求回报，你使用快乐就是这个项目最大的快乐！

组织架构


Springboot
├─doc  项目SQL语句以及文档
│
├─common 公共模块
│  ├─base Base继承通用类
│  ├─conf springBoot所有配置
│  ├─domain ]]></description><category></category></item><item><title><![CDATA[一次复杂的雪花算法使用总结]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107464099</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107464099</guid><author>qq_48793913</author><pubDate>Mon, 20 Jul 2020 15:12:33 +0800</pubDate><description><![CDATA[一、雪花算法简介：

1、雪花算法是Twitter 开源的分布式、自增长 id 生成算法；

2、雪花算法生成的id是一个无符号长整型（unsigned long）的id，它占64个bit（8*8）；

二、项目背景：

1、多台服务器组成的集群；

2、每台服务器同时启动多个worker；

3、每个worker使用雪花算法生成自增长id、再通过mycat进行批量入库。

三、需求分析：

1、自增长；

2、分布式；

显然，雪花算法很适合我们。

四、问题分析及解决方案：

1、Q：如何确保生成的id]]></description><category></category></item><item><title><![CDATA[用 80 行 Javascript 代码构建自己的语音助手]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107431286</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107431286</guid><author>qq_48793913</author><pubDate>Sat, 18 Jul 2020 16:42:07 +0800</pubDate><description><![CDATA[在本教程中，我们将使用 80 行 JavaScript 代码在浏览器中构建一个虚拟助理（如 Siri 或 Google 助理）。你可以在 这里测试这款应用程序，它将会听取用户的语音命令，然后用合成语音进行回复。

你所需要的是：

Google Chrome（版本 25 以上）
	一款文本编辑器
由于 Web Speech API 仍处于试验阶段，该应用程序只能在 受支持的浏览器上运行：Chrome（版本 25 以上）和 Edge（版本 79 以上）。

我们需要构建哪些组件？

要构建这个 Web ...]]></description><category></category></item><item><title><![CDATA[二本渣渣6年开发面试字节跳动Android研发岗，被怼的有点惨...]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107413550</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107413550</guid><author>qq_48793913</author><pubDate>Fri, 17 Jul 2020 17:25:41 +0800</pubDate><description><![CDATA[人们都说，这个世界上有两种人注定单身，一种是太优秀的，另一种是太平凡的。

我一听呀？那我这岂不是就不优秀了吗，于是毅然决然和女朋友分了手。

人们都说，互联网寒冬来了，这个时候还在大面积招人的公司，必然是牛逼的公司。而这个时候勇敢跳槽的人，必然是牛逼的人。

于是2020年5月25日下午14:00，我开始了字节跳动的社招面试。

为了这天，我前一天排老长的队理了个利落的发型，胡子刮得一干二净。穿上崭新的新百伦999，连袜子都是崭新的NB，墨绿色工装裤配酒红色卫衣，外面再搭一件精致的黑色羽绒小坎肩，准时..]]></description><category></category></item><item><title><![CDATA[从对象到类，Java中需要知道的这些东西]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107382686</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107382686</guid><author>qq_48793913</author><pubDate>Thu, 16 Jul 2020 14:46:24 +0800</pubDate><description><![CDATA[1. 对象的诞生

  在平时的开发中，我们使用对象的时候，都是直接new一个临时变量然后进行各种逻辑赋值然后返回，但是你有没有想过一个对象在创建的过程中经历了什么呢，为什么创建时静态变量就已经赋完值了？这些似乎理所当然的操作其实里边还是有点东西的。

  先说下一个对象诞生时的整个过程，一个对象的诞生一定会经过加载类的信息—&gt;为即将诞生的对象分配内存空间—&gt;将对象的成员变量赋上一个默认值—&gt;捏脸（在头部设置对象的类信息和GC年龄）—&gt;将对象的成员变量初始化为代码中写的值这五个流程，]]></description><category></category></item><item><title><![CDATA[详解面试中常被问到的那些异常问题]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107359035</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107359035</guid><author>qq_48793913</author><pubDate>Wed, 15 Jul 2020 13:47:09 +0800</pubDate><description><![CDATA[什么是异常？

所有使我们程序提前终止，或者没有向预想方向去执行的错误统称为异常。

异常的分类

所有异常都由Throwable继承而来，即Exception和Error都继承自Throwable。


注：Java中只有Throwable类型的实例才可以被抛出（throw）或者捕获（try..catch）


Error

Error是指在正常情况下不太可能出现的错误，它与代码的编写无关。通常是表示运行时JVM出现的问题，比如系统内部错误、或者资源不足等。

常见的有：OutOfMemoryErro..]]></description><category></category></item><item><title><![CDATA[BAT面试官眼中的源码，Java面试底层原理分析，解决90%的面试问题]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107253291</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107253291</guid><author>qq_48793913</author><pubDate>Fri, 10 Jul 2020 16:13:34 +0800</pubDate><description><![CDATA[个人觉得大多数情况下跟着一篇优秀的博客配合着看就足够了，之后再自己写博客总结一遍加深印象，画一下流程图基本都能理顺。



1|2类关系

配合idea看类之间的关系（ctrl+alt+shift+u）的功能也能更好的理解整个项目的整体架构。因为很多源码其实并不是真的复杂，只是为了扩展性优雅简洁等原因建立了大量的接口和抽象类以及各种设计模式，使得项目看起来很庞大很复杂，借助这个功能有利于你排除掉一些你暂时不想去关心的设计逻辑。知道那个部分才是最核心的逻辑，专注于去看核心代码。



1|3多看注释
...]]></description><category></category></item><item><title><![CDATA[听说go语言越来越火了？那么请收下go语言这本书吧！]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107250218</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107250218</guid><author>qq_48793913</author><pubDate>Fri, 10 Jul 2020 14:25:28 +0800</pubDate><description><![CDATA[Go 是一种简单、小巧、令人愉悦的语言。它也有一些犄角旮旯，但绝大部分是经过精心设计的。它的学习速度令人难以置信，并且规避了其他语言中一些不那么广为人知的特性。

现如今越来越多的互联网公司开始使用go语言，有的初创公司开始使用go语言打造基础架构，而知乎这样的公司也基本上踏上了go语言的路子，或许，未来的互联网公司会越来越多地使用golang，那么，你想学习一下这门未来的语言么，今天就来推荐一本go语言的书吧！

Go语言高级编程

本书从实践出发讲解Go语言的进阶知识。本书共6章，第1章简单回顾Go..]]></description><category></category></item><item><title><![CDATA[《前端面试总结点线面》之点-JavaScript篇]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107238873</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107238873</guid><author>qq_48793913</author><pubDate>Thu, 09 Jul 2020 22:05:42 +0800</pubDate><description><![CDATA[《前端面试总结点线面》系列是为了收拢杂而乱的前端领域知识，由点及线，再涉及面，目的是为帮助广大前端同学复习巩固或查漏补缺或增删改查，为了更好的建立前端领域知识体系，为了更好的为前端面试做好准备，从而做一个合格、进步的前端开发工程师。

JavaScript

ES

ES6
	let const class module
		arrow function， 函数参数默认值
		模版字符串
		赋值解构
		剩余操作符
		promise generator
	
	ES7
	Array.prototype.i]]></description><category></category></item><item><title><![CDATA[面试官：十问泛型，你能扛住吗？]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107227342</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107227342</guid><author>qq_48793913</author><pubDate>Thu, 09 Jul 2020 14:10:03 +0800</pubDate><description><![CDATA[问题一：为什么需要泛型？

答：

使用泛型机制编写的代码要比那些杂乱的使用 Object变量，然后再进行强制类型转换的代码具有更好的安全性和可读性，也就是说使用泛型机制编写的代码可以被很多不同类型的对象所重用。

问题二：从ArrayList的角度说一下为什么要用泛型？

答：

在Java增加泛型机制之前就已经有一个 ArrayList类，这个 ArrayList类的泛型概念是使用 继承来实现的。


public class ArrayList {
    private Object[] e...]]></description><category></category></item><item><title><![CDATA[面试官：聊聊 Java 的几把 JVM 级锁吧]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107214144</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107214144</guid><author>qq_48793913</author><pubDate>Wed, 08 Jul 2020 20:11:23 +0800</pubDate><description><![CDATA[在计算机行业有一个定律叫"摩尔定律"，在此定律下，计算机的性能突飞猛进，而且价格也随之越来越便宜，cpu从单核到了多核，缓存性能也得到了很大提升，尤其是多核cpu技术的到来，计算机同一时刻可以处理多个任务。在硬件层面的发展带来的效率极大提升中，软件层面的多线程编程已经成为必然趋势，然而多线程编程就会引入数据安全性问题，有矛必有盾，于是发明了“锁”来解决线程安全问题。在这篇文章中，总结了java中几把经典的JVM级别的锁。

synchronized


synchronized关键字是一把经典的锁，也是我们]]></description><category></category></item><item><title><![CDATA[面试官这样问Java 线程池，我的回答让他竖起了大拇指！]]></title><link>https://blog.youkuaiyun.com/qq_48793913/article/details/107208409</link><guid>https://blog.youkuaiyun.com/qq_48793913/article/details/107208409</guid><author>qq_48793913</author><pubDate>Wed, 08 Jul 2020 16:12:06 +0800</pubDate><description><![CDATA[这周我投递出了简历，岗位是java后端开发工程师。这周美团面试官给我进行了面试。面试过程中他问了线程池，今天详细讲一讲 Java 线程池。

线程池

线程池维护着多个线程，等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。


start()创建一定数量的线程池,进行线程循环

stop()停止所有线程循环，回收所有资源

addTask()添加任务
复制代码

Excutors创建线程池便捷方法如下：


Executors.newFixedThreadPool(1.]]></description><category></category></item></channel></rss>