• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

2019年02月8日的内容

分布式事务架构实践

1题记在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。……

Java 中的 try catch 影响性能吗?

前几天在 code review 时发现有一段代码中存在滥用 try catch 的现象。其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch 一下。但实际上这种习惯不仅会让代码很难看,更会影响代码的运行性能。有些人会觉得,不就是一个 try catch 么,怎么会影响性能啊。那就让我们来测试……

Tomcat优化之配置线程池

简介线程池作为提高程序处理数据能力的一种方案,应用非常广泛。大量的服务器都或多或少的使用到了线程池技术,不管是用Java还是C++实现,线程池都有如下的特点:线程池一般有三个重要参数:最大线程数。在程序运行的任何时候,线程数总数都不会超过这个数。如果请求数量超过最大数时,则会等待其他线程结束后再处理。最大共享线程数,即最大空闲……

Java多线程并发编程一览笔录

1、线程是什么?线程是进程中独立运行的子任务。2、创建线程的方式方式一:将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法方式二:声明实现 Runnable 接口的类。该类然后实现 run 方法推荐方式二,因为接口方式比继承方式更灵活,也减少程序间的耦合。3、获取当前线程信息?Thread.cu……

加密算法介绍及加密算法的选择

加密算法介绍「一. 密码学简介」据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标……

Java正则表达式的十大问题(下)

1. 如何将anbn与Java正则表达式匹配这是所有非空字符串的语言,这些字符串由一定数量的a后跟相同数量的b组成,如ab、aabb和aaabbb。这种语言可以显示上下文无关文法年代→aSb | ab,因此一种非正式语言。然而,Java regex实现可以识别的不仅仅是常规语言。也就是说,根据形式语言理论的定义……

记录自己理解的一些设计模式

记录一下自己理解的一些设计模式,并尽量使用表达清楚的例子进行讲解。策略模式策略模式应该是最基础的一个设计模式,它是对行为的一个抽象。jdk中的Comparator比较器就是一个使用策略设计模式的策略。比如有一个Student学生类,有name和age两个属性。如果有个需求需要打印学生名单,并按照字母顺序排序,可以使用Comparat……

订单系统中并发问题和锁机制的探讨

问题由来假设在一个订单系统中(以火车票订单系统为例),用户A,用户B都要预定从成都到北京的火车票,A、B在不同的售票窗口均同时查询到了某车厢卧铺中、下铺位有空位。用户A正在犹豫订中铺还是下铺,这时用户B果断订购了下铺。当用户A决定订下铺时,系统提示下铺已经被预订,请重新选择铺位。在这个系统场景中,我们来探讨一下,火车票系统是怎样处理并发事件以……

Java内部类详解

  说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:  一.内部类基础  二.深入理解内部类  三.内部类的使用场景和好处  四.常见的与内部类相关的笔试面试题  若有不正……

一文读懂HashMap

HashMap源码分析构造函数让我们先从构造函数说起,HashMap有四个构造方法,别慌1.1 HashMap()// 1.无参构造方法、// 构造一个空的HashMap,初始容量为16,负载因子为0.75publicHashMap(){    this.loadFactor = DEFAULT_LOAD_FACTOR……

一篇文章明白Netty是什么

本文基于Netty4.1展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目提供参考。这是一篇万字长文,建议先收藏,转发后再看。Netty简介Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。……

为什么String被设计成不可变

说实话,一开始我是不太想写这篇文章,首先稍微学过JAVA的都知道String是不可变的,其次String这个类确实很简单,也确实写不出东西,有一次和一位相当资深的架构师在聊天的时候,那位架构师突然问了我一句,“从你的角度谈谈String 为什么要设计成不可变的?”  这个问题很简单,但是回答好可着实不容易,工作这么多年,我确实没去思考过……

Java并发编程相关概念及注意事项

上一篇文章我们以粉刷房子为例,来描述了并发编程中的一些重要概念。在这一篇中,是相应的概念在Java中的具体表现形式,以及使用中要注意的一些问题。在Java的并发编程中,synchronized这个词在初期一定会被大量的使用,除非开发者熟悉J.U.C包中的相关工具类进行替换。这里synchronized也被称为隐式锁、内置锁或管程锁,这三个都……

G1 垃圾收集器介绍

为解决CMS算法产生空间碎片和其它一系列的问题缺陷,HotSpot提供了另外一种垃圾回收策略,G1(Garbage First)算法,通过参数-XX:+UseG1GC来启用,该算法在JDK 7u4版本被正式推出,官网对此描述如下:The Garbage-First (G1) collector is a server-style garba……

电商系统中的商品模型的分析与设计

1,前言在电商系统中,商品模型至关重要,是整个电商的核心,下面通过一个简单的分析,设计一个基础的商品模型。2,商品模型的演化在以前,那时CMS很流行,最常见的模型是栏目-文章模型。于是做电商的时候,自然就继承了这种一对多的关系。只是栏目变成了分类,文章变成了商品。商品也具备了独特的业务属性。现在很多电商网站上左侧的菜……

Java多线程编程 — 锁优化

阅读目录一、尽量不要锁住方法二、缩小同步代码块,只锁数据三、锁中尽量不要再包含锁四、将锁私有化,在内部管理锁五、进行适当的锁分解正文并发环境下进行编程时,需要使用锁机制来同步多线程间的操作,保证共享资源的互斥访问。加锁会带来性能上的损坏,似乎是众所周知的事情。然而,加锁本身不会带来多少的性能消耗,性能主要是在线程的获取锁的过程。……

从单机至亿级流量大型网站系统架构的演进过程

阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate、maven+spring+springmvc+mybatis;最后再选择一个数据库管理系……

Twitter的分布式雪花算法 SnowFlake 每秒自增生成26个万个可排序的ID (Java版)

概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的SnowFlake解决了这种需求,最初Twitter把存储系统从MySQL迁移……

对 Java 意义重大的 7 个性能指标

本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序。现在,让我们看看这些性能指标,并了解如何查看并收集它们:1.响应时间和吞吐量根据应用程序的响应时间可以知道程序完成传输数据所用的时间。也可以从HTTP请求级别,或者成为数据库级别来看。对那些缓慢的查询你需要做一些优化来缩短时间。吞吐量是另一个角度衡量传输数据……

java中关于try、catch、finally中的细节分析

看了一位博友的一片文章,讲解的是关于java中关于try、catch、finally中一些问题下面看一个例子(例1),来讲解java里面中try、catch、finally的处理流程publicclassTryCatchFinally{    @SuppressWarnings(“finally”)    ……

深入理解虚拟机之类文件结构

简单介绍一下Class类文件结构(常量池主要存放的是那两大常量?Class文件的继承关系是如何确定的?字段表、方法表、属性表主要包含那些信息?)1 概述  计算机虽然只能识别0和1,但是越来越多的程序语言选择了与操作系统和机器指令集无关无关的、平台中立的格式作为程序编译后的存储格式。Java虚拟机不和包括Java在内的任何语言绑定,只与 &#……

Calendar类简单常用的几种方法

1、Calendar的实例化由于Calendar是抽象类,不可以直接new出一个对象 Calendar calendar=Calendar.getInstance();2、Calendar类与Date类的互相转换 Calendar转化成Date Calendar cal=Calendar.getInstance……

设计模式六大原则

在android中我们常提起的设计模式大约有23种,利用好设计模式能够帮助我们很好的构建代码结构,也便于我们以后的维护。每次看完,看的时候总觉得很明白,但是过一段时间以后都会忘记,或只记得一些片段,又或到真正使用起来的时候才会发现一系列的问题。本系列笔记会从头记录这23种设计模式,当然一定会有不正确的地方。本系列笔记参考了《设计模式之禅》、《……

Session与JWT(实现JWT刷新与后端限制授权)

前言Hello World!怕是大多数程序员写的第一句代码了吧。我就是用C语言写的第一个代码就是它了。虽然现在没有从事有关C语言的工作,不过还是受益于学习它所经历的每一行代码。 登录注册怕是写web应用里的Hello World!级存在了。第一份工作做的是j2ee和app,做的第一个模块就算是它了。不过这个”Hello World!”可一点都……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00