自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(225)
  • 收藏
  • 关注

原创 TraceId 搭配 ELK ,碉堡了!

内容看着比较多,实际很容易实现,但真正生产环境要复杂的多,还需不断思考。

2022-09-17 09:44:57 1243 1

原创 Java开发:实现用户注册登录的功能

在Java开发过程中,实现用户的注册功能是最基本的,用户通过手机号或者邮箱作为注册账号也是非常常见的操作方式,不管是通过手机号注册或者邮箱注册,原理都差不多,那么本文就来分享一下在Java开发过程中的用户注册账号的功能实现。通过上文讲述的流程步骤,就简单实现了一个比较全面的用户注册登录的功能,虽然这个功能很普遍,但是对于Java开发刚入门的新手来说还是有难度的,这个命题可以作为出入Java开发者来作为练习的知识点,以上就是本文的全部内容,如有不妥之处,还请多多提出来。

2022-09-17 09:26:03 19828

原创 liunx标准输入与输出

要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。4. 后台程序运行,分别将标准输出与标准错误写入不同的日志文件内。3. 命令 &> 文件:重定向所有的输出到文件。2. 命令 2> 文件:重定向标准错误到文件。2. 重定向标准输出到文件,不包含标准错误。

2022-09-17 09:20:38 3962

原创 MySQL 及 jdbc 问题汇总

MySQL 存储过程中, 表和数据的编码与数据库和存储过程默认的编码不同则可能出现 sql 不会使用索引的情况, 因为 MySQL 会对条件列的数据做相应的编码转换, 比如以下, 表数据为。不会有加密的问题, 用高版本 jdbc 连接 5.7.6+ 以上会有加密问题, 需要显示指定。等参数的设定, 实践中我们通常都不会将其设置的很大, 以避免吃满 db 的连接. 低版本的。通过 jdbc 连接执行 sql 的时候, 如果编码不一致, 同样需要对。, 客户端连接的时候会自协商加密, 除非显示指定不加密.

2022-09-17 09:17:28 422

原创 如何使用 Junit + Mockito 实践单元测试

相信做过开发的同学,都多多少少写过下面的代码,很长一段时间我一直以为这就是单元测试...@Test}}但这是单元测试嘛?unitService 中可能还依赖了 Dao 的操作;如果是微服务,可能还要起注册中心。那么这个“单元”也太大了吧!如果把它称为集成测试,可能更恰当一点,那么有没有可能最小粒度进行单元测试嘛?单元测试应该是一个带有隔离性的功能测试。在单元测试中,应尽量避免其他类或系统的副作用影响。单元测试的目标是一小段代码,例如方法或类。

2022-09-16 14:25:31 470

原创 一站式动态多环境建设案例

致景科技成立于 2013 年 12 月,是领先的纺织产业互联网企业,国家高新技术企业。旗下拥有“百布”、“全布”、“天工”、“致景金条”、“致景纺织智造园”、“致景智慧仓物流园”等业务板块,致力于通过大数据、云计算、物联网等新一代信息技术,全面打通纺织服装行业的信息流、物流和资金流,帮助行业实现协同化、柔性化、智能化的升级,构建纺织服装纵向一体化的数智化综合服务平台。我们作为集团公司已经成立 2 年多的一个业务团队,项目并行开发上线的情况越来越多。

2022-09-16 13:43:41 204

原创 JavaSE泛型讲解

什么是泛型,为什么要用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。

2022-09-16 13:40:39 193

原创 Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web

mybatis+Servlet很显然需要用到二者的依赖,mybatis需要连接数据库,所以需要数据库的依赖,数据库则需要实体类,为了简便开发引入Lombok依赖。但是对于一个初学者来说,有一个简单易上手的项目可以吧Mybatis+Servlet+Mysql 整合起来,对于自己的学习不可不算是一个良好的契机。有人说了,这么简单的项目,我瞧不上。这个知识点是漏网之鱼,没有意识到即使是使用注解配置sql语句,也需要接口绑定。理论性太强,而实践太散,所以借着这篇文章,把实践的方便加强。《Mybatis的代理开发》

2022-09-16 13:37:21 1350

原创 面试一个30K的岗位,从JVM的根源问到了架构思想

一般公司简单的问题都不好意思问,怕面试者鄙视面试公司的技术水平。所以很多公司都慢慢向阿里这样的公司靠近,面试不问点 jvm、并发、分布式都不好意思(虽然公司可能没有用到,虽然可能仅仅 CURD),尤其是 JVM 相关的问题能凸显逼格,很多公司的确都在学习阿里这种公司的面试风格,都在问这些问题,那么我们就朝着这些大的方向努力也是没错的,如果朝着这些方向努力就是他们需要的人才,那么也就对了。

2022-09-16 13:32:23 183

原创 Mybatis动态SQL

Foreach主要用在构建in条件中,它可以在sql语句中进行迭代一个集合。Foreach元素的属性主要有item,index,collection,open,separator,close.index指定一个名字,用于表示在迭代过程中,每次迭代到的位置。Collection的值为ids,是传入的参数map的key。Item表示集合中每一个元素进行迭代时的别名。例2:单参数array数组的类型。Open表示该语句以什么开始。例3:将参数封装成map的类型。例1:单参数list的类型。

2022-09-16 13:29:52 148

原创 为什么阿里人成长速度极快?看完他们 Java 架构进化笔记,值得学习

更何况程序员不同于其他行业,它的黄金期相对来说时间较短,所以进入一线互联网大厂会使得路更好走,前景更宽阔;PS:真看到很多程序员没有好的规划,混日子,最后去开滴滴,送外卖去了。(并不是歧视岗位,而是歧视因不努力而放弃原本爱好的那群人)

2022-09-16 13:20:22 242

原创 阿里强推:Java 程序设计基于 JDK11 零基础学 Java 笔记

本书分为 18 章,内容包括:认识计算思维与 Java 程序设计、Java 语言及其 JDK 11、Java 程序结构解析、Java 语言的数据类型、流程控制、类与对象、继承与多态、抽象类、接口、程序包、嵌套类、常用类、窗口环境与事件处理、Swing 程序包、绘图与多媒体、例外处理、数据流的 V/O 控制、集合对象与泛型、多线程、网络程序设计等。

2022-09-16 13:17:34 259

原创 Java内存溢出(OOM)分析

默认情况下,对于64位服务器端JVM,MetaspaceSize默认大小是21M(初始限制值),一旦达到这个限制值,FullGC将被触发进行类卸载,并且这个限制值将会被重置,新的限制值依赖于Metaspace的剩余容量。背景:操作系统是建立在进程的概念之上,这些进程在内核中作业,其中有一个非常特殊的进程,名叫“内存杀手(Out of memory killer)”。背景:每个线程都需要一定的内存空间,当JVM向底层操作系统请求创建一个新的native线程时,如果没有足够的资源分配就会报这个错误。

2022-09-16 13:09:45 373

原创 什么情况会导致@Transactional事务失效?

一个程序中不可能没有事务,而 Spring 中,事务的实现方式分为两种:编程式事务和声明式事务,又因为编程式事务实现相对麻烦,而声明式事务实现极其简单,所以在日常项目中,我们都会使用声明式事务 @Transactional 来实现事务。

2022-09-15 10:11:05 1143

原创 满地坑!细数List的10个坑

今天我们主要来说一说List操作在实际使用中有哪些坑,以及面对这些坑的时候我们要怎么解决。由于篇幅的限制,我们只对一些在业务开发中常见的关键点进行梳理和介绍在实际的工作中,我们不单单是要清除不同类型容器的特性,还要选择适合的容器才能做到事半功倍。我们主要介绍了Arrays.asList转换过程中的一些坑,以及因为操作不当造成的OOM和异常,到最后介绍了线程安全类CopyOnWriteArrayList的一些坑,让我们认识到在丰富的API下藏着许多的陷阱。

2022-09-15 10:08:38 587

原创 【Java面试】什么是令牌桶限流算法

当面试官问你,“什么是令牌桶限流算法”!你知道要怎么回答,才能获得面试官的青睐吗?大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,面试官想考察哪些纬度?我们又该怎么回答呢?

2022-09-15 09:59:18 216

原创 面试官:单核 CPU 支持 Java 多线程吗?什么?

由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。

2022-09-15 09:55:40 794

原创 核爆!网易首席架构师十万字面试经验分享:java核心知识点精讲

进入金九银十。又到了一年一度的!相信各位码友们也开始摩拳擦掌起来。就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。看着同事一个个都开始着手跳槽,这个时候切记不可盲目跟风。对于我也是利用闲暇之余就开始着手准备。花费几个月的时间整理出了把它整理成一份PDF文档。

2022-09-15 09:50:45 189

原创 面试重点:建立Java并发知识体系(含工具全图鉴)

线程池刚创建的时候,会先创建一定数量的线程,比如说10个,这样当有新请求分配过来的时候,就可以直接从池子里取出一个已经创建好的线程,直接开始处理请求,这样就省去了创建线程的时间。在实际使用中,线程的创建和销毁都是需要时间的,如果是一个量级非常轻的请求,服务器也要新创建一条线程去处理,那么有可能创建和销毁线程消耗的时间,比请求处理的时间还更长。再加上对线程的重复使用,就可以大大减小了线程生命周期的开销,而且由于在请求到达时线程已经存在,所以消除了线程创建所带来的延迟,使用应用程序响应更快,增强了用户体验。

2022-09-15 09:47:22 166

原创 Java 基础 | Java 中引用与指针的关系

关键字包含 #指针,java 引用,空指针,地址访问,引用类型,在 Java 编程语言中,程序员不需要担心程序的内存使用。Java 语言的自动垃圾收集器会不时地清理那些变成垃圾的对象。如果垃圾收集没有发生,垃圾对象将保留一个内存位置,直到程序执行结束。下面讲讲之前会怎么涉及引用的知识。Java 中引用因为存储的就是地址,所以实质上引用就是指针的另一种形式,只不过这种形式是安全形式的指针,因为引用是处于被动的存储地址的一个存在,是受控的,所以是安全的。

2022-09-15 09:22:28 1803

原创 Java 流处理之收集器

每一个小流遍历完成之后,都会产生一个小的中间结果,需要将这些小的中间结果合并成一个大的中间结果。Collectors(java.util.stream.Collectors) 是一个工具类,内置若干收集器,我们可以通过调用不同的方法快速获取相应的收集器实例。Java 会在合适的时机自动调用 BinaryOperator.apply() 方法,将小的中间结果合并成大的中间结果。supplier() 方法会返回一个 Supplier 实例,调用该实例的 get() 方法,会创建一个中间结果容器。

2022-09-15 09:16:23 295

原创 Java 并发编程在生产应用场景及实战

为什么需要学习 Java 并发?从提升性能角度来说提升了对CPU的使用效率:目前生产的服务器大多数都是多核,标配的机器都是 8C/16G。操作系统会将不同的线程分配给不同的核心处理,理论上,有多少核心就有多少个线程并行执行。如果没有并发编程,CPU的利用率将极大的浪费,假设当前正在处理耗时的 I/O 操作,那么整个CPU就会处于阻塞空闲状态,后面的指令必须等待前面的执行完才能继续执行。降低服务 RT。

2022-09-15 09:13:36 388

原创 40道Java基础常见面试题及详细答案

最近看到网上流传着各种面试经验及面试题,往往都是一大堆技术题目贴上去,但是没有答案。为此我业余时间整理了40道Java基础常见的面试题及详细答案,望各路大牛发现不对的地方不吝赐教,留言即可。

2022-09-13 14:00:12 878 1

原创 Java开发实用的面试题及参考答案

当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动,start()方法才会启动新线程。Thread类提供了一个holdsLock(Object obj)方法,当且仅当对象obj的监视器被某条线程持有的时候才会返回true,注意这是一个static方法,这意味着”某条线程”指的是当前线程。2.对象可达性分析。可以使用 String 接收 byte[] 参数的构造器来进行转换,需要注意的点是要使用的正确的编码,否则会使用平台默认编码,这个编码可能跟原来的编码相同,也可能不同。

2022-09-13 13:53:15 143

原创 Java 自学手册,从外包到大厂,再到年薪 100 万技术大佬都靠它

同时,巧妇难为无米之炊,一条学习新知识的一般方法为先看视频学基础,再看书学原理,最后看博客查缺补漏,沉淀消化。涉及 的知识点主要包括 jsp,servlet,tomcat,http,MVC 等知识。SSM 框架这对于初学者来说,是一个坎,前几年学完这些,已经可以开始找工作了,所以恭喜你能坚持带这里,胜利就在前方。java 基础学习任何语言,都是先从他的基本语法开始,如果你有 C 语言的基础,会容易许多,没有也不用现学。一个好的计划是成功的一半,而这一半,小编已经帮你整理好了,有需要的朋友可以私信我获取。

2022-09-13 13:30:04 169

原创 深入理解 Java 虚拟机!京东大佬耗时半年肝出来的 HotSpot VM 源码剖析笔记真香(附完整源码)

有这么一句话:学 Java 不怕找不到工作,Java 的就业前景好,岗位也多,入门还快...但真的是这样吗?为什么明明岗位空缺单位却招不到合适的人?为什么很多学习 Java 的人却没有单位录用?答案就一个字:卷!公司对于 Java 开发的要求都变高了,很多东西你不仅要会用,还得知道其中的原理,不然免谈~

2022-09-13 13:21:56 163

原创 阿里的 24W 字 Java 面试复盘指南!

这份资料的内容非常全面而且细致入微,有 Java 入门,基础,字符串,进阶,项目,虚拟机,数据库,微服务,算法,并发,线程,集合,Linux,面试题等等 Java 相关技术点,希望你能凭借这份资料剑指 offer!

2022-09-13 13:18:47 299

原创 Java&C++题解与拓展——leetcode1608.特殊数组的特征值【么的新知识】

Java&C++题解与拓展——leetcode1608.特殊数组的特征值【么的新知识】

2022-09-13 11:30:14 387

原创 java8 新特性 -Optional的常见用法

Opitonal是java8引入的一个新类,目的是为了解决空指针异常问题。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于此。

2022-09-13 10:56:05 300

原创 聊聊Feign的大致功能和代理类的构建

今天我们说了一下Feign的工作原理,发起请求的时候是通过一个FeignInvocationHandler的代理类来执行的,我们基于源码分析了代理类是怎么起作用的,发起请求的时候并且用到了Ribbon的选择服务然后负载均衡的功能,Feign与Ribbon实现了结合。

2022-09-13 10:48:23 463

原创 Java 热更新 Groovy 实践及踩坑指南

此时需要监控中心介入,提前部署好异动规则,当异常发生时,监控中心发出告警通知到对应的规则创建人员,从而尽快查明原因,挽回资损。在初期方案上线时,压测后显示,首次加载脚本性能较慢,后续脚本执行速度非常快,猜测可能是 Groovy 内部在首次脚在脚本时还做了其他的校验(本人还没跟进这块,如果有读者感兴趣,可以断点详细看下链路耗时在哪里)风控的规则引擎非常适合用 groovy 来实现,对抗黑产,策略人员每天都都会产出拦截规则,如果每次都需要发版,可能发完观测完后,该薅的羊毛都被黑产薅没了。

2022-09-13 10:41:03 1098

原创 项目中到底该不该用 Lombok?

Lombok 作为一款非常流行的工具插件,肯定有它自身的优势所在,到底建不建议在日常开发中使用,我个人其实是一个中立的态度,如果你们团队的人都喜欢它,那推荐你使用,在使用之前,最好培训一下,有哪些坑点,避免踩坑。如果多数人不太喜欢用它,那就不推荐你使用,很多公司禁止你使用它的原因,其实这种插件有点类似那种流氓插件,工作原理不是官方所认可的方式来实现,假如某天新版本的 jdk 突然把这个漏洞给堵住了,那么项目想要升级 jdk,就比较困难。

2022-09-13 09:56:21 243

原创 记录一次Java笔试题记录一次Java笔试题

为了得到我们预期的结果我们就需要在on子句指定学生和成绩表的关系(学生.姓名=成绩.姓名)那么我们是否发现在执行第二步的时候,对于没有参加考试的学生记录就不会出现在vt2中,因为他们被on的逻辑表达式过滤掉了,但是我们用left outer join就可以把左表(学生)中没有参加考试的学生找回来,因为我们想返回的是x班级的所有学生,如果在on中应用学生.班级='x’的话,left outer join会把x班级的所有学生记录找回,所以只能在where筛选器中应用学生.班级=‘x’ 因为它的过滤是最终的。

2022-09-12 10:58:09 249

原创 详细介绍了HashMap,包括jdk不同版本的升级以及底层的源码分析

当数组比较小的时候,尽量避免使用红黑树的结构,因为红黑树也是一个平衡二叉树,我们在使用红黑树的时候,必须等保证这个二叉树的平衡,那么就会伴随着会有很多大量的保持红黑树平衡的操作,比如左旋,右旋等操作,如果数组比较小,且每一个数组对应的链表比较短的时候使用红黑树,与直接查找链表比起来,查询效率还更低。因为resize的赋值方式,也就是使用了 单链表的头插入方式,同一位置上新元素总会被放在链表的头部位置 ,在旧数组中同一条Entry链上的元素,通过重新计算索引位置后,有可能被放到了新数组的不同位置上。

2022-09-12 10:27:47 280

原创 一位国外老程序员的反思:C、Python、Java 不可兼得,专心学好一门编程语言就行!

我喜欢编程语言,而且永远对新语言充满了好奇。但是,就目前而言,TypeScript是我心目中的C位,而在需要强大的功能和低级访问权限的情况下,Rust居第二。我相信,2022年几乎所有程序员都与我有类似的看法。

2022-09-12 10:22:27 590

原创 Java 多线程:并发编程的三大特性

对象 T 在创建过程中,背后其实是包含了多条执行语句的,由于有 CPU 乱序执行的情况,所以极有可能会在初始化过程中生成以一个半初始化对象 t,这个 t 的 m 等于 0(还没有来得及做赋值操作)在从内存中读取数据的时候,根据的是程序局部性的原理,按块来读取,这样可以提高效率,充分发挥总线 CPU 针脚等一次性读取更多数据的能力。,指的就是内存中的某个数据,假如第一个 CPU 的一个核读取到了,和其他的核读取到这个数据之间的可见性。,恢复中断的代价是比较大的,所以我们要想尽办法不让流水线中断。

2022-09-12 10:16:05 218

原创 OpenFeign引起的HTTP Status 400与Tomcat吞没数据

在微服务中比较常见的场景:前端带了JWT令牌请求服务A,在服务A中使用Feign远程调用服务B、服务C等,A、B、C都接入了Spring Security;此时就会存在这样的需求,如服务A调用服务B、C时不带有JWT令牌就会出现服务调用失败,无法通过服务B、C鉴权认证;此时需要通过Feign提供的RequestInterceptor拦截器将A请求头中所持有的Token在Feign发起远程调用时继续传递给服务B、服务C;

2022-09-12 10:12:11 537

原创 IDEA创建第一个spring项目

举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。groupId:groupId分为几个字段,例如cn.com.fullstack,前面的com叫【域】,后面的是你自己起的域名。

2022-09-12 09:49:27 273

原创 秋招面试!2022应届必看这1000道Java岗最新面试核心题

2022年真的是对程序员极不友好的一年,像往年这个时间段一般是程序员跳槽涨薪的黄金期,是很多程序员集体往大厂冲刺的时间段;但由于国内情况复杂,各大厂纷纷裁员,整得整个互联网行业人心惶惶,纷纷质疑:大厂还值得去吗?程序员这个行业是不是不行了?我还有必要继续学习吗?答案显然是否定的,其实在行业里面很多年的程序员们都知道,大厂每年都会裁员,只不过是裁的数量多少而已,而这种大规模的裁员,近20年来已经发生过N次了,整个行业其实还是成波浪线上升趋势的,我们目前只不过刚好在波浪的底部而已。

2022-09-12 09:40:38 585

原创 Java---Stream进阶

由于本文需要有一定的Stream基础,所以如果不懂什么是Stream的同学请移步:Java---Stream入门。

2022-09-12 09:37:09 346

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除