清山随笔

linfenliang's blog

JAVA虚拟机类加载机制

JVM中类加载的时机、过程与类加载器

概述 Java编译器将.java文件编译成.class文件后,虚拟机需要加载这些class文件然后运行, 本文介绍了虚拟机如何加载这些Class文件以及加载到虚拟机中后会发生哪些变化。 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类加载时机 类从被加载到虚拟机内存中开始,到...

HashMap在不同JDK版本中的区别

HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响

HashMap的实现原理 HashMap是基于java.util.map接口的实现,该实现提供了所有的对Map的可选操作,同时也允许null类型的key以及value (HashTable与此大致相同,只是HashTable是同步的,不过HashTable一般被认为是已经过时的,很少有人再去用了) HashMap不保证Map中的顺序,特别是不能保证数据在一段时间内的顺序性。 如果散列函...

spring基于redis的注解式cache

spring boot annotation cache redis

spring cache 简介 在spring3.1开始,spring框架提供了显示的缓存支持,与对事务的支持类似,缓存抽象允许我们在保证对代码影响最小的情况下能够以一致的方法使用不同的工具或框架做缓存。 自行spring4.1开始,缓存抽象开始显著的提升了对JSR-107 annotations 注解式缓存以及其他自定义选项的支持。 以上是官网给出的介绍,以我的理解就是:采用缓存式注解方...

spring-data整合MongoDB代码测试

场景 目前业务场景中有用MySQL存储车辆轨迹数据以及温度计温湿度数据,数据增长非常快,每个月有大概200万到300万的增长速度,并且随着下一步接入企业的进一步增加,温度计数据与车辆轨迹数据还会持续增加(业务需求,每辆车都必须要安装GPS),之前做过数据分库分表,数据库MySQL分库分表导致运维查询会很麻烦,并且不利于数据的统计分析。 目前的业务需求是希望数据稳定的持续的存储以及能够实现实...

Mac下Maven以jetty方式启动web项目报错Permission Denied

报错信息 [ERROR] Failed to execute goal org.eclipse.jetty:jetty-maven-plugin:9.4.6.v20170531:run (default-cli) on project pscq-web: Failure: Permission denied -> [Help 1] [ERROR] [ERROR] To see the...

2017年第三季度读书计划

秋季读书计划以及第二季度读书总结

第二季度完成情况回顾 《编程导论》 《图解TCP/IP》 《Maven实战》 这三本书均没有读完,深感惭愧,其中编程导论只完成前七章 图捷TCP/IP更是仍然徘徊在第一章,而Maven实战只是对部门章节的部分内容做了了解(当字典用了), 我仔细分析了原因,有近期工作比较忙(有一段时间甚至每天都到深夜一两点),然而更重要的也是最重要的原因是自身的惰性。 一方面,自己并没有制定具体的每...

MacKeeper卸载后,劫持浏览器解决办法

之前安装一个绘图软件,收费,在网上找了一个破解包(事实证明是假的),结果是Mackeeper伪装的, 发现后卸载,然后。。。。 以后再用Chrome浏览器以及Safari浏览器的时候,不定时自动打开网页,同时电脑耗电很快,从网上搜寻的各种方法均证明无效后,在知乎上看到一个方法: 安装杀毒软件:anti-malware for mac,然后扫描,将所有扫描到的文件删除(软件会提醒删除),删除后...

TCP/IP协议分层模型

TCP/IP与OSI七层模型 OSI参考模型与TCP/IP的关系如图所示: OSI参考模型注重通信协议必要的功能是什么 TCP/IP强调在计算机上实现协议应该开发哪种程序 我们一般来讲是基于TCP/IP协议开发的。 下面会基于TCP/IP分别解释介绍 硬件(物理层) 该层是硬件层,即负责数据传输的硬件,比如网线等 #网络接口层(数据链路层) 一般指网络驱动程序,与硬件直接交互,...

在Docker中安装并使用RabbitMQ

Docker下安装并运行rabbitmq sudo docker pull rabbitmq 拉取到rabbitmq后启动rabbitmq: docker run -d --hostname my-rabbit --name some-rabbit -p 15672:15672 rabbitmq:management 该命令定义了rabbitmq的主机名称(该名称将在集群的名称中...

2017年第二季度需要读完的书

技术书籍读书计划 《编程导论》 《图解TCP/IP》 《Maven实战》 说明 其中《编程导论》是为了学习Python的基础知识以及回顾数据结构与算法做的准备; 而《图解TCP/IP》是为了完善自己的知识体系(部分章节会选读); 《Maven实战》则是因为发现对Maven的掌握并不如想象的那么好,各种配置还不是很熟悉。