自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 来了,来了!Nacos 2.0的Spring Boot Starter终于来了

随着Nacos2.0成熟稳定,Nacos-spring-boot发布0.1.10、0.2.10两个核心版本,全面支持了Nacos2.0,同时支持自动识别配置类型注入能力,修复了高并发场景下数据一致性问题。Nacos-spring-boot老用户,将相关maven依赖进行如下替换,即可快速升级。<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config

2021-09-09 19:45:11 416

原创 MySQL中的redo log和undo log

MySQL中的redo log和undo logMySQL日志系统中最重要的日志为重做日志redo log和归档日志bin log,后者为MySQL Server层的日志,前者为InnoDB存储引擎层的日志。1 重做日志redo log1.1 什么是redo logredo log用于保证事务的持久性,即ACID中的D。持久性:指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。redo log有两种类型,分别为物理重做日...

2021-09-09 19:44:11 365

原创 消息中间件中的王者:Kafka!应付Kafka面试,看这篇就够了

为什么要使用 kafka? kafka的数据可靠性怎么保证 Kafka的数据是放在磁盘上还是内存上,为什么速度会快? 副本数据同步策略 故障处理 kafka事务是怎么实现的 Kafka为什么不支持读写分离? Kafka的数据是放在磁盘上还是内存上,为什么速度会快? 总结为什么要使用 kafka?缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。

2021-09-09 19:43:04 312 1

原创 竟然有5种微服务框架可以替代Spring Boot

在 Java 和 Kotlin 中, 除了使用Spring Boot创建微服务外,还有很多其他的替代方案。 名称 版本 发布时间 开发商 GitHub Helidon SE 1.4.1 2019年 甲骨文 链接 Ktor 1.3.0 2018

2021-09-09 19:40:38 3331 1

原创 JDK从8升级到11,使用 G1 GC,HBase性能下降20%。JDK 到底干了什么

编者按:笔者在 HBase 业务场景中尝试将 JDK 从 8 升级到 11,使用 G1 GC 作为垃圾回收器,但是性能下降 20%。到底是什么导致了性能衰退?又该如何定位解决?本文介绍如果通过使用 JFR、火焰图等工具确定问题,最后通过版本逐一验证找到了引起性能问题的代码。在毕昇 JDK 众人率先修复问题最后将修复推送到上游社区中。希望通过本文的介绍让读者了解到如何解决大版本升级中遇到的性能问题;同时也提醒 Java 开发者要正确地使用参数(使用前要理解参数的含义)。HBase 从 2.3.x 开始正式默

2021-09-09 19:39:34 780

原创 Redis哨兵模式原理剖析,监控、选主、通知客户端你真的懂了吗?

Redis 除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis提供了哨兵模式,来进行故障恢复。哨兵主要负责做三件事:①监控,监控主、从节点是否正常运行②选主,Sentinel集群需要选择一个Leader来进行主从切换。③通知,选主完成后,需要把新主库的连接信息通知给从库和客户端。1.状态感知哨兵启动后只指定了master的地址,要想知道整个集群中完整的拓扑关系怎么做呢?哨兵每隔10秒会向每个master节点发送info命令..

2021-09-09 19:38:32 514

原创 蚂蚁金服三面:请说说Redis分布式锁的原理和实现

对同一个资源进行操作,单一的缓存读取没问题了,但是存在并发的时候怎么办呢,为了避免数据不一致,我们需要在操作共享资源之前进行加锁操作。我们在开发很多业务场景会使用到锁,例如库存控制,抽奖,秒杀等。一般我们会使用内存锁的方式来保证线性的执行。但现在大多站点都会使用分布式部署,那多台服务器间的就必须使用同一个目标来判断锁。分布式与单机情况下最大的不同在于其不是多线程而是多进程。图1:分布式站点使用内存锁图2:分布式站点使用分布式锁当然我们暂时用不了这么复杂的场景,我们就简..

2021-09-09 19:37:28 116

原创 聊聊Spring事务失效的12种场景,太坑人了

前言对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。确实,spring事务用起来贼爽,就用一个简单的注解:@Transactional,就能轻松搞定事务。我猜大部分小伙伴也是这样用的,而且一直用一直爽。但如果你使用不当,它也会坑你于无形。今天我们就一起聊聊,事务失效的一些场景,说不定你已经中招了。不

2021-09-09 19:36:29 98

原创 透视RPC协议:SOFA-BOLT协议源码分析

前提最近在看Netty相关的资料,刚好SOFA-BOLT是一个比较成熟的Netty自定义协议栈实现,于是决定研读SOFA-BOLT的源码,详细分析其协议的组成,简单分析其客户端和服务端的源码实现。吐槽一下:SOFA-BOLT的代码缩进和FastJson类似,变量名称强制对齐,对于一般开发者来说看着源码会有不适感当前阅读的源码是2021-08左右的SOFA-BOLT仓库的master分支源码。SOFA-BOLT简单介绍SOFA-BOLT是蚂蚁金融服务集团开发的一套基于Ne

2021-09-09 19:34:52 465

原创 司空见惯的Exception,你了解她的秘密吗?

对于Exception,不用说Java人都知道。指北君一直以来有个不治之症:对Java的一切东东有追根寻底的强迫症,不了解其所以然就睡不了觉,这不,为了能睡个好觉就带领大家探一探Exception的秘密。引子首先,指北君声明一下,这里讲的Exception不仅仅是Exception一个类,而是异常机制,就像下面图中的所有(含继承Error和Exception的)。当然JDK中更为细致的异常继承体系也不是本篇探讨内容,本次呢,指北君将对异常在JVM层面的执行原理和ARM进行介绍,这里ARM

2021-09-08 21:44:06 118

原创 好饭不怕晚,扒一下Redis配置文件

在往期的文章中我们已经对Redis的概念和基本命令进行了讲解,今天我们来看下它的配置文件,Redis的配置文件在我们的开发和实际应用中起着非常重要的作用。我们可以在安装目录下找到redis.conf配置文件,通过vim命令进行查看,为了防止配置文件进行更改,大家在使用前一定要备份一下!本文Redis的版本为5.0.7UNITS1k => 1000 bytes1kb => 1024 bytes1m => 1000000 bytes1mb => 1024*1024

2021-09-08 21:43:01 161

原创 万字详文:服务限流的实施

服务限流应当是每个并发程序都应该考虑的~!限流的目的不仅是为了控制访问的总并发量,而且还要尽量让访问的流量来的更均衡,这样才不会让系统的负载大起大落,因此又称为"流量整形"。当然在微服务盛行的时代,我们考虑到的服务限流不再单单应对单体服务,而是更要清楚分布式场景下如何进行服限流一丶单体限流以上三种是我们在单体服务中常见的限流算法,我们接下来分别认识一下!1、计数器限流计数器限流是属于一种比较简单粗暴的方式!设计思路如下:我们会限制一秒钟内能够通过的请求...

2021-09-08 21:27:46 506

原创 什么?ZGC在Java17中没有更新了

Java长期支持版本Java11发布时推出了ZGC, 之后的Java12 -16均有ZGC的一些更新。然而Java17的新特性已经敲定,确定没有关于ZGC的相关更新,也从另一方面说明了至Java17 ZGC已经比较稳定,可以作为比较稳定的GC垃圾回收器。相信未来ZGC必定会成为主流的Java垃圾回收期,那么盘一盘ZGC就是必然的了。1 ZGC从何而来,有什么好处1.1 ZGC 的命名根据OpenJDK官方网站的说明ZGC其实并没有什么特殊意义,就是一个名字而已。起初只是为了致敬ZFS 文件系统,

2021-09-08 21:26:04 1995

原创 基于Java和Bytemd用120行代码实现一个桌面版Markdown编辑器

前提某一天点开掘金的写作界面的时候,发现了内置Markdown编辑器有一个Github的图标,点进去就是一个开源的Markdown编辑器项目bytemd(https://github.com/bytedance/bytemd):这是一个NodeJs项目,由字节跳动提供。联想到之前业余的时候做过一些Swing或者JavaFx的Demo,记得JavaFx中有一个组件WebView已经支持Html5、CSS3和ES5,这个组件作为一个嵌入式浏览器,可以轻松地渲染一个URL里面的文本内容或者直接渲染

2021-09-08 21:24:06 234

原创 网络面经:一个TCP连接可以发送多少个HTTP请求?

一个TCP连接可以发送多少个HTTP请求?就这这个问题,我们聊聊TCP、HTTP以及浏览器之间的关系和对请求处理的优化。TCP与HTTP的渊源我们知道TCP协议对应于传输层,HTTP协议对应于应用层。WEB项目中,HTTP协议是建立在TCP的基础上的。最初浏览器从服务器加载一个网页,会发起一个HTTP请求,这时需要先建立一个TCP连接。当本次数据请求完毕之后,会立刻断开TCP连接。但随着时间的推理,HTML网页内容越来越复杂,不仅有内容,还有JS、CSS和图片资源,每个资源的请求都建立一次T

2021-09-08 21:20:20 3222

原创 聊聊大厂都在用的雪花算法

前言以前用rand和srand生成过伪随机数,伪随机数的序列是固定的,今天学习生成真正的随机数的生成。熵池利用/dev/urandom可以生成随机数的值,/dev/urandomLinux下的熵池,所谓熵池就是当前系统下的环境噪音,描述了一个系统的混乱程度,环境噪音由这几个方面组成,如内存的使用,文件的使用量,不同类型的进程数量等等。利用/dev/urandom可以生成随机数的值,/dev/urandomLinux下的熵池,所谓熵池就是当前系统下的环境噪音,描述了一个系统的混乱程度,环境噪音

2021-09-08 21:18:03 211

原创 你管这破玩意叫 B+ 树?

索引可以说是每个工程师的必备技能点,明白索引的原理对于写出高质量的 SQL 至关重要,今天我们就从 0 到 1 来理解下索引的原理,相信大家看完不关对索引还会对 MySQL 中 InnoDB 存储引擎的最小存储单位「页」会有更深刻的认识从实际需求出发假设有如下用户表:CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` int(11) DEFAULT NULL COMMENT '姓名',

2021-09-08 21:16:59 83

原创 网络面经:HTTP 2.0的这些新特性,是时候了解一下了

面试中关于HTTP 2.0的面试题并不多,但基于HTTP 2.0的应用已经很多了,比如谷歌的gRPC框架就是基于HTTP 2.0来提升效率的。同时,HTTP 1.0中的存在的很多缺陷也都在HTTP 2.0中得到了解决。所以,如果你在面试中脱颖而出,同时,在实践中更好的理解类似gRPC这类框架的实现,了解HTTP 2.0还是非常必要的。而且HTTP 2.0也在很多场景下逐步替代HTTP 1.0。HTTP 1.0存在的问题了解过HTTP 1.0的协议实现之后,会发现它存在不少问题。问题一:TCP

2021-09-08 21:15:45 504

原创 面试官:你说你精通Java并发,给我讲讲 volatile

今天来了解一下面试题:你对 volatile 了解多少。要了解 volatile 关键字,就得从 Java 内存模型开始。最后到 volatile 的原理。一、Java 内存模型 (JMM)大家都知道 Java 程序可以做到一次编写然后到处运行。这个功劳要归功于 Java 虚拟机。Java 虚拟机中定义了一种 Jva 内存模型(JMM),用来屏蔽掉各种硬件和操作系统之间内存访问差异,让 Java 程序可以在各个平台中访问变量达到相同的效果。JMM 的主要目标是定义了程序中变量的访问规则,就是内存

2021-09-08 21:14:40 1084 3

原创 面试:关于Java性能优化,你有什么技巧

与其拼命上网找题,不如关注我们通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。1.对象的生成和大小的调整。JAVA程序设计中一个普遍的问题就是没有好好的利用JAVA语言本身提供的函数,从

2021-06-25 15:35:51 100 1

原创 面试:Java集合框架 9连问,你有被问过吗?

首先要说一下,本文对这些Java集合框架的面试题只做了一个总结式的回答,对每一道题目,都值得深入去了解一下(什么是扎实基本功,这些就是基本功~~),后续可能对每一道题目拆开独立篇章来深入讲解一下。大家看到这些总结,有疑惑的,就赶紧去查一查深入了解一下,当然也欢迎指出文中错误之处。以下是大纲:HashMap和HashTable的区别?说一下 HashMap 的底层结构?为什么HashMap是线程不安全的ArrayList 和 LinkedList 的区别是什么?ArrayList

2021-06-25 15:33:12 103 1

原创 面试Java开发常见得面试题含答案解析

一、数据结构与算法基础· 说一下几种常见的排序算法和分别的复杂度。· 用Java写一个冒泡排序算法/**现在有一个包含1000个数的数组,仅前面100个无序,后面900个都已排好序且都大于前面100个数字,那么在第一趟遍历后,最后发生交换的位置必定小于100,且这个位置之后的数据必定已经有序了,也就是这个位置以后的数据不需要再排序了,于是记录下这位置,第二次只要从数组头部遍历到这个位置就可以了。如果是对于上面的冒泡排序算法2来说,虽然也只排序100次,但是前面的100次排序每次都要对后面的9

2021-06-25 14:25:46 166 1

原创 2018史上最好的Java面试资料——BATJ面试必备(含面试题答案)

【阿里巴巴面试题目含答案】1,mysql的三大引擎是啥?mysql常用的引擎有InnoDB,MyISAM,Memory,默认是InnoDBInnoDB:磁盘表,支持事务,支持行级锁,B+Tree索引ps:优点: 具有良好的ACID特性。适用于高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。mysql的4大特性+4种隔离级别:MyISAM:磁盘表,不支持事务,支持表级锁,B+Tree索引ps:

2021-06-25 14:22:59 136 1

原创 这是我见过最有用的java面试题,面试了无数公司总结的(含答案)

1、什么是线程局部变量?线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java 提供 ThreadLocal 类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如 web 服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何应用变量的生命周期都要长。任何线程局部变量一旦在工作完成后没有释放,Java 应用就存在内存泄露的风险。2.用 wait-notify 写一段代码来解决生产者-消费者问题?请参考答案中的示例代码。只要记住

2021-06-25 13:44:30 136

原创 Java面试基础 -- Linux篇

0.日常命令cd 目录路径: 跳转到指定目录 mkdir 目录名称:新增目录 pwd: 获取当前路径 su: 切换用户 ll: 查看当前目录侠的文件和目录 rm -rf 目录: 递归删除指定目录下的所有文件 vi 文件:修改文件 mv 源文件夹名 新文件夹名:移动文件夹到指定目录 grep:查找想要的信息 cp -r 源目录名 新目录名:拷贝指定目录中的文件到新目录中 touch 文件名:创建文件 find -name 文件名:查找文件 ls -ahl:查看文件的所有者 chk

2021-06-24 20:14:24 286

转载 来瞧瞧阿里一面都面些什么(笔试+机试)

絮叨说实话,能有机会面一下阿里对我来说帮助确实有蛮多,至少让我知道了自己的不足在哪,都说面试造火箭,上班拧螺丝。但就算是如此,为了生存,你也只有不停的学习,唯有光头,才能更强。哈哈起因2月28日在Boss上,有个阿里的大佬找我打招呼说可以帮我内推,我想也没想就把简历给它了,然后就一直忘记这事了。因为我觉得我一个垃圾学校的小垃圾,怎么会有面试机会,亏人家还让我准备一下,我也抛到九霄云外了。然后也收到了阿里的内推消息开始第一轮电话面然后在3月4号的晚上8点钟(看来阿里

2021-06-24 14:57:39 1331

原创 全网最详细 Spring Cloud 入门总结

写在前面的话马上要考试了!!!作为一个苦逼的在读大学生,又要面临半年一度的期末考试了,因为上课没听,我啥都不会,什么通信原理,单片机。。。饶了我吧!!!给你们看看我上课在干啥你就知道我为啥啥都不会了。上课笔记。。emmm,字比较丑。我还记得那是一堂英语课,老师不让用电子设备,我只能手写我这篇文章的思路。。。所以,冒着期末要挂科的风险,我也得把这篇文章写完,给大家分享知识,自己也能重新复习和认识一下 Spring Cloud。我女朋友说,要是这篇文章能有 50 个赞就给我

2021-06-24 14:47:46 236 1

原创 Java世界最常用的工具类库

Apache CommonsApache Commons有很多子项目,常用的项目如下@Datapublic class User { private String username; private String password;}设置和获得属性User user = new User();BeanUtils.setProperty(user, "username", "li");BeanUtils.getProperty(user, "user

2021-06-24 14:40:19 257 1

原创 面试官:知道类在什么时候加载吗?

前言什么情况下会触发类加载的进行呢?本文将结合代码demo谈谈几种情况,希望对大家有帮助。类加载时机什么情况需要开始类加载过程的第一阶段:加载?Java虚拟机规范中并没有进行强制约束,这点可以交给虚拟机的具体实现来自由把握。但是对于初始化阶段,虚拟机规范则严格规定了以下几种情况必须立即对类进行初始化,如果类没有进行过初始化,则需要先触发其初始化。创建类的实例为了验证类加载,我们先配置一个JVM参数-XX:+TraceClassLoading 监控类的加载 复制...

2021-06-24 14:20:21 171

原创 Java线程、并发相关完整面试资料题

线程的生命周期?线程有几种状态?1.线程通常有五种状态,创建,就绪,运行、阻塞和死亡状态。2.阻塞的情况又分为三种:(1)、等待阻塞:运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把该线程放入“等待池”中。进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify或notifyAll方法才能被唤醒,wait是object类的方法(2)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入“锁池”中。(3)、其他阻塞:运行的线

2021-06-24 14:18:44 181 1

原创 面试官:Spring 用了哪些设计模式?说三种即可

关于设计模式,如果使用得当,将会使我们的代码更加简洁,并且更具扩展性。本文主要讲解Spring中如何使用策略模式,工厂方法模式以及Builder模式。1. 策略模式关于策略模式的使用方式,在Spring中其实比较简单,从本质上讲,策略模式就是一个接口下有多个实现类,而每种实现类会处理某一种情况。我们以发奖励为例进行讲解,比如我们在抽奖系统中,有多种奖励方式可供选择,比如积分,虚拟币和现金等。在存储时,我们必然会使用一个类似于type的字段用于表征这几种发放奖励的,那么这里我们就可以使用多态的方式

2021-06-23 14:46:26 72

原创 java程序员不可不知的 7 个 JDK 命令

这篇文章主要来介绍下 JDK 内置的命令,话不多说,让我们开始吧!javap使用 javap 可以查看 Java 字节码反编译的源文件, javap 的命令格式如下:下面来演示下用 javap -c 对代码进行反编译,首先写个 HelloWorld 类,如下:public class HelloWorld { public static void main(String []args) { System.out.println("Hello World");.

2021-06-23 14:43:09 195

转载 作为java程序员,在金三银四季你遇到过哪些质量很高的java面试?

前言面试,从来都是一个随机性很高的过程。但凡质量高的面试,必须是面试官根据面试者的回答循环递进,抽丝剥茧,横向纵向分展开来的。我觉得,质量高的面试,就是从一个点切入,然后逐渐考察面试者对于这个点相关的知识体系的了解!考察内容和方式从阿里的常规java技术面试角度说一说,一般都是由浅到深去问,思路是先考察基础是否过关,再通过深度考察是否有技术热情和深度,同时可能会通过提出一些质疑和挑战来考察候选人是如何与不同意见进行沟通基础知识:考察基础的时候一般都不会太深入地去问,主要目的是考察知识面,

2021-06-23 14:32:03 91

转载 阿里Java架构师面试高频300题:集合+JVM+Redis+并发+算法+框架等

前言在过2个月即将进入9月了,然而面对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的java开发朋友跳槽面试,无论一面还是二面,都开始考验一个Java程序员的技术功底和基础。对源码解读和核心原理理解也是成了加分项,特别是对 Java 的一些核心基础知识点掌握的不够或者没有体系方向的朋友面试也成了一个苦恼的事情。今天在这分享目前国内公司Java面试常问的问题包括JVM、常用的算法和数据结构,redis缓存,分布式,Spring,微服务等。正所谓知己知彼,只有体系知识巩固,

2021-06-23 14:23:59 152 1

转载 惊艳!阿里出产的MyCat性能笔记,带你领略什么叫细节爆炸

如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求,这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢?此时就需要

2021-06-23 14:01:37 116

转载 面试官:给我说一下你项目中的单点登录是如何实现的?

一、单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系。打开百度APP看高清图片但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求,必须清楚浏览器请求状态。既

2021-06-23 14:00:45 206

原创 面试必备:Java线程池解析

经典面试题面试问题1:Java的线程池说一下,各个参数的作用,如何进行的? 面试问题2:按线程池内部机制,当提交新任务时,有哪些异常要考虑。 面试问题3:线程池都有哪几种工作队列? 面试问题4:使用无界队列的线程池会导致内存飙升吗? 面试问题5:说说几种常见的线程池及使用场景?线程池概念线程池: 简单理解,它就是一个管理线程的池子。它帮我们管理线程,避免增加创建线程和销毁线程的资源损耗。因为线程其实也是一个对象,创建一个对象,需要经过类加载过程,销毁一个对象,需要走GC垃圾回收流程,都

2021-06-22 15:22:46 385

转载 Java那些事儿

面试的时候,面试官问,你是怎么理解面向对象的编程?我想很多人会照着面试题来背吧,面向对象呀,不就是继承,封装,多态吗?注意,面试官问到这里,是想听听你对面向对象的理解,而不是让你来背概念。面向对象,是对现实世界的模拟,下图我们简单模拟了一个动物世界。面向对象的三个基本特征之一继承,这里Primat继承了Animal,Person继承了Primat,继承很简单,就不多说了,看以下代码实现,代码中的注释比较重要,请重点看。在代码中,不管是动物,鸟类,人类,猴子,我们都可以抽象成类,类是对象的

2021-06-22 14:38:25 78

原创 《今天面试了吗》-Spring

前言今天天气不错,我怀着自信的笑容来到某个大厂的研发中心,开启面试的一天。首先我不是毫无准备的,什么java并发,多线程,jvm,分布式,数据库都准备的妥妥的,没想到今天的面试的主题是spring。不过还好,我也准备了...门开了,走来一位拿着mac本,戴眼镜的年轻的小伙子,跟我差不多大吧。然后他示意我坐下,礼貌的说:“欢迎来我们公司面试,今天我们就聊聊spring吧”...面试环节 面试官:你说下什么是spring? 我:spring是一种轻量级开发框架,旨在提高开发人员的开发效率

2021-06-21 21:37:58 208

原创 Java集合面试题(总结最全面的面试题)

集合容器概述什么是集合 集合就是一个放数据的容器,准确的说是放数据对象引用的容器 集合类存放的都是对象的引用,而不是对象的本身 集合类型主要有3种:set(集)、list(列表)和map(映射)。 集合的特点集合的特点主要有如下两点: 集合用于存储对象的容器,对象是用来封装数据,对象多了也需要存储集中式管理。 和数组对比对象的大小不确定。因为集合是可变长度的。数组需要提前定义大小 集合和数组的区别 数组是固定长度的;集合可变长.

2021-06-21 21:07:58 16885 1

空空如也

空空如也

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

TA关注的人

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