
Java
文章平均质量分 83
Java领域指导者
毕业于北京交大,在西直门,离中关村很近,上学期间参与联想项目研发,毕业后留在上地软件园继续研发,期间扩展了自己很宽的知识面,会为大家带来更多精彩的文章的~~~
展开
-
大厂面试上午10:00面试,10:09就出来了 ,问的实在是太...
从外包出来,没想到算法死在另一家厂子自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。好在有个兄弟内推我去了一家互联网公司,兴冲冲见面试官,没想到一道题把我给问死了:问题:如果有个任务包含好几个子任务,子任务全部完成,整个任务才算完成,若是有一个任务没完成,所有任务都要取消。感觉好简单的题,没想到还有一个要求:用最高效率,最短时间完成!这一下难了好多,硬是没有答出来,早知道好好看看一大佬给的Java面试手册了。Java 一原创 2022-06-08 14:30:48 · 227 阅读 · 0 评论 -
秋招凭借这份Java八股文拿下阿里、字节跳动、腾讯、小米等大厂的offer
2022年我凭借一份《Java八股文核心进阶版》成功拿下了阿里、字节、腾讯、小米等大厂的offer,两年的时间,为了完成我给自己立的flag(拿下一线互联网企业offer大满贯),即使在职也一直在不断的学习与备战面试中!《Java八股文核心进阶版》,这个版本里面不仅仅包含了面试题,还有更多的技术难点、大厂算法、实战项目、简历模板等等,全册接近1700页!相比上一个版本的287页,升级了多少内容可想而知!!!Java面试八股文大纲:https://gitmind.cn/app/doc/e929302403限于原创 2022-06-07 20:27:55 · 310 阅读 · 0 评论 -
跳槽秋季求职指南 7面进阿里买菜部门 拿到32*15Offer
大厂6月份开放岗位!13面进阿里买菜部门!拿到32*15Offer经过两个月的面试流程,咱们的一位学员成功拿到了阿里买菜的Offer,本来前期的是准备8面的,后来等到部门主管面试的时候又加了五轮,虽然一路波折但是这位同学最终还是成功拿到了Offer,定级P7,拿到了32*15Offer!先给大家罗列一下这位同学的简历地掌握的技能项。精通Java J2EE相关知识,具备良好的面向对象编程思想 精通Zookeeper,掌握其Leader选举ZAB协议,实现分布式锁实现过程 精通锁实现机制,了解自旋锁原创 2022-05-27 21:14:28 · 141 阅读 · 0 评论 -
快丢掉BeanUtils吧,MapStruct才是YYDS
场景通常,在后端项目开发中,因为有项目分层的设计,例如MVC架构,以及最近很火热的DDD架构中,会在不同的层级,有对应的DO,BO,VO,DTO等各种各样的POJO类,而我们在层级之间进行调用的数据传递时,通常要进行对象属性之间的映射。对于一些简单的对象,可能会直接使用get,set方法完成,或者使用BeanUtils工具类来完成属性之间的映射。这些代码往往是枯燥、无聊的,并且在不同的业务处理类中可能需要重复地对两个对象进行互相转换。导致代码里充斥着大量的get,set转换,如果使用BeanUt..原创 2022-02-10 20:36:01 · 361 阅读 · 0 评论 -
异步调用如何使用是最好的方式?
一、异步调用方式分析今天在写代码的时候,想要调用异步的操作,这里我是用的java8的流式异步调用,但是使用过程中呢,发现这个异步方式有两个方法,如下所示:区别是一个 需要指定线程池,一个不需要。 那么指定线程池有哪些好处呢?直观的说有以下两点好处: 可以根据我们的服务器性能,通过池的管理更好的规划我们的线程数。 可以对我们使用的线程自定义名称,这里也是阿里java开发规范所提到的。 1.1 java8异步调用默认线程池方式当然常规使用默认的也没什么问题。我们通过源码分析..原创 2022-02-08 17:08:37 · 263 阅读 · 0 评论 -
JAVA使用okhttp爬取数据
本文通过okhttp获取百度百科okhttp介绍信息,也就是这一块的信息主要分为四步1、 通过控制台找到对应的链接请求。2、 构建请求3、 发起请求拿到返回对象,获取返回对象中html页面4、 解析html页面拿到所需要的值获取链接请求用浏览器打开 okhttp 百度百科,找到返回信息的链接信息使用maven引入okhttp和解析页面所需要使用到的 jar包<dependency> <groupId>com.squareup.okht.原创 2022-02-08 17:05:50 · 2770 阅读 · 0 评论 -
MongoDB基本介绍与安装(1)
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。在这里我们有必要先简单介绍一下非关系型数据库(NoSQL)1 什么是NoSQLNoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebo原创 2022-01-22 14:44:55 · 544 阅读 · 0 评论 -
阿里Java社招:缓存+分布式+JVM+高并发+NIO+框架
前言:阿里可以说是互联网java公司的标杆了,这份面试题包含了Java基础(JavaSE基础)常考知识点这些基础知识题的答案也都还不错。除了这个还有集合Hashtable/HashMap等集合常考的面试题,这些问题一定要会,还有就是JVM知识点JVM包括运行区域划分/常考的JVM算法需要会等,除了这些就是计算机网络(TCP的三次握手/四次挥手/http常见状态码)(TCP的三次握手/四次挥手/http常见状态码/TCP的一些重要特性/TCP/UDP的区别等等等)操作系统(常见的系统调度算法/原创 2022-01-20 21:41:34 · 231 阅读 · 0 评论 -
看看你离阿里还有多远
前言转眼间,一年又过去了,春招也即将来临,很幸运在金九银十的结尾拿到了阿里的offer!首先说一下情况,我大概我是从去年4月份开始看书学习,到今年的11月份,一直学到看大家的面经基本上百分之90以上都会,我就在10月份开始投简历,边面试边补充基础知识等。也是有些辛苦。终于是在前不久拿到了阿里的offer,定级P7。现在我把我面试经历的东西整理出来分享给大家,希望对大家有所帮助!(文末附答案)一:阿里技术一面1.常用的异常类型?2.session3.java锁4.gc原理5.hashmap原创 2022-01-20 21:35:21 · 200 阅读 · 0 评论 -
这个无敌设计,可以解析并运算任意数学表达式
本文节选自《设计模式就该这样学》1 使用解释器模式解析数学表达式下面用解释器模式来实现一个数学表达式计算器,包含加、减、乘、除运算。 首先定义抽象表达式角色IArithmeticInterpreter接口。public interface IArithmeticInterpreter { int interpret();}创建终结表达式角色Interpreter抽象类。public abstract class Interpreter implements IA.原创 2022-01-20 20:01:30 · 135 阅读 · 0 评论 -
鉴权 5 兄弟:cookie、session、token、jwt、单点登录,终于有人说清楚了
作者:Henrylulu来源:juejin.cn/post/6898630134530752520本文你将看到:基于 HTTP 的前端鉴权背景 cookie 为什么是最方便的存储方案,有哪些操作 cookie 的方式 session 方案是如何实现的,存在哪些问题 token 方案是如何实现的,如何进行编码和防篡改?jwt 是做什么的?refresh token 的实现和意义 session 和 token 有什么异同和优缺点 单点登录是什么?实现思路和在浏览器下的处理从状态说起「原创 2022-01-19 20:30:03 · 380 阅读 · 0 评论 -
备战“金三银四”、阿里架构师整合出 258W 字 Java 全栈面试题
这个是大概的目录内容这份 Java 高级全栈的面试题内容很多,面试题(含答案)的质量肯定是一点问题都没有的,但就是有一个很大的缺点,就是内容太多了!!!十分想给大家全部截图展示出来,奈何文章篇幅有限制,而且单一的截图方式也会让大家审美疲劳!所以呢,今天想换个方式为大家展示,我花了一周的时间,基本上每道面试题的都刷了,根据各个模块的内容进行归纳整合出了大纲的的样式!什么意思呢?就是说,每个模块的面试题是在考察哪些知识点,痛点在哪里通过精简的方式为大家整合成了一份脑图,从而通过脑图的方式为大家间原创 2022-01-12 16:30:15 · 340 阅读 · 1 评论 -
Java常用的开发库推荐
01、什么是工具包基本上,每个项目里都有一个包,叫做utils。这个包专门承载我们自己项目的工具类,比如常见的DateUtils、HttpUtils、Collections所谓Utils就是:这个东西我们用得很多,但是原API不够好用,于是我们给它封装为一个比较通用的方法如果是初学者,很多时候遇到这种类似的工具类也不会直接自己开写,会先去搜索引擎里找一通。找到了之后,看起来觉得可以就直接一个ctrl+c,一个ctrl +v往自己的main方法一贴,搞点测试数据,看能不能work起来。能wor原创 2022-01-12 16:27:35 · 210 阅读 · 0 评论 -
字节一面:事务还没提交的时候,redolog 能不能被持久化到磁盘呢?
又是被自己菜醒的一天,总结面经看到这题目听都没听过,打开百度就像吃饭一样自然老规矩,背诵版在文末。首先,咱需要明白的是,啥是持久化?听起来高大上,换句简单的话来说,就是把数据写到磁盘上,也成为落盘。那为啥要做持久化到磁盘?目的就是可以在数据丢失后进行恢复,保证数据不丢失。那么对于 MySQL 来说,只要 binlog 和 redolog 都能正确持久化到磁盘上,就可以保证数据不丢失了。由此引出文题,不过在讲 redolog 之前,我们还是有必要先来说一下 binlog 的持久化操原创 2022-01-12 16:13:22 · 1112 阅读 · 2 评论 -
玩转设计模式-多来源的数据结构统一
看完本文????你将:清楚多来源的数据如果做到结构统一 对模板方法模式有更多的了解 对简单工厂(虽说不是设计模式中的一种,但是用的还是挺多的)能有更深的理解 知道设计模式之间的组合使用前言本文主要是记录和分享我在做ETL的业务时解决多种不同来源的数据进行结构化统一的问题。本文涉及了23种设计模式中的工厂模式和模板方法模式。业务说明在消息队列中,有各种不同平台的素材数据,但是每个平台的素材数据可能都稍有不同,我们需要将这些数据处理一下,最后输出统一的数据格式供下游进行计算处理;同时原创 2022-01-10 19:36:12 · 214 阅读 · 0 评论 -
RedisJson特性让我放弃了MongoDB,也让我放弃了Hash,我就问你们香不香?
说说RedisJson 重磅特性1. mongodb介绍MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可扩展的高性能数据NoSQL存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。MongoDB在高负...原创 2022-01-04 21:53:38 · 257 阅读 · 0 评论 -
一文讲透链表操作,看完你也能轻松写出正确的链表代码
前言链表和数组一样,是一种线性的数据结构,算法中的链表操作一般都针对单向链表,因为单向链表比较简单但是又比较能考研编程者的思维能力。虽然单向链表比较简单,但是要写好链表的代码也不是一件容易的事,掌握好链表有几个关键点:首先就是要防止指针丢失,然后就是我们可以引入哨兵来简化链表的操作,最后巧妙的利用双指针也可以写出更高效简洁的链表算法。什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,但是其在逻辑上是连续的。链表中每一个数据元素的逻辑顺序是通过链表中的指针来实现的。链表由一系列结点(原创 2022-01-04 21:47:37 · 264 阅读 · 0 评论 -
新来的同事问我where 1=1 是什么意思
写在前面新的同事来之后问我where 1=1 是什么有意思,这样没意义啊,我笑了。今天来说明下。where 1=1先来看一段代码<select id="queryBookInfo" parameterType="com.ths.platform.entity.BookInfo" resultType="java.lang.Integer"> select count(id) from t_book t where 1=1<if test="title !=null .原创 2021-12-28 19:14:04 · 149 阅读 · 0 评论 -
微服务架构 | 如何利用好日志链路追踪做性能分析?
导读:做性能分析听到最多的歪理就是,服务做水平、垂直扩容、分表分库、读写分离、XX中间件、资源静态化等等但是归根到底这些方案都是为了尽可能减少对数据库的访问以及堆栈的释放,提高数据库IO的读写速度和程序的运行效率。系统都是逐渐演进的,一个系统在运行中必须是根据场景逐渐地提高优化性能。高并发就是对资源的节约的考验,这种考验除了更换优秀和先进的技术,优化架构,还在于从小处出发,对尽可能节约的资源进行节约。而在一个系统的数据访问中,系统的瓶颈往往是来自于数据库,因此我们要尽可能减少对数据库的...原创 2021-12-28 19:11:32 · 190 阅读 · 0 评论 -
Java NIO三件套之Buffer实现原理解析
目前很多高性能的Java RPC框架都是基于Netty实现的,而Netty的设计原理又离不开Java NIO。本篇笔记是对NIO核心三件套:缓冲区(Buffer)、选择器 (Selector)和通道(Channel),其中之一的缓冲区Buffer实现原理的学习总结。1、Buffer的继承体系如上图所示,对于Java中的所有基本类型,都会有一个具体的Buffer类型与之对应,一般我们最经常使用的是ByteBuffer。2、Buffer的操作API使用案例举一个IntBuffer的使用..转载 2021-12-11 20:35:17 · 232 阅读 · 1 评论 -
SpringBoot+SpringSecurity+Jwt权限认证---认证
1. 整体逻辑1. SpringSecurity认证的逻辑规则启动项目时,SpringBoot自动检索所有带@Configuration的注解,所以就将我们的WebSecurityConfig给加载了,这个config中,我们需要在configure(AuthenticationManagerBuilder auth)方法中注册一个继承自UserDetailsService的接口,这个接口中只有一个方法,那就是使用username获取到数据库中用户信息并返回成UserDetail实体。这个方法需要.原创 2021-12-10 20:55:16 · 587 阅读 · 0 评论 -
Java 监控基础 - 使用 JMX 监控和管理 Java 程序
此篇文章介绍 Java JMX 技术的相关概念和具体的使用方式。1. JMX 是什么?Java Management Extensions(JMX)技术是 Java SE 平台的标准功能,提供了一种简单的、标准的监控和管理资源的方式,对于如何定义一个资源给出了明确的结构和设计模式,主要用于监控和管理 Java 应用程序运行状态、设备和资源信息、Java 虚拟机运行情况等信息。 JMX 是可以动态的,所以也可以在资源创建、安装、实现时进行动态监控和管理,JDK 自带的 jconsole 就是使原创 2021-12-09 19:40:48 · 1184 阅读 · 1 评论 -
Go:如何实现领域驱动设计(DDD)
近年来,微服务已经成为一种非常流行的构建软件的方法。微服务用于构建可伸缩、灵活的软件。然而,跨多团队随机构建微服务可能会带来很大的挫折和复杂性。不久前我还没有听说过领域驱动设计——DDD,但现在无论走到哪里似乎每个人都在谈论它。在本文,我将从头开始构建一个在线酒店应用来一步步地探索DDD的各种概念。希望每实现一部分,对理解DDD会更容易。采用这种方法的原因是,每次我在阅读DDD资料时都很头疼。有这么多的概念,很宽泛和不清楚,不清楚什么是什么。如果你不知道为什么我在研究DDD时头疼,下面的图可能会让你原创 2021-12-08 17:18:25 · 2032 阅读 · 4 评论 -
JVM 面试必问的 CMS,你懂了吗?
前言虽然 CMS 已经是很古老的垃圾回收器了,大家现在动不动就G1、ZGC啥的,但是据我所了解,还是有很多公司的生产环境主要使用的 CMS,包括我自己呆过的几家大厂也是。因此在 JVM 面试中,CMS 也是问的最多的,包括我自己现在面试别人时,问到 JVM 这一块,我也喜欢从CMS开始,逐渐深入。不多废话,今天我们就来盘他。正文1、什么是卡表(card table)?试想一下,在进行 YGC 时,如何判断是否存在老年代到新生代的引用?一个简单的办法是扫描整个老年代,但是这个代价太原创 2021-12-07 15:57:35 · 682 阅读 · 0 评论 -
不是水文 ,没有人这样教过 Spring Security 和 OAuth 2.0
在学习定制 Spring Security的过程中,阅读了 Spring Security 的官方文档、《Spring Security in action》和《OAuth 2 in action》后,并结合源码摸清了 Spring Security 的工作流程,把这些知识梳理成了图片和文字,花了我足足一个月,这没想到 Spring Security 也有这么多内容。????0 概览0.1 流程分析0.1.1 UserPasswordAuthentication 流程假设要访问的接口为 /p原创 2021-12-03 19:29:52 · 1482 阅读 · 0 评论 -
五分钟带你了解一下 Java 性能优化高级笔记,学会稳了~
性能优化作为一个程序员,性能优化是常有的事情,不管你是刚入行的小白还是已经入坑了很久的小秃头都会经历很多不同层次的性能优化——小到代码审查大到整个系统设计的优化!大势所趋之下,如何让自己的优化方向精准到性能瓶颈的那个点以及尽可能的提高优化的性价比已经慢慢成为每一个程序员都要考虑的问题了~下面是目前程序员进行性能优化时需要遵循的一些原则以及注意的一些点,大家可以看看自己在进行优化的时候是否有考虑到这些:如果你对于以上性能优化的原则、层次、通用方法以及代码质量的关系根本没有一个概念,也不知道何从下原创 2021-12-03 19:28:08 · 147 阅读 · 2 评论 -
Spring 中的 Controller 和 Service 是线程安全的吗?我有点懵
不钓胃口 , 直接说结论:不是线程安全的Spring 容器中的 Bean 是否线程安全,容器本身并没有提供 Bean 的线程安全策略,因此可以说 Spring 容器中的 Bean 本身不具备线程安全的特性,但是具体还是要结合具体 scope 的 Bean 去研究。Spring 的 bean 作用域(scope)类型singleton:单例,默认作用域。prototype:原型,每次创建一个新对象。request:请求,每次 Http 请求创建一个新对象,适用于 WebApplicationConte原创 2021-12-03 19:17:09 · 358 阅读 · 0 评论 -
kafka-我与面霸的三百回合大战
本文面试情节虚假,但知识真实,请在家人或者朋友的陪同下仔细观看,防止在观看的过程发呆、走神导致没学到知识。性能篇一位身穿格子衬衣,头发好似一拳超人的中年人走了过来,没错他就是面试官,他手握简历,若有所思,我当时害怕极了,然后他开口:小伙子啊,我们这边是基础架构的中间件组,既然你的简历没提到kafka,那我接下来问问你kafka的知识吧。我:好的,kafka平时看的不多,但也还了解一点,不是特别精通所以没写了。(嘿嘿,我是故意没写的,早就知道你要来这一套,kafka其实是俺最精通的东西了)原创 2021-11-30 15:23:51 · 101 阅读 · 0 评论 -
10年 Java 老鸟,写给 1-3 年程序员的几点建议,满满硬货指导
从 11年毕业到现在也从业10年了,普通本科毕业,现在一家互联网公司担任 Java 部门总监,摸爬打滚,坑坑洼洼也经历了不少。思绪很久决定还是写下这篇,希望对后进的小伙子少走一点弯路。 很多人把职场想得太美好,其实不然。如果你没有规划好,你就会难免遇到各种各样的问题:工作不开心;没有前进的动力;工作不是自己想像的那么好;自己的才能无法发挥;看到以前的同学待遇如何如何,便受不了刺激,急切地想跳槽;当初为了生存而找的工作,根本就不适合自己…… 这些问题通常会在步入职场的 1-3 年之内最明显(3 年原创 2021-11-29 13:59:36 · 4692 阅读 · 1 评论 -
Kafka架构及基本原理简析
Kafka简介Kafka是一个由Scala和Java编写的企业级的消息发布和订阅系统,最早是由Linkedin公司开发,最终开源到Apache软件基金会的项目。Kafka是一个分布式的,支持分区的,多副本的和多订阅者的高吞吐量的消息系统,被广泛应用在应用解耦、异步处理、限流削峰和消息驱动等场景。本文将针对Kafka的架构和相关组件进行简单的介绍。在介绍Kafka的架构之前,我们先了解一下Kafk的核心概念。Kafka核心概念在详细介绍Kafka的架构和基本组件之前,需要先了解一下Kafka的一些核心原创 2021-11-28 13:34:49 · 416 阅读 · 0 评论 -
Redis的这些拓展方案,用过一条的就是p6级
| 前言Redis大家都不陌生,就算是没用过,也都听说过了。作为最广泛使用的KV内存数据库之一,在当今的大流量时代,单机模式略显单薄,免不了要有一些拓展的方案。笔者下文会对各种方案进行介绍,并且给出场景,实现 等等概述,还会提到一些新手常见的误区。| 正文先从基础的拓展方式开始,这样更便于理解较高级的模式。ps: 本文背景是以笔者落笔时官网最新稳定版5.0.8为准,虽然还没写完就变成了6.0.1。分区概述分区(Partitioning)是一种最为简单的拓展方式。在我原创 2021-11-28 13:29:16 · 112 阅读 · 0 评论 -
Redis核心数据结构之String(一)
本章从String常用命令到实战应用场景需求设计开发,能够让对redis陌生的你迅速掌握了解,熟悉的你迅速巩固相关知识一、特性说明(一)String 是 Redis 最基本的类型,一个key对应一个value;(二)String类型是二进制安全的。意思是 redis 的String可以包含任何数据。比如jpg图片或者序列化对象;(三)String类型是Redis最基本的数据类型,一个键最大能存储512MB;二进制安全是指,如果在传输数据时,保证二进制数据的信息安全,也就是不被篡改、破译原创 2021-11-28 13:24:34 · 232 阅读 · 0 评论 -
Spring IOC概念及体系结构
IOC与DIIOC(控制反转)概念平时在开发程序的时候,每个对象在使用它的合作对象时都要自己主动去创建这个合作对象,需要时就主动创建出来,创建权在自己手里,但是这种方式耦合度就很高;在使用Spring之后,将对象的创建权交给Spring容器来处理,所谓的控制就是将对象创建控制权交给了容器来创建,即容器控制了对象的创建,起初依赖对象的创建时对象主动创建,是正转,而反转就是将依赖对象的创建及注入给Spirng容器处理,对象只是被动的接受依赖对象。注入方式在IOC中,为被注入对象提供被依赖对象有.原创 2021-11-27 13:39:20 · 126 阅读 · 0 评论 -
计算机网络基础知识大全
️️️一、计算机网络的概念计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。二、计算机网络的功能1、数据通信2、资源共享3、分布式处理(多台计算机各自承担同一工作任务的不同部分)4、提高可靠性5、负载均衡三、计算机网络的组成1、组成部分硬件、软件、协议2、工作方式边缘部分:用户直接使用(C/S方式、P2P方式)核心部分:为边缘部分提供服务3、功能组成通信子网:实现数据通信原创 2021-11-26 14:53:04 · 626 阅读 · 0 评论 -
《性能优化》并发与并行
前言性能优化系列第一篇主要给大家科普了一些性能相关的数字,为大家建立性能的初步概念。第二篇给大家介绍了支撑淘宝双十一这种达到百万QPS项目所需的相关核心技术。本文带来的是性能优化中的第一利器:并发与并行。除了核心原理介绍外,我将结合我自身的过去的实战经验,给出一些自己在使用上的建议,希望对大家有帮助。不多废话,直接开怼。正文1、并发和并行?并发和并行最关键的区别是:并行是同时执行,而并发不是同时。这边使用 Joe Armstrong 排队使用咖啡机的例子来看并行和.原创 2021-11-25 15:06:09 · 159 阅读 · 0 评论 -
【leetcode刷题】3.最长不重复子串——Java版
暴力穷举被一个3w+字符的测试用例教做人 [:吐血]——leetcode此题热评前言这是一条在面试猿辅导一面时的题目,目前需要手写算法的公司不是很多,但小伙伴们也要未雨绸缪,包括一条也是,一直缺乏这方面的训练,话不多说,看题。Question难度:中等给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:..原创 2021-11-22 15:43:40 · 256 阅读 · 0 评论 -
【leetcode刷题】2.两数相加——Java版
老实人想先把两个链表转成整型加起来再转回去,结果被[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]教做人了。 ——leetcode此题热评题目:难度:中等给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1...原创 2021-11-22 15:30:07 · 108 阅读 · 0 评论 -
【leetcode刷题】1.两数之和——Java版
有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。 ——leetcode评论区题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums...原创 2021-11-22 15:21:43 · 170 阅读 · 0 评论 -
35K+16 薪的考点、面试题送给明年金三银四的你
面试流程先说下面试流程,一般大公司都有 3-4 轮技术面,1 轮的 HR 面。就一线互联网公司而言,共经历了 4 轮技术面,前两轮主要是问基础和项目实现,第 3 轮是交叉面,两个面试官,主要是问项目实现和拓展。第 4 轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了。HR 面主要就是跟你聊聊天,看看你的个人稳定性、价值观、主动性之类的, 一般 HR 是不会挂人的,但很多人在 HR 面后挂了,原因其实不是你在 HR 面的表现不好(少数情况除外),而是你之前几面的表现一般,比原创 2021-11-22 13:57:30 · 272 阅读 · 0 评论 -
手把手教你认识下 JVM 的内存划分,再记不住就真的没办法了
引言Java 在运行时会将内存划分为若干个区域,粗略的可以将内存划分为堆区和栈区,堆区主要存储 Java 对象。栈区主要记录对象的引用地址。其实还有更详细的划分。如下图所示:1. Java 虚拟机栈Java 虚拟机栈就是我们之前将内存分为堆区和栈区,这里的栈区就是指的 Java 虚拟机栈。每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链表、方法出口信息等。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。主要用来存储局部变量表。原创 2021-11-22 13:42:17 · 186 阅读 · 0 评论