随笔分类 -  Java

摘要:Serializable接口概述 Serializable是java.io包中定义的、用于实现Java类的序列化操作而提供的一个语义级别的接口。Serializable序列化接口没有任何方法或者字段,只是用于标识可序列化的语义。实现了Serializable接口的类可以被ObjectOutputSt 阅读全文
posted @ 2019-05-14 13:26 如.若 阅读(630) 评论(0) 推荐(0)
摘要:在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情。Java 语言中主要的同步手段就是 synchronized 关键字(也称为内在锁),它强制实行互斥,确保执行 synchronized 块的线程的动作,能够被后来执行受相同锁保护的 synchroniz 阅读全文
posted @ 2019-05-05 20:55 如.若 阅读(207) 评论(0) 推荐(0)
摘要:当下流行的两种企业开发MVC开源框架,是我们Java程序猿必备知识能力。MVC,即模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需 阅读全文
posted @ 2019-04-30 16:57 如.若 阅读(931) 评论(0) 推荐(1)
摘要:要聊ServiceMesh,就不得不提Istio,它是ServiceMesh目前最流行的实践, 当微服务架构体系越来越复杂的时候,需要将“业务服务”和“基础设施”解耦,将一个微服务进程一分为二: 一个进程实现业务逻辑,biz,即上图白色方块 一个进程实现底层技术体系,proxy,即上图蓝色方块,负载 阅读全文
posted @ 2019-04-29 19:11 如.若 阅读(4679) 评论(1) 推荐(3)
摘要:一、前言 中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了,有垂直和水平两种。 垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。 水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。 上图中订单数据达到 阅读全文
posted @ 2019-04-25 15:36 如.若 阅读(371) 评论(0) 推荐(0)
摘要:服务网格(ServiceMesh)这两年异常之火,号称是下一代微服务架构,互联网公司经常使用的是微服务分层架构。 随着数据量不断增大,吞吐量不断增加,业务越来越复杂,服务的个数会越来越多,分层会越来越细,除了数据服务层,还会衍生出业务服务层,前后端分离等各种层次结构。不断发现主要矛盾,抽离主要矛盾, 阅读全文
posted @ 2019-04-23 01:10 如.若 阅读(4783) 评论(1) 推荐(4)
摘要:前言 利用利用策略模式实际开发中 if else 条件判断过多的问题 比如平时大家是否都会写类似这样的代码: 条件少还好,一旦 else if 过多这里的逻辑将会比较混乱,并很容易出错。 比如这样: 摘自 cim 中的一个客户端命令的判断条件。 刚开始条件较少,也就没管那么多直接写的;现在功能多了导 阅读全文
posted @ 2019-03-26 23:19 如.若 阅读(20695) 评论(1) 推荐(2)
摘要:说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作, 首先是写一个注解类: 拦截器中实现: 注册到Spring Boot中 在Controller中加入注解 作者:CS打赢你 原文:https://blog.csd 阅读全文
posted @ 2019-03-20 13:27 如.若 阅读(1326) 评论(0) 推荐(0)
摘要:ThreadLoacal是什么? 有些伙伴喜欢把它和线程同步机制混为一谈,事实上ThreadLocal与线程同步无关。ThreadLocal虽然提供了一种解决多线程环境下成员变量的问题,但是它并不是解决多线程共享变量的问题。那么ThreadLocal到底是什么呢? API是这样介绍它的: This 阅读全文
posted @ 2019-03-20 13:04 如.若 阅读(238) 评论(0) 推荐(0)
摘要:利用 JTA 处理事务 什么是事务处理 事务是计算机应用中不可或缺的组件模型,它保证了用户操作的原子性 ( Atomicity )、一致性 ( Consistency )、隔离性 ( Isolation ) 和持久性 ( Durabilily )。关于事务最经典的示例莫过于信用卡转账:将用户 A 账 阅读全文
posted @ 2019-03-20 11:26 如.若 阅读(240) 评论(0) 推荐(0)
摘要:看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还 阅读全文
posted @ 2019-03-20 02:01 如.若 阅读(240) 评论(0) 推荐(0)
摘要:前言 在《透彻理解Spring事务设计思想之手写实现》中,已经向大家揭示了Spring就是利用ThreadLocal来实现一个线程中的Connection是同一个,从而保证了事务。本篇博客将带大家来深入分析ThreadLocal的实现原理。 ThreadLocal是什么、有什么、能做什么? Thre 阅读全文
posted @ 2019-03-20 01:41 如.若 阅读(196) 评论(0) 推荐(0)
摘要:前言 事务,是描述一组操作的抽象,比如对数据库的一组操作,要么全部成功,要么全部失败。事务具有4个特性:Atomicity(原子性),Consistency(一致性),Isolation(隔离性),Durability(持久性)。在实际开发中,我们对事务应用最多就是在数据库操作这一环,特别是Spri 阅读全文
posted @ 2019-03-20 01:29 如.若 阅读(238) 评论(0) 推荐(0)
摘要:经历了Java内存模型、JUC基础之AQS、CAS、Lock、并发工具类、并发容器、阻塞队列、atomic类后,我们开始JUC的最后一部分:线程池。在这个部分你将了解到下面几个部分: 线程池的基础架构 线程池的原理分析 线程池核心类的源码分析 线程池调优 Executor 我们先看线程池的基础架构图 阅读全文
posted @ 2019-03-19 20:41 如.若 阅读(410) 评论(0) 推荐(0)
摘要:作为Executor框架中最核心的类,ThreadPoolExecutor代表着鼎鼎大名的线程池,它给了我们足够的理由来弄清楚它。 下面我们就通过源码来一步一步弄清楚它。 内部状态 线程有五种状态:新建,就绪,运行,阻塞,死亡,线程池同样有五种状态:Running, SHUTDOWN, STOP, 阅读全文
posted @ 2019-03-19 20:29 如.若 阅读(556) 评论(0) 推荐(0)
摘要:我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而 阅读全文
posted @ 2019-03-19 13:27 如.若 阅读(970) 评论(0) 推荐(0)
摘要:线程池究竟设成多大是要看你给线程池处理什么样的任务,任务类型不同,线程池大小的设置方式也是不同的。 任务一般可分为:CPU密集型、IO密集型、混合型,对于不同类型的任务需要分配不同大小的线程池。 CPU密集型任务 尽量使用较小的线程池,一般为CPU核心数+1。 因为CPU密集型任务使得CPU使用率很 阅读全文
posted @ 2019-03-19 13:09 如.若 阅读(2746) 评论(0) 推荐(1)
摘要:Java 异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.la 阅读全文
posted @ 2019-03-14 11:20 如.若 阅读(236) 评论(0) 推荐(0)
摘要:在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类: 公平锁/非公平锁 可重入锁 独享锁/共享锁 乐观锁/悲观锁 分段锁 自旋锁 01.乐观锁 vs 悲观锁 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对 阅读全文
posted @ 2019-01-28 22:50 如.若 阅读(461) 评论(0) 推荐(0)
摘要:在Java开发时,异常处理是非常普遍的。先看这样一道关于异常处理的代码 当执行System.out.println(getNumer())返回的结果应该是多少?A 30 30B 30 1C 1 30答案是B。这个问题的本质就是在try,catch,finally中都有return语句时,执行代码的顺 阅读全文
posted @ 2019-01-26 22:39 如.若 阅读(709) 评论(0) 推荐(0)