
Java
文章平均质量分 92
码农单克
这个作者很懒,什么都没留下…
展开
-
金九银十已到,大厂面试大全+面试经历都在这了(建议收藏)
疫情到现在已经持续有3年的时间了,由于疫情的影响,无数行业都受到了影响,互联网寒冬下,许多程序员被裁,大环境格外困难。我发现一个奇怪的现象:那些跳槽的人,总是从一个坑,跳进令一个坑中。毕竟一年过去了,会的还是原来的知识,人的身价就摆在那里,无论怎么折腾,也不会拿到更好的 offer。这样的跳槽其实没有意义,也许就有人问,现在都是互联网寒冬了,要怎样才能把握好机会,拿到跟好跟适合自己的 offer 呢?技术才是我们程序员的立身之本,在再好的机遇面前我们也要有这个实力去抓住它。原创 2022-09-13 11:58:51 · 1829 阅读 · 0 评论 -
如何学习java性能调优?这10个技巧一定要知道
如何学习java性能调优?首先你得知道两个标准。一个是性能调优标准,告诉你可以通过哪些参数去衡量系统性能;另一个是调优过程标准,带你了解通过哪些严格的调优策略,我们可以排查性能问题,从而解决问题。然后,把 Java 性能调优分成5个层级:Java 编程、多线程、JVM 、设计模式、数据库,每个层级下都覆盖了最常见的*性能*问题。最后是实战演练场。以上五个层级的内容,都是基于某个点的调优,现在是时候把你前面所学都调动起来了,这里综合性能问题高频出现的应用场景,学习整体调优方法。原创 2022-09-08 13:58:47 · 217 阅读 · 0 评论 -
蚂蚁金服十年架构师教你深入理解分布式锁
分布式锁分布式锁其实可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。 举个不太恰当的例子:假设共享的资源就是一个房子,里面有各种书,分布式系统就是要进屋看书的人,分布式锁就是保证这个房子只有一个门并且一次只有一个人可以进,而且门只有一把钥匙。然后许多人要去看书,可以,排队,第一个人拿着钥匙把门打开进屋看书并且把门锁上,然后第二个人没有钥匙,那就等着,等第一个出来,然后你在拿着钥匙进去,然后就是以此类推为什么要用锁为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统原创 2022-09-08 10:11:33 · 456 阅读 · 0 评论 -
来自从事Java十年的老架构师给大家的一些经验,Java工程师必看
一转眼从学校毕业已经超过10年了,从一名普通的程序员成长为500强企业的架构师,如今也开始做IT管理工作,可以算是一个过来人。这一路走来,自己有一些感悟,也看到其他人的一些经验教训,还有很多朋友不知道怎么从工程师成长为一名合格的架构师,我总结了一些我的人生经验,希望对那些处在迷茫中的年轻朋友们有些许帮助。同时也分享一套架构师的面试题,能答出80%其实已经算是一名合格的架构师了。原创 2022-09-07 15:32:47 · 467 阅读 · 0 评论 -
浅谈一下java设计模式——命令模式
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。原创 2022-09-07 15:06:41 · 218 阅读 · 0 评论 -
强大且易用的shiro安全框架
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。Shiro 主要分为来个部分就是认证和授权,在个人感觉来看就是查询数据库做相应的判断而已,Shiro只是一个框架而已,其中的内容需要自己的去构建,前后是自己的,中间是Shiro帮我们去搭建和配置好的个人认为需要看一下其中的一些源码,更有帮助的深入的去了解Shiro的原理。####1.SsS原创 2020-07-30 15:08:32 · 284 阅读 · 0 评论 -
提升你 Java 代码运行效率的5 个小细节
前言代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。代码优化的目标是1.减小代原创 2020-07-26 14:29:40 · 125 阅读 · 0 评论 -
又被面试官问到了Spring Bean的生命周期
面试过程中被问到Bean的生命周期是很正常的,相信很多人都能答上来,但是放到spring框架里面,难度就提升了很多,今天就来讲一讲Spring框架中Bean的声明周期Spring 容器可管理 singleton 作用域 Bean 的生命周期,知道创建,初始化完成,销毁时间。prototype 作用域 Bean,Spring 只负责创建,实例就交给客户端代码管了解 Spring 生命周期意义:Bean指定时刻相关操作,Bean 被加载到 Spring 容器时,就有生命1)根据配置情况调用 Bean原创 2020-07-21 19:18:35 · 820 阅读 · 0 评论 -
来讲讲Java中String 类的知识点
本文来总结一下Stirng 的有关知识点1.String中的引用String 可以通过new和构造方法来创建一个对象,用s来引用它(也就是相当于把asdf这个字符串赋值给sString s = new String("asdf");那么什么是引用呢?打个比方:就好比是你的学号,那么对象就是你,那就需要你(对象)来找到的学号,那怎吗可以找到你的学号呢?就需要学号来引用你(对象),那么你就可以知道你的学号是什么了,这个比方就可以解释什么是引用了2.String(字符串)可以和数字相互转换[1] 字原创 2020-07-12 21:27:46 · 261 阅读 · 0 评论 -
Java虚拟机执行引擎知识总结
大家好,这篇文章主要介绍了有关Java虚拟机执行引擎的知识,文中实例简单易懂,方便大家更好的学习,有兴趣的朋友可以了解下。执行引擎也只有几个概念, JVM方法调用和执行的基础数据结构是 栈帧, 是内存区域中 虚拟机栈中的栈元素, 每一个方法的执行就对应着一个栈帧在虚拟机栈中出栈入栈的过程.栈帧:则是包含有局部变量表, 操作数栈, 动态连接, 方法返回地址, 附加信息.1 局部变量表:存储单位是 slot, 一个slot占据32位, 对于64位的数据类型, 则是分配连续两个slot空间. 而对于一个原创 2020-07-08 15:40:32 · 104 阅读 · 0 评论 -
MySQL并发控制之读写锁和锁粒度详解
**无论何时,只要有多个査询需要在同一时刻修改数据,都会产生并发控制的问题。本章的目的是讨论MySQL在两个层面的并发控制:**服务器层与存储引擎层。并发控制是 一个内容庞大的话题,有大量的理论文献对其进行过详细的论述。本章只简要地讨论 MySQL如何控制并发读写,因此读者需要有相关的知识来理解本章接下来的内容。以Unix系统的email box为例,典型的mbox文件格式是非常简单的。一个mbox邮箱 中的所有邮件都串行在一起,彼此首尾相连。这种格式对于读取和分析邮件信息非常友 好,同时投递邮件也很容易原创 2020-07-06 22:27:33 · 399 阅读 · 0 评论 -
浅谈微服务架构入门
什么是微服务架构其实,很难对微服务下一个准确的定义。就像NoSQL,我们谈论了好几年的NoSQL, 知道NoSQL的大致含义,也可以根据不同的应用场景选择不同的NoSQL数据库,但是我 们还是很难对它下一个准确的定义。类似的,关于什么是“函数式编程”,也或多或少存在 同样的窘境。我们可以轻松地选择不同的函数式编程语言,可以轻松地写出函数式编程风 格的代码,但很难对什么是函数式编程下一个准确的定义。实际上,从业界的讨论来看,微服务本身并没有一个严格的定义。不过,Thoughtworks 的首席科学家——马原创 2020-06-23 20:05:53 · 523 阅读 · 1 评论 -
浅谈微服务架构分布式事务方案
第一节:了解常用的分布式解决方案一、分布式事务方案:最终一致性、事务补偿、TCC、两阶段提交、最大能力通知等。具体结合业务场景。很多大型企业自主研发了自己的分布式事务解决方案,如:支付宝 XTS,去哪儿 QMQ。1.基于可靠消息的最终一致性解决方案(异步确保型)(适用场景比较广)2.TCC事务补偿性方案(try-confirm-cancel)(也属于两阶段型的,但区别于2PC协议的两阶段提交)3.最大努力通知型方案(一般跨平台通知比较常用)第二节:解决方案效果展示(结合支付系统真实应用场景)原创 2020-06-22 19:49:14 · 163 阅读 · 0 评论 -
作为一名资深的Java架构师,你应该了解的Linux知识!
**这篇文章中出现的所有命令,都应该记下来并且熟练使用**几种比较典型的Linux系统首先对目前的Linux版本有个大体的印象,大体分Desktop版和Server版,已经是百花齐放。Ubuntu 最常见的Linux个人发行版,一位有情怀的南非富豪,有了钱你也可以这么做CentOS 最常用Linux服务器发新版,RHEL的开放版本,因版权而生的轮子Arch 滚动升级,海量二进制包,社区活跃,个人最爱Gentoo 安装软件需要从源码开始编译,稳定,但用起来会很痛LFS 从零构建Linux,原创 2020-06-21 21:20:56 · 264 阅读 · 0 评论 -
单例模式的Java如何去实现?
一、摘要本文分析了单例模式在 Java 里的不同实现方式,通过对比优劣最后提出结论二、单例模式的实现单例模式的要义是控制某一个类只有一个唯一的实例,并提供一个统一的访问点。它主要用在某些不希望有多个实例的场景,比如线程池。1.基础实现首先来看一个单例模式的基础实现:public class Singleton {private static final Singleton instance = new Singleton();private Singleton() { System原创 2020-06-19 20:26:57 · 119 阅读 · 0 评论 -
MySQL的各大存储引擎
1.InnoDB:数据和索引存放在单独的文件,聚簇索引,行级锁,事务,MVCC2.MyISAM:(1)缺点:不支持事务和表级锁,因为不支持表锁,锁颗粒比较大,因此适合只读和小文件。(2)文件:数据文件和索引文件以.MYD和.MYI结尾。(3)压缩表:压缩表不能修改,可以减少磁盘占用,也可以减少磁盘I/O;支持索引,所以只读;记录单独存放,要去单行不需要解压整个表。**3.memory:**不需要进行磁盘I/O,查询速度非常快;使用的是表级锁,并发写入能力较低;系统中的临时表,就是使用memory。原创 2020-06-16 20:43:51 · 155 阅读 · 0 评论 -
小白也能看懂的Java 垃圾回收!
在 Java 的世界里,似乎我们不用对垃圾回收那么的专注,很多初学者不懂 GC,也依然能写出一个能用甚至还不错的程序或系统。但其实这并不代表 Java 的 GC 就不重要。相反,它是那么的重要和复杂,以至于出了问题,那些初学者除了打开 GC 日志,看着一堆天文,啥也做不了。????今天我们就从头到尾完整地聊一聊 Java 的垃圾回收。什么是垃圾回收垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时原创 2020-06-15 19:52:42 · 205 阅读 · 0 评论 -
Java 中是值传递还是引用传递?
**大家都知道Java在传参时分为值 传递 和 引用传递 。**参数为基本类型时是值传递,参数为封装类型时是引用传递。但是传引用的错觉是如何造成的呢?在运行栈中,基本类型和引用的处理是一样的,都是传 值,所以,如果是传引用的方法调用,也同时可以理解为“传引用值”的传值调用,即引用的 处理跟基本类型是完全一样的。但是当进入被调用方法时,被传递的这个引用的值,被程序 解释(或者查找)到堆中的对象,这个时候才对应到真正的对象。如果此时进行修改,修改的是引用对应的对象,而不是引用本身,即:修改的原创 2020-06-14 22:00:33 · 171 阅读 · 0 评论 -
如何使用Redis来记录日志?
使用Redis来记录日志在构建应用程序和服务的过程中,对正在运行的系统的相关信息的挖掘能力将变得越来越重 要:无论是通过挖掘信息来诊断系统问题,还是发现系统中潜在的问题,甚至是挖掘与用户有 关的信息——这些都需要用到日志。在Linux和Unix的世界中,有两种常见的记录日志的方法。第一种是将日志记录到文件 里面,然后随着时间流逝不断地将一个又一个日志行添加到文件里面,并在一段时间之后创 建新的日志文件。包括Redis在内的很多软件都使用这种方法来记录日志。但这种记录日志 的方式有时候可能会遇上麻烦:因为原创 2020-06-12 21:53:38 · 2970 阅读 · 0 评论