自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三十岁“开始”学Java

学会热爱生活

  • 博客(36)
  • 收藏
  • 关注

原创 VMware+Centos7设置静态ip

查看虚拟网卡信息虚拟机安装好以后,当前的系统会多出来两个虚拟网卡,一般情况下这两个网卡的命名是VMware Virtual Ethernet Adapter for VMnet1VMware Virtual Ethernet Adapter for VMnet8我们可以把虚拟机中的系统的静态IP绑定到VMnet8上,所以第一步,我们要看一下VMnet8的ip地址查看虚拟...

2019-11-05 15:48:04 199

原创 mysql分享

MYSQL,你会想到啥想到啥,管我啥事,DBA去管。我只写sql,这里告诉你,你的sql执行结果可能跟你想的不一样。一般在没有并发或者不是高并发情况下,是没有问题,这是mysql帮你做好了 。mysql->数据存储-数据存到哪如何保存,数据格式是怎么样的如何保证数据不丢失如何做到数据复制怎么提供api供各种语言操作怎么与各种客户端或者说服务器进行通信怎么处理不同语言...

2019-11-03 19:53:16 219

原创 redis

REmote DIctionary Service为什么学习Redis?在高并发和高访问量的情况下,关系型数据库(基于磁盘读写)满足不了我们访问的需求时,我们需要一种基于内存读写的数据库。关系型数据库和非关系型数据库对比: 关系型数据库 非关系型数据库 优点 1、以表格的形式,基于行存储,是一个二维模式。 2、存储结构化的数据,数据存储有固定的模式...

2019-10-20 09:26:44 161

原创 redis数据结构

数据结构有:String hash list set zset bitmaps hypeloglogs geospatial streamString数据结构:能存储字符串、整数、浮点数embstr 和 raw 的区别?embstr 的使用只分配一次内存空间(因为 RedisObject 和 SDS 是连续的),而 raw需要分配两次内存空间(分别为 RedisObject 和 ...

2019-10-19 14:50:11 140

原创 spring-mybatis源码分析

几个核心的类SqlSessionFactoryBuilderSqlSessionFactory->SqlSessionFactoryBuilder.build(Configuration)SqlSession->SqlSessionFactory.openSession()Mapper ->SqlSession.getMapper()Executormybati...

2019-10-16 23:03:41 112

原创 高并发场景下ArrayList的线程安全问题

ArrayList是我们常用的数据结构,在并发场景下是线程不安全的。在读多写少的场景下,我们一般会用读写锁 ReadWriteLock来保证共享对象的线程安全性。public Object read() { lock.readLock().lock(); // 对ArrayList读取 lock.readLock().unlock();}public void write()...

2019-10-14 08:59:04 1257

转载 死锁

https://blog.csdn.net/wenlijunliujuan/article/details/79614019

2019-10-10 19:01:33 97

原创 红黑树与平衡二叉树

AVL树:严格的平衡二叉树红黑树:弱的平衡二叉树(在相同的节点情况下,AVL树的高度低于红黑树)平衡条件必须满足(所有节点的左右子树高度差不超过1)。不管我们是执行插入还是删除操作,只要不满足上面的条件,就要通过旋转来保持平衡,而它的英文旋转非常耗时的,由此我们可以知道AVL树适合用于插入与删除次数比较少,但查找多的情况适用情况:AVL树:插入与删除次数比较少,但查找多的情况红黑...

2019-10-10 18:22:06 127

原创 spring-mybatis源码解析

SqlSessionFactoryBuilderSqlSessionFactory->SqlSessionFactoryBuilder.build(Configuration)SqlSession->SqlSessionFactory.openSession()Mapper ->SqlSession.getMapper()Executormybatis启动...

2019-10-09 21:51:16 141

转载 Java垃圾回收机制(GC策略)

万雨嘿嘿,又获得了新的知识 (づ。◕ᴗᴗ◕。)づ随笔 - 131, 文章 - 3, 评论 - 29, 引用 - 0Java垃圾回收机制(GC策略)Java垃圾回收机制(GC策略)  核心:1,哪些是垃圾?【怎么确定这个是垃圾】;2,如何回收垃圾?【怎么更好收垃圾】。  Java语言相对于C++等语言有一个自动垃圾回收机制,只用管使用【实例化对象】,后续的垃圾回收有专门的...

2019-10-07 22:30:39 364

原创 jvm-jvm垃圾回收

最近学习jvm,一点理解,希望和大家一起分享,不对的地方,大家共同讨论。写在前面的话,很重要。jvm不仅仅是垃圾回收,还有很多别的事,如类加载、对接操作系统等。这里我们说jvm的垃圾回收。为什么要垃圾回收?因为我们每台物理机的内存是有限固定的,我们的应用程序只要在运行就会不断生成新的对象。这时候如果需要保证服务器能继续工作,就必须去进行对象的回收。JVM这里帮我们进行了回收,回收垃圾的时候...

2019-10-07 12:28:08 96

原创 jvm调优的一些思考

JVM垃圾回收需要考虑的两个点:停顿时间短、高吞吐量。不同的要求,不同的收集模式(收集过程)。如何保证垃圾收集准确,速率高,线程数多少,占用的内存情况都需要考虑。为什么需要stw(stop the world)?jvm GC优化:硬件配置 业务场景(吞吐量,延迟,内存使用)串行收集:串行垃圾收集器有:Serial收集器\Serial Old收集...

2019-10-07 12:27:26 126

转载 jvm-G1垃圾回收

https://blog.csdn.net/lijingyao8206/article/details/80513383

2019-10-06 21:01:24 123

原创 简单区别select poll epoll

select 创建的连接数最大1024;poll没有限制select和poll采用 轮询的方式,去处理连接的channelList;epoll通过内核的通知机制,通过回调通知channel。轮询方式:如果客户端请求只有一个发生io操作,这时候也需要遍历其他所有的channel,判断是否发生io操作。回调方式:只有发生了io操作的,才会通知回调。两种方式的比较:如果并发大力...

2019-10-06 18:00:54 131

转载 jvm-gc什么时候会触发

1.问:minor gc什么时候被触发?触发minor gc的关键在于:eden区内存不足。造成eden区内存不足的原因:由于java对象大部分都是朝生夕死(java局部对象),而死掉的对象就需要在合适的时机被jvm回收,这里就涉及到根搜索算法,java对象的关联关系其实就是一个树形结构,从根到叶子节点遍历,死掉的对象也就和根断开了连接关系,没有死掉的对象也会由于minor gc被强制断开关系...

2019-10-05 09:40:40 3940

转载 jvm-cms垃圾收集器

CMS全称ConcurrentMarkSweep,是一款并发的、使用标记-清除算法的垃圾回收器, 如果老年代使用CMS垃圾回收器,需要添加虚拟机参数-“XX:+UseConcMarkSweepGC”缺点:CMS收集器对CPU资源非常敏感,在并发阶段,它虽然不会导致用户线程停顿,但是由于占用了一部分线程,所以会导致应用程序变慢,总吞吐量降低。CMS默认启动的回收线程数是(cpu数量+3)/4...

2019-10-05 08:36:38 167

转载 jvm-jvm垃圾回收过程

面试管问:来说一下回收的过程?参考:https://www.cnblogs.com/bonelee/p/8066990.html几个名词:年轻代(Young Generation)年老代(Old Generation)永久代(Permanent Generation,也就是方法区),jdk1.8之后,叫做元空间,将原来分配给方法区内存,直接交由物理磁盘来处理。m...

2019-10-05 08:29:10 134

原创 接下来的计划

jvm的学习分片、复制,从es开始学习jmxnionetty

2019-10-01 20:31:45 116

原创 阻塞方法的优化

可以将阻塞调用过程交给线程处理。如socket的读写,可以将socket交给线程处理。通过线程的run方法来处理socket的读写逻辑。

2019-09-25 02:55:00 124

原创 线程中断

interrupt()方法和InterruptException异常,是java专门用来处理线程阻塞的。线程阻塞,就表示要等待一段时间。如果需要等待的时间比较长,正常还没结束之前想中断某个线程的阻塞状态怎么办?这就是靠interrupt()方法来解决了。如果因为一些特殊的原因,想提前中断一些阻塞的线程,以让他们提前解除阻塞状态,然后继续执行下去。只需要在其他线程调用指定线程的interrupt()...

2019-09-25 02:53:18 101

转载 AQS分析

https://www.jianshu.com/p/e4301229f59e

2019-09-19 19:11:06 80

转载 jvm分析

https://www.jianshu.com/p/76959115d486

2019-09-18 22:45:32 113

原创 synchronized 和volatile

java内存模型如上图所示,每个线程都有自己独立的工作内存,当线程要访问内存中的变量时,会先将内存中的变量值复制到自己的工作内存,然后再访问;当线程要改变内存中的变量值时,也是先改变自己工作内存中副本的变量值,然后再刷新到内存中。当线程一改变了某个变量的值,而线程二想要访问该值时,可能会存在以下情况,即线程一的改变还没刷到内存,或者线程二里面缓存了老值,没有去内存中拿最新的值,这时就相当于线程...

2019-09-18 22:24:39 118

原创 spring事务

PROPAGATION_REQUIRED:没有事务,需要创建事务。目标是必须在事务中。 PROPAGATION_SUPPORTS:可以没有事务。有也可以。 PROPAGATION_MANDATORY:强制必须有,没有抛异常。 PROPAGATION_REQUIRES_NEW:创建新的事务,有则将当前的事务挂起。 PROPAGATION_NOT_SUPPORTED:不支持事务,有则将当前...

2019-09-02 15:43:29 106

原创 单词记录

vintageI'm terribly sorrytodisappointyou, butthepricesforthatvintagearefixedandnon-negotiablehistogramThehistogramofimagedepends ontheweatherandtime.SweepWhatIsho...

2019-08-29 13:45:38 178

原创 画布效果

画布<!DOCTYPE html><html><head> <title></title> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/live2d-widget@3.0.4/lib/L2Dwidget.min.js"> &...

2019-08-27 12:50:00 406

原创 String.intern()

/** * Returns a canonical representation for the string object. * <p> * A pool of strings, initially empty, is maintained privately by the * class {@code String}. * &lt...

2019-08-27 00:50:41 121

原创 三十岁开始学Java

锻炼完后,身体很累。精神还是不错的,锻炼还是可以提神的,不管什么年纪,还是多锻炼,可以帮助你很有精神,特别是我们程序猿啊,O(∩_∩)O哈哈~也不是突然想写博客了,之前也有写,但是写的比较少,没有自律性。我们很多人其实和我一样,缺乏自律,人嘛,都是有惰性的。但,人生应该需要记录,不是为了记录而记录,而是通过记录的方式去总结,去思考,这样才会深入的体会、了解,为了以后更好的工作和生活...

2019-08-27 00:04:27 1892 1

原创 LRU算法实现

参考:使用数组+链表方式https://segmentfault.com/a/1190000018054154三种不同方式比较:https://www.cnblogs.com/zlting/p/10775887.htmlLinkedHashMap实现:accessOrder 默认为false;此时在 添加元素时,不会将链表中的节点移动到链表末尾removeEl...

2019-08-22 15:19:39 108

原创 ConcurrentHashMap原理解析

Map元素插入过程图:/*** * onlyIfAbsent 默认为false,即在key值相同的时候,用新的value值替换原始值*/final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new NullPointerEx...

2019-08-22 00:00:02 609

转载 netty可靠性

转载:https://www.infoq.cn/article/netty-reliability1. 背景1.1. 宕机的代价1.1.1. 电信行业毕马威国际 (KPMG International) 在对 46 个国家的 74 家运营商进行调查后发现,全球通信行业每年的收益流失约为 400 亿美元,占总收入的 1%-3%。导致收益流失的因素有多种,主要原因就是计费 BUG。...

2019-05-05 22:59:32 246

原创 接口报文验签流程图

2018-05-04 17:32:28 1375

原创 snowflake

snowflake是一个分布式自增ID算法。一般数据主键我们使用数据库sequence、时间戳、uuid或者sequence\时间戳和其他字段的组合。这里sequence对一些比较隐私的数据会让别人知道当前的数据量;uuid比较长,且一般无序;在我们希望使用一些简单的id,并且希望id能够按时间顺序生成。这种情况下可以考虑使用snowflake。主要应用场景:在分布式的...

2018-05-04 16:34:57 425

原创 java类加载

java类加载:做了什么事情:类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。加载过程:加载:查找并加载类的二进制数据...

2018-04-14 21:46:08 109

原创 spring学习计划

Spring学习计划说明:其中每个模块的讲解一般涉及的方面1)     为什么?解决哪些问题、优势。。。2)     实现原理3)     在阅读源码过程中,可以将其中的设计模式或者代码的风格讲解大致分了几个模块如下:IOC1.IOC的具体实现,spring源码是怎样讲对象创建好并注入到我们的业务代码中的,完整的过程?(如果能结合我们在开发中使用他的这种思想来改造我们现有的代码更好)ioc应该和d

2018-01-18 10:47:26 697

转载 spring 总结

如何选择框架?永远没有“最好”的框架,只有最适合自己需求的框架。在选择一个框架时需要考虑的问题有几个:l  我使用的语言和平台支持这个框架吗?l  这个框架和其他我正在使用的框架的兼容性怎么样?l  学习这个框架的学习曲线是否太陡?l  它的开发效率如何?l  安全性如何?l  方便进行单元测试吗?l  这个框架的文档支持怎么样?社区够活跃吗?一 Spring是什么Spring是一个开源的轻量级J

2018-01-18 09:46:43 234

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除