自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis的底层实现---字符串章节,Java开发工程师笔试题目

- buf数组中保存着“Redis”字符串 SDS遵循C字符串以空字符串结尾的惯例,保存空字符串的1字节空间不计算在SDS的len属性之中。再看看SDS的free不为0的情况:sdshdrfree 3length 5buf -->|'R'|'e'|'d'|'i'|'s'| | | | free的值为3,表示这个SDS分配了三个空闲的空间### []()SDS与字符串的区别C语言使用简单的字符串表示方式,并不能满足Redis.

2021-09-09 17:32:27 113

原创 Redis中scan命令踩坑,本文告诉你千万别乱用,Java数据库题目大全

local dataList = resp[2]for i=1,#dataList dolocal d = dataList[i]local ttl = redis.call('TTL',d)if ttl == -1 then redis.call('DEL',d)endendif c==0 thenreturn ‘all finished’elsereturn ‘end’end在本地的测试redis环境中,通过执行以下命令mock了20w的测试数据:

2021-09-09 17:30:47 190

原创 Redis【入门,Java面试手写算法

从上图我们可以知道以下两点:当第一次读取数据的时候,读取 Redis 的数据就会失败,此时就会触发程序读取数据库,把数据读取出来,并且写入 Redis 中;当第二次以及以后需要读取数据时,就会直接读取 Redis,读到数据后就结束了流程,这样速度就大大提高了。从上面的分析可以知道,读操作的可能性是远大于写操作的,所以使用 Redis 来处理日常中需要经常读取的数据,速度提升是显而易见的,同时也降低了对数据库的依赖,使得数据库的压力大大减少。分析了读操作的逻辑,下面我们来看看写操作的流程.

2021-09-09 17:29:01 124

原创 Redis【入门(1),小白看完都学会了

(1)第一步:使用Spring配置JedisPoolConfig对象大部分的情况下,我们还是会用到连接池的,于是先用 Spring 配置一个 JedisPoolConfig 对象:<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!--最大空闲数--> <property name="maxIdle" value="50"/> <!--最大连接数

2021-09-09 17:27:29 149

原创 Redis-消息队列的三种方案(List,Java开发面试基础

后来 Redis 的父亲 Antirez,又单独开启了一个叫 Disque 的项目来完善这些问题,但是没有做起来,github 的更新也定格在了 5 年前,所以我们就不讨论了。Redis 5.0 版本新增了一个更强大的数据结构——Stream。它提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。它就像是个仅追加内容的消息链表,把所有加入的消息都串起来,每个消息都有一个唯一的 ID 和对应的内容。而且消息是持久化的。每个 S.

2021-09-09 17:25:45 219

原创 Redis 中两种持久化机制详解,大厂面试必问

fork:当一个进程创建子进程的时候,底层的操作系统会创建该进程的一个副本,在类unix系统中创建子进程的操作会进行优化:在刚开始的时候,父子进程共享相同内存,直到父进程或子进程对内存进行了写之后,对被写入的内存的共享才会结束服务。[]()2. 客户端方式之 SAVE(单线程执行)客户端还可以使用 SAVE 命令来创建一个快照,接收到 SAVE 命令的 Redis服务器在快照创建完毕之前将不再响应任何其他的命令;注意:SAVE 命令并不常用,使用 SAVE 命令在快照创建完毕之前,Redis.

2021-09-09 17:24:08 59

原创 为何优秀的程序员不断离开?,阿里P8架构师

通常,我喜欢在做某件事情的时候反省自己的动机。我认为这种反省非常好,可以确保我保持理性,不要一时冲动做出幼稚的决定。所以,在这次辞职之前,我也反省了自己,最后还是决定义无返顾。请注意,这些说在开头的话只是想解释我思索这个问题的原因,而且我想针对个人的处境总结一下我的看法,并与广大的软件开发人员分享。也就是说,我并不是想说:“我是最优秀的程序员,各位老板可以按照本文中所说的方法留住我。”我觉得我个人的编程水平与本文无关,而且我觉得自己是一个称职和高效的开发人员,对学习充满了热情,对工作充满了自豪感。我不觉得我

2021-09-08 17:29:27 144

原创 为何优秀的程序员不断离开?,中高级Java面试中你不得不会的知识点

以下为译文:鉴于我刚刚换了份新工作,所以最近有很多人问我为何有此决定。一般来说,每当有人离职时,同事、经理、人力资源,甚至朋友和家人都想知道其中的原因。就我个人而言,我一般会给出不太让人满意的答案,比如“我想寻求更好的职业发展机会”,或者“我觉得应该做一些改变”。这些答案说的都是个人的原因,与公司没有太大关系。而我给出这样的答案,不是因为我很官方,或者我想回避这个问题,而是因为我不知道真正的原因。请不要误会我的意思。无论你去哪家公司工作,总会遇到一些组织层面的烦恼和麻烦,而且总是会有人找上门对你说:

2021-09-08 17:27:45 71

原创 为什么高级程序员都不用a,已成功拿下字节、腾讯、脉脉offer

哈喽,大家好,我是一条。今天也是向高级程序员学习的一天。组长又说了我用a.equals(b)判断对象相等的问题,一开始我还很奇怪,不都这么用吗组长:“……”嗷嗷,原来是这样,那该用什么呢?组长:“……”别急,这就把组长讲的教给大家。"a.equals(b)“和"a==b”====================a.equals(b)是jdk1.7的方法。面试常考的是和“==”的区别:如果 a 和 b 都是对象,则 a==b 是比较两个对象的引用,只.

2021-09-08 17:26:03 107

原创 为什么阿里巴巴不建议在for循环中使用”,如何系统全面性学习Java语言

String wechat = “Hollis”;String introduce = “\u6BCF\u65E5\u66F4\u65B0Java\u76F8\u5173\u6280\u672F\u6587\u7AE0”;//每日更新Java相关技术文章String hollis = (new StringBuilder()).append(wechat).append(",").append(introduce).toString();通过查看反编译以后的代码,我们可以发现,原来字符串常量在拼

2021-09-08 17:24:14 131

原创 为什么说 C 语言比 Java 难?,28天肝完阿里面试通关宝典

接着又掏出了一本《C程序设计语言》,说道:“这本《C程序设计语言》秘笈是无价之宝,我看与你有缘,收你10块钱,传授给你吧。”估计是这本《C程序设计语言》没什么人买,而且厚度只有《Java编程思想》的1/5,才卖的这么便宜。但我是那种缺钱的人吗?几十块钱的东西放前面,我眼都不眨一下,二话不说,我翻遍口袋,掏出了几个钢镚和几张皱了的绿色毛爷爷,凑了十块钱,拿走了那本C语言秘籍。而我朋友,把准备到steam上交社保的50块大洋买了那本《Java编程思想》。从此之后,我苦练C语言,我发现,我这本书都看过3遍.

2021-09-08 17:22:41 76

原创 【MyBatis 6,springcloud从入门到精通教程

(1)ResultSet getResultSet()以 ResultSet 对象的形式获取当前结果(2)int getUpdateCount()以更新计数的形式获取当前结果;如果结果为 ResultSet 对象或没有更多结果,则返回 -1(3)boolean getMoreResults()移动到此 Statement 对象的下一个结果,如果其为 ResultSet 对象,则返回 true,并隐式关闭利用方法 getResultSet 获取的所有当前 ResultSet 对象(4)boolea

2021-09-06 18:20:42 264

原创 【Linux 4,Java微服务架构训练营

crontab -r :终止任务调度crontab -l:列出当前有哪些任务调度service crontab restart:重启任务调度2、举例说明*/1 * * * * ls -l /etc/ > /tmp/to.txt定时每分钟执行,将etc的ls内容重定向到tmp下to.txt文件中。项目含义第一个*一小时中的第几分钟第二个*一天中的第几小时第三个*一个月中的第几天第四个*一年中的第几月第五个*一周中的星期几特殊符号:特殊字符含义*代表时间,比如第一..

2021-09-06 18:19:13 73

原创 【leetcode刷题,Java中高级面试

我真的服了,这种题还要玩文字游戏? 测试用例居然还有[]???,都空了你还买什么股票???——leetcode此题热评前言哈喽,大家好,我是一条。糊涂算法,难得糊涂。通过今天的热评提醒大家写代码一定要注意空值的判断,你不知道别人会传给你什么值NullPointerExceptio是最容易解决也是最容易出现的!Question难度:简单给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选.

2021-09-06 18:17:36 315

原创 【leetcode刷题】17,2021Java春招面试真题

160. 相交链表难度:简单给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, s

2021-09-06 18:15:54 67

原创 【leetcode刷题(3),Java程序员晋升路线图

n == nums.length1 <= n <= 1051 <= nums[i] <= n进阶:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。Solution鸽笼原理由题意可得,1n的位置表示1n个笼子,如果出现过,相应的“鸽笼”就会被占掉,我们将数字置为负数表示被占掉了。最后再遍历一遍,如果“鸽笼”为正数就是没出现的数字。Code所有leetcode代码已同步至gith.

2021-09-06 18:14:10 97

原创 【leetcode刷题(2),Java面试通关手册

限制:2 <= n <= 100000Solution做了这么多题,这题应该算是比较简单了但是又不简单,就像评论说的,我们面试的时候,一定要问好时间和空间的要求新建一个hashset依次加入数组元素,加入失败,就将该数字返回,并终止循环。Code所有leetcode代码已同步至github欢迎star/** * @author yitiaoIT */class Solution { public int ..

2021-09-06 18:12:33 101

原创 【leetcode刷题(1),Java常用数据结构面试题

第一种几乎有些java基础的人都可以做出来,双重for循环,暴力查找,有没有相加==target的。即使简单,也要注意时间复杂度。内层for循环从i+1开始,因为同一个元素不能使用两遍。找到解后就可以break退出,因为只有一个解。(有无break运行时间相差近10s)Code class Solution { public int[] twoSum(int[] nums, int target) { int[] ints = new i.

2021-09-06 18:10:55 140

原创 Spring模块组成(框架组成,985研究生入职电网6个月

spring-core 模块:提供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI)功能。spring-beans 模块:提供了BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为Bean。spring-context 模块:建立在Core和Beans模块的基础之上,提供一个框架式的对象访问方式,是访问定义和配置的任何对象的媒介。ApplicationContext接口是Context

2021-09-05 20:00:10 184

原创 SpringMVC框架技术总结(二),Java学习路线指南

@Controllerpublic class UserController { @RequestMapping(value = "/users",method = RequestMethod.POST) public String insertUsers(@RequestBody List<User> users){ System.out.println("insertUsers"); System.out.println(users); .

2021-09-05 19:58:34 77

原创 SpringIOC中复杂属性如何“巧妙,Kafka必须掌握的核心技术

<!-- 通过bean来引用一个新的类对象,并且对其中的属性进行赋值 --><property name="car" > <bean class="com.spring.beans.Car"> <property name="carName" value="五菱宏光"></property> <property name="price" value="100"></propert.

2021-09-05 19:56:49 71

原创 SpringCloud快速入门(二),渣本Java开发小伙如何一步步成为架构师

Feign是Netfix开发的声明式、模板化的HTTP客户端,它可帮助我们更加快捷的调用HTTP API,其中支持自带的注解,JAX-Rs注解,SpringMVC注解,并且还整合了Ribbon与Eureka。通过使用Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做,十分方便。Feign项目地址:https://github.com/OpenFeign/feign在前面的学习中,我们使用了Ri

2021-09-05 19:55:06 109

原创 SpringCloud-Stream实战快速入门,经验总结

Binder可以生成Binding,Binding用来绑定消息容器的生产者和消费者,它有两种类型,INPUT和OUTPUT,INPUT对应于消费者,OUTPUT对应于生产者。POM主要增加了 org.springframework.cloud:spring-cloud-starter-stream-rocketmq 依赖,老顾采用最新Spring Boot的2.1.8.RELEASE版本,SpringCloud的Greenwich.SR2版本;Spring-Cloud-Alibaba的2.1.0.R

2021-09-05 19:53:24 285

原创 【基于Java,面试复盘

添加船只信息:增加出行路线:出行路线管理:船只分配出行线路:船只出行路线管理:增加货柜:货柜管理:船只分配货柜:船只对应配套货柜管理:未登录时,首界面显示:以货柜使用情况为例:其余界面暂不展示。。。(二)代码示例ChuanzhiAction.java package com.allde.wo.chuanzhi.action;import java.io.IOException;import java.text.SimpleDateFormat;.

2021-09-03 19:06:57 74

原创 【原创,太厉害了

有些集群架构是下面这样的,Proxy可以是Twemproxy,是统一的入口。可以在Proxy层做收集上报,但是缺点很明显,并非所有的redis集群架构都有proxy。方法四:用redis自带命令(1)monitor命令,该命令可以实时抓取出redis服务器接收到的命令,然后写代码统计出热key是啥。当然,也有现成的分析工具可以给你使用,比如redis-faina。但是该命令在高并发的条件下,有内存增暴增的隐患,还会降低redis的性能。(2)hotkeys参数,redis 4.0.3提供了redis

2021-09-03 19:05:20 87

原创 【关于封装的那些事,想找工作的你还不看这份资料就晚了

缺失封装=================================================================没有将实现变化封装在抽象和层次结构中时,将导致这种坏味。表现形式通常如下:客户程序与其需要的服务变种紧密耦合,每当需要支持新变种或修改既有变种时,都将影响客户程序。每当需要在层次结构中支持新变种时,都添加了大量不必要的类,这增加了设计的复杂度。为什么不能缺失封装?开闭原则(OCP)指出,类型应对扩展开放,对修改关闭。也就是说应该通过扩展(而不是

2021-09-03 19:02:02 57

原创 【Vue(1),Java学习教程百度云

插值操作的主要作用是 将值插入到我们模板的内容当中但是,除了内容需要动态来决定外,某些属性我们也希望动态来绑定比如动态绑定 a 元素的 href 属性比如动态绑定 img 元素的 src 属性这时,我们可以使用 v-bind 指令:作用:动态绑定属性缩写:预期:any (with argument) | Object (without argument)参数:attrOrProp (optional)v-bind 基础、语法糖v-bind 用于绑定一.

2021-09-03 18:58:39 77

原创 JavaWeb快速入门--JSP(1),95%Java开发者已收藏的十大开源库

page指令:<%@page 内容 %>page指令用来设置JSP页面的属性,在JSP页面中page指令没有位置于出现次数的限制,一般将其放在页面的顶部,其语法格式如下:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" inport="java.util.Date"%> page中设置了很多页面属性,但是除了import属

2021-09-02 21:22:09 103

原创 JavaWeb之HTTP协议(一),这么香的技术还不快点学起来

=============================================================================| ????javaEE进阶之旅 | 地址 || — | — || ????JavaWeb之HTTP协议(一) | https://blog.csdn.net/Augenstern_QXL/article/details/119580669 || ????JavaWeb之Servlet技术(二) | https://blog.csdn.net/Au

2021-09-02 21:20:32 71

空空如也

空空如也

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

TA关注的人

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