
JAVA
文章平均质量分 72
以基础为根基。
一直在奔跑丶
功不是凭梦想和希望,而是凭努力和实践!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
连JVM调优都不会,还怎么跳槽加薪?
近几年深入学习JVM调优的人越来越多,因为互联网一线大厂的Java高级开发工程师JD中都明确要求了“JVM调优”的能力。所以掌握JVM调优是深入学习Java必不可少的一环,也是Java开发人员迈向更高水平的一个阶梯。那么到底什么是JVM调优呢?JVM调优主要是针对垃圾收集器的收集性能优化,令运行在虚拟机上的应用能够使用更少的内存以及延迟获取更大的吞吐量。毫不夸张地说,JVM是现代软件工程最成功的案例之一。因为它自带GC,又有无数可以...原创 2020-09-28 17:17:19 · 192 阅读 · 0 评论 -
每次面试都要被问:为什么采用单线程的 Redis 也会如此之快?
众所周知,Redis在内存库数据库领域非常地火热,它极高的性能和丰富的数据结构为我们的开发提供了极大的便利。但我们也听说了,Redis是单线程的,为什么采用单线程的Redis也会如此之快呢?这篇文章我们来分析一下其中的缘由。其实,严格来说,Redis Server是多线程的,只是它的请求处理整个流程是单线程处理的。这一点我们一定要清楚了解到,不要单纯地认为Redis Server是单线程的!我们平时说的Redis单线程快是指它的请求处理过程非常地快!下面我们就来分下一下为什么请求处理使用单.原创 2020-12-22 20:17:26 · 171 阅读 · 0 评论 -
每日小记之面试宝典(面试题)
Git的分支你们是怎么管理的? 详解:Git 分支管理常见三种方式; ① TBD(Trunk-based development、单主干) 所有团队成员都在单个主干分支上进行开发。 发布时,先考虑使用标签 Tag, 如果打标签不能满足要求,则从主干创建发布分支。 Bug在主干上修复,然后挑选时机发布到 发布分支上② GitHub flow GitHub使用的一种简单流程,使用两类分支,Master、代码修改分支,主要对应GitHub的pull、reque...原创 2020-07-22 10:24:12 · 263 阅读 · 0 评论 -
Java八股文你会背了吗?
这份Java面试八股文让329人成功进入大厂,堪称2021最强2021秋招已经一段时间了,很多同学会问Java面试八股文有必要背吗?我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。国内的互联网面试,恐怕是现存的、最接近科举考试的制度。而且,我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入Design轮(系统设计和面向对象设计OOD)和BQ轮(Behavioral que...原创 2021-12-13 11:16:12 · 1088 阅读 · 2 评论 -
Linux vi编辑器上下箭头变成ABCD的问题
新手用 Linux 绝对懵逼,各种问题都来了,例如在 vi编辑器 里按上下左右箭头,显示的却是ABCD,简直日了狗!!!因为 Linux 预装的是 vim tiny, 我们需要安装vim full版本只要两条命令即可解决你的困扰卸载vim-tiny:sudo apt-get remove vim-common安装vim full:sudo apt-get install vim...原创 2021-05-06 11:42:06 · 919 阅读 · 0 评论 -
eclipse birt报表开发入门
在开发中,报表或多或少会涉及到,有些报表可能比较简单,而有些报表可能很复杂。无论如何,这些报表功能的开发都是可以通过一些公共的组件来实现的,比如我现在所在的这家公司,如果想要制作报表,只需要配置下报表配置下就可以了(这个报表是通过特定实现的报表语言实现了,支持内部自定义的语言,最终将这些相应的数据保存到数据库中,对报表中的一些事物进行了抽象,比如:报表模型, 查询参数。)。如果要自己手动的一步一步的编写报表,那么相对会比较麻烦,如果能提供一个框架,只需要进行一些配置就可以完成自定义报表,那岂不很轻松。...转载 2020-07-20 16:53:00 · 1269 阅读 · 0 评论 -
Oracle执行计划命令
如果在命令行中,建议使用这种方法.set autotrace on加上这个set命令后,执行任何SQL语句都会把执行计划和统计信息显示出来.注意 : 这重方式每次都执行SQL语句,而下面的方法实际上并没有执行SQL语句.看下面小练习,告诉你如何用oracle命令查看执行计划.1.想要查看执法计划的SQL语句:explain plan for select t.*, t.rowid from A5 t where t.l = '101214' and t.k like '%8号'原创 2022-02-17 17:22:22 · 739 阅读 · 0 评论 -
高级Java工程师必学的工具库,让你的代码量减少90%
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。工作很多年后,才发现有很多工具类库,可以大大简化代码量,提升开发效率,初级开发者却不知道。而这些类库早就成为了业界标准类库,大公司的内部也都在使用,如果刚工作的时候就有人告诉我使用这些工具类库,该多好!一块看一下有哪些工具类库你也用过。1. Java自带工具方法1.1 List集合拼接成以逗号分隔的字符串// 如何把list集合拼接成以逗号分隔的字符串 a,b,cList<String> list = A转载 2021-11-22 09:43:11 · 173 阅读 · 0 评论 -
还在用 BeanUtils来做对象转换吗?快试试 MapStruct吧
第一次看到MapStruct的时候, 我个人非常的开心。因为其跟我内心里面的想法不谋而合。1 MapStruct 是什么?1.1 JavaBean 的困扰对于代码中JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的JavaBean之间的相互转化, 非常的影响观感, 却又不得不存在。我后来想的一个办法就是通过反射, 或者自己写很多的转换器。第一种通过反射的方法确实比较方便, 但是现在无论是BeanUtils,BeanCopier等在...原创 2021-10-27 14:18:11 · 159 阅读 · 0 评论 -
你们的登陆接口真的安全吗?
大家学写程序时,第一行代码都是hello world。但是当你开始学习WEB后台技术时,很多人的第一个功能就是写的登录(小声:别人我不知道,反正我是)。但是我在和很多工作经验较短的同学面试或沟通的时候,发现很多同学虽然都有在简历上写:负责项目的登录/注册功能模块的开发和设计工作,但是都只是简单的实现了功能逻辑,在安全方面并没有考虑太多。这篇文章主要是和大家聊一聊,在设计一个登录接口时,不仅仅是功能上的实现,在安全方面,我们还需要考虑哪些地方。安全风险暴力破解!只要网站是暴露在公网的,..转载 2021-05-07 10:38:21 · 165 阅读 · 0 评论 -
ArrayList为什么线程不安全?(总结)
ArraysList是线程不安全的数据类型。如果多个线程同时访问列表实例,并且至少有一个线程在结构上修改列表,则需要在外部同步。使用Collections.sychronizedList方法是线程安全的。查看JDK文档,在结构上修改ArraysList的方法有分析源码发现,在add方法中的elementData[size++] = e;存在线程不安全的风险。elementData与size都是全局变量,但没有进行sychronization同步处理,elementData是共..原创 2020-09-18 18:09:03 · 875 阅读 · 0 评论 -
Java8 快速实现List转map 、分组、过滤等操作
利用java8新特性,可以用简洁高效的代码来实现一些数据处理。定义1个Apple对象:publicclassApple{privateIntegerid;privateStringname;privateBigDecimalmoney;privateIntegernum;publicApple(Integerid,Stringname,BigDecimalmoney,Integernum){...原创 2020-09-17 10:05:50 · 410 阅读 · 0 评论 -
为什么MySQL不推荐使用uuid或者雪花id作为主键?
前言在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。本篇博客的目录 mysql程序实例 使用uuid和自增id的索引结构对比 总结 一、mysql和程序实例1.1.要说明这个问题,我们首先来建立三张表分别是use原创 2020-09-15 10:38:26 · 113 阅读 · 0 评论 -
Spring之AOP注解封装
关键字 BindingResult、Spring AOP、自定义注解、自定义异常处理、ConstraintValidator前言 在实际项目中,对接口的传如的参数需要做校验处理,原来都是在接口里面直接进行if判断,虽然简单,但是每个接口都要重复写,显得冗余;并且返回的数据也无法很好的自定义说明校验情况;如下; @RequestMapping(value = { "/get/authcode" }, method = {RequestMethod.POST }) p..原创 2020-09-03 08:53:10 · 690 阅读 · 0 评论 -
搞懂这些SQL优化技巧,面试横着走
BATJTMD 等大厂的面试难度越来越高,但无论从大厂还是到小公司,一直不变的重点就是对 SQL 优化经验的考察。一提到数据库,面试官就会问“先说一说你对 SQL 优化的见解吧?”。图片来自 PexelsSQL 优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,如果是你,在这个问题上能吊打面试官还是会被吊打呢?有朋友疑问到,SQL 优化真的有这么重要么?如下图所示,SQL 优化在提升系统性能中是:成本最低和优化效果最明显的途径。如果...原创 2020-08-18 10:44:25 · 305 阅读 · 0 评论 -
如何避免操作系统中多线程资源竞争的互斥与同步?
前言先来看看虚构的小故事已经晚上 11 点了,程序员小明的双手还在键盘上飞舞着,眼神依然注视着的电脑屏幕。没办法这段时间公司业绩增长中,需求自然也多了起来,加班自然也少不了。天气变化莫测,这时窗外下起了蓬勃大雨,同时闪电轰鸣。但这一丝都没有影响到小明。突然一道巨大的雷一闪而过,办公楼就这么停电了。此时,求小明的心里面积有多大?等小明心里平复后,突然肚子非常的痛,想上厕所,小明心想肯定是晚上吃的某堡王有问题。整栋楼都停了电,小明两眼一抹黑,啥都看不见,只能靠摸...转载 2020-08-14 08:24:06 · 776 阅读 · 0 评论 -
实战 RocketMQ 流量削峰,怎么能错过这一篇!
前言MQ的主要特点为解耦、异步、削峰,该文章主要记录与分享个人在实际项目中的RocketMQ削峰用法,用于减少数据库压力的业务场景,其中RocketMQ的核心组件概念如下: Producer:生产发送消息 Broker:存储Producer发送过来的消息 Consumer:从Broker拉取消息并进行消费 NameServer:为Producer或Consumer路由到Broker 其中消费流程有以下几点是必须注意的: RocketMQ的Consumer原创 2020-08-12 17:06:31 · 375 阅读 · 0 评论 -
SpringBoot 整合 MyCat 实现读写分离,拿走不谢!
MyCat一个彻底开源的,面向企业应用开发的大数据库集群。基于阿里开源的Cobar产品而研发。能满足数据库数据大量存储;提高了查询性能。文章介绍如何实现MyCat连接MySQL实现主从分离,并集成SpringBoot实现读写分离。MySQL配置主从关系说明 192.168.0.105 Linux 数据库作为主master数据库 127.0.0.1 Window 作为从slave数据库 master主数据库配置binlog是Mysql sever层维护的一种二进制日志,主要是用原创 2020-08-12 16:53:55 · 294 阅读 · 0 评论 -
Maven和Solr简单总结
1.Maven介绍Maven是一个项目管理工具,Maven通过POM项目对象模型,对象项目进行管理,通过一个配置文件(xml文件)进行项目的管理。对象项目的声明周期中每个阶段进行管理(清理,编译,测试,打包)。POM项目对象模型的理解:①类之间的关系:继承、依赖、聚合;②管理项目之间的关系:使用maven工具可以完成项目之间的继承,项目的依赖,项目的聚合;2.maven项目得仓库maven可以管理项目和第三方的jar包的依赖关系。只需要在配置文件中描述maven,当前项目需要的哪些jar包即原创 2020-07-29 14:51:51 · 287 阅读 · 0 评论