java的平凡之路

博客的文章都是平时学习或者遇到其他人写的不错的文章分享,也是做一个记录,希望大家喜欢...

Java虚拟机体系结构,你知道吗?

Java的跨平台特性,因为它有针对不同平台的虚拟机。 1.2 Java虚拟机 Java虚拟机的主要任务是装载class文件并且执行其中的字节码。由下图可以看出,Java虚拟机包含一个类装载器(class loader),它可以从程序和API中装载class文件,Java API中只有程...

2017-08-23 09:23:43

阅读数:356

评论数:0

Java 日志管理最佳实践

概述 对于现在的应用程序来说,日志的重要性是不言而喻的。很难想象没有任何日志记录功能的应用程序运行在生产环境中。 日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。 在生产环境中,日志是查找问题来源的重要...

2017-08-23 09:23:03

阅读数:387

评论数:0

基于mybatis读写分离插件

因此 DataSourceProxy 返回的 Connection是一个代理类, 依赖一个 DataSourceRout 接口,在未执行sql语句之前都是由 Connection代理类完成操作。再执行 sql 语句时,由 DataSourceRout 接口返回具体 Connection执行 sql...

2017-08-23 09:22:22

阅读数:280

评论数:0

聊聊并发-Java中的Copy-On-Write容器

读的时候不需要加锁,如果读的时候有多个线程正在向ArrayList添加数据,读还是会读到旧的数据,因为写的时候不会锁住旧的ArrayList。 JDK中并没有提供CopyOnWriteMap,我们可以参考CopyOnWriteArrayList来实现一个,基本代码如下: ...

2017-08-22 09:10:36

阅读数:223

评论数:0

单点登录原理与简单实现

服务器在内存中保存会话对象,浏览器怎么保存会话id呢?你可能会想到两种方式 请求参数 cookie 将会话id作为每一个请求的参数,服务器接收请求自然能解析参数获得会话id,并借此判断是否来自同一会话,很明显,这种方式不靠谱。那就浏览器自己来维护这个会话id吧,每次发送http请...

2017-08-22 09:10:06

阅读数:199

评论数:0

Nginx 缓存引发的跨域惨案

1. 前言 贵金属wap版直播间上线后,偶尔有用户反馈,在进入wap直播间的时候,出现空白页面,但是重新刷新又可以正常显示了。我们曾一度认为是网络请求异常或兼容问题,直到开发PC版直播间,在进行调试中,同样遇到了“白屏”问题,才引起了足够重视,并进行了问题跟踪与分析。现在跟大家分...

2017-08-22 09:09:26

阅读数:325

评论数:0

Spring Boot + Mybatis + Redis二级缓存开发指南

背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一。Mybatis是一个十分轻量好用的ORM框架。Redis是当今十分主流的分布式key-value型数据库,在web开发中,我们常用它来缓存数据库的查询结果。 本篇博客将介绍...

2017-08-22 09:09:01

阅读数:624

评论数:0

HTTP长连接和短连接原理浅析

1. HTTP协议与TCP/IP协议的关系   HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有...

2017-08-22 09:08:13

阅读数:167

评论数:0

深入理解 Spring 事务原理

真正的数据库层的事务提交和回滚是通过binlog或者redo log实现的。 所谓spring事务的传播属性,就是定义在存在多个事务同时存在的时候,spring应该如何处理这些事务的行为。这些属性在TransactionDefinition中定义,具体常量的解释见下表: 如果一个活动的...

2017-08-22 09:07:52

阅读数:180

评论数:0

Java判断两个时间是不是同一天

1**Java判断两个时间是不是同一天**  使用DateUtils.isSameDay函数判断两个date是否处于同一天。 boolean org.apache.commons.lang.time.DateUtils.isSameDay(java.util.Date d1, java.uti...

2017-08-21 10:36:59

阅读数:2395

评论数:0

比较两个java.util.Date 的日期(年月日)是否相同(忽略时、分、秒)的多种方法

介绍几种比较Date年月日的方法 1、需求: 1)下面两个时间进行比较: Thu Jan 01 08:59:00 CST 1970 Thu Jan 01 08:48:00 CST 1970 =》比较结果:same 2)下面两个时间进行比较: Thu Jan 01 08...

2017-08-21 10:36:39

阅读数:190

评论数:0

如何快速搭建一个微服务架构?

微服务火了很久,但网上很少有文章能做到成熟地将技术传播出来,同时完美地照顾“初入微服务领域人员”,从 0 开始,采用通俗易懂的语言去讲解微服务架构的系列。所以,我们策划了这篇文章。本文转载自 InfoQ 垂直号「聊聊架构」,ID:archtime 记得好久之前看到一个大牛说过:如果单体架构都搞不...

2017-08-21 09:14:49

阅读数:9460

评论数:0

理解HTTPS为什么安全前,先看看这些东西

HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TSL 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『...

2017-08-18 09:57:19

阅读数:240

评论数:0

Java 并发集合的实现原理

本文简要介绍Java并发编程方面常用的类和集合,并介绍下其实现原理。 AtomicInteger 可以用原子方式更新int值。类 AtomicBoolean、AtomicInteger、AtomicLong 和 AtomicReference 的实例各自提供对相应类型单个变量的访问和更...

2017-08-18 09:56:39

阅读数:171

评论数:0

java分布式系统开关功能设计(服务升降级)

首先讲一下开关的由来,例如东京在6月18日做店庆促销活动,在交易下单环节,可能需要调用A、B、C三个接口来完成,但是其实A和B是必须的,C只是附加的功能(例如在下单的时候做一下推荐),可有可无,在平时系统没有压力,容量充足的情况下,调用下没问题,但是在类似店庆之类的大促环节,系统已经满负荷了,这时...

2017-08-18 09:55:37

阅读数:243

评论数:0

如何建设高可用系统

面试的时候经常会问一个问题,如何建设高可用系统?大家可以一起探讨下。 “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。以下是高可用系统的设计建议: 设计建议 精准监控- 对CPU利用率,loa...

2017-08-18 09:55:02

阅读数:161

评论数:0

JVM 内存分代、垃圾回收漫谈

关于 JVM 内存模型以及垃圾回收的文章网上很多,自己以前也看过很多,但是却从来也没有系统的去了解学习过,这次正巧看到一本讲解 JVM 的好书 – 周志明老师的《深入理解 Java 虚拟机》,然后就花了点时间,认真系统的学习了一遍,尽管还没有看完,但是已经爱耐不住,觉得要写点东西出来,写的过程是一...

2017-08-17 10:15:20

阅读数:137

评论数:0

JAVA集合类(大公司面试喜欢问的)

看了一些所谓大公司的Java面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧。 java.util包中就包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式。 接口:Collection ...

2017-08-17 10:14:37

阅读数:145

评论数:0

Java 线程池(ThreadPoolExecutor)原理分析与使用

在我们的开发中“池”的概念并不罕见,有数据库连接池、线程池、对象池、常量池等等。下面我们主要针对线程池来一步一步揭开线程池的面纱。 使用线程池的好处 1、降低资源消耗 这里提到了线程池的饱和策略,那我们就简单介绍下有哪些饱和策略: AbortPolicy 为J...

2017-08-17 10:12:15

阅读数:126

评论数:0

Java 线程池的理论与实践

前段时间公司里有个项目需要进行重构,目标是提高吞吐量和可用性,在这个过程中对原有的线程模型和处理逻辑进行了修改,发现有很多基础的多线程的知识已经模糊不清,如底层线程的运行情况、现有的线程池的策略和逻辑、池中线程的健康状况的监控等,这次重新回顾了一下,其中涉及大量java.util.concurre...

2017-08-17 10:11:22

阅读数:163

评论数:0

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