![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 85
alice_nn
这个作者很懒,什么都没留下…
展开
-
java8新特性
A.Lamdba表达式1.Java8概述Java8,也就是jdk1.8,是意义深远的一个新版本是Java5之后一个大的版本升级,让Java语言和库仿佛获得了新生新特性包含:a.随着大数据的兴起,函数式编程在处理大数据上的优势开始体现,引入了Lambada函数式编程b.使用Stream彻底改变了集合使用方式:只关注结果,不关心过程c.新的客户端图形化工具界面库:JavaFXd.良好设计的日期/时间APIe.增强的并发/并行APIf.Java与JS交互引擎 -nashorng.其他特性2原创 2021-01-12 10:26:07 · 158 阅读 · 0 评论 -
redis主从复制
和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。全量同步Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:从服务器连接主服务器,发送SYNC命令;主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文原创 2020-09-08 16:30:37 · 141 阅读 · 0 评论 -
MySQL中聚集索引、非聚集索引、联合索引、覆盖索引
在《面试官:为啥加了索引查询会变快?》一文中,我们介绍了索引的数据结构,正是因为索引使用了B+树,才使得查询变快。说白了,索引的原理就是减少查询的次数、减少磁盘IO,达到快速查找所需数据的目的我们一起来看一下InnoDB存储引擎中的索引聚集索引聚集索引(clustered index)就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。聚集索引的这个特性决定了索引组织表中数据也是索引的一部分(备注:真实的B+树叶子节点是通过链表相连的,这原创 2020-07-24 09:43:31 · 412 阅读 · 0 评论 -
java实践SPI机制及浅析源码
1.概念正式步入今天的核心内容之前,溪源先给大家介绍一下关于SPI机制的相关概念,最后会提供实践源代码。SPI即Service Provider Interface,属于JDK内置的一种动态的服务提供发现机制,可以理解为运行时动态加载接口的实现类。更甚至,大家可以将SPI机制与设计模式中的策略模式建立联系。SPI机制:从上图中理解SPI机制:标准化接口+策略模式+配置文件;SPI机制核心思想:系统设计的各个抽象,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间原创 2020-07-24 09:36:10 · 91 阅读 · 0 评论 -
spring boot做定时任务管理模块。
spring boot做定时任务管理模块。我做的定时器管理界面是下面这样的。新增页面。列表页面。下面来说说做定时任务管理模块的步骤。1.在pom.xml中配maven库。 org.quartz-scheduler quartz 2.2.11234562.在spring boot中的启动文件(XXApplication )中注入Environment(在使用spring boot 的时候,我们只需要注入Environment类,即可获取到所有的配置资源。)。@Spring原创 2020-07-23 17:01:30 · 703 阅读 · 0 评论 -
老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化
今天周末,我在家坐着掐指一算,马上又要到一年一度的金九银十招聘季了,国内今年上半年受到 YQ 冲击,金三银四泡汤了,这就直接导致很多今年毕业的同学会和明年毕业的同学一起参加今年下半年的秋招,这个竞争就比较激烈了。最近后台有一些朋友给我留言,希望我能写写招聘相关的内容,毕竟虽然说是金九银十,但是很多大公司的校招从 7 、 8 月份就开始了。本来是想写点面试技巧和简历技巧的,但我转念一想,大家都是搞技术的,问题的核心还是技术能力要过关,面试技巧这东西最多只能用作锦上添花,而技术能力过不去,机会送到手里都抓不原创 2020-07-16 09:53:10 · 219 阅读 · 0 评论 -
java序列化和反序列化
**对象–>字节序列:序列化字节序列–>对象 :反序列化序列化的用途:把对象的字节序列保存在磁盘上,通常存放在一个文件中;在网络上传送对象的字节序列。存储在物理磁盘上的:Web服务器中的Session对象。当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中。网络传输:当两个进程进行远程通信的时候,彼此可以发送各种类型的数据,无论何种类型的数据都以二进制序列原创 2020-07-15 10:26:33 · 129 阅读 · 0 评论 -
滴滴章文嵩:一个人的20年开源热情和国内互联网开源运动
作者 | Just出品 | AI科技大本营(ID:rgznai100)开源热情就是好玩儿。说起他在22年前的第一款开源软件LVS(Linux Virtual Server),章文嵩这样描述彼时心态。从一开始做这个后来名噪一时的Linux集群项目他就没想着赚钱,去做任何商业性发展,所以选择毫无保留地开源。那时国内的互联网还处在早期阶段,一台服务器加载一个网站都忙不过来,要多台服务器来解决...原创 2020-01-17 16:56:09 · 338 阅读 · 0 评论 -
一个32岁程序员的倔强——十年程序人生
简介创业+自由职业的时间差不多已经一年了,还好没饿死,而且应该还能坚持一两年或者更久吧。最近不少朋友推荐去工作:搞区块链的黄总想拉去开发公链、钢哥要推荐去“得到”、晋哥推荐到支付公司当技术总监。想来想去都婉拒了。已经稳稳的当了10年的程序员了,好不容易走出来了,不想再来十年了。也不习惯了那种节奏和为了挣钱而仰人鼻息的感觉。如果不是早上母亲和妹妹发来的生日祝福,今天是自己的生日这件事可能又被遗忘了...原创 2020-01-16 17:37:49 · 421 阅读 · 0 评论 -
数据库常用的事务隔离级别都有哪些?都是什么原理?
什么是事务隔离?任何支持事务的数据库,都必须具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),也就是我们常说的事务ACID,这样才能保证事务((Transaction)中数据的正确性。而事务的隔离性就是指,多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务间要相互...原创 2020-01-13 17:39:39 · 191 阅读 · 0 评论 -
RabbitMQ系列之三 RabbitMQ几种典型模式
本文详细介绍简单模式Simple、工作模式Work、发布订阅模式Publish/Subscribe、路由模式Routing、通配符模式Topics、远程调用模式RPC(暂不对该队列模式进行详解)模式1:简单模式(Simple / HelloWorld 单生产单消费)简单的发送与接收,没有特别的处理。RabbitMQ连接(公共的连接方法,其他模式共用此方法)package com.sc.qu...原创 2020-01-13 17:33:49 · 208 阅读 · 0 评论 -
多线程锁区分
对于多线程并发学过了并发产生的原因,并发产生的问题,并发产生问题的解决方式,对于之前介绍的并发问题的解决方式有synchronzied、volatile、原子类型无锁控制。了解最后一个锁ReentrantLock重入锁。ReentrantLock的实现其实是利用了CAS + volatile+LockSupport 的方式控制线程安全的,也就是面试经常问道,不用锁如何控制多线程安全。1.Reen...原创 2020-01-09 11:30:19 · 205 阅读 · 0 评论 -
JVM调优总结(这个总结得比较全面+修改)
JVM调优总结(这个总结得比较全面+修改)转载那记忆微凉 发布于2018-07-01 15:19:40 阅读数 4985 收藏展开一、堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 20...原创 2019-12-31 12:37:52 · 359 阅读 · 0 评论 -
60 个让程序员崩溃的瞬间,哈哈哈哈哈哈哈哈哈
640阅读本文大概需要 2.3333 分钟。前方高能,每一个程序员看完,你不笑死个人,你来找我,我自己看了好几遍,反正笑的停不下来,太特么有才了。公司实习生找 Bug640在调试时,将断点设置在错误的位置640当我有一个很棒的调试想法时640偶然间看到自己多年前写的代码640当我第一次启动我的单元测试时640数据库的 Delete 语句忘了使用限定词...原创 2019-12-31 12:27:51 · 177 阅读 · 0 评论 -
秒杀系统
啥是秒杀秒杀场景一般会在电商网站举行一些活动时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。2、秒杀系统场景特点秒杀一般是访问请求数量远远大于库存数量,只有少部分用户能够秒杀成功秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增秒杀业务流程比较简单...原创 2019-12-31 12:21:24 · 290 阅读 · 2 评论 -
volatile关键字的作用
volatile关键字的作用原创天瑕 发布于2019-06-09 23:46:30 阅读数 3059 收藏展开目录1 保证内存可见性2 禁止指令重排序3 不保证原子性1 保证内存可见性说到内存可见性就必须要提到Java的内存模型,如下图所示:如上图所示,所有线程的共享变量都存储在主内存中,每一个线程都有一个独有的工作内存,每个线程不直接操作在主内存中的变量,而是将主内存上变量的...原创 2019-12-30 11:12:22 · 151 阅读 · 0 评论 -
深挖threadLocal
先总述,后分析 深挖过threadLocal之后,一句话概括:Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。所以ThreadLocal的应用场合,最适合的是按线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。数据隔离的秘诀其实是这样的,Thread有个TheadLocalMap类型的属性,叫做threadLocals...原创 2019-12-30 10:13:37 · 134 阅读 · 0 评论 -
ThreadLocal概念
一、ThreadLocal概念ThreadLocal 是线程的局部变量, 是每一个线程所单独持有的,其他线程不能对其进行访问。当使用ThreadLocal维护变量的时候 为每一个使用该变量的线程提供一个独立的变量副本,即每个线程内部都会有一个该变量,这样同时多个线程访问该变量并不会彼此相互影响,因此他们使用的都是自己从内存中拷贝过来的变量的副本, 这样就不存在线程安全问题,也不会影响程序的执行...原创 2019-12-30 10:02:53 · 249 阅读 · 0 评论 -
多线程,到底几个线程合适
一、前言“不好了,线上服务器超时严重,请求非常慢,好像报连接数too many了,怎么办?“小伙伴们在反馈。一般我们的技术老大的处理方式,把连接数和线程池调大点,重启,再观察。往往这个方式是应急措施,治标不治本,因为不知道问题的原因。有个严重误区,以为线程池设置太小了,调大点请求就会快了。今天就带着小伙伴们沟通一下,线程池的大小应该如何合理的设置其大小?二、问题如果有两个任务需要处理,...原创 2019-12-23 18:52:49 · 1301 阅读 · 0 评论 -
LinkedHashMap容器源码
1、概述LinkedHashMap容器是Java容器框架中从很早的版本就开始提供的(JDK 1.4+),该容器又被这样认为:“LinkedHashMap = HashMap + LinkedList”。LinkedHashMap容器的主要继承体系如下图所示:LinkedHashMap容器继承自HashMap容器,也就是说前者的基本结构和后者一致,在这样的基本结构下LinkedHashMap容器...原创 2019-12-23 17:33:59 · 145 阅读 · 0 评论 -
为什么不建议使用外键关系
其实这个话题是老生常谈,很多人在工作中确实也不会使用外键。包括在阿里的JAVA规范中也有下面这一条【强制】不得使用外键与级联,一切外键概念必须在应用层解决。但是呢,询问他们原因,大多是这么回答的每次做DELETE 或者UPDATE都必须考虑外键约束,会导致开发的时候很痛苦,测试数据极为不方便。坦白说,这么说也是对的。但是呢,不够全面,所以开一文来详细说明。正文首先我们明确一点,外键约束...原创 2019-12-21 17:19:30 · 3683 阅读 · 1 评论 -
Java优雅编码 让代码性能更高
Java优雅编码让代码性能更高需要 Map 的主键和取值时,应该迭代 entrySet()应该使用Collection.isEmpty()检测空不要把集合对象传给自己集合初始化尽量指定大小字符串拼接使用 StringBuilder判断链表还是数组频繁调用 Collection.contains 方法请使用 Set直接赋值常量值,禁止声明新对象当成员变量值无需改变时,尽量定义为...原创 2019-12-21 11:35:57 · 218 阅读 · 0 评论 -
redis哨兵
作者 | 阿文责编 | 郭芮出品 | CSDN(ID:CSDNnews)在说哨兵之前,我们先说下主从复制,Redis 的主从复制模式,一旦主节点出现故障无法提供服务,需要人工介入手工将从节点调整为主节点,同时应用端还需要修改新的主节点地址,这种故障转移的方式对于很多应用场景是不能容忍的。正式由于这个问题,Redis 提供了 Sentinel(哨兵) 架构来解决这个问题。...原创 2019-12-21 10:26:16 · 175 阅读 · 0 评论 -
Log4j异常信息发送邮件通知
Log4j异常信息发送邮件通知转载weixin_34175509 发布于2016-12-08 14:51:00 阅读数 37 收藏展开2019独角兽企业重金招聘Python工程师标准>>> hot3.png需要的jar包activation-1.1.1.jar mail-1.5.0-b01.jar log4j-1.2.17.ja...原创 2019-12-17 14:56:31 · 290 阅读 · 0 评论 -
aop切面
aop在日常开发中最常见的两种使用场景是:1.记录日志,2.声明式事务处理。由于近年来springcloud的火热,springboot成为了首选的开发框架。相比spring,springboot最大的特点就是省略了大量的配置文件,让开发变得更加简单高效。一、首先我们先谈谈aop在springboot中如何进行记录日志。代码如下@Aspect@Component@Slf4jpublic ...原创 2019-12-17 14:53:22 · 178 阅读 · 0 评论 -
线程常用25道题
并发编程三要素?1)原子性原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。3)有序性有序性,即程序的执行顺序按照代码的先后顺序来执行。Thread.sleep(0)的作用是什么?由于Java采用抢占式的线程调度算法,因...原创 2019-12-16 13:56:56 · 200 阅读 · 0 评论 -
如何提升你的数据结构、算法以及解决问题的能力
如何提升你的数据结构、算法以及解决问题的能力这篇文章借鉴了我过去在学校一个学期的个人经历和挑战,当我进入学校的时候,我对任何 DSA(数据结构和算法)和解决问题的策略几乎一无所知。作为一名自学成才的程序员,我对一般编程会更加熟悉和舒适,例如面向对象编程,而不是 DSA 问题所需要的解决问题的能力。这篇文章反映了我整个学期的经历,并包含了为了快速提高数据结构、算法和解决问题的能力而求助的资源。...原创 2019-12-16 13:55:08 · 1048 阅读 · 0 评论 -
Redis
Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚(请允许我使用一下夸张的修辞手法)。于是在一个寂寞难耐的夜晚,我痛定思痛,决定开始写《吊打面试官》系列,希望能帮助各位读者以后面试势如破竹,对面试官...转载 2019-12-11 12:17:15 · 159 阅读 · 0 评论 -
maven引入冲突的包
idea 中解决maven 包冲突的问题(maven helper)日常开发中经常会遇到xxx.class 找不到的异常,但是这个类确实存在我们的项目中,就会感觉很离奇,其实这就是包冲突的问题冲突问题比如项目中引用了两个 fastjson.jar的版本,分别为fastjson:1.2.28fastjson:1.2.3我们用到了1.2.28中的某个类, 比如 A类,在版本更新中 1.2....原创 2019-12-10 17:09:23 · 235 阅读 · 0 评论 -
小米面试题2019
返回主页look_look管理2019 小米java面试笔试题 (含面试题解析) 本人5年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、小米等公司offer,岗位是Java后端开发,因为发展原因最终选择去了小米,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作...原创 2019-12-09 09:58:57 · 2006 阅读 · 1 评论 -
多线程源码分析
线程“线程池”,顾名思义就是一个线程缓存,线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,因此Java中提供线程池对线程进行统一分配、调优和监控。线程池介绍在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数量非常多,但每个线程执行的时间很短,这...原创 2019-12-07 17:51:35 · 161 阅读 · 0 评论 -
全网阅读过20k的Java集合框架常见面试题总结!
剖析面试最常见问题之Java集合框架当了会标题党,这是第一次,后面还有很多次!不过这文章全网阅读肯定是超过 20 k 的,而且经过了很多同行的优化,质量有保障哦!说说List,Set,Map三者的区别?List(对付顺序的好帮手): List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象Set(注重独一无二的性质): 不允许重复的集合。不会有多个元素引用相同的对象。Map...原创 2019-12-06 10:51:26 · 109 阅读 · 0 评论 -
反射获得一个字段的属性值,和修改一个字段的属性值
我们经常遇到一个集合中替换一个对象的一个字段值和另一个字段值。比如替换一个集合中所有对象的uid为uname;可以使用反射,制定原字段名和被替换的字段名public static Object getFieldValueByObject (Object object , String targetFieldName) throws Exception {// 获取该对象的ClassCla...原创 2019-12-06 10:40:10 · 792 阅读 · 0 评论 -
redis相关面试题
什么是redis?Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理超过 10 万次读写操作, 是已知性能最快的 Key-Value DB。Redis 的出色之处不仅仅是性能, Redis 最大的魅力是支持...原创 2019-12-05 21:08:23 · 159 阅读 · 0 评论 -
MySQL数据库—SQL汇总
目录一、准备二、SQL常用数据类型1、数值型1)整型2)小数2、字符型3、日期型三、SQL字段约束1、六大约束2、标识列(自增长列)四、DQL(Data Query Language)数据查询语言1、语句顺序2、基础查询(SELECT)(1)查询常量(2)查询表达式(3)查询字段a.表中字段查询b.使用别名(AS)c.去重(DISTINCT)(3)查询函数...原创 2019-12-05 18:39:17 · 581 阅读 · 0 评论 -
NIOI原理
前言该文是对NIO知识的归纳与整理1.阻塞与同步1)阻塞(Block)和非租塞(NonBlock):阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候阻塞:往往需要等待缞冲区中的数据准备好过后才处理其他的事情,否則一直等待在那里。非阻塞:当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果数据已经准备好,也直接返回2...原创 2019-12-02 17:16:35 · 206 阅读 · 0 评论 -
Java email群发
public static String username = “xxxxxxxxx@163.com”; // 服务邮箱public static String password = “******”; // 邮箱密码public static String senderNick = “策康金融”; // 发件人昵称private Properties props; // 系统属性pr...原创 2019-12-02 11:21:17 · 282 阅读 · 0 评论 -
Springcloud组件详解
why当我们使用一个新技术的时候,应该首先问的一个问题就是why:为什么要使用这个技术?或者问:这个技术是可以解决什么问题。我也想写篇微服务的文章,以及微服务的优缺点在微服务架构中,当一个大型系统被拆分成微服务系统以后,不仅包括功能拆分,还包括系统拆分、代码拆分、数据库拆分、缓存拆分等,多个系统的部署、维护、调用关系、调度、监控、fail over就会成为一系列问题。同时微服务系统划分越多,...原创 2019-12-02 11:18:28 · 194 阅读 · 0 评论 -
数据容器几个经典面试题
java 容器都有哪些?常用容器的图录:Collection 和 Collections 有什么区别?java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有Li...原创 2019-12-02 10:42:29 · 110 阅读 · 0 评论 -
2019年比较“冷”,下雪也比较早
2019年11月29,北京下雪了,以往从来没有下雪这么早。是不是今年的互联网寒冬原因,比较冷,下雪也比较早。原创 2019-11-29 20:51:14 · 159 阅读 · 0 评论