<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shayukaifa的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shayukaifa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shayukaifa]]></copyright><item><title><![CDATA[学了那么久Java我居然不知道！Java高并发必会的线程池]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117306417</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117306417</guid><author>shayukaifa</author><pubDate>Wed, 26 May 2021 22:37:35 +0800</pubDate><description><![CDATA[一、抛砖引玉
既然Java中支持以多线程的方式来执行相应的任务，但为什么在JDK1.5中又提供了线程池技术呢？这个问题大家自行脑补，多动脑，肯定没坏处，哈哈哈。。。
说起Java中的线程池技术，在很多框架和异步处理中间件中都有涉及，而且性能经受起了长久的考验。可以这样说，Java的线程池技术是Java最核心的技术之一，在Java的高并发领域中，Java的线程池技术是一个永远绕不开的话题。既然Java的线程池技术这么重要（怎么能说是这么重要呢？那是相当的重要，那家伙老重要了，哈哈哈），那么，本文我们就来简单的]]></description><category></category></item><item><title><![CDATA[这10道大数据面试题把 98% 的求职者拒之门外（附解题方法]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117305871</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117305871</guid><author>shayukaifa</author><pubDate>Wed, 26 May 2021 21:30:24 +0800</pubDate><description><![CDATA[写在前面
最近不少读者找我要大数据面试题，我整理了很久，筛选出这10道容易出错的大数据面试题，希望对大家有所帮助。题目与解答整理自互联网，感谢分享这些面经的技术大牛们！
题目分析
下面依次对以下题目进行解题思路分析：
1、如何从大量的 URL 中找出相同的 URL？
题目描述
给定 a、b 两个文件，各存放 50 亿个 URL，每个 URL 各占 64B，内存限制是 4G。请找出 a、b 两个文件共同的 URL。
解答思路
每个 URL 占 64B，那么 50 亿个 URL占用的空间大小约为 320GB。
]]></description><category></category></item><item><title><![CDATA[【Java】字符串转二叉树，一个方便的java类]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117266634</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117266634</guid><author>shayukaifa</author><pubDate>Wed, 26 May 2021 13:07:02 +0800</pubDate><description><![CDATA[简介
力扣的核心代码模式在面对本题这类二叉树问题时，本地调试就十分折磨。写了一个TreeMaker类，可实现将力扣的层序遍历的二叉树字符串转化成二叉树数据结构。分享给大家。
二叉树节点，比里扣的多了个空构造方法
 public class TreeNode {
   int val = 0;
   TreeNode left = null;
   TreeNode right = null;
   public TreeNode(int val) {
     this.val = val;
   }

 ]]></description><category></category></item><item><title><![CDATA[Rust 二叉树前中后序遍历通用代码！！你知道是什么吗？？？]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117266575</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117266575</guid><author>shayukaifa</author><pubDate>Tue, 25 May 2021 22:55:47 +0800</pubDate><description><![CDATA[把文章下方的代码直接放到题解中，然后就可以方便地把 root: Option&lt;Rc&lt;RefCell&gt;&gt; 转换成 Iterator { Item = Rc&lt;RefCell&gt;; }，然后通过 Iterator 的 map 和 collect 功能转换成 Vec。
Iterator 是惰性求值的。
Iterator 采用 DFS，迭代过程中会生成额外的迭代器，有 O(h) 的堆内存消耗。
使用方法
1. 二叉树的前序遍历
impl Solution {
    pub fn p]]></description><category></category></item><item><title><![CDATA[Kubernetes 实战 —— 05. 服务：让客户端发现 pod 并与之通信（下）]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117048580</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117048580</guid><author>shayukaifa</author><pubDate>Tue, 25 May 2021 16:48:19 +0800</pubDate><description><![CDATA[将服务暴露给外部客户端
有以下三种方式可以在外部访问服务：
将服务的类型设置成 NodePort
将服务的类型设置为 LoadBalance
创建一个 Ingress 资源
使用 NodePort 类型的服务
通过创建一个 NodePort 服务，可以让 Kubernetes 在其所有节点上保留一个端口（所有节点上都使用相同端口号），并将传入的连接转发给作为服务部分的 pod 。
创建 NodePort 类型的服务
可以使用如下描述文件 kubia-svc-nodeport.yaml 创建一个 NodePo]]></description><category></category></item><item><title><![CDATA[Kubernetes 实战 —— 05. 服务：让客户端发现 pod 并与之通信（上）]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117048466</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117048466</guid><author>shayukaifa</author><pubDate>Mon, 24 May 2021 15:36:30 +0800</pubDate><description><![CDATA[简介
pod 通常需要对来自集群内部其他 pod ，以及来自集群外部的客户端的 HTTP 请求作出响应，所以需要一种寻找其他 pod 的方法来使用其他 pod 提供的服务。
在 Kubernetes 中通过服务 (service) 解决以下问题：
pod 是短暂的： pod 随时启动和关闭
Kubernetes 在 pod 启动前会给已经调度到节点上的 pod 分配 IP 地址：客户端不能提前知道 pod 的 IP 地址
水平伸缩意味着多个 pod 可能提供相同的服务：每个 pod 都有自己的 IP 地址
]]></description><category></category></item><item><title><![CDATA[SpringBoot自动装配原理分析，看完你也能手写一个starter组件！]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117172164</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117172164</guid><author>shayukaifa</author><pubDate>Sat, 22 May 2021 21:51:17 +0800</pubDate><description><![CDATA[前言
如果我们想要使用传统意义上的 Spring 应用，那么需要配置大量的 xml 文件才可以启动，而且随着项目的越来越庞大，配置文件也会越来越繁琐，这在一定程度上也给开发者带来了困扰，于是 SpringBoot 就应运而生了。
什么是 SpringBoot？
2012 年 10 月，一个叫 Mike Youngstrom 的人在 Spring Jira 中创建了一个功能请求，要求在 Spring Framework 中支持无容器 Web 应用程序体系结构，提出了在主容器引导 Spring 容器内配置 We]]></description><category></category></item><item><title><![CDATA[Kubernetes 实战 —— 04. 副本机制和其他控制器：部署托管的 pod]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117048264</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117048264</guid><author>shayukaifa</author><pubDate>Fri, 21 May 2021 21:06:47 +0800</pubDate><description><![CDATA[保持 pod 健康
只要 pod 调度到某个节点，该节点上的 Kubelet 就会运行 pod 的容器，从此只要该 pod 存在，就会保持运行。如果容器的主进程奔溃， Kubelet 就会自动重启容器；如果应用程序奔溃， Kubelet 就会自动重启应用程序。
应用程序也可能因为无限循环或死锁等情况而停止响应。为确保应用在这种情况下可以重新启动，必须从外部检查应用程序的运行状况，而不是依赖于应用的内部检测。
介绍存活探测器
Kubernetes 可以通过存活探测器 (liveness probe) 检查容器]]></description><category></category></item><item><title><![CDATA[Kubernetes 实战 —— 03. pod: 运行于 Kubernetes 中的容器]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117048043</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117048043</guid><author>shayukaifa</author><pubDate>Thu, 20 May 2021 22:17:42 +0800</pubDate><description><![CDATA[Kubernetes 实战 —— 01. Kubernetes 介绍
Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 Docker
Kubernetes 实战 —— 03. pod: 运行于 Kubernetes 中的容器
Kubernetes 实战 —— 04. 副本机制和其他控制器：部署托管的 pod
Kubernetes 实战 —— 05. 服务：让客户端发现 pod 并与之通信（上
Kubernetes 实战 —— 05. 服务：让客户端发现 pod 并与之通信（下
介]]></description><category></category></item><item><title><![CDATA[Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 Docker]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117047738</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117047738</guid><author>shayukaifa</author><pubDate>Thu, 20 May 2021 22:17:26 +0800</pubDate><description><![CDATA[Kubernetes 实战 —— 01. Kubernetes 介绍
Kubernetes 实战 —— 02. 开始使用 Kubernetes 和 Docker
Kubernetes 实战 —— 03. pod: 运行于 Kubernetes 中的容器
Kubernetes 实战 —— 04. 副本机制和其他控制器：部署托管的 pod
Kubernetes 实战 —— 05. 服务：让客户端发现 pod 并与之通信（上
Kubernetes 实战 —— 05. 服务：让客户端发现 pod 并与之通信（下
创]]></description><category></category></item><item><title><![CDATA[Kubernetes 实战 —— 01. Kubernetes 介绍]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117047476</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117047476</guid><author>shayukaifa</author><pubDate>Wed, 19 May 2021 21:53:54 +0800</pubDate><description><![CDATA[简介


Kubernetes 能自动调度、配置、监管和故障处理，使开发者可以自主部署应用，并且控制部署的频率，完全脱离运维团队的帮助。


Kubernetes 同时能让运维团队监控整个系统，并且在硬件故障时重新调度应用。 P2


Kubernetes 抽象了数据中心的硬件基础设施，使得对外暴露的只是一个巨大的资源池。 在部署多组件应用时，  -


Kubernetes 会为每个组件都选择一个合适的服务器，部署之后它能够保证每个组件可以轻易地发现其他组件，并彼此之间实现通信。


Kubernetes]]></description><category></category></item><item><title><![CDATA[阿里Java程序员为什么说最后一步才是写代码！！！]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/117001045</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/117001045</guid><author>shayukaifa</author><pubDate>Tue, 18 May 2021 21:09:53 +0800</pubDate><description><![CDATA[先锻炼业务逻辑，最后一步才是写代码！
业务逻辑层作用
用于做一些有效性验证的工作，以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等；不允许指定的文本框中输入空字符串，数据格式是否正确以及数据类型验证；用户权限的合法性判断等；通过以上的诸多判断以决定是否将操作继续向后传递，尽量保证程序的正常运行。
业务逻辑层（Business Logic Layer）无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计，也即是说它是与系统所应对的领域（]]></description><category></category></item><item><title><![CDATA[今天在华为面试 -项目经理问我整型之间的转换？？？我呆了]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116949067</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116949067</guid><author>shayukaifa</author><pubDate>Mon, 17 May 2021 21:07:18 +0800</pubDate><description><![CDATA[目录
整型之间的转换总结：
整型的值范围
整型的隐式转换
整型之间的转换
char类型转换为byte、short时，必须使用显式类型转换
当byte，char或者short类型(或为三者的混合)参与运算时，结果为int类型，而并非与较高的类型相同
byte转char比较特殊，先将byte扩展到int，然后再收缩到char，即扩展收缩转换
整型之间的转换总结：
如果变量的类型是byte、short或char类型，当对其赋予编译时期的常量，而该常量又没有超过变量的取值范围时，编译器就可以进行隐式的收缩转换。这种]]></description><category></category></item><item><title><![CDATA[2021春招面试高频问题总结丨三本学生如何找到工作(持续更新中~~~)]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116424883</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116424883</guid><author>shayukaifa</author><pubDate>Wed, 05 May 2021 14:47:15 +0800</pubDate><description><![CDATA[三本毕业生，毕业加入百度，工作了6年，靠自己能力已经在北京买房。
互联网校招除了部分公司对学校有要求211、985，其他很多公司已经只需要本科就行，主要看重技术能力和潜力；而到了社招，更多的是看工作单位和工作方向，对毕业学校参考的比重更小了。
个人经历在毕业时多参加有价值的比赛，给自己的简历镀金，现在各大公司都有相关的比赛，在leetcode上就有，也有不同公司专区，如果能拿到名次可以说就进入了绿色通道直接进入面试。
另外作为面试官的角度，会同时看技术能力（代码考核）以及项目经历。对于项目经历，建议可以自行]]></description><category></category></item><item><title><![CDATA[从一个 10 年程序员的角度告诉你：搞懂 Java 面向对象有多容易？]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116277969</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116277969</guid><author>shayukaifa</author><pubDate>Thu, 29 Apr 2021 22:11:59 +0800</pubDate><description><![CDATA[前言：

1）java
面向对象语言，面向过程围绕过程（解决问题步骤），面向对象围绕实体（名词，特性（属性），行为（动作、方法））。它们设计思想区别在于关心核心不同的。

主流都是面向对象的。
实际开发，先按面向对象思想进行设计，具体实现时面向过程（人习惯）

2）java 怎么支持面向对象呢？

a. 万物皆对象，所有的类都是 Object 子类
b. java 中支持单继承，多重继承，Tiger 是 Animal 子类，Animal 是 Object 的子类。满足单继承（每次都一个父类，超类）
c. 面]]></description><category></category></item><item><title><![CDATA[我学了一年Java，拿到了 BAT 三家 offer]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116243609</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116243609</guid><author>shayukaifa</author><pubDate>Wed, 28 Apr 2021 21:22:18 +0800</pubDate><description><![CDATA[起步
实话说，刚决定转行的时候完全零基础一开始真的啥也不会，甚至不知道怎么去学习。的确，计算机资源很多，自学足够的但是完全不知道怎么去用去学习啊！
啥是 LeetCode？
啥是 GitHub？
啥是IDEA？
各种疑问，怎么操作啊？点哪个啊？身边没有人教啊。
有时候真的只是懂的人点两下的事情，自己搞要一下午。妈个鸡，第一个月真是完全浪费时间，差点原地放弃。
过程
战略上坚定信心： 既然那么多人都可以做程序员，甚至高中生都可以，别人可以我肯定也可以。
战术上制定计划： 培训班看视频我也看视频咯，对，就是各种]]></description><category></category></item><item><title><![CDATA[【超详细】一文学会链表解题]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116163334</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116163334</guid><author>shayukaifa</author><pubDate>Tue, 27 Apr 2021 13:40:46 +0800</pubDate><description><![CDATA[前言
如果说数据结构是算法的基础，那么数组和链表就是数据结构的基础。
因为像堆，栈，对，图等比较复杂的数组结基本上都可以由数组和链表来表示，所以掌握数组和链表的基本操作十分重要。
今天就来看看链表的基本操作及其在面试中的常见解题思路,本文将从以下几个点来讲解链表的核心知识
什么是链表，链表的优缺点
链表的表示及基本操作
面试中链表的常见解题思路—翻转
面试中链表的常见解题思路—快慢指针
什么是链表
相信大家已经开始迫不及待地想用链表解题了，不过在开始之前我们还是要先来温习下链表的定义，以及它的优势与劣势，磨]]></description><category></category></item><item><title><![CDATA[最强Java修仙之路【附赠BAT修炼资源】，这些核心技能是你必须要掌握的！！]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116134196</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116134196</guid><author>shayukaifa</author><pubDate>Sun, 25 Apr 2021 17:32:19 +0800</pubDate><description><![CDATA[代码尽头谁为峰，一见秃头道成空。
编程修真路破折，一步一劫渡飞升。

众所周知，编程修真有八大境界：

Javase-练气筑基
数据库-结丹
web前端-元婴
Javaweb-化神
Javaweb项目-炼虚
流行框架-合体
分布式•微服务-大乘
架构师-飞升

第一部分：JavaSE-练气筑基
Java SE大致可分为以下几块内容:


n  对象导论：如何用面向对象的思路来开发


n  深入JVM：Java运行机制以及JVM原理


n  面向对象的特征：封装、继承、抽象、多态


n  数组和容器：容]]></description><category></category></item><item><title><![CDATA[小米｜JAVA｜一面面经｜2021｜]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116090341</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116090341</guid><author>shayukaifa</author><pubDate>Sat, 24 Apr 2021 14:25:47 +0800</pubDate><description><![CDATA[简介
[小米]面经，60min
因为是我们大学的校友推荐的简历，也许没有笔试吧，只有两次技术面试。

一面
面试问题
自我介绍
计网：

1.我看你还做过不少项目（简历），说一说你做的仿QQ聊天是怎么实现的吧？
2.计网分为几层？说一下http怎么实现的？
3.http和https有什么区别？
4.说一下对称加密和非对称加密的区别？
5.TCP的三次握手，为什么是三次？

JAVA和操作系统

6.知道JVM吗？（我说不熟悉，他就没再往下问了）
7.知道操作系统吗，说一下进程和线程的区别？
8.说一下线程之]]></description><category></category></item><item><title><![CDATA[当年，学姐把这份Java总结给我，让我在22k的校招王者局乱杀]]></title><link>https://blog.youkuaiyun.com/shayukaifa/article/details/116058719</link><guid>https://blog.youkuaiyun.com/shayukaifa/article/details/116058719</guid><author>shayukaifa</author><pubDate>Fri, 23 Apr 2021 15:41:25 +0800</pubDate><description><![CDATA[可以说，学姐给我的这份文档真的把我的知识查漏补缺，面试问到了好多，值得收藏。
并发编程
一.Executor
为什么使用线程池：手动创建线程耗费性能，不利于管理。
首先创建线程池有两种方式：使用Executors工厂来创建ThreadPoolExecutor这类自定义线程池。

使用Executors工厂来创建

Executors是一个类，用来创建线程池，常用的有四种线程池
1.newFixedThreadPool 创建一个可重复固定的线程数的线程池
2.newCachedThreadPool 创建一个可]]></description><category></category></item></channel></rss>