自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

can_chen的博客

再小的帆也能远航

  • 博客(100)
  • 收藏
  • 关注

原创 秋招面经总结(Java后端开发)

以下总结的面经都是我在秋招的过程中被问到的一些高频问题,后面附上的一些答案是查阅了相关文章总结而出,也是个人观点,如有错误,欢迎指出!一 Java基础Java和C语言有什么区别?Java好在哪里?怎么理解Java的跨平台性,一次编译到处运行?面向对象和面向过程的区别?如何理解面向对象三大特性:封装、继承、多态?类继承会有什么问题吗,一般什么情况下才会去用继承?为什么重写equals方法还要重写hashcode方法?深克隆和浅克隆反射相关注解的实现原理Lambda表达式的优缺点?St

2020-10-26 10:59:11 8326 41

原创 漫漫秋招路

双非二本院校的渣渣,在竞争激烈的秋招中,没有任何的优势,唯一的小确幸就是之前有一段小公司的实习经历;我的秋招始于8.12腾讯一面,很感谢突如其来的腾讯一面,开启了我的秋招之旅,腾讯的一面让我意识到自己基础的不扎实,连Java锁以及select与epoll的区别都答不上来,面试官人非常的好,即使我答的不好,面试时长还是达到了40多分钟,面试官最后还给了我一些建议,对我很有帮助;面试之后进行总结复盘,也规划了复习路线,开启秋招,到今天,秋招持续了两个多月左右,也是时候结束了~~~整个秋招,采取了海投策略,该投

2020-10-26 10:22:53 1557 12

原创 我的第一份实习——钛动科技

时光飞逝,不知不觉,距离辞掉第一份实习已经快一个月了,到了今天,才想起应该给第一份实习留下点什么,我认为自己是一个比较喜欢总结的人,第一份实习于我而言,其实是影响很大,成长很多的一次经历,那么我应该为它写点什么,待日后回忆起来,不至于对于第一份实习的记忆一片空白我与华资,注定无缘由于疫情的原因,打乱了所有人的计划,我也不例外,延期返校,所以春招的准备就是在家里进行中,3月份,学学学,到了4月份,就开始每天上一些招聘网站上看看有没有适合自己的岗位,受疫情影响,很多公司招聘的岗位都很少,有的公司甚至都不招,

2020-09-20 09:34:35 6437 14

原创 关于oauth 2.0和单点登录

在这个流程中,A系统作为客户端角色,去到认证中心申请令牌;如果A系统和B系统只有一方能够去认证中心登录,另一方就等着接收令牌,那么能去到认证中心登录的子系统才属于oauth 2.0协议中的客户端角色,另一方严格上来讲其实不属于客户端角色,因为客户端角色的任务就是去认证中心登录,并获取到令牌。如果我们的应用具有门户系统,用户要访问A系统或B系统都只能先登录门户,获取到令牌后再使用这个令牌访问A系统和B系统,这种情形中,门户系统其实就是oauth 2.0中的客户端角色,而A系统和B系统都属于资源服务器。

2022-12-19 18:24:30 2085 1

原创 linux关于ssh免密登录、known_hosts文件

SSH 是 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前广泛采用的安全登录协议,专为远程登录会话和其他网络服务提供安全性的协议,替代以前不安全的Telnet协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。scp、sftp等都是基于ssh协议来进行远程传输的。对称加密:例如AES,加密和解密使用同一个密钥,不安全,如果密钥丢失,加密的信息就会被窃取,并且可以篡改信息,重新加密;对于接收方来说,并不知道这串加密的信息是受信任的发来的还是黑客伪造的。非

2022-12-05 01:31:49 9099

原创 kong网关

kong网关基于nginx,但是比nginx更加强大,nginx一般用来实现反向代理和负载均衡,但是nginx无法实现动态配置,也就是说如果我们扩展了机器或者添加路由配置,需要手动修改nginx的配置文件并重启nginx才能生效。

2022-11-21 00:01:53 8194 1

原创 记一次磁盘挂载导致mysql服务启动失败的问题

服务器某个目录(/data目录)磁盘空间已满,并且该目录下有个子目录还是mysql的数据存储目录(/data/mysql);采用额外新增一块数据盘,并将该数据盘挂载到/data目录下的方式解决磁盘空间不足的问题

2022-11-16 17:52:01 989

原创 linux实现开机自启动服务/脚本

linux实现开机自启动服务或者运行自定义脚本有三种方式

2022-11-15 20:39:33 5396

原创 虚拟机类加载机制

当我们第一次new一个类的实例对象时,会先进行类的初始化操作,即完成静态变量赋值操作以及执行静态代码块;然后才是实例变量的赋值操作、普通代码块的执行、构造方法的执行;当我们第二次再new这个类的实例对象时,由于类已经被初始化过了,因此直接进行实例变量的赋值操作、普通代码块的执行、构造方法的执行。一个类的完整生命周期包含:加载、验证、准备、解析、初始化、使用、卸载七个阶段。类加载过程包含加载、验证、准备、解析、初始化五个阶段。3、关于静态常量的赋值时机。1、无类继承关系的情形。2、有类继承关系的情形。

2022-10-09 00:31:29 202

原创 guava编程

文章目录JoinerSplitterListsMapsIntsMultiSetMultiMap不可变集合JoinerJoiner的作用是:把集合(或数组或可变参数)通过指定的分隔符连接成字符串1.传统的方法实现(代码量多,还需要考虑第一个元素的特殊情况)public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.ad

2021-11-28 22:42:24 528

原创 正则表达式

文章目录一、 整体匹配和部分匹配二、贪婪匹配和非贪婪匹配三、分组 捕获 反向引用四、String类关于正则表达式的应用五、其它正则表达式案例菜鸟教程正则表达式:https://www.runoob.com/regexp/regexp-tutorial.htmlJava正则表达式:https://www.runoob.com/java/java-regular-expressions.html一、 整体匹配和部分匹配部分匹配一般用于提取字符串中符合规则的子串,而整体匹配一般用于验证某个字符串是否符合规

2021-10-30 23:59:20 851

原创 Java多线程和锁

文章目录1. 高并发和多线程2. synchronized 关键字3. synchronized锁和Lock锁的区别4. JMM(Java Memory Model)5. volatile关键字1. 高并发和多线程高并发指的是在同一时刻/短时间内接收到大量的请求,例如双十一,在12点整的时候,会有大量的用户同时进行商品下单操作,如果系统没有应对高并发的措施,那么会出现同一时刻若干请求同时落到服务器,造成服务器奔溃。多线程是解决高并发的一种措施,但并不是一定得通过多线程去解决高并发,还可以通过消息队列,

2021-10-07 03:08:19 771

原创 SpringBoot相关知识点

文章目录1. IOC和DI2. Spring容器加载Bean/创建对象的时机3. @Autowired注解4. @Configuration配置类5. @Conditional条件注解6. SpringBoot的自动配置/自动装配1. IOC和DI首先,我们应该明确,IOC是一种思想,并不是Spring特有的,而是软件工程逐步发展的一种产物,是一种优秀的编程思想,之所以我们经常会把IOC理解成是Spring特有的东西,是因为Spring框架可以帮助我们很好的去实现IOC。IOC代表的是控制反转,控制的是

2021-10-05 15:29:44 809

原创 开发踩坑记录

有人说:在同一个地方摔倒一次是无知,摔倒两次就是弱智;为了防止自己成为弱智,在此将工作过程中踩过的坑记录下来。1. 关于JDBC中Statement提供的几个执行方法踩坑记录:使用 executeQuery() 方法去执行一条sql查询语句,导致执行失败statement.executeQuery("alter table query_failed_record add partition(pt='20210926')");JDBC中Statement接口提供了三种比较常用的执行 SQL 语句的方

2021-09-26 18:01:13 249

原创 Java IO流

文章目录一、文件1. 创建文件2. 文件相关操作3. 目录相关操作二、IO流1. IO流的分类2. IO流体系图三、字节文件流1. 字节文件输入流 FileInputStream2. 字节文件输出流 FileOutputStream四、字符文件流1. 字符文件输入流 FileReader2. 字符文件输出流 FileWriter五、节点流和处理流六、字符缓冲流1. 字符输入缓冲流 BufferedReader2. 字符输出缓冲流 BufferedWriter3. 通过BufferedReader和Buf

2021-09-26 10:05:57 254

原创 Hive学习笔记

文章目录1. Hive数据库相关命令2. Hive表相关命令3. Hive表导入数据相关命令4. Hive分区相关命令5. Hive的三种文件存储格式6. 关于Hive表的更新操作7. Hive的数据类型1. Hive数据库相关命令创建数据库,并指定在HDFS上的目录:create database ssb location '/user/hive/ssb'; (最后的ssb代表数据库名称)删除不为空的数据库(default默认数据库无法删除):drop database ssb cascade;

2021-09-23 14:20:01 313

原创 Presto 分布式SQL查询引擎

文章目录Presto的介绍Presto的数据模型通过Presto客户端查询Presto命令Presto的架构Java程序访问PrestoPresto的介绍Presto是Facebook开发的分布式SQL查询引擎,用来进行高效、实时的数据分析;Presto可以连接Hive、Mysql、Kafka等多种数据源,最常用的是通过Presto连接Hive数据源,可以解决Hive的MapReduce查询耗时太慢的问题;Presto是一个基于内存的计算引擎,它本身不存储数据,通过丰富的Connector获取第三

2021-09-17 01:19:08 2121

原创 Linux实用工具-Tmux

Tmux 是一个终端复用器,是Linux中的一款实用工具,一般来说,打开窗口,会话开始;关闭窗口,会话结束;那如果我们希望关闭窗口的时候,我们的本次会话一直运行不结束呢?因为我们的本次会话可能是在执行一个脚本,我们希望他保持运行,这个时候就可以使用Tmux这个工具了。使用Tmux简单步骤新建一个名称为apps的会话:tmux new -s apps在这个会话中执行某些命令,例如跑一个脚本将这个会话与当前窗口解绑,可以实现退出窗口时,会话不结束:tmux detach(快捷键:先按ctrl+b,再按

2021-08-25 17:26:27 161 1

原创 大数据组件相关操作命令

文章目录1.【HDFS】2.【Hive】1.【HDFS】将本地文件上传到HDFS:hadoop dfs -put a.txt /data将HDFS的文件下载到本地:hadoop dfs -get /a.txt .2.【Hive】本地文件导入Hive表:load data local input ‘/home/hive_test/a.txt’ into table hive_studentHDFS文件导入Hive表:load data input ‘/data/a.txt’ into table

2021-08-19 01:01:19 203 1

原创 kafka学习笔记

一、kafka常用命令注:kafka默认端口号9092,zookeeper默认端口号2181;由于kafka依赖于zookeeper,这里假设zookeeper和kafka都安装在localhost上;hello代表主题名,con-1代表消费者组名)启动停止命令启动kafka:bin/kafka-server-start.sh -daemon config/server.properties停止kafka:bin/kafka-server-stop.sh主题相关命令创建topic:bi

2021-07-17 01:13:58 805 1

原创 Redis学习笔记

文章目录一 Redis的特点二 Redis基础命令三 Redis五种常用数据类型的相关命令四 Redis中的expire生存时间五 Redis监控命令-monitor六 Redis持久化之RDB与AOF一 Redis的特点Redis是一种面向 “Key-Value” 数据类型的内存数据库,可以满足我们对海量数据的快速读写需求;其中redis中的key只能是字符串,value支持多种数据类型。Redis是一个 NoSQL 数据库,NoSQL的全称是not only sql,不仅仅是SQL,泛指非关系型

2021-07-01 01:59:14 397 1

原创 Nginx反向代理部署前端Vue项目

对于前后端分离的项目,前端项目和后端项目需要单独部署,通常会使用SpringBoot框架开发后端项目,使用Vue框架开发前端项目;后端项目的部署较为简单,一般来说就是先打成一个Jar包上传到服务器,然后使用 nohup java -jar Jar包名 & 命令启动项目即可;完整部署流程可参考文章:https://blog.csdn.net/can_chen/article/details/107225701 而对于前端Vue项目的部署,需要使用Nginx做反向代理,原因是开发的时候我们使用的是we

2021-05-05 02:01:29 9664 8

原创 Linux服务器搭建常见开发环境

Linux上安装软件常见的几种方式:源码编译压缩包解压(一般为tar.gz)编译好的安装包(RPM、DPKG等)在线安装(YUM、APT等)yum安装与rpm安装的区别: rpm 只能安装已经下载到本地机器上的rpm包,yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的;rpm包的安装有一个很大的缺点就是文件的关联性太大,有时候装一个软件要安装很多其他的软件包,很麻烦,所以一般我们都会选择使用yum去安装yum常用命令# 查找软件相

2021-03-30 00:55:18 734

原创 Linux常用命令

文章目录关机和重启防火墙相关操作查看ip地址信息网络相关操作yum安装和卸载du 查看文件或目录的大小df 显示磁盘分区上磁盘空间的使用情况关于linux磁盘空间满了的解决方案shell编程关机和重启1. shutdown-c:取消已经执行的 shutdown 命令;-h:关机;-r:重启;例如:shutdown -h now # 立即关机shutdown -h +10 # 10分钟后关机shutdown -h 05:30 # 指定时间关机shutdo

2021-03-26 10:37:51 696 2

原创 Python基本语法

目录一 基础知识1. 注释2. 变量3. 输入与输出4. 运算符5. 数据类型转换二 循环语句和判断语句三 字符串四 列表五 元组六 字典七 集合八 可迭代对象的公共方法和内置函数九 函数1. 全局变量和局部变量2. 一个函数返回多个值3. 缺省参数4. 拆包5. 可变类型和不可变类型十 异常十一 模块十二 面向对象1. 类和对象2. 魔法方法3. 继承4. 私有属性和方法十三 文件操作一 基础知识1. 注释单行注释:#注释内容多行注释:'''注释内容'''PS:python2中,如果程序使用到

2021-03-26 10:26:07 414 3

原创 leetcode之哈希法与双指针法求多数之和

目录1. leetcode 1. 两数之和2. leetcode 15. 三数之和3. leetcode 18. 四数之和4. leetcode 454. 四数相加 II1. leetcode 1. 两数之和leetcode 1. 两数之和(难度:简单)题目要求:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例

2021-02-23 22:15:07 212

原创 leetcode之回溯算法

目录一 组合问题1. leetcode 77.组合2. leetcode 39.组合总和3. leetcode 40.组合总和II4. leetcode 216.组合总和III5. leetcode 377.组合总和IV6. leetcode 17.电话号码的字母组合二 排列问题1. leetcode 46.全排列2. leetcode 47.全排列II一 组合问题1. leetcode 77.组合leetcode 77.组合题目描述:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k

2021-02-01 20:18:50 669

原创 leetcode之链表专题

一 虚拟头结点对于链表题目,我们需要区分head节点是第一个有效节点还是一个虚拟头节点(即不存放任何值,仅仅用来指向第一个有效节点),对于leetcode中关于链表的题目,head头结点指的就是第一个有效节点,并不是虚拟头节点;通常在解题中,为了方便链表的一些操作,我们会给链表设置一个虚拟头结点leetcode 203.移除链表元素题目要求:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出

2021-01-17 01:37:42 633 7

原创 单调栈的应用——每日温度

何为单调栈?单调栈有什么用?什么情况下可以使用单调栈?为什么要使用单调栈?相信第一次接触到单调栈的你都会有这些疑问;栈是操作受限的线性表,对于插入和删除都只能在一端进行,而单调栈就是在栈的基础上进一步限制了,有单调递增栈和单调递减栈,对于单调递增栈来说,就是需要保证栈中的元素大小是单调递增的,同理,对于单调递减栈来说,需要保证栈中的元素大小是单调递减的例如:对于(3,2,1)来说,满足单调递增栈,对于(1,2,3)来说,满足单调递减栈,而(3,1,2)既不满足单调递增栈也不满足单调递减栈举一个例子,有一

2020-12-25 00:55:04 255

原创 单调栈的应用——接雨水

题目描述LeetCode 42. 接雨水(难度:困难)给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。解题思路:首先,拿到这道题目的时候,我们应该先想,什么情况下才能接到雨水?如果凭空想象会很难,但是结合题目给出的图解就非常清晰了,如果后面的柱子高度比前面的柱子高度小,那么是接不到雨水的,而如果后面的柱子高度是大于前面柱子高度的,那么是有可能接到雨水的(注意只是有可能,后面我们就可以看出接不到雨水的情形),想到这一步,就可以把这道题转换一下.

2020-12-24 20:46:44 601

原创 一看就会,一写就废——二分法

二分法相对于其它算法来说是比较简单的,很容易理解,但是如果要完整的写出二分法的代码,还是有点挑战性的,可能会出现各种各样的问题,包括死循环、边界定义不清晰等,另外就是,可能传统的二分法我们都能理解,但是换了一下题目就不会用二分法的思想去解答了,以下附上个人比较喜欢的二分法模板:public class 二分查找 { /** * 递归法 */ public int search(int[] arr, int target, int left, int right) {

2020-12-22 19:32:46 407 4

原创 TOP K问题及使用优先队列实现堆

TOP K是一个非常经典的算法问题,灵活运用了排序算法,也是一个高频面试点,不仅要掌握TOP K思想,还应该学会使用该思想解决实际问题,剑指Offer中的“最小的k个数”就是TOP K问题的实际运用Top K问题是指在N个数的无序序列中找出最大的K个数或者最小的K个数,而其中的N往往都特别大,对于这种问题,最容易想到的办法当然就是先对其进行排序,然后直接取出最大或最小的K个元素就行了,但是这种方法往往是不可靠的,不仅时间效率低而且空间开销大,排序是对所有数都要进行排序,而实际上,这类问题只关心最大或者最小

2020-12-20 23:52:01 608

原创 八大排序算法

以下总结了常见的八大排序算法,对于编码比较复杂的堆排序、归并排序和基数排序,则只给出了排序的思想,没有附上代码八大排序算法的时间复杂度和空间复杂度:八大排序算法的稳定性总结:①稳定:冒泡排序、插入排序、归并排序、基数排序②不稳定:选择排序、快速排序、希尔排序、堆排序常见的算法时间复杂度由小到大依次为:Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<Ο(2^n) <Ο(n!)一 冒泡排序public void bubbleSort(int[] a){ //

2020-12-20 17:31:55 1024

原创 深信服面经

一面:10.13-视频面 (40min)简单的问实习,做过什么项目,实现了哪些功能?Spring Bean的生命周期?Spring容器每次启动的时候,都会触发每个bean的实例化吗?单例作用域和原型作用域的区别?如果要给每个bean都加一个字段属性,如何实现?Mybatis的一级缓存和二级缓存,二级缓存有什么缺点?讲讲HashMap、ConcurrentHashMap、Hashtablejdk1.8为什么引进红黑树而不用其它的平衡二叉树?怎么对一个Map集合进行遍历,这样遍历有什么好处?

2020-10-26 09:50:36 1775 4

原创 唯品会一面

面试时间:10.09-14:00-视频面 (35min)介绍项目,项目中遇到的问题以及如何解决?项目中是否有涉及并发操作,有没有在项目中用到多线程和锁?举一个例子团队合作开发项目,用到什么版本控制工具,当发生冲突的时候如何解决?有看过框架的源码吗,讲一段你比较熟悉的框架源码,底层涉及到哪些知识谈一谈Spring的AOP跟面向对象的OOP,好处以及使用场景项目开发中,如何实现事务管理?平时用到哪些集合类?什么时候用ArrayList什么时候用HashMap?如果HashMap存放了对象,如何根

2020-10-24 00:04:51 538 1

原创 趣丸面经(TT语音)

今天,一大早的,就收到了TT的感谢信????,果然,结果没出来之前,一切都是不定数,14号现场面完二面,自我感觉良好,最后的编程题和场景题也都做出来了,二面的面试官对我好像也还挺满意,笑嘻嘻的跟我说回去等消息,很快就有结果,结果等来了感谢信~,问了内部员工,说校招多少也会考虑学历,好吧????一面-现场面(30min)两个面试官,全程问实习经历,做了哪些工作,讲功能实现,讲系统的业务背景,整套开发流程是怎么样的,如何与测试运维打交道,用到哪些开发工具,使用过哪些第三方平台,Docker部署相关,使用到哪

2020-10-20 21:30:31 2700 5

原创 腾讯一面(正式开启秋招)

八月十二号,收到了腾讯一面,体验极好,为什么说是正式开启秋招呢,当时这个时间段是在实习中,突如其来的腾讯一面有点不知所措,是秋招的第一场面试,也是通过这场面试给自己敲醒了一个警钟,意识到自己基础的薄弱,一面问的不难,但是很多基础知识点像java锁、epoll和select的区别都没能答上来,虽然回答得很一般,但是面试官人很好,一直引导我,面试时长还是达到了50分钟左右,这一场面试虽然是凉凉,但是对于我的帮助是很大的,面试完之后,进行了总结复盘,也规划了复习路线,正式开启了秋招~~~以下附上面经:讲一下

2020-10-18 11:19:08 582 2

原创 速游面经(游戏服务端开发工程师)

一面:9.15,线下面一面更像HR面,是一个女面试官,应该是HR,不是技术官,问的专业知识也很浅,没有深挖我们这个这个岗位是需要转语言的,可以接受吗?(转Erlang)你的GPA挺高的,平时是怎么学习的,有什么好的的学习方法吗?目前有拿到其它公司的offer吗,你的期望薪资是多少?为什么想来面试我们公司?你的大学四年是如何规划的,对未来的职业发展道路有明确的规划吗?实习期间,你最大的收获是什么,技术上有哪些提升?个人博客网站上发布了多少篇文章,以哪些内容为主?你认为自己对数据结构与算法这

2020-10-18 11:08:59 2010

原创 土巴兔面经

一面:10.16(25min)介绍一个比较熟悉的项目,讲一个遇到的问题及如何解决,然后根据我的这个问题进行深入讨论,包括指出了我原先解决方案的一些不合理性,并引导我想出新的解决思路,大概持续了15min设计一个线程池需要考虑哪些因素线程池的任务执行流程终面(包括二轮技术面+HR面):10.18(40min)终面是技术总监和HR一起进行的,技术官大概问了30分钟,HR大概问了10分钟二面更多的是考察源码和一些底层的东西,很多问题都是围绕着源码和底层原理进行探讨的对于一些框架的源码有去了解和

2020-10-18 10:54:07 382 2

原创 学习建议(to小班)

很多同学说,大学才上了几个月就大二了,感觉很迷茫,之前也有同学找我聊过关于选方向、进实验室之类的问题,一直想着给大家写点什么,由于之前忙于准备秋招,一直没腾出时间来,以下是我个人关于Java后端开发方向的学习建议,希望能对走专业路线的同学有所帮助!1.尽早定好方向对于我们专业来说,可能很多同学以为只有前端和后台两个方向,其实不然,还有测试、运维、产品等,但是前端和后台无疑是更多人的选择,相对来说,这两个方向在很多公司中的岗位需求也会比较大;另外,对于语言的选择,我们学校开设的两门编程语言是C语言和Jav

2020-10-06 22:32:54 605 4

空空如也

空空如也

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

TA关注的人

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