java语言
文章平均质量分 86
qq_1249870753
一个热爱分享的程序员。欢迎分享知识1249870753@qq.com
展开
-
计算机毕业设计-springboot+vue前后端分离电竞社交平台管理系统部分成果分享
为了实现系统的功能设计,就要有相应的数据库表设计。根据系统的功能设计要求为各个数据库表设计字段、数据类型、是否为空等的相关信息。在实际调研和需求分析的基础上,对该系统设计数据库。再有系统的需求分析可以看出,本系统有三个角色:顾客,接单员和管理员,他们分别在系统的运行和使用中起着不同的作用。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。数据库中表的设计主要考虑两个方面:一是整个管理系统的所有表中的数据要共享性高、冗余度小、占用最可能小的存储空间。原创 2024-03-13 11:15:53 · 681 阅读 · 0 评论 -
JDK8安装
watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTU0OTY1Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"alt="这里写图片描述"title="">原创 2022-07-25 01:03:52 · 464 阅读 · 1 评论 -
问答:Java序列化和反序列化实现Serializable接口的原因
最近公司的在做服务化, 需要把所有model包里的类都实现Serializable接口, 同时还要显示指定serialVersionUID的值. 听到这个需求, 我脑海里就突然出现了好几个问题, 比如说: 序列化和反序列化是什么? 实现序列化和反序列化为什么要实现Serializable接口? 实现Serializable接口就算了, 为什么还要显示指定serialVersionUID的值? 我要为serialVersionUID指定个什么值? 下面我们来一一解答这几原创 2020-05-17 21:56:27 · 484 阅读 · 0 评论 -
一个foreach引发的坑
最近在翻看阿里巴巴Java开发手册,对照自己的代码规范,发现了代码中存在的不少缺陷。比如手册强制规定所有的POJO类属性必须使用包装类型。因为使用包装类型在使用起来会比较麻烦,有时候需要多加一些判断,我很好奇是否这些规定都落地实施了,于是到阿里云下载了几个SDK查看了一下,这个规范确实是都做到了,但也发现了有些强制要求的规范没有实施,比如不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。反例:String key = "Id#taobao_" + tradeId;cache.pu...原创 2020-05-17 19:45:25 · 1580 阅读 · 0 评论 -
经常被问的LinkedHashMap
LinkedHashMap简介LinkedHashMap是一个根据某种规则有序的hashmap。根据名字,我们也可以看出这个集合是有hash散列的功能的同时也有顺序。hashmap是无法根据某种顺序来访问数据的,例如放入集合的元素先后的顺序。list都有这个功能,可以根据放入集合的先后来访问具体的数据。这里大家也肯定是有疑问的,例如都已经使用了hash了,为什么还要去保证顺序访问。这个在后面的场景中解释。LinkedHashMap的实现当刚遇到这个集合的时候,我也疑惑,能同时满足条件的数据结构究原创 2020-05-10 14:53:32 · 487 阅读 · 0 评论 -
从classloader1.6-1.7
lassloader从1.6到1.7整体分成了两个版本。重点区别就是并行类加载。1.6版本protectedsynchronizedClassloadClass(Stringname,booleanresolve)throwsClassNotFoundException{……returnc;}1.6版本加了一个方法锁。1.7版本privatefinalConcurrentHa...原创 2020-05-10 14:51:24 · 238 阅读 · 0 评论 -
面试速成大法!!!!需要了解的题目
【10期】Redis 面试常见问答【09期】说说hashCode() 和 equals() 之间的关系?【08期】说说Object类下面有几种方法呢?【07期】Redis中是如何实现分布式锁的?【06期】单例模式有几种写法?【05期】消息队列中,如何保证消息的顺序性?【04期】分库分表之后,id 主键如何处理?【03期】如何决定使用 HashMap 还是 TreeMap...原创 2020-05-05 22:55:29 · 327 阅读 · 1 评论 -
面试:SpringBoot条件注解底层实现是?
SpringBoot内部提供了特有的注解:条件注解(Conditional Annotation)。比如: @ConditionalOnBean、 @ConditionalOnClass、 @ConditionalOnExpression、 @ConditionalOnMissingBean等。 条件注解存在的意义在于动态识别(也可以说是代...原创 2020-05-05 22:52:33 · 223 阅读 · 0 评论 -
看完这篇Exception 和 Error,就彻底清楚了
在 Java 中的基本理念是结构不佳的代码不能运行,发现错误的理想时期是在编译期间,因为你不用运行程序,只是凭借着对 Java 基本理念的理解就能发现问题。但是编译期并不能找出所有的问题,有一些 NullPointerException 和 ClassNotFoundException 在编译期找不到,这些异常是 RuntimeException 运行时异常,这些异常往往在运行时才能被发现。...原创 2020-04-29 13:08:47 · 381 阅读 · 0 评论 -
优先级队列~~~~~~~~~
队列与栈两种数据结构是老生常谈的问题了,其中队列是先进先出(FIFO),栈是先进后出(FILO),明白这两个特性,就很简易理解了。但是有一种特殊的队列也是我们常用的数据结构——优先级队列。优先队列的作用是能保证每次取出的元素都是队列中权值最小(大)的,Java中PriorityQueue实现了Queue接口,不允许放入null元素;其通过堆实现,具体说是通过完全二叉树(complete bin...原创 2020-04-19 11:24:40 · 360 阅读 · 0 评论 -
对账系统的设计方案.你有兴趣吗?
前言对账系统作为支付系统中的基石系统,处于整个支付环节中的最后一层,主要用来保证我方支付数据与第三方支付渠道或银行的数据一致性。在没有对账系统之前,财务在第二日手工核对前一日的应收与实收。倘若不一致,这就需要一一核对数据,找出不一致的数据。对账系统出现之后,就可减少以这种繁琐手工操作,财务只需要每天关注系统的对账记录,释放了生产力。本文主要结合实际的项目经验,聊聊对账系统的设计方案。...原创 2020-04-18 17:19:56 · 404 阅读 · 0 评论 -
轻松搞定XML和对象之间的互转,不要错过
前言在微信订阅号和支付宝生活号日常开发中,我们会涉及到对象和XML之间的相互转换。比如我们可以利用StringBuilder去直接拼接来构造XML/***构造基础的响应消息**@return*/publicstaticStringbuildBaseAckMsg(StringfromUserId){...原创 2020-04-18 17:15:25 · 342 阅读 · 0 评论 -
如何保证缓存与数据库的双写的一致性?这样答面试官
Cache Aside Pattern 最初级的缓存不一致问题及解决方案 比较复杂的数据不一致问题分析 分布式缓存是现在很多分布式应用中必不可少的组件,但是用到了分布式缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?Cache Aside Pattern最经典的缓存+数据库读写的模式,就是 Cach...原创 2020-04-18 17:12:21 · 199 阅读 · 0 评论 -
CompletableFuture 异步编程~~~~~~~~~~~
本文从实例出发,介绍CompletableFuture基本用法。不过讲的再多,不如亲自上手练习一下。所以建议各位小伙伴看完,上机练习一把,快速掌握CompletableFuture。全文摘要: FutureVSCompletableFuture CompletableFuture基本用法 0x00. 前言一些业务场景我们需要使用多线程异步执行任务,加快任务执...原创 2020-04-18 16:55:12 · 231 阅读 · 0 评论 -
面试常见的设计模式–工厂方法模式
工厂方法模式是创建型模式,基本在学习设计模式的时候,他是比较早被介绍的。但是很多时候也发现,其实根本写不到代码中去,一个原因是使用了spring这种框架后,对象委托spring管理了,另一个原因是这个模式场景是比较特殊的。(本文不是介绍设计模式的,而是探讨模式的适合场景的。)工厂方法模式的优点工厂方法模式是管理对象的创建,以及如果有对象改动的时候就可以改掉工厂的内容就可以,而不用改变每个客...原创 2020-04-11 11:16:35 · 611 阅读 · 0 评论 -
超实用的设计模式之一–模板方法模式
模板方法模式是我工作中用到最多的模式,这个模式的类图比较简单,而且思路也比较简单,只要有重复的工作,加以抽象,都可以使用模板方法。模板方法的前提道理很好讲,但是很多人依旧会问,为什么他的编码环境却没有这样的使用情况。设计模式是基于面向对象的套路,所以脱离不了抽象这个概念,很多情况之所以没办法去模式化主要是因为无法抽象。我们做一件事情,都是分步骤的,例如去煮咖啡,先准备咖啡,然后水加...原创 2020-04-11 11:07:12 · 183 阅读 · 0 评论 -
为什么面试官那么喜欢问HashMap呀
很多人在面试的时候总会被问到HashMap原理,却很少有人能够回答的好,或者说回答的太粗浅,被人一下看出大概的技术水平自己却毫不知情。今天我们来研究一下为什么面试官这么喜欢问HashMap吧?1.HashMap put()相关知识首先我们先了解hashmap的大致原理,hashmap是由数组+链表的方式组成的,如下图:上图左边的数组长度是16(初始大小),每个数组位置上...原创 2020-04-06 12:54:00 · 538 阅读 · 0 评论 -
零拷贝的介绍
前言从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。I/O概念1.缓冲区缓冲区是所有I/O的基础,I/O讲的无非就是把数据移进或移出缓冲区;进程执行I/O操作,就是向操作系统发出请求,让它要么把缓冲区的数...原创 2020-04-06 12:39:13 · 293 阅读 · 0 评论 -
Mybatis的插件分析
前言Mybatis提供了强大的扩展功能,也就是Mybatis的插件(plugins)功能;MyBatis允许你在已映射语句执行过程中的某一点进行拦截调用,拦截之后可以对已有方法添加一些定制化的功能,比如常见的分页功能;试图修改或重写已有方法的行为的时候,你很可能在破坏MyBatis 的核心模块,这些都是更低层的类和方法,所以使用插件的时候要特别当心。如何扩展1.拦截点拦截的点一共包...原创 2020-04-06 12:31:06 · 216 阅读 · 0 评论 -
一篇文章掌握Maven
Maven是什么?Maven,这个单词来源于犹太语,意味着知识的积累。最初在Jakarta Turbine 项目中用来简化构造项目流程。最终,形成基于Java项目的构建和管理的工具。安装与配置安装比较简单,官网下载,配置环境即可。这里推荐一下,安装之后配置仓库镜像,可以加快访问速度。编辑 settings.xml,在 </mirrors>之前添加 <...原创 2020-04-05 11:15:53 · 168 阅读 · 0 评论 -
java毕业设计_网上办公自动系统SSM
SSM网上办公自动系统mysql数据库创建语句SSM网上办公自动系统oracle数据库创建语句SSM网上办公自动系统sqlserver数据库创建语句SSM网上办公自动系统spring+springMVC+hibernate框架对象(javaBean,pojo)设计SSM网上办公自动系统spring+springMVC+mybatis框架对象(javaBean,pojo)设计SSM网上办公...原创 2020-04-04 19:25:10 · 271 阅读 · 0 评论 -
还看不懂同事的代码?Lambda 表达式、函数接口了解一下
当前时间:2019年 11月 11日,距离 JDK 14 发布时间(2020年3月17日)还有多少天?//距离JDK 14 发布还有多少天?LocalDatejdk14=LocalDate.of(2020,3,17);LocalDatenowDate=LocalDate.now();System.out.println("距离JDK 14 发布还有:"+nowDate...原创 2020-04-04 19:15:17 · 159 阅读 · 0 评论 -
设计模式 -创建型模式之单例模式的五种实现
单例模式(Singleton)单例模式是在GOF的23种设计模式里较为简单的一种,下面引用百度百科介绍:单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的...原创 2020-04-04 19:01:36 · 174 阅读 · 0 评论 -
还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下
Java 8 新特性系列文章索引。 Jdk14都要出了,还不会使用 Optional优雅的处理空指针? Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下? 还看不懂同事的代码?Lambda 表达式、函数接口了解一下 前言我们都知道Lambda和 Stream 是 Java 8 的两大亮点功能,在前面的文章里已经介绍过Lambda相关知识,这次...原创 2020-04-04 18:58:01 · 190 阅读 · 0 评论 -
MySQL中的这17个关键问题,一定要弄清楚!
Mysql的使用非常普遍,跟mysql有关的话题也非常多,如性能优化、高可用性、强一致性、安全、备份、集群、横向扩展、纵向扩展、负载均衡、读写分离等。要想掌握其中的精髓,可得花费不少功力,虽然目前流行的mysql替代方案有很多,可是从最小成本最容易维护的角度而言,mysql还是首选。下面从应用场景的角度切入,对mysql的技术点进行组织,写一份知识图谱,方便进行更深入的学习和总结。如下图整...原创 2020-04-02 13:31:25 · 254 阅读 · 0 评论 -
数据库查询速度优化之解决技巧
1、对查询进行优化,应尽可能避免全表扫描首先应考虑在 where 及 order by 涉及的列上建立索引。下面我们来以一个表中177条数据比较一下,全表扫描与建立索引之后性能的一个比较.从这两种方式查询数据库结果看,建立索引之后查询速度提高了些,现在数据量还不明显,如果表中有10万条速度,差异就会很明显了.2、写数据语句时尽可能减少表的全局扫描1)减少where 字段值n...原创 2020-04-02 13:27:31 · 592 阅读 · 0 评论 -
如何设计一个安全的对外接口
前言最近有个项目需要对外提供一个接口,提供公网域名进行访问,而且接口和交易订单有关,所以安全性很重要;这里整理了一下常用的一些安全措施以及具体如何去实现。安全措施个人觉得安全措施大体来看主要在两个方面,一方面就是如何保证数据在传输过程中的安全性,另一个方面是数据已经到达服务器端,服务器端如何识别数据,如何不被攻击;下面具体看看都有哪些安全措施。1.数据加密我们知道数据在传输过程...原创 2020-04-02 13:06:23 · 547 阅读 · 0 评论 -
如何让程序真正地在后台运行?
如何实现一个守护进程?如何让程序在后台运行?这是后台开发面试常问的一道题,那么守护进程到底是什么?又该如何实现?守护进程守护进程通常生存期长,很多是在系统启动时启动,系统退出时才关闭。它们的特点通常没有控制终端,后台运行。有人可能会会心一笑,后台运行程序,我知道呀。还有两种方式呢$./hello&看,多么简单。但是运行之后,你试着关闭当前终端,你会发现程序...原创 2020-04-01 13:10:14 · 1608 阅读 · 0 评论 -
在使用 SpringMVC 时,Spring 容器是如何与 Servlet 容器进行交互的?
最近都在看小马哥的 Spring 视频教程,通过这个视频去系统梳理一下 Spring 的相关知识点,就在一个晚上,躺床上看着视频快睡着的时候,突然想到当我们在使用 SpringMVC 时,Spring 容器是如何与 Servlet 容器进行交互的?虽然在我的博客上还有几年前写的一些 SpringMVC 相关源码分析,其中关于 Spring 容器如何与 Servlet 容器进行交互并没有交代清楚,于...原创 2020-04-01 13:05:53 · 489 阅读 · 0 评论 -
线上服务应急攻关方法论
1海恩法则和墨菲定律海恩法则指出:每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。海恩法则强调两点:(1)事故的发生是量的积累的结果;(2)再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。根据海恩法则,一起重大事故发生之后,我们要在处理事故和解决问题的同事,还要及时的对同类问题的「事故征兆」和...原创 2020-03-31 21:20:30 · 971 阅读 · 0 评论 -
java毕业设计_教学质量评价系统
教学质量评价系统mysql数据库创建语句教学质量评价系统oracle数据库创建语句教学质量评价系统sqlserver数据库创建语句教学质量评价系统spring+springMVC+hibernate框架对象(javaBean,pojo)设计教学质量评价系统spring+springMVC+mybatis框架对象(javaBean,pojo)设计教学质量评价系统mysql数据库版本源码:...原创 2020-03-31 21:18:37 · 910 阅读 · 0 评论 -
一次 RocketMQ 进程自动退出排查经验分享(实战篇)
1、背景公司一个 RocketMQ 集群由4主4从组成,突然其中3台服务器“竟然”在同一时间下线,其监控显示如下:依次查看三台机器的监控图形,时间戳几乎完美“吻合”,不可思议吧。2、故障分析出现问题,先二话不说,马上重启各服务器,尽快恢复集群,降低对业务的影响,接下来开始对日志进行分析。Java 进程自动退出(rocketmq 本身就是一个java进程),一种最...原创 2020-03-31 21:17:08 · 743 阅读 · 0 评论 -
Redis面试连环问,快看看你能走到哪一步!
今天,我不自量力的面试了某大厂的java开发岗位,迎面走来一位风尘仆仆的中年男子,手里拿着屏幕还亮着的mac,他冲着我礼貌的笑了笑,然后说了句“不好意思,让你久等了”,然后示意我坐下,说:“我们开始吧。看了你的简历,觉得你对redis应该掌握的不错,我们今天就来讨论下redis……”。我想:“来就来,兵来将挡水来土掩”。Redis是什么面试官:你先来说下redis是什么吧我:(这不就是...原创 2020-03-29 22:31:03 · 265 阅读 · 0 评论 -
【35期】谈谈你对Java线程之间通信方式的理解
多线程和并发,在平时开发中有些小伙伴用的不多,但是有些工作经验的面试中还是容易被问到的,故在之后几期先整理一些常见的多线程面试题供参考。通信方式 ①同步 ②while轮询的方式 ③wait/notify机制 ④管道通信 一,介绍本文总结我对于JAVA多线程中线程之间的通信方式的理解,主要以代码结合文字的方式来讨论线程间的通信,故摘抄了书中的一些示例代...原创 2020-03-29 22:29:23 · 180 阅读 · 0 评论 -
支撑百万级并发,Netty如何实现高性能内存管理
Netty作为一款高性能网络应用程序框架,实现了一套高性能内存管理机制通过学习其中的实现原理、算法、并发设计,有利于我们写出更优雅、更高性能的代码;当使用Netty时碰到内存方面的问题时,也可以更高效定位排查出来本文基于Netty4.1.43.Final介绍其中的内存管理机制ByteBuf分类Netty使用ByteBuf对象作为数据容器,进行I/O读写操作,Netty的内存管理也是...原创 2020-03-28 22:10:34 · 301 阅读 · 0 评论 -
深度解析RocketMQ Topic的创建机制
我还记得第一次使用rocketmq的时候,需要去控制台预先创建topic,我当时就想为什么要这么设计,于是我决定撸一波源码,带大家从根源上吃透rocketmq topic的创建机制。topic在rocketmq的设计思想里,是作为同一个业务逻辑消息的组织形式,它仅仅是一个逻辑上的概念,而在一个topic下又包含若干个逻辑队列,即消息队列,消息内容实际是存放在队列中,而队列又存储在broker中...原创 2020-03-28 10:50:48 · 867 阅读 · 0 评论 -
Dubbo服务治理之灰度发布方案(版本发布控制影响范围)
方案背景背景:基于Dubbo服务的治理,是否可以支持业务级别的灰度发布、是否基于业务参数的路由转发。例如以GIS为例,当发布一个新版本时,是否可以以按照解析地址或合作伙伴来区分,版本发布之初,只希望地址为:广东省的解析请求发送到新版本,而其他的地址请求还是使用旧版;或者根据合作伙伴例如UCP(优享寄)的请求转发到新版本服务器,其他合作伙伴还是转发到旧版,实现业务级别的灰度发布,控制新版本的影响...原创 2020-03-28 10:49:04 · 538 阅读 · 0 评论 -
从Nginx、Apache工作原理看为什么Nginx比Apache高效!
Nginx才短短几年,就拿下了Web服务器大壁江山,众所周知,Nginx在处理大并发静态请求方面,效率明显高于Httpd,甚至能轻松解决C10K问题。在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx + PHP(FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。...原创 2020-03-26 20:36:35 · 170 阅读 · 0 评论 -
为什么代码规范要求SQL语句不要过多的join?
送分题面试官:有操作过Linux吗?我:有的呀面试官:我想查看内存的使用情况该用什么命令我:free 或者 top面试官:那你说一下用free命令都可以看到啥信息我:那,如下图所示 可以看到内存以及缓存的使用情况 total 总内存 used 已用内存 free 空闲内存 buff/cache 已使用的缓存 avaiable 可...原创 2020-03-25 12:44:09 · 212 阅读 · 0 评论 -
面试被问到“零拷贝”!你真的理解吗?
前言从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一大亮点;下面从I/O的几个概念开始,进而在分析零拷贝。I/O概念1.缓冲区缓冲区是所有I/O的基础,I/O讲的无非就是把数据移进或移出缓冲区;进程执行I/O操作,就是向操作系统发出请求,让它要么把缓冲区的数...原创 2020-03-24 13:16:00 · 202 阅读 · 0 评论