- 博客(267)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 蓝桥杯2013--2020历届真题及题解目录
题目及题解持续更新中2017第八届省赛-java-A组-题目+题解2017第八届省赛-java-B组-题目+题解序号+题目名称题目+题解代码题目类型分值题目01: 购 物 单…题目+题解结果填空5题目02: 纸牌三角形题目+题解结果填空11题目03: 承 压 计 算题目+题解结果填空13题目04: 魔 方 还 原题目+题解...
2020-02-11 16:35:32
11279
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 竞赛算法 专栏目录
1 、 算法模板1.1 、 算法基础–模板及经典题型1.2 、 算法进阶–模板及经典题型2 、竞赛算法 – 递归(DFS、回溯、剪枝)2.1 、竞赛算法–深入递归(上)(DFS、回溯、剪枝等)2.2 、竞赛算法–深入递归(中)(DFS、回溯、剪枝等)2.3 、竞赛算法–深入递归(下)(DFS、回溯、剪枝等)3 、竞赛算法 – 动态规划...
2020-01-22 21:16:18
391
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 蓝桥官网练习系统-题解目录-java语言描述
蓝桥官网题解目录入门训练题目编号标题题目+题解代码关键字BEGIN–001A+B题目+题解入门BEGIN–002序列求和题目+题解入门、求和公式BEGIN–003圆的面积题目+题解入门、实数输出BEGIN–004Fibonacci数列题目+题解 入门 数列 取模基础练习题目编号标题题目+题解代码关键字...
2020-01-10 15:52:12
570
原创 《超大流量分布式系统架构解决方案-人人都是架构师2.0》读书笔记
本书对于技术的学习并没有很深的阐述,而是从系统的架构角度讲解相关知识,可以帮助同学们或工程师们更好的了解系统的架构知识。
2022-10-07 23:30:26
1517
原创 Java8新特性-Stream流
01 、概述Stream 是JDK1.8的新特性,可以结合lambada表达式结合使用 可以提升开发的效率和性能。02、 Stream流的作用对于集合迭代的增强处理可以对于集合数组进行更高效的聚合操作,比如: 分组、过滤、排序,元素的追加等。解决了的传统开发过程中,jdk对集合或者数组API不足的问题,因为在早期的API的开发过程中,对集合或者Map的操作其实比较单一和缺乏。在jdk1.8之后就参考了很多语言的一些对数组和集合操作的API。 比如JS的数组的reduce、map、sort、f
2021-10-14 16:26:32
333
原创 亿级流量秒杀项目--水平扩展--Nginx反向代理及优化
1、单机容量问题–水平扩展表像: 单机CPU使用率增高,memory占用增加,网络带宽使用增加2、Nginx的反向代理配置upstream 里面的设置的ip为 图中A、B服务器的私有ip因为均为阿里云服务器 且在同一地区的局域网下 故可以使用私有ipweight为负载均衡 1:1 进行轮询访问在server下配置server_name 和 监听的端口号将静态资源html、css、js 等信息放在指定的html/resources 下,访问域名拼接
2021-10-14 16:17:50
625
原创 字节跳动-2019春招研发部分笔试编程题汇总
解题思路 1. 本题采用Java字符串的replaceAll()方法 及 正则表达式的使用2. 关于正则表达式 (.)\\1+ 括号中的点表示任意字符,后面的\\1表示取第一个括号匹配的内容, 后面的加号表示匹配1次或1次以上 二者加在一起就是某个字符重复两次或两次以上 $1 取出匹配的第一个字符 $1$1 取出两次 (.)\\1(.)\\2 同理package 字节跳动.R_2019春招_;import java.util.Scanner;public class...
2021-04-23 15:12:51
839
原创 RabbitMQ-02-RabbitMQ的安装(Linux)
1. 安装依赖环境在线安装依赖环境:yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz2. 安装Erlang上传erlang-18.3-1.el7.centos.x86_64.rpmsocat-1.7.3.2-5.el7.lux.x86_64.rpmrabbitmq-server-3.
2021-04-14 16:12:59
159
原创 RabbitMQ-01-RabbitMQ概述
1.1. 什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。开发中消息队列通常有如下应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用
2021-04-14 16:03:43
168
原创 反射机制
反射机制:是Java语言一个非常重要的特性,它允许程序在运行时进行自我检查,同时也允许对其内部的成员进行操作虽然在实际的开发中使用的并不是特别的多。而且像C或C++的特性中 根本就没有这种特性。反射机制能够实现在运行时对类进行装载。因此可以大大的增加我们程序的灵活性。一般情况下,程序中的对象的类型,在编译器就已经确定下来了,而当我们的程序在运行的时候,我们可能需要动态的加载一些类,但是这些类在之前并没有用到,所以它还没有加载到我们的虚拟机中,这个时候就可以使用反射机制进行加载。反射机制的主要应.
2021-04-13 18:31:41
129
原创 什么是迭代器
迭代器是一种设计模式,它是一个对象,他可以遍历并且选择序列中的一个对象,是开发人员可以忽视这个序列中的底层结构。迭代器被称为轻量级的对象,因为它创建的代价是非常小的Java中的Iterator迭代器,它的底层的功能是非常简单的,并且它只能单向移动的,它的使用方法:首先我们需要定义一个Iterator这个方法,然后返回一个Iterator对象,第一次调用这个Iterator的next方法的时候,它返回序列中的第一个元素,接下来我们需要使用next去获取序列中的下一个元素。我们再使用hasNext这个.
2021-04-13 18:08:53
8093
原创 面向对象和面向过程的区别
面向过程:它本身的性能是比较高的,比如说C语言,因为面向过程它不需要去创建类,类的调用是需要进行实例化的所以这个开销是比较大的,也是比较耗资源的.当我们的程序性能是第一考虑因素的时候,我们就可以选择这种面向过程的编程,比如说 单片机和嵌入式的开发。像Linux和Unix 一般都采用面向过程的开发面向过程没有面向对象的优点: 易维护、易扩展、易复用面向对象:易维护和易扩展,因为它是具有封装、继承、多态 这三个特点的。 所以可以设计出一个低耦合的一个系统,使系统更加的灵活 更加的易于维护。.
2021-04-13 17:54:51
207
原创 JDK 和 JRE的区别
JDK:全名 Java Development Kit 也就是Java开发工具,他是功能齐全的Java的SDK,它拥有JRE所拥有的一切。还有编译器和工具,它能够创建和编译程序JRE:Java的运行时环境,他是运行已编译的Java程序所需要的所有内容的一个集合。 包括 虚拟机,或者Java类的一些库,Java的命令 以及 一些基础的构件。 但是他不能用于创建新的程序,如果只需要运行Java程序 只需要安装JRE就可以了。...
2021-04-13 17:38:03
149
原创 Sleep和 Wait 的区别
首先这两种方法都是用来阻塞线程的sleep()sleep方法是Thread类中的一个静态方法,它是会让我们调用这个方法的线程 进入一个睡眠状态。然后把这个CPU的执行权让给其他线程,等到这个休眠时间结束之后 再去进入这个就绪状态,去跟其他线程一起竞争这个CPU的使用权这个Sleep是不会去释放当前线程所占有的锁的,也就是说 当我们的synchronized这个代码块 里面去调用sleep方法时,线程虽然会进行休眠,但是它并不会去放弃这个锁的使用权,也就是说:其他线程是无法获取这个锁的。.
2021-04-13 17:29:47
146
原创 BIO、NIO、AIO
BIO 同步阻塞的一个IO模型它数据的读取和写入必须阻塞在一个线程里面,去等待完成,在连接数不是特别高的时候。 比如说小于1000的情况下,它的这种模型其实是非常不错的,它可以让每一个连接都专注的去做自己的一个IO 并且编程比较简单,也不用考虑系统的过载、限流等问题。线程池本身也是一个天然的漏斗,可以缓冲一些系统处理不了的连接或者请求,但是当我们的连接数一旦大的时候,传统的BIO模型是无能为力的,因此我们需要一种更加高效的IO模型来进行处理。NIO 同步非阻塞的IO模型在JDK1.4就.
2021-04-13 17:17:28
140
原创 Redis序列化模板-自定义RedisTemplate
package com.ren.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.context.annotation.Bean;import org.sp
2021-04-07 19:23:51
271
原创 字节跳动--笔试题--手串
思路: 将给定的条件以键值对的形式存入HashMap中键为颜色编号,值为该颜色所在的集合根据map的值 集合比较是否有 不符合条件的情况package 字节跳动.problems01;/** * @author Ren */import java.util.*;public class R02_手串 { public static void main(String[] args) { Scanner in = new Scanner(System.i...
2021-03-26 17:09:26
308
原创 字节跳动-笔试题--用户喜好
本题看似简单,其实不能用正常的思维去考虑。要另辟蹊径去优化。不然就不是字节跳动了这种暴力写法 会由于时间复杂度过高而超时,正解见下一段代码/** * @author Ren */import java.util.*;public class R01_用户喜好 { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 用户数 .
2021-03-26 11:27:49
386
原创 《剑指offer-第二版》-面试题09-用两个栈实现队列(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)用两个栈实现队列 题目: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , 分别完成在队列尾部插入节点和在队列头部删除节点的功能。两个栈,存入数据时把数据全部压入第一个栈,然后把第一个栈中的数据弹出压入第二个栈中。出队:即从第二个栈中弹出数据。入队:即若第二个栈有数据,先将第二个栈的数据压入第一个栈,然后重复步骤一。代码示例:package ch.
2021-02-20 21:46:43
207
原创 《剑指offer-第二版》-面试题06-从尾到头打印链表(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)从尾到头打印链表 题目: 输入一个链表的头节点,从尾到头反过来打印出每个节点的值。 链表节点定义如下:class Node{ Object data; //每个节点的数据 Node next; // 每个节点指向下一个节点的连接 public &.
2021-02-17 20:24:22
232
原创 《剑指offer-第二版》-面试题05-替换空格(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)替换空格 题目: 请实现一个函数,把字符串中的每个空格替换成“20%”.例如,输入 “We are happy” , 则输出 “We%20are20%happy”.思路一: 直接使用java字符串中的内置函数 replaceAll(str1,str2)思路二: 可以将字符串中的每个字符看做数组中的每个元素,故此题变为数组替换并插入元素的题。必须先统计总的空格数目,然后从后往前插入。package ch02.
2021-02-13 22:24:32
161
原创 《剑指offer-第二版》-面试题04-二维数组中的查找(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)二维数组中的查找题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如: 1 2 3 4 &nbs.
2021-02-12 22:19:15
131
原创 《剑指offer-第二版》-面试题03-数组中重复的数字-02-不修改数组找出重复的数字(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)不修改数组找出重复的数字 题目描述: 在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少有一个数字是重复的。请找出数组中任意一个重复的数字,但不能修改输入的数组。例如,如果输入长度为8的数组{2 , 3 , 5 , 4 , 3 , 2 , 6 , 7 },那么对应输出的是重复的数字2或3 思路一: 复制数组,按照03_01的方法手动排序。 时间O(n) 空间O(n)思路二: 使用hashm.
2021-02-12 21:42:43
183
1
原创 《剑指offer-第二版》-面试题03-数组中重复的数字-01-找出数组中重复的数字(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)题目一: 找出数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的。但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或3。思路一: 先排序,在比较。思路简单,时间复杂度为O(nlogn)思路二: 利用哈希表解决,每次向哈希表中存放数据 并比较是否存在,.
2021-02-09 22:55:40
253
原创 《剑指Offer - 第2版》— 面试编程题目详解目录(Java版)
题号题目详解链接T03-01数组中重复的数字 – 找出数组中重复的数字 T03-02数组中重复的数字 – 不修改数组找出重复的数字
2021-02-09 22:41:37
154
原创 多线程03-静态代理
所谓的静态代理,就是在程序启动之前代理类的 .class 文件就已经存在。而代理类可能是程序员直接创建的 .java 文件,或者是借助某些工具生成的 .java 文件,但无一例外都必须再由编译器编译成 .class 文件之后再启动程序。package com.ren.p03_proxystatic;/** * @author Ren *//** * 静态代理模式总结 * 真实对象和代理对象都要实现同一个接口 * 代理对象要代理真实角色 * 好处: * .
2021-01-14 23:50:19
107
原创 多线程02-Lambda表达式(为了方便实现runnable接口)
1. Lamda表达式Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代替匿
2021-01-14 22:58:13
723
原创 多线程01-概念和三种实现方式
1. 线程、进程、多线程线程就是独立的执行路径在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,GC线程;main()称为主线程,为系统的入口,用于执行整个应用程序;在一个进程中如果开辟了多个线程,线程的运行由调度器(CPU)安排调度,调度器是与操作系统紧密相关的,先后顺序是不能认为干预的。对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;线程会带来额外的开销,如cpu调度时间,并发控制开销每个线程在自己的工作内存交互,内存控制不当会造成数据不一致2. 线程的创
2021-01-14 22:24:59
105
原创 实现用户在线答题的功能,要求如下,运行效果如下图所示: 1. 全部为单项选择题; 2. 每个题目由1个题面和4个选项组成; 3. 用户点击开始按键后,开始答题和计时; 4. 答题时,用
题目信息实现用户在线答题的功能,要求如下,运行效果如下图所示:1. 全部为单项选择题;2. 每个题目由1个题面和4个选项组成;3. 用户点击开始按键后,开始答题和计时;4. 答题时,用户做出选择后,自动跳转到下一题;全部答完后,使用Toast提示框提示用户的答对、答错的个数和总共耗时。5. 在界面上方显示当前已答个数和待答个数。6. 题面、选项和答案,作为数组资源保存,如下:7. <string-array name="testTitle"> <ite
2020-11-05 19:10:23
2735
10
原创 蓝桥杯第十一届真题:纪念日
点击查看:蓝桥杯历年真题 题解目录纪念日解析public class Main002_纪念日 { public static boolean isYear(int year){ return year%400==0 || (year%4==0 && year%100!=0); } public static void main(String[] args) { int counts = 0; for (int i
2020-10-24 23:59:40
928
原创 蓝桥杯第十一届真题:字符串编码
解析:1. 先用前两个字符组成一个两位数,如果两位数小于27,则输出该字符。在i++的基础上再次i++2. 如果大于26 则取第一个数字 转为字母,输出3. package java_2020_B;/** * @author Ren */import java.util.Scanner;public class Main008_字符串编码_2 { public static void main(String[] args) { Scanner in = new .
2020-10-14 17:28:21
1371
3
原创 蓝桥杯第十一届真题:八次求和
点击查看:蓝桥杯历年真题 题解目录八次求和第一种解法得至少得60%的分代码1 的100条测试 1至1000000,每隔10000取一个测试用例,共用时25秒package java_2020_B;/** * @author Ren */import java.math.BigInteger;import java.util.Scanner;public class Main007_八次求和_1 { public static BigInteger eight(int
2020-10-14 11:56:51
1991
1
原创 蓝桥杯第十一届真题:分类计数
点击查看:蓝桥杯历年真题 题解目录分类计数解析分析:1. 题目很简单,遍历数组每一个元素,判断类型2. 本代码通过 将字符转为整数的方式进行比较判断package java_2020_B;/** * @author Ren */import java.util.*;public class Main006_分类计数 { public static void main(String[] args) { Scanner in = new Scanner(Sy
2020-10-14 10:38:17
796
1
原创 蓝桥杯第十一届真题:斐波那契数列最大公约数
点击查看:蓝桥杯历年真题 题解目录斐波那契数列最大公约数解析题目分析:1. 计算斐波那契数列,f(2020) 和 f(520) 用long必越界,故使用BIgInteger2. 因为求最大公约数的两个数相差太大,故使用欧几里得算法求最大公约数。 若使用更相减损术 则内存溢出。3. 计算最大公约数是也要使用BigInteger,直接返回结果答案:6765package java_2020_B;import java.math.BigInteger;/** * @author
2020-10-14 10:13:04
2601
1
原创 蓝桥杯第十一届真题:纪念日
点击查看:蓝桥杯历年真题 题解目录纪念日解析public class Main002_纪念日 { public static boolean isYear(int year){ return year%400==0 || (year%4==0 && year%100!=0); } public static void main(String[] args) { int counts = 0; for (int i
2020-10-13 23:37:41
1896
5
原创 蓝桥杯第十一届真题:解密
点击查看:蓝桥杯历年真题 题解目录解密答案:"自行对应表格查阅得:"YeRjkGSmnlRzgDlvRwYkXkrGWWHXaAYeRjkGSmnlRzgDlvRwYkXkrGWWHXaA
2020-10-13 21:49:07
2202
2
原创 蓝桥杯第九届真题:方格计数
点击查看:蓝桥杯历年真题 题解目录方格计数答案: 3137548解法:1. 将其看做坐标系,计算每个顶点到圆心的坐标是否小于半径,小于则在圆内2. 在坐标轴上的点除外,因为坐标轴上的点无法代表任何一个方格到圆心的最远距离package java_2018_B;/** * @author Ren */public class Main002_方格计数 { public static void main(String[] args) { long counts
2020-10-09 19:56:01
834
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人