- 博客(35)
- 收藏
- 关注
原创 腾讯一面凉经
8.27参加腾讯一面1.介绍实习2.如何保证消息被消费3.tcp三次握手4.如何防止syn攻击?如果不全是攻击有正常用户呢?队列行吗5.进程线程区别6.select与epoll7.linux常见命令,ps后面有个字段是查内存的注意过吗?8.top指令有一字段(忘了是啥了)是干啥的?9.线程安全一般如何保证?10.手写LRU...
2021-08-27 13:26:55
277
原创 百度提前批一面整理
2021.8.1参加的百度提前批面试,整体感觉百度面试官很nice1.聊实习,在快手都干了啥2.聊项目,介绍自己做的项目3.垃圾收集器,CMS,G14.http握手机制、缓存机制5.udp使用场景6.linux会使用哪些命令7.线程池基本参数、一个线程被提交到线程池的流程8.数据库索引数据结构有哪几种,分别有哪些优势9.说一些你对rpc与api的理解,讲讲区别10.谈谈ioc与aop并说明一下两者都有哪些使用场景算法题:1.链表反转2.带重复的有序数组找第一个等于目标值的数的下标
2021-08-11 17:12:04
305
原创 java面试常见知识点整理
本人现在计算机专业硕士一年级,菜鸡一枚,结合前段时间面试经历,整理一下java后端面试常见知识点。本文会持续更新一、java基础部分1.迭代器java容器中,最定级的两个接口之一的Collection包含有两个基本方法。其中一个方法用来添加元素,另外一个用来获取迭代器,可见迭代器有多重要了。Iterator接口包含4个方法:java迭代器可以被认为是在两个元素之间。初始时在第一个元素前面,每调用一次就会越过下一个元素,并返回刚刚越过的那个元素的引用。Iterator接口的remove方法会
2021-07-13 14:42:50
662
原创 Java Protocol Buffer教程
一 、为什么要使用Protocol Buffer假设我们要创建一款非常简单的“地址簿”应用程序,它可以从文件中读取和写入人们的联系方式。地址簿中的每个人都有一个姓名、ID、电子邮件地址和联系电话号码。如何序列化和检索这样的结构化数据?使用Java序列化。有许多众所周知的问题自己发明一种特别的方法将数据项编码为单个字符串。例如将4个int编码为“12:3:-23:67”。这是一种简单而灵活的方法,尽管它确实需要编写一次性编码和解析代码,而且解析会带来较小的运行时成本。这对于编码非常简单的数据最有效
2021-07-12 20:13:33
1163
原创 rabbitmq配置guest用户远程访问失败
因实验需要,需要将rabbitmq自带的guest用户设置为可以远程访问(默认的guest用户只能本地使用)按照网上的博客,在rabbitmq的根目录下的etc/rabbitmq/下创建,rabbitmq.conf文件,并写入如下配置[{rabbit, {loopback_users, []}]}]但是启动的rabbitmq的时候会报错,错误信息显示: Error during startup: {error,failed_to_read_advanced_configuration_file
2021-06-15 15:30:11
2750
2
原创 reids持久化异常:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persis
出现这个异常时redis就行持久化保存时出现了异常,我的机器是centos,redis是装载为了服务输入redis-cli进入redis控制菜单redis-cli获取日志文件地址:config get logfile127.0.0.1:6379> config get logfile1) "logfile"2) "/home/logs/myredis/redis_log.log"可知,我机器的日志文件在/home/logs/myredis/redis_log.log中,用vim
2021-06-14 17:53:47
157
原创 Linux root 用户 Permission denied
学生党,买了一台云服务器,不知道抽什么风,好多命令我即便用root用户也没权限修改比如查看端口号[root@VM-8-10-centos bin]# netstat -anp |grep 18888-bash: /usr/bin/netstat: Permission denied我明明是root用户了啊。先查看netstat文件的权限发现root用户没有执行权限,先采用chmod更改一波权限试试:还是没权限。于是只能采用大杀器chattr了,用之前我们先使用lsattr查看一下,发现有个
2021-06-11 11:26:27
7563
3
原创 推荐算法之协同过滤
一、协同过滤算法简介所谓协同过滤算法,其基本思想就是根据用户之前的喜好及其他兴趣相近的用户的选择来给用户推荐物品(基于对用户历史行为数据的挖掘发现用户的喜好偏向, 并预测用户可能喜好的产品进行推荐)。目前应用广泛的协同过滤算法是基于邻域的方法,而这种方法主要有下面两种算法:基于用户的协同过滤算法(UserCF): 给用户推荐和他兴趣相似的其他用户喜欢的产品基于物品的协同过滤算法(ItemCF): 给用户推荐和他之前喜欢的物品相似的物品二、基于用户的协同过滤基于用户的协同过滤算法主要包括两个步
2021-06-09 20:54:30
1116
原创 springboot+idea热部署
近来在使用idea做springboot的项目,但是发现每次修改之后我都需要重新将项目关闭再开启,这样比较繁琐,发现通过热部署的方式让我们可以一边修改我们的项目,然后在页面中直接通过刷新展示出来一、设置pom.xml文件首先是把下面代码在<dependencies>中 <!--添加热部署--> <dependency> <groupId>org.springframework.boot</groupId>
2021-06-06 19:01:11
99
2
原创 SpringBoot 404
之前搭了一个SpringBoot的项目,可不管怎么访问都是404。网上找了很多博客,有的说启动类不在那个父包的,有的说是@RequestMapping参数不对,我检查了一下都没问题。后来仔细检查代码,发现,居然是启动类中的包名没改过来,和外面的不一样。但是在外面居然不显示报错。。。改过来后,一切正常...
2021-06-06 12:23:23
126
原创 快手JAVA实习生二面面经
6月三号下午五点视频面试,面试官很nice自我介绍做过哪些比较大的项目?这个我主要回答了研究生阶段和老师做的一个文章推荐系统,包括爬虫啊,文章推荐模型的的构建啊之类的,面试官就具体细节和我聊了很久。有哪些基本的数据结构?分治法与动态规划具体有哪些区别?JAVA中迭代器是如何实现的?数据库的索引采用什么数据结构?为什么采用B+树这种结构?B+树取数据的时候是取一条还是取一块?讲一下HashMap的原理。写一道算法,无序数组中第k大的元素写一道算法, 判断一个二叉树是不是镜像二叉树.
2021-06-04 15:05:18
382
原创 二、自旋锁 VS 适应性自旋锁
在介绍自旋锁前,我们需要介绍一些前提知识来帮助大家明白自旋锁的概念。阻塞或唤醒一个Java线程需要操作系统切换CPU状态来完成,这种状态转换需要耗费处理器时间。如果同步代码块中的内容过于简单,状态转换消耗的时间有可能比用户代码执行的时间还要长。在许多场景中,同步资源的锁定时间很短,为了这一小段时间去切换线程,线程挂起和恢复现场的花费可能会让系统得不偿失。如果物理机器有多个处理器,能够让两个或以上的线程同时并行执行,我们就可以让后面那个请求锁的线程不放弃CPU的执行时间,看看持有锁的线程是否很快就会释放锁
2021-06-01 18:15:17
297
原创 数据库隔离级别
数据库一共有四种隔离级别,分别是:读未提交:这种事务隔离级别下,select语句不加锁。允许读取尚未提交的数据变更,可能会导致脏读、幻读、不可重复读。读已提交:允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读和不可重复读仍有可能会发生可重复读:Mysql默认的隔离级别,可避免脏读,不可重复度的发生。对同一字段多次读取的结果都是一致的。可能会发生幻读串行化:最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重
2021-06-01 16:20:32
86
原创 Keras load_mode ValueError: Unknown layer: TokenEmbedding
Keras load_mode ValueError: Unknown layer: TokenEmbedding出现这个问题的原因是因为模型使用了自定义层。具体到我的代码的原因是因为我使用了keras_bert的预训练模型。我们要把我们自定义层的类名和具体的类都作为custom_objects 参数传入load_model方法中。具体到我本人的代码如下:from keras.models import Modelfrom keras.models import load_modelfrom ker
2021-05-25 20:08:52
223
原创 @Autowired查找Bean的规则
首先,根据类型找到对应的Bean如果对应的类型的Bean不是唯一的,那么它会根据其属性名称和Bean的名称进行匹配如果匹配的上,就会使用该Bean,匹配不上就会抛出异常
2021-05-01 13:30:40
796
转载 JVM垃圾回收知识点整理
一、JVM的内存分配Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap).从垃圾回收的角度,由于现在收集器基本都采用分代垃圾收集算法,所以 Java 堆还可以细分为:新生代和老年代:再细致一点有:Eden 空间、From Survivor、To Survivor 空间等。进一步划分的目的是更好地回收内存,或者更快
2021-04-28 17:42:51
147
转载 JVM面试突击
转载自https://snailclimb.gitee.io/javaguide/#/docs/java/一、概述对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。二、运行时数据区域Java
2021-04-28 17:11:45
119
原创 Spring @ComponentScan过滤器详解
使用@ComponentScan可以让Spring取扫描Bean并注册到Spring容器中,如果我们想对这扫描添加一定的限制可以使用过滤器。package service;import org.springframework.stereotype.Service;import pojo.User;@Servicepublic class UserService { public void printUser(User user){ System.out.println(
2021-04-23 21:12:18
521
转载 Spring @ComponentScan源码解读
@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})@Documented//在一个类中可重复被定义@Repeatable(ComponentScans.class)public @interface ComponentScan { //定义扫描的包 @AliasFor("basePackages") String[] value() default {}; //定义扫描的包 @AliasFor
2021-04-23 20:55:35
99
原创 Spring 使用@Component装配Bean
一、通过扫描装配你的Bean如果一个个的Bean使用注解@Bean注入Spring IoC容器中,那将是一件很麻烦的事情。好在Spring还允许我们进行扫描装配Bean到IoC容器中,对于扫描装配而言使用的注解是@Component和@ComponentScan。@Component是标明哪个类被扫描进入Spring IoC容器@ComponentScan则是标明采用何种策略去扫描装配Bean。package config;import lombok.Data;import org.sprin
2021-04-23 20:43:53
366
原创 全注解下的Spring IoC控制反转详解
控制反转IoCIOC是一种通过描述来生成对象获取对象的技术,而这个技术不是Spring 甚至不是Java独有的。对于Java初学者更多的时候所熟悉的是使用new关键字来创建对象,而在Spring中则不是,它是通过描述来创建对象一个系统可以生成各种对象,并且这些对象都需要进行管理。还值得一提的是,对象之间并不是孤立的,它们之间还可能存在依赖的关系。例如,一个班级是由多个老师和同学组成的,那么班级就依赖于多个老师和同学了。为此Spring还提供了依赖注入的功能,使得我们能够通过描述来管理各个对象之间的关系。
2021-04-23 20:24:16
124
原创 Spring Boot参数来源
事实上,Spring Boot的参数配置除了使用properties文件之外,还可以使用yml文件等,它会以下列的优先级顺序进行加载:命令行参数来自java:comp/env的JNDI属性Java系统属性(System.getProtires());操作系统环境变量RandomValuePropertySource配置的random.*属性值jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件;
2021-04-23 16:44:23
144
原创 深入解析Spring Boot的依赖和自动配置
Spring Boot不需要像传统Spring MVC项目一样需要一些很复杂的配置,那你们有没有想过到底为什么是这样的呢?下面以最常用的Spring MVC为例进行说明。首先打开Maven的本地仓库,找到对应Spring Boot的文件夹,可以看到如下图所示的目录。这里先谈spring-boot-start-web的内容,未来还会谈到spring-boot-autoconfigure文件夹的内容,所以图 2-10 中一并加了框。打开spring-boot-start-web文件夹(我的在C:\User
2021-04-23 16:39:25
222
原创 java多线程之ThreadLoal详解
一、ThreadLocal简介多线程访问同一个共享变量时特别容易出现并发问题,特别是在多个线程需要对一个共享变量进行写入时。为了保证线程安全,一般使用者在访问共享变量时需要进行适当的同步同步一般是通过加锁来实现的,但这对用户有一定要求,加重了使用者的负担.使用ThredLocal就可以做到,创建一个变量后,每个线程对其访问的时候访问的是自己创建的变量.如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会拥有一个这个变量的副本.操作的时候也是操作的属于自己这个线程的变量,从而避免了
2021-04-19 20:29:29
205
原创 java守护线程与用户线程
一、守护线程与用户线程的定义java中线程分为两类,守护线程和用户线程。区别:区别之一是当最后一个非守护线程结束时,JVM会正常退出,而不管当前是否有守护线程,也就是说守护线程是否结束并不影响JVM的退出。言外之意,只要有一个用户线程还没结束,正常情况下JVM就不会退出。二、创建一个守护线程如下所示,我们可以通过调用一个线程的setDameon函数来将一个线程设置为守护线程。public class DameonThreadTest { public static void main(St
2021-04-19 19:44:21
138
原创 Spring @Bean 注解的使用
一、什么是bean1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性;3、规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;4、把Bean理解为类的代理或代言人(实际上确实是通过反射、代理来实现的),这样它就能代表类拥有该拥有的东西了5、我们都在微博上@过某某,对方会优先看到这条信息,并给你反馈,那么在Spring中,你标识一个@符号,那么Spring就会
2021-04-19 19:26:18
521
原创 非显示注入方式-Spring4.3后的新特性
最近阅读《Spring实战》源码,发现了这个问题public class OrderController { private OrderRepository orderRepo; private OrderProps props;// Spring4.3+之后,constructor注入支持非显示注入方式。// 在 Spring4.x 中增加了新的特性:如果类只提供了一个带参数的构造方法,// 则不需要对对其内部的属性写 @Autowired 注解,Spring 会自动为你注
2021-04-19 18:10:28
394
原创 @Component和@Bean区别
最近在学习《Spring 实战》的过程中,发现有两个注解作用很相似就是@Component和@Bean这两个。这两个的作用都是告诉Spring要为这个类创建一个bean。于是乎本人就查询了一些资料,先看一下两者各自的作用:@Component注解会表明一个类作为组件类(和@Controller,@Service,@Repository差不多),并告知要为这个类创建bean。@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring上下文中的bean。通常方法体中包含了最终
2021-04-19 17:14:41
194
原创 Spring Intergration应用
一、Spring Integration功能概览集成流是由一个或多个如下介绍的组件组成的。在继续编写代码之前,我们先看一下这些组件在集成流中所扮演的角色:通道(channel):将消息从一个元素传递到另一个元素。过滤器(filter):基于某些断言,条件化地允许某些消息通过流。转换器(transformer):改变消息的值和/或将消息载荷从一种类型转换成另一种类型。切分器(splitter):将传入的消息切割成两个或更多的消息,然后将每个消息发送至不同的通道;聚合器(aggregator):切
2021-04-18 16:42:59
1434
1
原创 为Spring搭建支持Kafka消息的环境
Kafka是与ActiveMQ、Artemis或Rabbit类似的消息代理,但Kafka有一些独特的技巧。Kafka设计为集群运行,从而能够实现很强的可扩展性。通过将主题在集群的所有实例上进行分区(partition),它能够具有更强的弹性。RabbitMQ主要处理Exchange中的队列,而Kafka仅使用主题实现消息的发布/订阅。更进一步来讲,每个主题可以划分为多个分区。在这种情况下,集群中的每个节点是某个主题一个或多个分区的首领,但并不是整个主题的首领。主题的责任会在所有节点间进行拆分。下图阐述了
2021-04-18 12:56:31
187
原创 三、在Spring中使用RabbitMQ
添加RabbitMQ到Spring中1.添加RabbitMQ依赖在使用Spring发送和接收RabbitMQ消息之前,我们需要将Spring Boot的AMQPstarter依赖添加到构建文件中<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency&g
2021-04-17 17:16:19
1385
转载 一、RabbitMQ 消息队列简介
RabbitMQ 消息队列1.什么叫消息队列消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。消息队列的使用情况有很多,比如举一个常见的例子。用户点击【下单】按钮之后的业务逻辑
2021-04-17 16:16:02
132
原创 Pycharm创建Django项目
新建项目选择django控制台输入下面的代码完成项目创建python manage.py startproject njau在项目目录下新建一个view.py文件在view.py中写入from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.hello),]接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 url
2021-03-11 19:36:15
182
原创 蓝桥 基础练习 矩阵乘法 python
问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22输入格式 第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值输出格式 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开样例输入2 21 23 4样例输出7 101
2021-01-07 10:45:12
349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人