![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 85
普通网友
这个作者很懒,什么都没留下…
展开
-
【Java设计模式实战系列】好的单例模式是怎样的,2021吊打面试官系列
由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象,单例模式无疑可以提高系统的性能。允许可变数目的实例。我们可以基于单例模式进行扩展,使用与单例控制相似的方法来获得指定个数的对象实例。缺点=================================================================由于单例模式中没有抽象层,因此单例类的扩展困难单例类的职责过重,在一定程度上违背了“单一职责原则”。因为单例类既充当了工厂..原创 2021-12-20 17:53:20 · 91 阅读 · 0 评论 -
【Java知识点详解 3】序列化与反序列化(1),springcloud高级面试题
(2)反序列化作用根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。![](https://img-blog.csdnimg.cn/2020062813170897.png?x-oss-process=image/wate《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享rmark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_a原创 2021-12-20 17:49:10 · 194 阅读 · 0 评论 -
【Java技术探索】,雷神springboot笔记
}Unsafe与CAS在ConcurrentHashMap中,随处可以看到Unsafe, 大量使用了Unsafe.compareAndSwapXXX的方法,这个方法是利用一个CAS算法实现无锁化的修改值的操作,他可以大大降低锁代理的性能消耗。这个算法的基本思想就是不断地去比较当前内存中的变量值与你指定的一个变量值是否相等,如果相等,则接受你指定的修改的值,否则拒绝你的操作。因为当前线程中的值已经不是最新的值,你的修改很可能会覆盖掉其他线程修改的结果。这一点与乐观锁,SVN的思想是比较类似的原创 2021-12-20 17:47:43 · 280 阅读 · 0 评论 -
「Redis 系列」那些你不知道的Redis配置文件详解,毕向东java基础视频教程
daemonize=========是否以守护进程的方式运行,默认是 no,我们需要的话可以修改成 yespidfile=======以后台方式运行 redis ,我们就需要制定一个 pid 文件loglevel========日志等级291 # Specify the server verbosity level.292 # This can be one of:293 # debug (a lot of information, useful for development/tes原创 2021-12-20 17:46:04 · 832 阅读 · 0 评论 -
《重学数据结构》之什么是二叉树,2021最新Java面试题目
节点到叶节点的最长路径(边数)树的高度根节点的高度节点的深度根节点到该节点所经历的边的个数节点的层数节点的深度+1二叉树(Binary Tree)===============================================================================最常用的树结构。每个节点最多有两个子节点:左子节点,右子节点。满二叉树叶节点全在最底层,除叶节点外,每个节点都有左右两个子节点完全二叉树叶节点都在最底下两原创 2021-12-20 17:43:48 · 77 阅读 · 0 评论 -
Zookeeper(从7个方面来了解Zookeeper基础概念),进程线程面试题总结
ZooKeeper 是一个开源的分布式协调服务,ZooKeeper框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。原语: 操作系统或计算机网络用语原创 2021-12-20 17:41:53 · 1261 阅读 · 0 评论 -
ZooKeeper的十二连问,你顶得了嘛?,mysql面试题及答案2021
可以基于Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。Zookeeper的用途:命名服务、配置管理、集群管理、分布式锁、队列管理用途跟功能不是一个意思咩?2. 面试官:说下什么是命名服务,什么是配置管理,又什么是集群管理吧小菜鸡的我(幸好我刷过面试题),无所畏惧命名服务就是:命名服务是指通过指定的名字来获取资源或者服务地址。Zookeeper可以创建一个全局唯一的路径,这个路径就可以作为一个名.原创 2021-12-20 17:40:00 · 136 阅读 · 0 评论 -
【并发编程系列2】synchronized锁升级原理分析(偏向锁-轻量级锁-重量级锁)
这里的输出结果我们预期是1000,然而实际上并不一定会输出1000,产生这种状况的原因是存在如下场景:1、线程1获取count为0,这时候他去执行count++(非原子操作)2、线程2又去获取count,这时候因为线程A还没有返回结果,所以依然获取到03、线程1执行count++后得到count=1,写回内存4、线程2执行count++后得到count=1,写回内存5、线程3去获取count,这时候获取到count为1,然而实际上已经执行过2次count++操作了假如线程是按照上面的1-5个步骤原创 2021-12-19 18:45:15 · 107 阅读 · 0 评论 -
【嵌入式实验】,linux入门基础教程pdf
方式2:编程操纵数据库实验以外(有兴趣可以看看)实验二:嵌入式Qt实验一、QT安装更多笔记内容可以查看 计算机专业基础笔记目录一、实验目的=========================================================================理解嵌入式软件移植的基本方法,掌握 sqlite 数据库软件移植的步骤,掌握 sqlite 开发的两种方式 — 命令模式和 C代码开发模式 的使用方法,并编程实现简单通讯录查询实验。二、实..原创 2021-12-19 18:42:55 · 682 阅读 · 0 评论 -
【Spring框架03】DI依赖注入,java面试必问问题
}public void setUserDao(UserDao userDao) {this.userDao = userDao;}}2.编写引用的对象类public class UserDao {public void add(){System.out.println(“UseDao.add>>>>>>>>>”);}}3.spring.xml配置标签内 name表示创建对象的名字标签内 ref表示中的id<?xml v原创 2021-12-19 18:41:19 · 536 阅读 · 1 评论 -
【SpringBoot搭建个人博客】- 相册管理,10年Java开发经验
insert into myblog.t_picture (picturename,picturetime,pictureaddress,picturedescription)values (#{picturename},#{picturetime},#{pictureaddress},#{picturedescription})select * from myblog.t_picture p where p.id = #{id}update myblog.t_pictureset...原创 2021-12-19 18:39:17 · 651 阅读 · 0 评论 -
【SpringBoot搭建个人博客】- 框架搭建,dubbo+zookeeper原理
创建好SpringBoot项目后,框架自带的是properties文件,这里使用yml文件进行配置,所以将application.properties改为application.yml文件,并进行相关配置。 我们在开发项目的时候,一般开发环境和部署环境会不一样,为了加以区分,可以在yml配置文件中体现出来,所以分为application-dev.yml(开发环境)、application-pro.yml(部署环境),而为了能够让SpringBoot知道用的是哪个配置文件,需要在application.yml原创 2021-12-19 18:37:09 · 1136 阅读 · 0 评论 -
【SpringBoot 框架】- SpringBoot 原理分析,我总结了70道大厂高频Java面试题及解析
spring-boot-starter-parent 是Spring Boot的父级依赖,是一个特殊的starter,它用来提供相关的Maven默认依赖。使用它之后,常用的包依赖可以省去version标签。咱们可以直接对源码进行分析,来看看源码,就拿上篇博文中搭建 SpringBoot 环境的代码,使用 idea 按住 Ctrl 点击 pom.xml 中的spring-boot-starter-parentorg.springframework.bootspring-boot-dependencie原创 2021-12-19 18:35:41 · 136 阅读 · 0 评论 -
【Spring Cloud 6】注册中心Eureka,java基础入门
7、GetRegistry:获取注册列表信息Eureka Client从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒)更新一次。每次返回注册列表信息可能与Eureka Client的缓存信息不同,Eureka Client自动处理。如果由于某种原因导致注册信息列表信息不能及时匹配,Eureka Client则会重新获取整个注册表信息。Eureka Server缓存注册列表信息,整个注册表以及每个应用程序的信息进行了压缩,压缩内容和原创 2021-12-19 18:34:03 · 114 阅读 · 0 评论 -
【MyBatis系列10】写给大忙人看的,mongodb入门到精通
前言MyBatis日志分类简单谈谈SLF4JMyBatis日志实现原理日志的解析LogFactoryjdbc log总结前言===============================================================日志,在我们开发中是一个非常重要的话题,良好的日志打印可以帮助我们快速的定位问题,可能现在我们开发用到最多的日志框架就是slf4j了,但是日志还有其他很多优秀的框架,比如《一线大厂Java面试题..原创 2021-12-19 18:29:51 · 675 阅读 · 0 评论 -
【MyBatis 1】SQL注入,springboot基础教程
数据类型检查,sql执行前,要进行数据类型检查,如果是邮箱,参数就必须是邮箱的格式,如果是日期,就必须是日期格式;只要是有固定格式的变量,在SQL语句执行前,应该严格按照固定格式去检查,确保变量是我们预想的格式,这样很大程度上可以避免SQL注入攻击。如果上述例子中id是int型的,效果会怎样呢?无法注入,因为输入注入参数会失败。比如上述中的name字段,我们应该在用户注册的时候,就确定一个用户名规则,比如5-20个字符,只能由大小写字母、数字以及汉字组成,不包含特殊字符。此时我们应该有一个函数来完成统一原创 2021-12-19 18:27:58 · 1022 阅读 · 0 评论 -
原生AOP的实现以及shior框架授权,图文并茂,收藏学习,java程序设计实用教程第五版答案
@Bean是描述的方法为spring要管理的对象,方法名默认为bean的名称,@Conponent是能描述类1项换方法名就@Bean(“aaaa”)2配置过滤规则,例如对那些请求进行认证,那些请求可以直接放行。spring容器在调用这个方法的时候,会按类型,为方法参数注入一个对象,相当于在方法上加了一个@AuTowired,如果又多个对象,可以linkedHashMap是底层要求的接下来写对map的要求下一步写一个方法可以返回登入页面。在配置controller下写返回页面就是处理所有页原创 2021-12-17 21:30:57 · 260 阅读 · 0 评论 -
剖根问底:Java 不能实现真正泛型的原因是什么?,多线程并发解决方案面试题
也就是说,按照我们的假设:如果 Java 能够实现真正意义上的泛型,两个 method() 方法是可以同时存在的,就好像方法重载一样。public class Cmower {public static void method(String list) {}public static void method(Date list) {}}为什么 Java 不能实现真正意义上的泛型呢?背后的原因是什么?第一,兼容性Java 在 2004 年已经积累了较为丰富的生态,如果把现有的类修改为泛型类,原创 2021-12-17 21:23:24 · 113 阅读 · 0 评论 -
初识多线程,springboot微服务架构论文
2.1操作系统管理进程2.2进程的组成2.3时间片2.4并行和并发2.5内核态和用户态2.6进程状态三、多线程3.1线程是什么?3.2进程和线程的区别3.3Java实现多线程3.4通过代码演示多线程提高效率前言=====================================================================我们先简单介绍操作系统来进一步了解多线程一、操作系统============...原创 2021-12-17 21:19:34 · 271 阅读 · 0 评论 -
分布式之消息队列复习精讲,java程序员面试宝典百度云
本文大概围绕如下几点进行阐述:为什么使用消息队列?使用消息队列有什么缺点?消息队列如何选型?如何保证消息队列是高可用的?如何保证消息不被重复消费?如何保证消费的可靠性传输?如何保证消息的顺序性?我们围绕以上七点进行阐述。需要说明一下,本文不是《消息队列从入门到精通》这种课程,因此只是提供一个复习思路,而不是去教你们怎么调用消息队列的API。建议对消息队列不了解的人,去找点消息队列的博客看看,再看本文,收获更大正文–1、为什么要使用消息队列?分析:一个用原创 2021-12-17 21:15:27 · 122 阅读 · 0 评论 -
公司来了一个low逼程序员,进程线程面试题总结
往期推荐这400道面试题,决定了你去BAT还是TMDSpringBoot统一日志处理原理前言某天你新入职一家公司,领导说第一件事,你先把自己的环境搭建好吧。于是你装了JDK,装好maven,装好IDEA开发环境,导入工程和项目,然而发现整个工程一片飘红,jar包冲突,项目path不对,maven包找不到依赖。。。各类问题纷至沓来,半天时间过去了,你满头大汗,项目还是不能启动?怎么办?身边陌生的同事不时投来询问的目光,仿佛在说,“来了一个low逼,一个开发环境都不会搞”。这是我第一天去上班的情景原创 2021-12-16 19:25:22 · 253 阅读 · 0 评论 -
全靠这份阿里大厂Java面试真题手册,让我成功拿下12家大厂offer
前后端完全分离与Rest规范中间件===redis的过期策略以及内存淘汰机制缓存穿透和缓存雪崩数据库===MVCC(多版本并发控制)间隙锁与幻读![全靠阿里内部(珠峰版)Java面试笔记,成功拿下12家大厂offer](http《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享s://img-blog.csdnimg.cn/img_convert/原创 2021-12-16 19:23:07 · 319 阅读 · 0 评论 -
你要问我应用层?我就和你扯扯扯,高级java工程师面试
定时定时是什么意思?定时能够确保网络中两个应用程序的收发是否能够在指定的时间内完成,这也是应用程序选择运输服务需要考虑的一个因素,这听起来很自然,你网络应用发送和接收数据包肯定要加以时间的概念,比如在游戏中,你一包数据迟迟发送不过去,对面都推塔了你还卡在半路上呢。安全性最后,选择运输协议一定要能够为应用程序提供一种或多种安全性服务。因特网能够提供的运输服务说完运输服务的选型,接下来该聊一聊因特网能够提供哪些服务了。实际上,因特网为应用程序提供了两种运输层的协议,即 UDP&nbs.原创 2021-12-16 19:19:32 · 1959 阅读 · 1 评论 -
你知道如何用面向对象思想写好并发编程吗?,Java成长路线图
}}当然,实际工作中,很多的场景都不会像计数器这么简单,经常要面临的情况往往是有很多的共享变量,例如,信用卡账户有卡号、姓名、身份证、信用额度、已出账单、未出账单等很多共享变量。这么多的共享变量,如果每一个都考虑它的并发安全问题,那我们就累死了。但其实仔细观察,你会发现,很多共享变量的值是不会变的,例如信用卡账户的卡号、姓名、身份证。对于这些不会发生变化的共享变量,建议你用 final 关键字来修饰。 这样既能避免并发问题,也能很明了地表明你的设计意图,让后面接手你程序的兄弟知道,你已经考虑过这些共享变原创 2021-12-16 19:17:48 · 77 阅读 · 0 评论 -
你未必真的了解线程安全,别骗自己,来看下怎么实现线程安全
public void threadMethod(int j) {int i = 1;j = j + i;}1234567大家觉得这段代码是线程安全的吗?毫无疑问,它绝对是线程安全的,我们来分析一下,为什么它是线程安全的?我们可以看到这段代码是没有任何状态的,就是说我们这段代码,不包含任何的作用域,也没有去引用其他类中的域进行引用,它所执行的作用范围与执行结果只存在它这条线程的局部变量中,并且只能由正在执行的线程进行访问。当前线程的访问,不会对另一个访问同一个方法的线程造成任何的影响。两个线原创 2021-12-16 19:15:38 · 61 阅读 · 0 评论 -
你可能没听说过的8个堪称神器的网站,java分布式架构视频百度云
1、 IData-知识检索=============大学生涯中大家都会用到各种文献资料往往都是从知网下载的,但如果不在学校或者学校没有购买知网权限,我们就需要一个新的文献下载工具——IData。如果需要查询相关文献,可以在IData网站中直接检索;需要下载的话,不需要知网高额的费用,只需要1块钱就可以一天内无限次的下载论文,对于学生来说非常实惠啦!链接:cn-ki.net/2、 搞定设计=======社团、课程设计、创业比赛、路演答辩……总需要各种各样的海报、PPT、配图等等,能够方便地利用原创 2021-12-16 19:14:00 · 258 阅读 · 0 评论 -
任正非:为什么华为选择与西工大合作,而没选清华北大,mysql连接查询原理
西工大同清北等13所高校一样,在今年的5月22日被美国商务部列入实体名单,同时被限制使用美国的相关正版软件,而且很多之前和美国的合作也终止,不能用一些软件,同时也不能购买许多的美国重要零部件。导致西北工业大学被列入美国的实体清单原因有两点?一、和国家有关,西北工业大学是一所可以说是拥有保密级的高校,其拥有很多的科研项目,直接目的就是为中国国防企业准备,是一所为巩固中国国防事业做出重要贡献的力量,因为西工大培养的优秀人才,更是直接推动了我们国家的科技进步。二、和华为有关,西工大其实和华为一直都有着很.原创 2021-12-16 19:12:01 · 3676 阅读 · 0 评论 -
他写代码如入定,人称阿里“扫地僧,java自学教程百度云
据说在成为合伙人之前,蔡景现如常坐在电脑前伏案工作,突然被马云等一众合伙人拉到会议室,此时他才得知董事会已经决定将他升为阿里巴巴合伙人之一。缓过神后,蔡景现当场目瞪口呆,迟迟的蹦出一句“让我当合伙人?可我只会写代码啊。”由此可见,一心只想写代码,两耳不闻窗外事的他,没有意识到这种“只会写代码”的纯粹,正是他得以入驻阿里合伙人的重要条件之一。至此,人们方知,原来阿里存在这样一位如扫地僧般的人物。这一年,他41岁,正值壮年,以26亿身家登上胡润财富榜。非科班出身的蔡景现更像是一个传奇因为谁也没有想原创 2021-12-16 19:09:52 · 308 阅读 · 0 评论 -
十大经典排序算法最强总结(含Java代码实现),从零开始学springboot百度网盘
比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。1.2 动图演示1.3 代码实现/**冒泡排序@param array@return*/public static int[] bubbleSort(int[] array) {if (a..原创 2021-12-15 17:41:07 · 118 阅读 · 0 评论 -
别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?
Nginx 常用配置清单这玩意比ThreadLocal叼多了,吓得我赶紧分享出来。来源:toutiao.com/i6891531055631696395老铁们是不是经常为写一些实体转换的原始代码感到头疼,尤其是实体字段特别多的时候。介绍一个开源项目 mapstruct ,可以轻松优雅的进行转换,简化你的代码。当然有的人喜欢写get set,或者用BeanUtils 进行复制,代码只是工具,本文只是提供一种思路。先贴下官网地址吧:https://mapstruct.org/废话不多说,上代码:p原创 2021-12-15 17:37:12 · 86 阅读 · 0 评论 -
刚从今日头条Java研发岗面试回来,我总结的失败原因(附面试题
面试岗位:=========后端研发工程师找牛客大佬要了白金码,跳过死亡笔试,直接视频面,从3点开始,到晚上8点结束。每个面试官给我的感觉都是怎么这么高冷啊。一面:=======写一个题,找一个无序数组的中位数写了个快排,然后让我找到无序数组第k大的一个数,我说先排序再找,实际上可以用快排的partition函数。快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少,nlgn。操作系统了解么,Linux和windows说说Linux的磁原创 2021-12-15 17:33:36 · 115 阅读 · 0 评论 -
分享一个在线考试系统,练手项目用他很香,java微服务架构训练营
2019/12 项目累计突破1000 star2019/11 入围开源中国最受欢迎开源项目2019/10 累计超过100万学生使用2019/10 荣获码云最有价值开源项目学生系统功能登录、注册:注册时要选年级,过滤不同年级的试卷, 账号为student/123456首页:任务中心、固定试卷、时段试卷、可以能做的一部分试卷试卷中心:包含了所有能做的试卷,按学科来过滤和分页考试记录:所有的试卷考试记录在此处分页,可以查看试卷结果、用时、得分、自行批改等错..原创 2021-12-15 17:31:54 · 938 阅读 · 0 评论 -
分享一下我去年年底求职阿里的经历,Java岗5面心得分享
我求职的阿里的 Java 技术岗位一共有三轮技术面试和一轮 HR 面试,实际上 HR 面试了两次,下文会详细的讲。因为这段时间面试了很多大厂,有一些拿到了 offer,有一些因为一些原因没有拿到,因此我个人觉得对于像求职 BATM 这样的大厂或者字节跳动、拼多多这样的独角兽公司,最后能否拿到 offer 一部分取决于你的个人技术水平和工作经验,另外一部分取决于你的运气,还有一部分取决于你面试时的策略和技巧,策略和技巧下文我会举一个具体的例子。个人的技术水平和工作经验这一块不必多说,来说说为啥有一定的运气成原创 2021-12-15 17:29:43 · 406 阅读 · 0 评论 -
几种技巧,帮你提升接口查询速度,Java岗面试必问
谢邀,利益相关。大多数互联网应用场景都是读多写少,业务逻辑更多分布在写上。对读的要求大概就是要快。那么都有什么原因会导致我们完成一次出色的慢查询呢?1.1 索引在数据量不是很大时,大多慢查询可以用索引解决,大多慢查询也因为索引不合理而产生。MySQL 索引基于 B+ 树,这句话相信面试都背烂了,接着就可以问最左前缀索引、 B+ 树和各种树了。说到最左前缀,实际就是组合索引的使用规则,使用合理组合索引可以有效的提高查询速度,为什么呢?因为索引下推。如果查询条件包含在了组合索引中,比如存在组合索引(原创 2021-12-15 17:28:04 · 629 阅读 · 0 评论 -
MapReduce之输出结果排序
/**存储流量相关数据@author 波波烤鸭*/public class Flow implements WritableComparable {// 上下流量private long upFlow;// 下行流量private long downFlow;// 总流量private long sumFlow;/**比较Flow对象的总流量*/@Overridepublic int compareTo(Flow o) {// TODO Auto-gener原创 2021-12-14 23:47:31 · 1632 阅读 · 0 评论 -
Kubernetes的Local Persistent Volumes使用小记
操作系统:CentOS Linux release 7.8.2003 (Core)kubernetes:1.15.3helm:2.16.1体验Local PV的步骤简述本次实战的目标是快速创建Local PV,并验证该Local PV正常可用,全文由以下部分组成:创建Local PV;通过helm下载tomcat的chart;修改chart,让tomcat使用刚才创建的Local PV;部署tomcat;在服务器上检查文件夹已正常写入;参考文章如..原创 2021-12-14 23:45:48 · 727 阅读 · 0 评论 -
JVM(四)内存屏障与JVM指令
3. LoadStore屏障 4. StoreLoad屏障二、volatile 1. volatile实现的细节:① 字节码层面:编译之后翻译为字节码;编译之后的修饰符字节码可以发现0x0040(ACC_VOLATILE)② JVM层面其次是交给虚拟机层级;当虚拟机发现字节码中的0x0040,对volatile修饰的写操作上面加入StoreStoreBarrier屏障,下面加入StoreLoadBarrier屏障;读操作LoadLoadBarrier和Loa原创 2021-12-14 23:44:13 · 188 阅读 · 0 评论