java
taojin12
这个作者很懒,什么都没留下…
展开
-
微服务发展历程
微服务发展历程面向服务开发-SOA,根据项目中的服务模块进行划分多个业务系统。微服务开发:微服务是一种将业务系统进一步拆分的架构风格。微服务强调每一个单一业务都独立运行。例如:将用户系统中,用户登录,权限等业务进行划分,并独立运行。每一个单一服务都应该使用更轻量的机制保持通信。例如:使用轻量的tcp、http,抛弃webservice。服务不强调环境,可以不同语言或不同数据源。微服务的选择Dubbo—基于TPC传输的协议。Spring Cloud—包含一系列微服务的架构集合。微服务基本概念原创 2020-05-31 10:49:47 · 1666 阅读 · 0 评论 -
Async注解使用详解及注意事项
文章目录SpringBoot使用条件Async使用注意事项同类中方法调用注解失效报错: No thread-bound request foundSpringboot中当我们需要方法异步调用时,一般可以通过创建线程池的方法异实现异步,在Spring中也可以通过@Async注解达到异步调用的效果,被Async标注的方法或类,会开启一个子线程。SpringBoot使用条件方法上加@Async...原创 2020-04-02 11:07:56 · 1483 阅读 · 0 评论 -
记录常用正则表达式
1、正整数:^\\d+$2、非负数(正数):^\\d+(\\.{0,1}\\d+){0,1}$原创 2019-01-23 13:34:12 · 173 阅读 · 0 评论 -
初步了解JVM
文章目录JVM的概念JVM的规范定义:jvm主要定义了二进制class文件和JVM指令集等JVM的概念1、 JVM 是Java Virtual Machine的简称,翻译为Java虚拟机。2、虚拟机 ----- 指通过软件模拟的具有完成硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。3、常见的虚拟机有:VMWareVisual BoxJVM4、VMWare或者 Visu...原创 2019-02-21 17:19:09 · 212 阅读 · 0 评论 -
深入JVM内核----原理、诊断与优化
JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,下面我们就深入了解一下jvm:第一节:初识JVM概念及规范...原创 2019-02-21 17:28:12 · 247 阅读 · 0 评论 -
jvm运行机制
文章目录jvm启动流程jvm基本结构一、PC寄存器二、方法区三、Java堆四、Java栈(先进后出的数据结构)五、栈、堆、方法去交互内存模型编译和解释运行的概念jvm启动流程1、java或者javaw命令启动。2、系统装载配置,根据当前路径和系统版本寻找jvm.cfg(jvm的配置文件)。3、根据配置找到JVM.dll,jvm.dll为jvm的主要实现。4、初始化JVM获得JNIEnv接...原创 2019-02-22 15:48:14 · 235 阅读 · 0 评论 -
GC参数
堆的回顾1、堆中分为新生代和老年代。如图:eden、s0、s1为新生代区域,tenured为老年代区域。s0、s1是两个大小相等的区域,称为幸存区,该区域使用的复制算法。串行收集器串行收集器是GC中常用的一种收集器。1、其最古老、最稳定2、效率高3、可能会产生较长的停顿4、使用参数 -XX:+UseSerialGC启动串行收集器,使用该参数:新生代、老年代使用串行回收。新生代...原创 2019-02-27 15:42:51 · 553 阅读 · 0 评论 -
类装载器
class装载验证流程1、加载装载类的第一个阶段取得类的二进制流转为方法区数据结构在java堆中生成对应的java.lang.class对象2、连接验证1)验证的目的:保证Class流的格式是正确的。文件格式的验证— 是否以0xCAFEBABE开头— 版本号是否合理元数据验证— 是否有父类— 继承了final类?— 非抽象类实现了所有的抽象方法。字节码验...原创 2019-02-27 17:09:57 · 162 阅读 · 0 评论 -
性能监控工具
系统性能监控Linux系统命令可以确定系统运行的整体状态,基本定位问题所在。1、Linux中的uptime命令,输出下面信息04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20当前时间 04:03:58系统已运行的时间 10 days,13:19 当前在线用户 1 user (每一个终端算...原创 2019-02-28 16:37:45 · 456 阅读 · 0 评论 -
Java堆分析
文章目录内存溢出(OOM)的原因在JVM中,有哪些内存区间?MAT使用浅堆深堆使用Visual VM分析堆Tomcat OOM分析案例内存溢出(OOM)的原因在JVM中,有哪些内存区间?1、堆:堆溢出2、永久区溢出(perm)3、线程栈:java栈溢出在创建线程的时候,需要为线程分配栈空间,这个栈空间是向操作系统请求的,如果操作系统无法给出足够的空间,就会抛出OOM。4、直接内...原创 2019-03-01 09:42:20 · 162 阅读 · 0 评论 -
常用JVM配置参数
文章目录Trace跟踪参数1、打印GC的日志信息,命令如下2、打印GC详细信息3、打印GC发生的时间戳4、指定GC log的位置,以文件输出。5、每次GC前后,都打印堆信息6、监控类的加载7、打印类信息堆的分配参数1、指定最大堆和最小堆2、设置新生代大小3、设置新生代和老年代的比值4、设置两个Survivor区和eden的比值5、内存溢出(OOM)时导出堆到文件6、导出OOM的路径7、在内存溢出时...原创 2019-02-25 15:13:22 · 189 阅读 · 0 评论 -
锁
文章目录线程安全对象头Mark偏向锁轻量级锁自旋锁偏量锁、轻量级锁、自旋锁总结java语言层面,减少锁持有时间减小锁粒度锁分离锁粗化锁清除无锁线程安全1、多线程网站统计访问人数。使用锁,维护计数器的串行访问与安全性。2、多线程访问ArrayList。因为ArrayList是非线程安全的,在做内存扩容的时候,arrayList是不能使用的,这时候有一个线程要将数据插入就会报错。对...原创 2019-03-01 10:59:47 · 142 阅读 · 0 评论 -
GC的算法与种类
文章目录GC的概念GC算法一、引用计数法(java中没有使用引用计数算法)二、标记清除三、标记压缩四、复制算法(java新生代中使用)分代思想可触及性根(可触及性根节点说明,哪些对象可以为根)Stop-The-World一、GC为什么会有全局停顿?二、全局停顿危害GC的概念1、GC的全称:Garbage Collection 垃圾收集器,及时清除不使用的对象,释放空间内存。2、1960年,...原创 2019-02-25 19:41:24 · 277 阅读 · 0 评论 -
Activiti6.0工作流入门
工作流介绍1、工作流是什么?在了解工作流之前,我们需要知道工作流应用的场景,在工作中我们接到了主管的任务,需要出差,这时我们会向人事提出申请,由人事决策。在计算机系统中,我们需要将以上的业务场景进行流程建模,实现审批流程模型化。如图中所示:了解了工作流程的应用场景,下面是一些对工作流内容的概述:工作流(workflow)是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流...原创 2019-09-01 19:54:53 · 440 阅读 · 0 评论 -
案例:天气预报的接口调用
网上免费的webService接口网址:http://www.webxml.com.cn/zh_cn/index.aspx1、通过http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl获取天气预报的wsdl的文档,并保存到本地。2、通过cmd命令,在项目src目录下,执行wsimport -keep url命令。3、刷新项目生成如下代码...原创 2019-01-08 14:41:43 · 1473 阅读 · 0 评论 -
【java多线程】守护线程、线程停止、volatile的深入了解
文章目录线程的优雅停止守护线程volatile关键字线程的优雅停止 在多线程的操作之中如果要启动多线程肯定使用的Thread类中的start()方法,而对于咱们的多线程需要进行停止处理,原来的Thread类提供有stop()方法,但是对于这些方法从JDK1.2版本就已经将其废除了,而且一直到现在也不建议出现在你的代码中,而除...原创 2019-01-03 15:10:14 · 439 阅读 · 0 评论 -
一个简单的webService接口发布与实现
webService是什么1、基于web的服务,服务器整出一些资源让客户端应用访问获取数据。2、一个跨语言、跨平台的规范。3、多个跨平台、跨语言应用间通信整合的方案。什么时候使用webService?1、同一家公司新旧应用之间的调用。2、不同公司的应用之间调用。3、一些提供数据的内容聚合应用:天气预报、股票行情。webService中的几个重要术语1、WSDL: (web ser...原创 2019-01-07 18:44:23 · 44282 阅读 · 4 评论 -
IDEA搭建maven项目
首先打开IDEA后点击settings 然后在VM Options内添加-DarchetypeCatalog=internal 运行参数 (不做上面操作的话会导致maven 骨架生成速度缓慢到令人发指,卡在running tmp archetypexxxtmp这一步) 创建maven web项目,按照下图顺序点击后点击下一步 groupid表示项目的包名,ar...转载 2018-08-06 10:00:37 · 138 阅读 · 0 评论 -
【Java开发代码优化】lombok插件,通过java注解简化代码的开发
在开发的过程中,我们如何写出高质量的代码,写出优雅的代码,写出高度可扩展的代码。今天我们就简单介绍一下如何提高我们的代码质量。使用lombok简化代码在介绍lombok之前,我们先来看一段代码:public class Person { private Long id; private String name; private Integer age; ...原创 2018-11-19 17:43:10 · 265 阅读 · 0 评论 -
获取所有checkbox选中的数据,前端传一个对象的数组到后端进行接收。
在table表中,我们经常会选中多条记录,获取他们的数据,进行操作。代码如下:获取选中行中的数据1)获取选中行的长度,进行判断。 var len = $("input[name=boxs]:checked").length;2) 获取选中的行,通过each 函数进行遍历。var check = $("input[name=boxs]:checked");3) 获取选中的...原创 2018-12-10 13:39:42 · 4914 阅读 · 0 评论 -
【java小程序】zookeeper监听并自动更新
开发需求背景,在开发小程序视频时(springboot后端),需要一个后台管理系统(ssm后端),并且这两个系统是部署在不同的服务器上,当管理人员通过短视频后台管理背景音乐的上传和删除,需要小程序端的服务器能通过监听能自动下载背景音乐。这里我们就通过zookeeper中间件,springboot监听并且下载。###内容目录文章目录什么是Zookeeper?什么是分布式系统?windows10 ...原创 2018-12-28 11:06:10 · 902 阅读 · 0 评论 -
StringBuffer对String类型的操作
String类是所有项目开发中一定会用到的一个功能类,并且这个类拥有如下的特点:每一个字符串的常量都属于一个String类的匿名对象,并且不可更改;String有两个常量池:静态常量池、运行时常量池;String类对象实例化建议使用直接赋值的形式完成,这样可以直接将对象保存在对象池之中以方便下次重用。虽然String类很好使用,但是如果认真去思考也会发现其最大的弊端:内容不允许修改,虽...原创 2019-01-04 10:02:39 · 1013 阅读 · 0 评论 -
CharSequence详情介绍
CharSequence是一个描述字符串结构的接口,在这个接口里面一般发现有三种常用的子类:Stirng类public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequenceStringBuffer类public final class St...原创 2019-01-04 10:31:08 · 62629 阅读 · 9 评论 -
Runtime获取系统资源信息类
Runtime类描述的是运行时的状态,也就是说在整个JVM之中,Runtime类是唯一一个与JVM运行状态有关的类,并且都会默认提供一个该类的实例化对象。由于在每一个JVM进程里面只允许提供一个Runtime类的对象,所以这个类的构造方法被默认私有化了,并且该类使用的是单例设计模式,并且单例设计模式一定会提供一个static方法获取本类实例。操作系统直接对CPU、进程、内存进行管理,程序执行过...原创 2019-01-04 17:35:00 · 321 阅读 · 0 评论 -
关于request.getServletPath(),request.getContextPath()的总结
最近对于request中的几种“路径”有点混淆,查找网上资源都没有很好的总结,希望此文章能够帮助我理解一下这几种“路径”。 +++++++++++++++++++++++++++++++++++++++++++++++++ 本文章主要讨论以下几种request获取路径的方法:request.getServletPath() request.getPathInfo() request.g...转载 2018-12-26 10:34:02 · 1176 阅读 · 0 评论 -
【java多线程编程】三种多线程的实现方式
文章目录前言进程与线程继承Thread类,实现多线程FAQ 为什么多线程的启动不直接使用run()方法而必须使用Thread类中start()方法呢?基于Runnable接口实现多线程Thread 与 Runnable 的关系Callable实现多线程线程运行状态前言&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在java语言最大的特点是支持多线程的开发(也是为数不多...原创 2019-01-01 16:20:56 · 41972 阅读 · 5 评论 -
【java多线程】线程常用操作方法总结
文章目录线程的命名与获取线程休眠线程中断线程强制运行线程礼让线程优先级多线程的主要操作方法都在Thread类中定义了。线程的命名与获取&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;多线的的运行状态是不确定的,那么在程序的开发之中为了可以获取一些需要使用线程就只能够依靠线程的名字来进行操作。所以线程的名字是一个至关重要的概念,这样在Thread类之中就提供有线程名称的...原创 2019-01-02 15:02:44 · 918 阅读 · 0 评论 -
了解Schema约束
什么是XML约束?在XML技术里,可以编写一个文档(文件)来约束一个XML文档的书写规范,这称之为XML约束。常用的约束技术:XML DTDXML Schemaschema约束文档的创建步骤:**1、创建一个以.xsd结尾的文件,定义xml文档的书写规范:例如:book.xsd<?xml version="1.0" encoding="UTF-8" ?><...原创 2019-01-07 13:40:29 · 409 阅读 · 0 评论 -
【java多线程】线程的同步与死锁
文章目录同步问题引出线程同步处理线程死锁 在多线程的处理之中,可以利用Runnable描述多个线程的操作资源,而Thread描述每一个线程对象,于是当多个线程访问统一资源的时候,如果处理不当就会产生数据的错误操作。同步问题引出 下面编写一个简单的卖票程序,将创建若干个线程对象实...原创 2019-01-03 08:50:13 · 205 阅读 · 0 评论 -
【java多线程】生产者与消费者多线程同步案例
文章目录生产者与消费者程序的基本实现解决数据同步线程等待与唤醒生产者与消费者在多线程的开发过程之中最为著名的案例就是生产者与消费者操作,该操作的主要流程如下:生产者负责信息内容的生产;每当生产者生产完成一项完整的信息之后消费者要从这里取走信息;如果生产者没有完成生产则消费者要等待它完成生产,如果消费者还没有进行消费,则生产者应该等待消费处理完成后再继续生产。程序的基本实现可以将生...原创 2019-01-03 10:40:10 · 2308 阅读 · 0 评论 -
阿里巴巴java操作手册的的IDE插件
阿里代码psc代码库:https://github.com/alibaba/p3c安装从存储库安装 设置>>插件>>浏览存储库... 按关键字'alibaba'搜索插件,然后安装'阿里巴巴Java编码指南'插件 重启才能生效。 从本地zip文件安装。打开https://plugins.jetbrains.com...转载 2018-08-06 09:21:46 · 224 阅读 · 0 评论