自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文吃透Spring Cloud Alibaba 使用Seata解决分布式事务

为什么会产生分布式事务?随着业务的快速发展,网站系统往往由单体架构逐渐演变为分布式、微服务架构,而对于数据库则由单机数据库架构向分布式数据库架构转变。此时,我们会将一个大的应用系统拆分为多个可以独立部署的应用服务,需要各个服务之间进行远程协作才能完成事务操作。在微服务项目中通常一个大项目会被拆分为N个子项目,例如用户中心服务,会员中心服务,支付中心服务等一系列微服务,在面临各种业务需求时难免会产生用户中心服务中需要调用会员中心服务,支付中心服务而产生调用链路;服务与服务之间通讯采用RPC远程调用技术,但是

2021-11-09 20:16:49 393

原创 面试官让我详细剖析分布式微服务架构下网络通信的底层实现原理(图解)

在分布式架构中,网络通信是底层基础,没有网络,也就没有所谓的分布式架构。只有通过网络才能使得一大片机器互相协作,共同完成一件事情。同样,在大规模的系统架构中,应用吞吐量上不去、网络存在通信延迟、我们首先考虑的都是网络问题,因此网络的重要性不言而喻。作为现代化应用型程序员,要开发一个网络通信的应用,是非常简单的。不仅仅有成熟的api,还有非常方便的通信框架。可能大家已经忘记了网络通信的重要性,本篇文章会详细分析网络通信的底层原理!!1.1 理解通信的本质如图1-1所示,当我们通过浏览器访问一个网址时

2021-11-08 17:13:37 1820

原创 这一篇 K8S(Kubernetes)集群部署 我觉得还可以,现在分享给大家。

国内安装K8S的四种途径Kubernetes 的安装其实并不复杂,因为Kubernetes 属于Google 的产品,都是从Google的官方上进行下载,但是因为网络问题,在国内是没办法连接它的中央仓库进行下载安装包的,只能通过其他的途径进行安装,在国内有四种安装方式使用 Kubeadmin 通过离线镜像安装: Kubeadmin 是K8S提供的管理控制台,通过这里的命令可以非常方便的对我们集群进行快速发布和部署使用阿里云公有云平台安装K8S: 这是也是非常好用的,不用做任何设置,拿来就用,但是有一

2021-11-07 16:17:54 1483

原创 面试题系列:用了这么多年的 Java 泛型,我只知道它的皮毛

面试题:说说你对泛型的理解?面试考察点考察目的:了解求职者对于Java基础知识的掌握程度。考察范围:工作1-3年的Java程序员。背景知识Java中的泛型,是JDK5引入的一个新特性。它主要提供的是编译时期类型的安全检测机制。这个机制允许程序在编译时检测到非法的类型,从而进行错误提示。这样做的好处,一方面是告诉开发者当前方法接收或返回的参数类型,另一方面是避免程序运行时的类型转换错误。泛型的设计推演举一个比较简单的例子,首先我们来看一下ArrayList这个集合,部分代码定义如下。p

2021-11-05 19:30:26 168

原创 面试官问我:Java异常处理与多线程

异常处理异常概述与异常体系结构在Java语言中,将程序执行中发生的不正常情况称为异常(开发过程中的语法错误和逻辑错误不是异常)。Java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况,例如StackoverflowError和OOM。一般不编写针对性的代码进行处理。public static void main(String[] args) { // 1\. 栈溢出: java.lang.Stack

2021-11-04 21:59:26 150

原创 2021最新Java枚举类和注解

枚举类背景类的对象只有有限个: 性别 星期 季节 线程状态当需要定义一组常量时,强烈建议使用枚举类。如果枚举类中只有一个对象,则可以作为单例模式的实现方式。自定义枚举类import org.junit.Test;public class EnumTest { @Test public void test() { Season season = Season.SPRING; System.out.println(season);

2021-11-04 19:23:59 240 1

原创 Java面向对象

Java面向对象静态/非静态方法静态方法只能调用静态方法,非静态方法可以调用静态方法: public static void main(String[] args) { //静态方法 static 可以直接用类名.方法名直接调用 //非静态方法 需要先实例化这个类 new Student student = new Student(); student.say(); } public static void a()

2021-11-03 20:35:02 151

原创 面试官问我 Zookeeper 集群部署的那些事儿

简介ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务。ZooKeeper本质上是一个分布式的小文件存储系统。提供类似于文件系统目录树方式的数据存储,并且可以对书中的节点进行有效管理。从而用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,实现基于数据的集群管理。运行模式ZooKeeper 运行模式有三种:单机模式、伪集群模式、集群模式单机模式: ZooKeeper 只运行一台服务器上面,这种模式一般用于开发测试环境,用于节省机器数量,

2021-10-31 22:27:19 169

原创 2021最新Hive面试题整理(一)

1、Hive表关联查询,如何解决数据倾斜的问题?(☆☆☆☆☆)1)倾斜原因:map输出数据按key Hash的分配到reduce中,由于key分布不均匀、业务数据本身的特、建表时考虑不周、等原因造成的reduce 上的数据量差异过大。  (1)key分布不均匀;  (2)业务数据本身的特性;  (3)建表时考虑不周;  (4)某些SQL语句本身就有数据倾斜;  如何避免:对于key为空产生的数据倾斜,可以对其赋予一个随机值。  2)解决方案  (1)参数调节:    hive.map.ag

2021-10-31 22:17:20 259

原创 面试题系列:new String(“abc“)创建了几个对象

new String(“abc”)创建了几个对象面试官考察点猜想这种问题,考察你对JVM的理解程度。涉及到常量池、对象内存分配等问题。涉及背景知识详解在分析这个问题之前,我们先来了解一下JVM的组成,如图所示。在JVM1.8中,内存划分为堆、程序计数器、本地方发栈、方法区(元空间)、虚拟机栈。JVM知识点普及下面分别解释一下JVM运行时内存的功能。堆内存空间堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生

2021-10-29 20:53:12 172

原创 Redis使用过程中有哪些注意事项,看看BAT这类的公司是正确使用Redis的

Redis使用过程中要注意的事项Redis使用起来很简单,但是在实际应用过程中,一定会碰到一些比较麻烦的问题,常见的问题有redis和数据库数据的一致性缓存雪崩缓存穿透热点数据发现下面逐一来分析这些问题的原理及解决方案。数据一致性针对读多写少的高并发场景,我们可以使用缓存来提升查询速度。当我们使用Redis作为缓存的时候,一般流程如图3-4所示。如果数据在Redis存在,应用就可以直接从Redis拿到数据,不用访问数据库。如果Redis里面没有,先到数据库查询,然后写入到Redis

2021-10-29 20:16:12 136

原创 阿里面试必问Java并发编程题AQS源码详解

作用提供一个框架用于实现依赖先进先出等待队列的阻塞锁和相关同步器(信号量,事件)使用子类应该定义为非公共内部帮助类,用于实现其封闭类的同步属性,AQS并不实现任何同步接口,这一部分主要是从源码里搬过来的class Mutex implements Lock, java.io.Serializable { // Our internal helper class private static class Sync extends AbstractQueuedSynchronizer {

2021-10-28 22:11:17 164

原创 全网讲的最透彻RabbitMQ延时队列应用场景

应用场景我们系统未付款的订单,超过一定时间后,需要系统自动取消订单并释放占有物品常用的方案就是利用Spring schedule定时任务,轮询检查数据库但是会消耗系统内存,增加了数据库的压力、还存在较大的时间误差解决:rabbitmq的消息TTL和死信Exchange结合介绍1.何为消息TTL、死信死信:对消息设置的过期时间到了,这个消息还没有被消费就认为这个消息死了,死了的消息会进入死信交换机(Dead Letter Exchanges)成为死信的三种条件:一个消息被Consum

2021-10-28 19:38:10 857

原创 如何彻底搞懂大厂是如何实现Redis高可用的?看这篇文章就够了!(1.2W字,建议收藏)

高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。那么如何保证系统的高可用呢首先,在整个架构的每个节点中,不允许存在单点问题,因为单点一定是高可用最大的风险点,我们应该在系统设

2021-10-27 21:18:27 229

原创 全网最透彻:看动画学算法之:队列queue

简介队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构。想象一下我们日常的排队买票,只能向队尾插入数据,然后从队头取数据。在大型项目中常用的消息中间件就是一个队列的非常好的实现。队列的实现一个队列需要一个enQueue入队列操作和一个DeQueue操作,当然还可以有一些辅助操作,比如isEmpty判断队列是否为空,isFull判断队列是否满员等等。为了实现在队列头和队列尾进行方便的操作,我们需要保存队首和队尾的标记。先看一下动画,直观的感受一下队列是怎么入队和出队的。先看

2021-10-27 20:28:19 261

原创 牛批!4个实验,彻底搞懂TCP连接的断开

前言看到这个标题你可能会说,TCP 连接的建立与断开,这个我熟,不就是三次握手与四次挥手嘛。且慢,脑海中可以先尝试回答这几个问题:四次挥手是谁发起的?如果断电/断网了连接会断开吗?什么情况下没有四次挥手连接也会断开?这不是面试,而是遇到了实际问题,至于是什么问题,容我先卖个关子,本文也不会解答,后面会有一篇专门的文章来说遇到的问题是啥,所以在讲实际问题之前,先弄懂理论。正常断开我们由浅入深,先了解正常情况下 TCP 连接是如何断开的,下图为 TCP 三次握手与四次挥手的经典图(来自《TCP

2021-10-26 21:35:59 439

原创 字节大佬教你如何玩转力扣

今天,我就给偏初学者的各种问题谈谈个人刷力扣这方面的观点。刷哪些题?大家刷力扣,目标肯定就是为了冲击大厂的面试笔试,小部分就是为了坚持刷题保持感觉提升自己算法编程能力,那么你肯定要把重点内容先掌握,哪些是重点内容呢?剑指offer:首先是剑指offer(https://leetcode-cn.com/problem-list/xb9nqhhg/),剑指offer的优先级还是很高的,就业必刷。在牛客上和力扣平台上都可以刷剑指offer的题,但是我个人更推荐力扣这个平台,我第一次刷剑指offer就是和.

2021-10-26 20:12:33 1043

原创 我弟弟用了半天撸一个简易版mybatis

为什么需要持久层框架?首先我们先看看使用原生jdbc存在的问题?public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 通过驱动管理类获取数据库

2021-10-25 21:10:13 202

原创 深入理解Java虚拟机之类加载机制篇

概述​ 虚拟机把描述类的数据从 Class 文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,就是虚拟机的类加载机制。​ 在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然增加了类加载时系统额外的开销,但是能给 Java 应用程序提供高度的灵活性,Java 的动态扩展优势就依赖于运行期动态加载和动态连接来实现的。例如用户可以在编写一个面向接口的应用程序时,可以等到运行时再指定具体的实现类,还可以通过 Java 预定义的和

2021-10-25 19:47:41 114

原创 P8大佬透彻讲解java定时任务调度框架

java定时任务目前主要有三种:Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行;而且作业类需要集成java.util.TimerTask,一般用的较少。Spring3.0以后自带的task,即:spring schedule,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执

2021-10-24 20:20:34 2411

原创 如果你还不知道Apache Zookeeper?你凭什么拿大厂Offer!!

很多同学或多或少都用到了Zookeeper,并知道它能实现两个功能配置中心,实现表分片规则的统一配置管理注册中心,实现sharding-proxy节点的服务地址注册那么Zookeeper到底是什么?以及为什么能实现这样的功能?接下来我们就来了解一下Zookeeper。Zookeeper的前世今生Apache ZooKeeper是一个高可靠的分布式协调中间件。它是Google Chubby的一个开源实现,那么它主要是解决什么问题的呢?那就得先了解Google ChubbyGoogle Chub

2021-10-24 20:14:39 109

原创 面试官:如何实现扫码登录功能?

扫码登录场景扫码登录场景想必我们都不陌生——很多PC端的网站都提供了扫码登录的功能,无需在网页上输入任何账号和密码,只需要通过手机上的APP,如微信、淘宝、QQ等等,使用扫描功能,扫描网页上的二维码,确认登录,就可以完成网页端登录。扫码登录分析我们来分析一下,扫码登录,其实涉及到三种角色,需要解决两个问题。三种角色很明显,扫码登录当中涉及到的三种角色:PC端、手机端、服务端。相关的设计都要围绕这三端来展开,具体的设计其实就是每一端应该完成什么功能?应该怎么实现?端和端应该如何交互?两个问题

2021-10-22 19:26:41 504

原创 从源码层面深度剖析Redisson实现分布式锁的原理(全程干货,注意收藏)

Redis实现分布式锁的原理前面讲了Redis在实际业务场景中的应用,那么下面再来了解一下Redisson功能性场景的应用,也就是大家经常使用的分布式锁的实现场景。引入redisson依赖<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.16.0</version&gt

2021-10-22 15:56:37 150

原创 2021最新互联网面试必问Java后端面试题(含答案)

1.你觉得 Java 好在哪儿?这种笼统的问题如果对某些知识点没有深入、系统地认识绝对会蒙!所以为什么经常碰到面试官问你一些空、大的问题?其实就是考察你是否有形成体系的理解。回到问题本身。我觉得可以从跨平台、垃圾回收、生态三个方面来阐述。首先 Java 是跨平台的,不同平台执行的机器码是不一样的,而 Java 因为加了一层中间层 JVM ,所以可以做到一次编写多平台运行,即 「Write once,Run anywhere」。编译执行过程是先把 Java 源代码编译成字节码,字节码再由 JVM 解

2021-10-21 19:20:32 1754

原创 2021最新JVM夺命连环10问,你能答上来几道?

说说JVM的内存布局?Java虚拟机主要包含几个区域:堆:堆Java虚拟机中最大的一块内存,是线程共享的内存区域,基本上所有的对象实例数组都是在堆上分配空间。堆区细分为Yound区年轻代和Old区老年代,其中年轻代又分为Eden、S0、S1 3个部分,他们默认的比例是8:1:1的大小。栈:栈是线程私有的内存区域,每个方法执行的时候都会在栈创建一个栈帧,方法的调用过程就对应着栈的入栈和出栈的过程。每个栈帧的结构又包含局部变量表、操作数栈、动态连接、方法返回地址。局部变量表用于存储方法参数和局部变量。

2021-10-20 19:29:48 111

原创 什么是 JVM 类加载机制?你真的了解吗?

JVM在什么情况下会加载一个类?其实类加载过程非常的琐碎复杂,但是对于我们平时从工作中实用的角度来说,主要是把握他的核心工作原理就可以。一个类从加载到使用,一般会经历下面的这个过程:加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载所以首先要搞明白的第一个问题,就是JVM在执行我们写好的代码的过程中,一般在什么情况下会去加载一个类呢?也就是说,啥时候会从“.class”字节码文件中加载这个类到JVM内存里来。其实答案非常简单,就是在

2021-10-19 15:06:01 98

原创 面试:JVM,GC垃圾回收机制(通俗易懂)

一、如果判断对象可以回收1.1 引用计数法当一个对象被引用时,就当引用对象的值加一,当值为 0 时,就表示该对象不被引用,可以被垃圾收集器回收。这个引用计数法听起来不错,但是有一个弊端,如下图所示,循环引用时,两个对象的计数都为1,导致两个对象都无法被释放。1.2 可达性分析算法MAT工具–可视化Eclipse Memory Analyzer是一个快速且功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。使用Memory Analyzer分析具有数亿个对象的高效堆转储,快速计算对

2021-10-19 15:03:39 470

原创 牛批!终于有人把JVM内存分配机制讲明白了!超详细解析!

一、对象的加载过程那么,当一个象被new的时候,是如何加载的呢?有哪些步骤,如何分配内存空间的呢?1.1 对象创建的主要流程还是这段代码为例说明:public static void main(String[] args) { Math math = new Math(); math.compute(); new Thread().start();}当我们new一个Math对象的时候,其实是执行了一个new指令创建对象。我们之前研究过类加载的流程,那么创建一个对象的

2021-10-18 21:53:31 433

原创 清华大牛花费50小时研究出来的java项目教程

一、前言最近在研究sonar扫面java项目,实在是花费了不少时间,估计有50个小时吧。从零开始接触sonar,在网上找教程看,按照教程的指引,自己搭建环境,很快成功扫描python项目。但是,在扫描java项目时,遇到了各种问题,一直扫描不成功。解决这个问题的过程着实是相当痛苦。首先是运行命令扫描代码,发现出错,复制出错提示信息百度找答案,就进行尝试,这个过程相当低效,一直没有进展。然后,我想到直接搜索关键字“sonar扫描Java项目”,发现找到的文章很少,而且内容比较混乱。接着,我决定自

2021-10-18 21:33:06 242

原创 阿里二面!面试官问我MySQL调优,我真的是“吊打面试官”

面试官:要不你来讲讲你们对MySQL是怎么调优的?候选者:哇,这命题很大阿…我认为,对于开发者而言,对MySQL的调优重点一般是在「开发规范」、「数据库索引」又或者说解决线上慢查询上。候选者:而对于MySQL内部的参数调优,由专业的DBA来搞。面试官:扯了这么多,你就是想表达你不会MySQL参数调优,对吧候选者:草,被发现了。面试官:那你来聊聊你们平时开发的规范和索引这块,平时是怎么样的吧。候选者:嗯,首先,我们在生产环境下,创建数据库表,都是在工单系统下完成的(那就自然需要DBA审批)。如果在

2021-10-17 19:54:24 158

原创 面试官:什么是Java 内存模型?我:有点懵

浅析 Java 内存模型 1. 为什么要学习并发编程2. 为什么需要并发编程3. 从物理机中得到启发4. Java 内存模型4.1 原子性什么是原子性如何保证原子性4.2 可见性什么是可见性如何保证可见性4.3 有序性什么是有序性如何保证有序性5. Happens-before 原则5.1 JMM 设计者的难题与完美的解决方案5.2 八条 Happens-before 规则5.3“时间上的先发生” 与 “先行发生”6\. Happens-before 与 as-if-serial1. 为什么要学习并发编程

2021-10-15 20:18:42 563

原创 阿里二面!!面试官:为什么需要Java内存模型?,这不是送分给我吗!!

面试官:今天想跟你聊聊Java内存模型,这块你了解过吗?候选者:嗯,我简单说下我的理解吧。那我就从为什么要有Java内存模型开始讲起吧面试官:开始你的表演吧。候选者:那我先说下背景吧候选者:1. 现有计算机往往是多核的,每个核心下会有高速缓存。高速缓存的诞生是由于「CPU与内存(主存)的速度存在差异」,L1和L2缓存一般是「每个核心独占」一份的。候选者:2. 为了让CPU提高运算效率,处理器可能会对输入的代码进行「乱序执行」,也就是所谓的「指令重排序」候选者:3. 一次对数值的修改操作往往是非.

2021-10-15 20:01:25 366

原创 清华大牛透彻讲解Java NIO 的简单介绍和使用

Java NIO 的简单介绍和使用在使用 BufferedReader 读取输入流中的数据时,如果没有读到有效数据,程序将在此出阻塞该线程的执行(使用 InputStream 的 read() 方法从流中读取数据时,如果数据流中没有数据,它也会阻塞该线程)。也就是说,传统的输入流、输出流都是阻塞式输入、输出。从 JDK 1.4 开始,Java 提供了一系列新的IO(New IO,简称 NIO),位于 java.nio 包及子包下,并且对原 java.io 包中的很多类以 NIO 为基础进行了改写,新增了

2021-10-10 16:09:55 117

原创 JVM面试题:JVM垃圾回收机制详解|JVM底层原理解析

JVM 垃圾回收什么是垃圾对象在内存中再也不可能会被使用到的对象判断一个对象是否是垃圾对象的方法(标记):可达性分析:从根节点开始,如果能够被访问到,则说明这个对象是可用的,否则,就说明这个对象不可达的,即是一个垃圾对象引用器计数:判断当前的对象是否有其他的引用引用它,如果存在,则说明这个对象不是一个垃圾对象,否则就是一个垃圾对象引用级别强引用平常最基本的使用对象,垃圾回收不会回收这些带有强引用的对象。如果内存不足,也不会回收这一部分的引用对象,而是直接抛出 OutOfMemoryErr

2021-10-10 15:47:06 266

原创 【初级】JVM 面试题,是有多简单?

怎么判断2个类是同一个类类名+包名相同加载这2个类的类加载器对象必须是同一个类主动使用方式类的使用可以分主动使用、被动使用,区别是被动使用类时,不会导致类的初始化,这会导致很多难以查找的 Bug 的通过new关键字、反射、clone、反序列化机制实例化对象调用类的静态方法时使用类的静态字段或对其赋值时通过反射调用类的方法时初始化该类的子类时(初始化子类前其父类必须已经被初始化)JVM启动时被标记为启动类的类(简单理解为具有main方法的类)创建对象的几种方式new用new语句ba

2021-03-19 16:37:02 143

原创 50场面试后,我总结出了短时间突击Java面试的方法

写在前面的话不得不说,当你在面试第50场和第5场的心境是完全不同的:也许在面第五场的时候,你还是一个不清楚自己求职方向,碰到面试官大佬就声音发抖的菜鸟,到了第五十场,你会觉得,面试不过就是同行业的两个同行业人士的切磋交流+免费的公司内部参观,能达到这个心境,得失其实也就不那么重要了。刚求职的时候和很多人一样方向也不是那么明确,想做安全方向,又想做全栈开放,又眼馋算法岗位的高薪,但最终其实都“真香”了。最终决定下定决心选择后端开发这个方向,一直到现在我都觉得这个决定没错。Java在编程语言中占据着重要的

2021-03-18 15:43:47 241

原创 大厂,那高高的围墙

写在前面的话有人说,大厂像围城,外面的人想进去,里面的人想出来。确实如此,外面的人想进去,进入以后就可能意味着良好的福利待遇和发展空间;但里面的一些人想出来,因为大厂也可能面临着996、大小周、超级大小周、加班加点、快节奏、高强度的工作。有得有失。为什么我劝你要早一点进大厂“为什么我劝你要早一点进大厂”这一个结论是给位于一二线城市的做开发的同学的。很多同学在工作数年后,遭到社会的毒打之后,可能会突然明白这样一个道理:“你努力奋斗达到的层级,可能是某些人一开始起步的层级”。以我自己为例,我直到第三份工作

2021-03-17 15:47:14 140

原创 Java面试90%的人都会踩得的坑~!教你如何预防

最近浏览知乎贴吧以及论坛,发现好多小伙伴都在吐槽 Java 面试时遇到的问题,我挑选了几个经典的问题给大家暂时,如下:Java 技术能力自以为还不错,但是到了面试的时候就凉凉;对面试官提出的问题感觉很懵,不知道面试官要问啥;有的面试官,一坐下就从基础的知识开始狂问;面试一开始就一直揪着业务场景提问,不论求职还是晋升答辩,完全不知道面试之前该准备些什么。面试(不论是求职还是晋升)是我们谁都不能逃避的事情。除了低头写代码,你还是要思考下和你的薪资息息相关的面试技巧,这里我特地去搜集资料整理,分享三

2021-03-16 14:35:01 237 1

原创 程序员进阶必看!JVM性能调优

JVisualVM 简介VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.6.0_13\bin)目录下面,有一个jvisualvm.exe文件,双击打开,从UI上来看,这个软件是基于NetBeans开发的了。Vi

2021-03-13 16:34:45 104

原创 想入职阿里的Java开发者必看,阿里巴巴面试官实战经验分享!

以下都是面试官的经验,我们只介绍普遍现象,但会存在特例。哪些Java开发者更受阿里青睐?1、潜力比较大、心力脑力体力都处于巅峰状态的,工作4-5年左右是普遍的最佳时段2、经验足,有视野的,具备大项目积累沉淀3、平时爱学习爱总结,有进步的主观能动性哪些Java开发者面试阿里会比较艰难?1、工作多年已经转管理岗的,如果面试开发岗位,可能会被质疑代码不熟练或没有心力脑力体力再从事技术开发2、工作3年以下的,会被质疑技术和积累的不够3、以往开发的项目太简单,会被质疑没有工作亮点,例如项目经历过多是增

2021-03-12 15:41:17 279 2

空空如也

空空如也

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

TA关注的人

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