python
qq_1249870753
一个热爱分享的程序员。欢迎分享知识1249870753@qq.com
展开
-
问答:Java序列化和反序列化实现Serializable接口的原因
最近公司的在做服务化, 需要把所有model包里的类都实现Serializable接口, 同时还要显示指定serialVersionUID的值. 听到这个需求, 我脑海里就突然出现了好几个问题, 比如说: 序列化和反序列化是什么? 实现序列化和反序列化为什么要实现Serializable接口? 实现Serializable接口就算了, 为什么还要显示指定serialVersionUID的值? 我要为serialVersionUID指定个什么值? 下面我们来一一解答这几原创 2020-05-17 21:56:27 · 485 阅读 · 0 评论 -
一个foreach引发的坑
最近在翻看阿里巴巴Java开发手册,对照自己的代码规范,发现了代码中存在的不少缺陷。比如手册强制规定所有的POJO类属性必须使用包装类型。因为使用包装类型在使用起来会比较麻烦,有时候需要多加一些判断,我很好奇是否这些规定都落地实施了,于是到阿里云下载了几个SDK查看了一下,这个规范确实是都做到了,但也发现了有些强制要求的规范没有实施,比如不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。反例:String key = "Id#taobao_" + tradeId;cache.pu...原创 2020-05-17 19:45:25 · 1581 阅读 · 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 · 224 阅读 · 0 评论 -
看完这篇Exception 和 Error,就彻底清楚了
在 Java 中的基本理念是结构不佳的代码不能运行,发现错误的理想时期是在编译期间,因为你不用运行程序,只是凭借着对 Java 基本理念的理解就能发现问题。但是编译期并不能找出所有的问题,有一些 NullPointerException 和 ClassNotFoundException 在编译期找不到,这些异常是 RuntimeException 运行时异常,这些异常往往在运行时才能被发现。...原创 2020-04-29 13:08:47 · 382 阅读 · 0 评论 -
CompletableFuture 异步编程~~~~~~~~~~~
本文从实例出发,介绍CompletableFuture基本用法。不过讲的再多,不如亲自上手练习一下。所以建议各位小伙伴看完,上机练习一把,快速掌握CompletableFuture。全文摘要: FutureVSCompletableFuture CompletableFuture基本用法 0x00. 前言一些业务场景我们需要使用多线程异步执行任务,加快任务执...原创 2020-04-18 16:55:12 · 232 阅读 · 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 · 294 阅读 · 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 · 272 阅读 · 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 · 1610 阅读 · 0 评论 -
在使用 SpringMVC 时,Spring 容器是如何与 Servlet 容器进行交互的?
最近都在看小马哥的 Spring 视频教程,通过这个视频去系统梳理一下 Spring 的相关知识点,就在一个晚上,躺床上看着视频快睡着的时候,突然想到当我们在使用 SpringMVC 时,Spring 容器是如何与 Servlet 容器进行交互的?虽然在我的博客上还有几年前写的一些 SpringMVC 相关源码分析,其中关于 Spring 容器如何与 Servlet 容器进行交互并没有交代清楚,于...原创 2020-04-01 13:05:53 · 491 阅读 · 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 评论 -
SpringBoot配置文件放在jar外部
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢?查询官网,可以得到下面的几种方案:通过命令行指定SpringApplication会默认将命令行选项参数转换为配置信息例如,启动时命令参数指定:java-jarmyproject.jar--server.port=...原创 2020-03-18 21:08:51 · 242 阅读 · 0 评论 -
python实现从文件查找关键字
要求写一个函数,传入一个路径和一个关键字(关键字是文件内容),找到文件内容里面有这个关键字的文件代码 123456789101112131415161718 import osdef find_file(keywords,path='/Users/wym/Desktop/work/Besttest/笔记/day6')...原创 2020-03-12 23:12:36 · 12205 阅读 · 1 评论