随笔分类 - java
摘要:1.引子 最近看了一篇文章《蚂蚁消息中间件 (MsgBroker) 在 YGC 优化上的探索》 文章涉及JVM的垃圾回收,主要讲的是通过使用「堆外内存」对Young GC进行优化 文章中介绍,MsgBroker消息中间件会对消息进行缓存,JVM需要为被缓存的消息分配内存,首先会被分配到年轻代。 当缓
        阅读全文
            
摘要:概述 Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。 分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,C
        阅读全文
            
摘要:1.秒杀业务为什么难做 IM 系统,例如 QQ 或者微博,每个人都读自己的数据(好友列表、群列表、个人信息)。 微博系统,每个人读你关注的人的数据,一个人读多个人的数据。 秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如小米手机每周二的秒杀,可能手机只有 1 万部
        阅读全文
            
摘要:引言 阿里的 Java开发手册,上面有线程池的一个建议: 【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式, 这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。那么到底线程池创建为什么需要使用 ThreadPoolExe
        阅读全文
            
摘要:1.Kafka基本概念 Topic :消息根据Topic进行归类 Producer:发送消息者 Consumer:消息接受者 Kafka cluster:kafka集群 broker:每个kafka实例(server) Zookeeper:依赖集群保存metadata信息 Topic :消息根据To
        阅读全文
            
摘要:1.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM) 的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关 的API,绝大多数MOM提供商都对JMS提供支持
        阅读全文
            
摘要:表查询 order a升序 b降序会导致什么问题 a,b走索引 Mysql: order by后的各项如果排序不一致会导致联合索引失效,譬如 order by a ASC, b DESC, c DESC a升序,b降序,排序不一致,索引(a,b,c)失效 但是建索引的时候也可以指定排序 如果建立一个
        阅读全文
            
摘要:1.自我介绍 首先做一下自我介绍,使用过什么技术之类的 我回答是工作了多少年,使用过spring mvc ,mybatis,数据库用过mysql,oracle之类的。技能点大体列举了一边 2.项目经验 介绍一下你最近参与的项目 我回答了我之前做过的移动营销的项目,介绍了大体是做什么业务的. 看了你写
        阅读全文
            
摘要:如何解决高并发减库存问题 一个大文件4G,里面一行行的数字,这时内存只有256M,如何做排序? 如果你部署的应用所在机器硬盘坏了,会发生什么?你的程序要如何处理这种异 常?(分布式系统中故障是一种常态,设计要避免单点故障,能容错,保证系统高 可用) 实现一个消息队列系统 如何设计一个高可用的架构 多
        阅读全文
            
摘要:列举一个常用的Redis客户端的并发模型 Redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。 Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,这些问题均是由
        阅读全文
            
摘要:你在设计一个工厂的包的时候会遵循哪些原则 你能列举一个使用了Visitor/Decorator模式的开源项目/库吗 你在编码时最常用的设计模式有哪些?在什么场景下用? 如何实现一个单例 所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建。在Java,一般常用在
        阅读全文
            
摘要:TCP建立连接的过程-三次握手 所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示: 第一次握手:Client将标志位
        阅读全文
            
摘要:数据库事务ACID原则 数据库事务正确执行的四个原则:A原子性、C一致性、I独立性、D持久性 原子性 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没发生过一样 一致性 事务开始之前和事务结束后,数
        阅读全文
            
摘要:Spring中Bean的生命周期 在说明前可以思考一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy; Spring上下文中的Bean也类似,如下 1、实例化一个Bean--也就是我们常说的new; 2、按照Spring上下文对实例化的Bean进行配置--
        阅读全文
            
摘要:硬链接和软链接的区别 在Linux上,一个文件被分为两部分(如图一):用户数据 (user data) 与元数据 (metadata)。 inode号:即索引节点号, 它是文件元数据的一部分,也是文件的唯一标识而非文件名。 通过文件名打开文件时: 硬链接 文件有相同的 inode 及 data bl
        阅读全文
            
摘要:Java中常见的锁分类 常见的锁分类大致有:排它锁、共享锁、乐观锁、悲观锁、分段锁、自旋锁、公平锁、非公平锁、可重入锁等。 a.排他锁和共享锁 synchronized就是一个排他锁,ReentrantLock也是一个排它锁,而ReentrantReadWriteLock则是一个 读共享锁,写排他锁
        阅读全文
            
摘要:谈谈你对解析与分派的认识 解析 Java中方法调用的目标方法在Class文件里面都是常量池中的符号引用,在类加载的解析阶段,会将其中的一部分符号引用转化为直接引用。(关于符号引用与直接引用,详见【深入理解JVM】:Class类文件结构)这种解析的前提是:方法在程序真正运行之前就有一个可以确定的调用版
        阅读全文
            
摘要:实例方法和静态方法有什么不一样 1.在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。 而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 2.静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许 访问实例成员
        阅读全文
            
摘要:今天在虚拟机开放远程jconsole连接,设置了jmxrote的参数 具体不清楚的同学可以看下我之前的文章https://www.cnblogs.com/reload-sun/p/7875316.html 但是之后本地打开jconsole无法连接。试了配置下hosts 文件 然后因为机器无法重启的原
        阅读全文
            
摘要:今天遇到一个需求需要将生成验证码的接口修改为可以返回状态的接口。之前的代码是以流的形式直接返回后台,返回值为void。使用的是com.github.bingoohuang的jar包。 但是出现问题是现在需要返回带有状态的json串,然后将图片信息放在参数内,给前端在status为200的时候才展示图
        阅读全文
            
                    
                
浙公网安备 33010602011771号