自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实习笔记 5

实习收获笔记 5整理了业务的一张庞大的表的表关系,由于企业级的数据库往往不是高范式的,所以真正的表关系往往藏在代码里面,花了一段时间去做这件事情,占用了本周主要的时间。读表可以更快更深地去理解业务。学习了更上层的后端开发思想:思考空间、时间,关心机器的性能。深入了ClassLoader,想出了集中应用的方式,比如作为二方、三方库时保护核心代码等等。订阅模式/监听模式应用于缓存内存的同步,业务背景:某些查询频繁的数据会在启动时被全量读取到缓存或内存中,但是仍然会有动态的更改,监听这个变更信息,即使同

2021-07-23 17:45:42 103

原创 实习笔记 4 MySQL深入/JVM深入

实习收获笔记 4MySQL1. InnoDB引擎自适应哈希索引与B+树同时作为索引AIO硬盘读写B+树兼顾了查询次数(通常业务场景是4层左右)和内存连贯性,避免系统上的页面转换。2. 优化分库分表:单机单表能力有限,千万级开始考虑划分;垂直划分水平划分;注意主键全局唯一性,Unicode可以保证,但是查询效率不高,可以单独维护服务器分发递增唯一主键。读写分离:原因是优化索引利于读不利于写,数据库本身也有读快写慢的性质,会出现单机上写入影响查询效率的情况;利用主从复制,主写从读。索引:

2021-07-20 09:21:57 91

原创 2021.07.19 Leetcode 每日一题 数学法精讲

题目就不细说了,大家可以根据日期去官网索引一下,大概是入参一个List<纯小写String>,返回一个List<List<所有相同字母不同排序的String>>解题破题“所有相同字母的不同排序”是题点,想法是做一个private方法,可以获得一个“指纹”,对于相同字母不同排序的字符串可以返回相同的指纹。维护一个全局的HashMap,用来管理<指纹,List<String>>,优雅完成判同和写入的流程。对于指纹的生成方法,目前主要有两种:

2021-07-19 09:24:41 106

原创 浅谈关于AOP的一些东西(Java、Spring向)

浅谈AOP1. 什么是AOPAOP是Aspect Oriented Programming的简称,面向切面编程,和我们熟悉的OOP(面向对象编程)一样,是一种开发约定,更是一种编程思想。在流行的语言之中,几乎没有一种语言是纯粹的面向切片。面向切片,更是对于面向对象编程的一种补充。面向对象编程是Java开发程序员十分熟悉的一种编程范式,用计算机术语来讲,是体现了封装、多态、继承特性,在开发阶段关注共性(class),再在运行时去管理和使用对象(object)。也就是说,如果在纯粹的面向对象思想下,程序工

2021-07-17 14:29:38 107

原创 实习笔记 3

实习收获笔记 3学习了Arthas开源Java线上诊断工具,了解其优势和弊端。可以更优雅地显示官方诊断集能显示的内容,比如线程信息、JVM状态等等,并且开销低,相对安全稳定。但是Arthas仍然不推荐用于分析问题,仅可作为临时排查问题的工具,毕竟属于第三方侵入性应用,对线上环境存在一定的威胁,一旦产生问题,后果难以承担。学习了利用火焰图诊断高CPU问题,了解了某案例,关于可以写在循坏外的高耗时调用被写入了循环内,导致日常环境为被检测出来,但在QPS激增时出现问题。一定要敏感高耗时调用的被调用次数(时间

2021-07-16 09:00:16 71

原创 实习笔记 2

实习收获笔记 2初步熟悉了持久化(关系型)、缓存(非关系)、消息队列、定时任务、配置、开关方面的中间件。了解了大概的maven配置和调用方法,大致了解应用场景,读懂了现有项目的相关代码。了解了集团数据库分库分表中间件实现主键唯一的方法。采用的是单独维护一个id分配集群,每个节点负责一段id的发放,一次发放一组,节点间互相可见从而实现id的唯一性。同时需要在项目数据库中额外维护一个表来管理id,代码层面也有对应的DAO。消息队列的意义:削峰、提速(异步)、解耦、广播。常见问题:“异步”的特性为什么不用

2021-07-15 08:53:31 80

原创 实习笔记 1

实习收获笔记 1敏捷配置了maven设置,第二次配大环境了,一下午搞定。“埋点”一次的概念:为了获得数据而产生的预留点。Mybatis:#{},${}的区别,前者是预处理,传到sql语句里是字符串,后者直接传进来,有sql注入风险。分库分表的相关问题:目的是解决因单表单库巨大而带来的数据库负载增加,MySQL的话,到千万级通常就可以考虑分表了。五千万或一亿以上必须分表。分库分表分为水平划分和垂直划分。垂直划分类似提高范式,按照实际业务逻辑和处理流程来划分,分字段。而水平划分就是横着切一刀,通常可以

2021-07-14 09:04:53 67

原创 并发框架下的“基础类型”——浅析基本类型、ThreadLocal、原子类的线程安全机制

写在前面在接触java-web开发的时候,常常会思考多个会话在调用同一个方法的时候会发生的事情。其实自然而然就会想到学习java时常提到的“线程安全”概念,原子性、顺序性、可见性。但是对于同样是线程安全的变量或者说容器,它们的安全特性是否有区别,换言之,在特定的场景下,即使我们不从性能角度出发思考问题,我们也仍然要使用不同的线程安全类型。正文1. 阅读一段代码public class Main { // 定义一个大数 1M private static final int NUM =

2021-05-06 23:18:45 219 3

原创 211非科班阿里Java后端实习面经(三面+HR面)(已意向)

写在前面本人目前是北邮非科班大三在读,GPA中上,培养方案内包括一些不是很硬的计算机课程,如C、Java程序开发、Web应用开发、数据库、计算机网络等,讲得比较水,主要靠自学和项目。有过一段京东物流的Java后端实习经历,实习时间比较短,全程跟了两个项目。同期精投了阿里、百度、字节等大厂,没有海投。重点准备了算法、Java SE和MySQL的知识,网络、Spring、Redis准备偏弱。面试内容一面:电话面自我介绍面试官口述了一个经典银行扣款场景的Java代码,询问了相关多线程问题:

2021-05-01 17:07:21 643

原创 我对HashMap家族的一些理解(HashMap、ConcurrentHashMap、HashTable)

写在前面HashMap与ConcurrentHashMap在Java开发中作为k-v容器使用频率颇高,在面试中也常见二者身影,其重要性不言而喻。但如果只是说因为应用频率高所以重要,那么可谓说是低估了这两个类型的地位。HashMap与ConcurrentHashMap之所以重要,更多是因为二者的设计与实现上广泛涉及到了Java核心思想与各类奇技淫巧,能理解透彻这两个类的人自然代码水平不会太差。可以说吃透HashMap和其并发类型,就是精通了Java代码层的增删改查,入门了高并发。阅读本文需具有一定《数

2021-04-30 22:55:34 198 2

原创 浅谈Java中短路运算符与逻辑运算符

1、逻辑运算符(部分)符号名称&&短路与运算符||短路或运算符&与运算符|或运算符对于理工科学习者来说,逻辑运算是较为基础的概念,通常会在大一的离散数学课程中有所了解。在Java以及更多C-Like语言中,&和|会分别表示逻辑运算中的与、或,他们的运算结果与我们在数学书中所学的逻辑运算规则并无差异。但是,在实际编程的过程中,我们反而会更多使用&&和||,甚至不少同学都不了解&、|两个运算符。那么,这

2021-01-11 14:52:24 784 5

原创 浅谈我对堆和栈的理解(JVM)

写在前面近日,本人在参加Java后端面试的时候连续被问到了一个话题,就是“谈一谈你对于堆和栈的理解”。 显然,这个话题并不是一个数据结构的问题。实际上,谈堆和栈的理解,考察的是一个求职者有没有对计算机底层具备深入且举一反三的认识。出色地答出这个问题将会大大提高在面试官心中的印象,从而增大斩获Offer的可能性。此外,重新正确认识内存分配的机理。从是什么到为什么有一个逻辑上的串联,也对于深入调优和算法设计有着很大的帮助。在JVM中,堆和栈是如何被分配的通常来讲,我们可以大致认为:值类型(int,

2020-09-17 23:43:06 268

空空如也

空空如也

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

TA关注的人

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