<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Chenhui98的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Chenhui98</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Chenhui98]]></copyright><item><title><![CDATA[TraceId 搭配 ELK ，碉堡了！]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126901260</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126901260</guid><author>Chenhui98</author><pubDate>Sat, 17 Sep 2022 09:44:57 +0800</pubDate><description><![CDATA[内容看着比较多，实际很容易实现，但真正生产环境要复杂的多，还需不断思考。]]></description><category></category></item><item><title><![CDATA[Java开发：实现用户注册登录的功能]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126901189</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126901189</guid><author>Chenhui98</author><pubDate>Sat, 17 Sep 2022 09:26:03 +0800</pubDate><description><![CDATA[在Java开发过程中，实现用户的注册功能是最基本的，用户通过手机号或者邮箱作为注册账号也是非常常见的操作方式，不管是通过手机号注册或者邮箱注册，原理都差不多，那么本文就来分享一下在Java开发过程中的用户注册账号的功能实现。通过上文讲述的流程步骤，就简单实现了一个比较全面的用户注册登录的功能，虽然这个功能很普遍，但是对于Java开发刚入门的新手来说还是有难度的，这个命题可以作为出入Java开发者来作为练习的知识点，以上就是本文的全部内容，如有不妥之处，还请多多提出来。]]></description><category></category></item><item><title><![CDATA[liunx标准输入与输出]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126901126</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126901126</guid><author>Chenhui98</author><pubDate>Sat, 17 Sep 2022 09:20:38 +0800</pubDate><description><![CDATA[要运行后台中的 nohup 命令，添加 & （ 表示“and”的符号）到命令的尾部。如果不将 nohup 命令的输出重定向，输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写，输出重定向到 $HOME/nohup.out 文件中。4. 后台程序运行，分别将标准输出与标准错误写入不同的日志文件内。3. 命令 &> 文件：重定向所有的输出到文件。2. 命令 2> 文件：重定向标准错误到文件。2. 重定向标准输出到文件，不包含标准错误。]]></description><category></category></item><item><title><![CDATA[MySQL 及 jdbc 问题汇总]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126901087</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126901087</guid><author>Chenhui98</author><pubDate>Sat, 17 Sep 2022 09:17:28 +0800</pubDate><description><![CDATA[MySQL 存储过程中, 表和数据的编码与数据库和存储过程默认的编码不同则可能出现 sql 不会使用索引的情况, 因为 MySQL 会对条件列的数据做相应的编码转换, 比如以下, 表数据为。不会有加密的问题, 用高版本 jdbc 连接 5.7.6+ 以上会有加密问题, 需要显示指定。等参数的设定, 实践中我们通常都不会将其设置的很大, 以避免吃满 db 的连接. 低版本的。通过 jdbc 连接执行 sql 的时候, 如果编码不一致, 同样需要对。, 客户端连接的时候会自协商加密, 除非显示指定不加密.]]></description><category></category></item><item><title><![CDATA[如何使用 Junit + Mockito 实践单元测试]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126889710</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126889710</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 14:25:31 +0800</pubDate><description><![CDATA[相信做过开发的同学，都多多少少写过下面的代码，很长一段时间我一直以为这就是单元测试...@Test}}但这是单元测试嘛？unitService 中可能还依赖了 Dao 的操作；如果是微服务，可能还要起注册中心。那么这个“单元”也太大了吧！如果把它称为集成测试，可能更恰当一点，那么有没有可能最小粒度进行单元测试嘛？单元测试应该是一个带有隔离性的功能测试。在单元测试中，应尽量避免其他类或系统的副作用影响。单元测试的目标是一小段代码，例如方法或类。]]></description><category></category></item><item><title><![CDATA[一站式动态多环境建设案例]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888932</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888932</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:43:41 +0800</pubDate><description><![CDATA[致景科技成立于 2013 年 12 月，是领先的纺织产业互联网企业，国家高新技术企业。旗下拥有“百布”、“全布”、“天工”、“致景金条”、“致景纺织智造园”、“致景智慧仓物流园”等业务板块，致力于通过大数据、云计算、物联网等新一代信息技术，全面打通纺织服装行业的信息流、物流和资金流，帮助行业实现协同化、柔性化、智能化的升级，构建纺织服装纵向一体化的数智化综合服务平台。我们作为集团公司已经成立 2 年多的一个业务团队，项目并行开发上线的情况越来越多。]]></description><category></category></item><item><title><![CDATA[JavaSE泛型讲解]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888893</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888893</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:40:39 +0800</pubDate><description><![CDATA[什么是泛型，为什么要用泛型？泛型，即“参数化类型”。一提到参数，最熟悉的就是定义方法时有形参，然后调用此方法时传递实参。那么参数化类型怎么理解呢？顾名思义，就是将类型由原来的具体的类型参数化，类似于方法中的变量参数，此时类型也定义成参数形式（可以称之为类型形参），然后在使用/调用时传入具体的类型（类型实参）。泛型的本质是为了参数化类型（在不创建新的类型的情况下，通过泛型指定的不同类型来控制形参具体限制的类型）。]]></description><category></category></item><item><title><![CDATA[Mybatis+Servlet+Mysql 整合的一个小项目：对初学者非常友好，有助于初学者很快的上手Java Web]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888831</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888831</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:37:21 +0800</pubDate><description><![CDATA[mybatis+Servlet很显然需要用到二者的依赖，mybatis需要连接数据库，所以需要数据库的依赖，数据库则需要实体类，为了简便开发引入Lombok依赖。但是对于一个初学者来说，有一个简单易上手的项目可以吧Mybatis+Servlet+Mysql 整合起来，对于自己的学习不可不算是一个良好的契机。有人说了，这么简单的项目，我瞧不上。这个知识点是漏网之鱼，没有意识到即使是使用注解配置sql语句，也需要接口绑定。理论性太强，而实践太散，所以借着这篇文章，把实践的方便加强。《Mybatis的代理开发》]]></description><category></category></item><item><title><![CDATA[面试一个30K的岗位，从JVM的根源问到了架构思想]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888796</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888796</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:32:23 +0800</pubDate><description><![CDATA[一般公司简单的问题都不好意思问，怕面试者鄙视面试公司的技术水平。所以很多公司都慢慢向阿里这样的公司靠近，面试不问点 jvm、并发、分布式都不好意思（虽然公司可能没有用到，虽然可能仅仅 CURD），尤其是 JVM 相关的问题能凸显逼格，很多公司的确都在学习阿里这种公司的面试风格，都在问这些问题，那么我们就朝着这些大的方向努力也是没错的，如果朝着这些方向努力就是他们需要的人才，那么也就对了。]]></description><category></category></item><item><title><![CDATA[Mybatis动态SQL]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888747</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888747</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:29:52 +0800</pubDate><description><![CDATA[Foreach主要用在构建in条件中，它可以在sql语句中进行迭代一个集合。Foreach元素的属性主要有item,index,collection,open,separator,close.index指定一个名字，用于表示在迭代过程中，每次迭代到的位置。Collection的值为ids，是传入的参数map的key。Item表示集合中每一个元素进行迭代时的别名。例2:单参数array数组的类型。Open表示该语句以什么开始。例3:将参数封装成map的类型。例1:单参数list的类型。]]></description><category></category></item><item><title><![CDATA[为什么阿里人成长速度极快？看完他们 Java 架构进化笔记，值得学习]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888649</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888649</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:20:22 +0800</pubDate><description><![CDATA[更何况程序员不同于其他行业，它的黄金期相对来说时间较短，所以进入一线互联网大厂会使得路更好走，前景更宽阔；PS：真看到很多程序员没有好的规划，混日子，最后去开滴滴，送外卖去了。（并不是歧视岗位，而是歧视因不努力而放弃原本爱好的那群人）]]></description><category></category></item><item><title><![CDATA[阿里强推：Java 程序设计基于 JDK11 零基础学 Java 笔记]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888628</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888628</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:17:34 +0800</pubDate><description><![CDATA[本书分为 18 章，内容包括:认识计算思维与 Java 程序设计、Java 语言及其 JDK 11、Java 程序结构解析、Java 语言的数据类型、流程控制、类与对象、继承与多态、抽象类、接口、程序包、嵌套类、常用类、窗口环境与事件处理、Swing 程序包、绘图与多媒体、例外处理、数据流的 V/O 控制、集合对象与泛型、多线程、网络程序设计等。]]></description><category></category></item><item><title><![CDATA[Java内存溢出(OOM)分析]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126888542</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126888542</guid><author>Chenhui98</author><pubDate>Fri, 16 Sep 2022 13:09:45 +0800</pubDate><description><![CDATA[默认情况下，对于64位服务器端JVM，MetaspaceSize默认大小是21M（初始限制值），一旦达到这个限制值，FullGC将被触发进行类卸载，并且这个限制值将会被重置，新的限制值依赖于Metaspace的剩余容量。背景：操作系统是建立在进程的概念之上，这些进程在内核中作业，其中有一个非常特殊的进程，名叫“内存杀手（Out of memory killer）”。背景：每个线程都需要一定的内存空间，当JVM向底层操作系统请求创建一个新的native线程时，如果没有足够的资源分配就会报这个错误。]]></description><category></category></item><item><title><![CDATA[什么情况会导致@Transactional事务失效？]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126865841</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126865841</guid><author>Chenhui98</author><pubDate>Thu, 15 Sep 2022 10:11:05 +0800</pubDate><description><![CDATA[一个程序中不可能没有事务，而 Spring 中，事务的实现方式分为两种：编程式事务和声明式事务，又因为编程式事务实现相对麻烦，而声明式事务实现极其简单，所以在日常项目中，我们都会使用声明式事务 @Transactional 来实现事务。]]></description><category></category></item><item><title><![CDATA[满地坑！细数List的10个坑]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126865741</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126865741</guid><author>Chenhui98</author><pubDate>Thu, 15 Sep 2022 10:08:38 +0800</pubDate><description><![CDATA[今天我们主要来说一说List操作在实际使用中有哪些坑，以及面对这些坑的时候我们要怎么解决。由于篇幅的限制，我们只对一些在业务开发中常见的关键点进行梳理和介绍在实际的工作中，我们不单单是要清除不同类型容器的特性，还要选择适合的容器才能做到事半功倍。我们主要介绍了Arrays.asList转换过程中的一些坑，以及因为操作不当造成的OOM和异常，到最后介绍了线程安全类CopyOnWriteArrayList的一些坑，让我们认识到在丰富的API下藏着许多的陷阱。]]></description><category></category></item><item><title><![CDATA[【Java面试】什么是令牌桶限流算法]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126865495</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126865495</guid><author>Chenhui98</author><pubDate>Thu, 15 Sep 2022 09:59:18 +0800</pubDate><description><![CDATA[当面试官问你，“什么是令牌桶限流算法”！

你知道要怎么回答，才能获得面试官的青睐吗？

大家好，我是Mic，一个工作了14年的Java程序员。

关于这个问题，面试官想考察哪些纬度？我们又该怎么回答呢？]]></description><category></category></item><item><title><![CDATA[面试官：单核 CPU 支持 Java 多线程吗？什么？]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126865307</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126865307</guid><author>Chenhui98</author><pubDate>Thu, 15 Sep 2022 09:55:40 +0800</pubDate><description><![CDATA[由于现在大多计算机都是多核CPU，多线程往往会比单线程更快，更能够提高并发，但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁，你的程序反而不能支持更高的TPS。]]></description><category></category></item><item><title><![CDATA[核爆！网易首席架构师十万字面试经验分享：java核心知识点精讲]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126865234</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126865234</guid><author>Chenhui98</author><pubDate>Thu, 15 Sep 2022 09:50:45 +0800</pubDate><description><![CDATA[进入金九银十。又到了一年一度的！相信各位码友们也开始摩拳擦掌起来。就目前大环境来看，跳槽成功的难度比往年高很多。一个明显的感受：今年的面试，无论一面还是二面，都很考验Java程序员的技术功底。看着同事一个个都开始着手跳槽，这个时候切记不可盲目跟风。对于我也是利用闲暇之余就开始着手准备。花费几个月的时间整理出了把它整理成一份PDF文档。]]></description><category></category></item><item><title><![CDATA[面试重点：建立Java并发知识体系（含工具全图鉴）]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126865184</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126865184</guid><author>Chenhui98</author><pubDate>Thu, 15 Sep 2022 09:47:22 +0800</pubDate><description><![CDATA[线程池刚创建的时候，会先创建一定数量的线程，比如说10个，这样当有新请求分配过来的时候，就可以直接从池子里取出一个已经创建好的线程，直接开始处理请求，这样就省去了创建线程的时间。在实际使用中，线程的创建和销毁都是需要时间的，如果是一个量级非常轻的请求，服务器也要新创建一条线程去处理，那么有可能创建和销毁线程消耗的时间，比请求处理的时间还更长。再加上对线程的重复使用，就可以大大减小了线程生命周期的开销，而且由于在请求到达时线程已经存在，所以消除了线程创建所带来的延迟，使用应用程序响应更快，增强了用户体验。]]></description><category></category></item><item><title><![CDATA[Java 基础 | Java 中引用与指针的关系]]></title><link>https://blog.youkuaiyun.com/Chenhui98/article/details/126864649</link><guid>https://blog.youkuaiyun.com/Chenhui98/article/details/126864649</guid><author>Chenhui98</author><pubDate>Thu, 15 Sep 2022 09:22:28 +0800</pubDate><description><![CDATA[关键字包含 #指针，java 引用，空指针，地址访问，引用类型，在 Java 编程语言中，程序员不需要担心程序的内存使用。Java 语言的自动垃圾收集器会不时地清理那些变成垃圾的对象。如果垃圾收集没有发生，垃圾对象将保留一个内存位置，直到程序执行结束。下面讲讲之前会怎么涉及引用的知识。Java 中引用因为存储的就是地址，所以实质上引用就是指针的另一种形式，只不过这种形式是安全形式的指针，因为引用是处于被动的存储地址的一个存在，是受控的，所以是安全的。]]></description><category></category></item></channel></rss>