work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  A.总结

摘要:为什么Redis能这么快 100000 + QPS (QPS即query per second, 每秒内查询次数) 1) 完全基于内存,绝大部分的请求时纯粹的内存操作,执行效率高。 (采用单进程单线程的KV数据库,有C语言编写,将数据存储在内存中。 读写内存的时候,都不会受到硬盘和IO的限制。) 2 阅读全文

posted @ 2020-01-11 21:52 work hard work smart 阅读(202) 评论(0) 推荐(0)

摘要:1、Object的finalize()方法的作用是否于C++的析构函数作用相同? 与C++的析构函数不同,析构函数调用确定,而它的是不确定的 将未被引用的对象放置在F-Queue队列 方法执行随时可能被终止 给予对象最后一次重生的机会 finalize示例 打印结果: First print: jv 阅读全文

posted @ 2020-01-11 19:43 work hard work smart 阅读(217) 评论(0) 推荐(0)

摘要:Serval Old收集器(-XX:+UseSerialOldGC, 标记-整理算法) 单线程收集,进行垃圾收集时,必须暂停所有工作线程 简单高效,Client模式下默认的老年代收集器 Parallel Old收集器(-XX:+UseParallelOldGC, 标记-整理算法)JDK 6后提供 多 阅读全文

posted @ 2020-01-11 19:25 work hard work smart 阅读(366) 评论(0) 推荐(0)

摘要:Stop-the-World JVM由于要执行GC而停止了应用程序的执行 任何一种GC算法中都会发生 多数GC优化通过减少Stop-the-world发生时间来提高程序性能 Safepoint 分析过程中对象引用关系不会发生变化的点 产生Safepoint的地方: 方法调用; 循环跳转; 异常跳转等 阅读全文

posted @ 2020-01-11 19:04 work hard work smart 阅读(234) 评论(0) 推荐(0)

摘要:1、对象被判断为垃圾的标准 没有被其它对象引用 2、判断对象是否为垃圾的算法 1)引用计数算法 2)可达性分析算法 3、引用计数算法 1) 通过判断对象的引用数量来决定对象是否可以被回收 2)每个对象实例都有一个引用计数器,被引用则+1, 完成引用则-1 3) 任何引用计数为0的对象实例可以被当作垃 阅读全文

posted @ 2020-01-09 20:56 work hard work smart 阅读(289) 评论(0) 推荐(0)

摘要:一、synchronized介绍 线程安全问题的主要诱因 存在共享数据(也称临界资源) 存在多条线程共同操作这些数据 解决问题的根本方法: 同一时刻有且只有一个线程操作共享数据,其它线程必须等待该线程处理完数据后再对共享数据进行操作。 互斥锁的特性 互斥性: 即在同一时间只允许一个线程持有某个对象锁 阅读全文

posted @ 2019-12-29 19:06 work hard work smart 阅读(219) 评论(0) 推荐(0)

摘要:如何中断线程 目前使用的方法 调用interrupt(), 通知线程应该中断了 1) 如果线程处于被阻塞状态,那么线程将立即退出被阻塞状态,并抛出一个InterruptException异常 2) 如果线程处于正常状态,那么会将该线程的中断标志置为true。 被设置中断标志的线程将继续运行,不受影响 阅读全文

posted @ 2019-12-29 16:52 work hard work smart 阅读(299) 评论(0) 推荐(0)

摘要:yield函数概念: 当调用Thread.yield() 函数时,会给线程调度器一个当前线程愿意让出CPU使用的暗示,但是线程调度器可能会忽略这个暗示。 打印结果: 可以发现A5后面是A6,并没有让出CPU 再执行一次 可以发现A5后面是B2,交出了CPU执行 阅读全文

posted @ 2019-12-29 16:26 work hard work smart 阅读(558) 评论(0) 推荐(0)

摘要:1、Linux的体现结构 Linux的体系结构分为用户态(用户上层活动)和内核态 内核: 本质上是一段管理计算机硬件设备的程序 系统调用:内核的访问接口,是一种能再简化的操作 公用函数库: 系统调用的组合拳 Shell: 命令解释器,可编程 阅读全文

posted @ 2019-12-29 09:13 work hard work smart 阅读(135) 评论(0) 推荐(0)

摘要:1、我们先验证下wait可以用notify和notifyAll来唤醒 如下测试代码: 执行结果: 2、notify和notifAll的区别 两个概念 锁池EntryList 等待池 WaitSet 锁池: 假设线程A已经拥有了某个对象(不是类)的锁,而其它线程B,C想要调用这个对象的某个某个sync 阅读全文

posted @ 2019-12-28 21:53 work hard work smart 阅读(1388) 评论(0) 推荐(0)

摘要:基本区别: 1、 sleep()来自Thread, wait() 来自Object2、sleep可以在任何地方使用wait只能在synchronized方法或者synchronized块中使用 (因为wait会释放锁,所有只有获取了锁,才会释放锁) 最主要的本质区别Thrad.sleep只会让出CP 阅读全文

posted @ 2019-12-28 21:25 work hard work smart 阅读(900) 评论(0) 推荐(0)

摘要:方法有以下几种: 主线程等待法 使用Thread类的join()阻塞当前线程以等待子线程处理完毕 通过Callable接口实现: 通过FutureTask Or线程池获取 一、主线程等待法 如下代码 打印的结果为 将它改造成主线程等待法 这样,5秒后就能打印name的值 二、使用Thread类的jo 阅读全文

posted @ 2019-12-28 19:29 work hard work smart 阅读(456) 评论(0) 推荐(0)

摘要:35、并行和并发的区别? 并行:一个处理器同时处理多个任务 并发:多个处理器或者多核处理器同时处理多个不同的任务。 36、线程与进程的区别 一个程序至少有一个进程,一个进程下至少有一个线程。一个程序下可以有多个线程来增加程序的执行速度 37、守护线程是什么? 守护线程是运行在后台的一种特殊进程,它独 阅读全文

posted @ 2019-12-25 22:25 work hard work smart 阅读(205) 评论(0) 推荐(0)

摘要:JVM 结构: 图片来自:https://blog.csdn.net/SivanL/article/details/88865084 194、说一下JVM的主要组成部分? 及其作用? 1) 类加载器 (ClassLoader) 2) 运行时数据区 (Runtime Data Area) 3) 执行引 阅读全文

posted @ 2019-05-12 20:17 work hard work smart 阅读(148) 评论(0) 推荐(0)

摘要:1、Dubbo和Spring Cloud区别 1)、通信方式不同 Dubbo使用RPC通信,Spring Cloud使用Http RestFul方式 2) 组成部分不同 组件 Dubbo Spring Cloud 服务注册中心 Zookeeper Spring Cloud Netflix Eurek 阅读全文

posted @ 2019-04-25 09:48 work hard work smart 阅读(149) 评论(0) 推荐(0)

摘要:一、AOP介绍 AOP 全称Aspect Orient Programming,即面向切面编程,解决代码复用问题。是对OOP(Object Orient Programming)的一种补充。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理分为静态代理和动态代理。 应该场景:广泛应用于处 阅读全文

posted @ 2019-03-15 18:26 work hard work smart 阅读(312) 评论(0) 推荐(0)

摘要:一、内容 1、阻塞和非阻塞是什么? 2、传统IO模型,他存在哪些阻塞点 3、NIO模型 4、对比总结 1、阻塞和非阻塞是什么? 阻塞:做某件事情,直到完成,除非超时,如果没有完成,继续等待。 非阻塞:做一件事情,尝试着做,如果说不能做完,就不做了。意思就是直接返回,如果能做完,就做。 2、传统IO模 阅读全文

posted @ 2019-03-02 21:45 work hard work smart 阅读(230) 评论(0) 推荐(0)