Java
Jason-xs
这个作者很懒,什么都没留下…
展开
-
本地maven安装Oracle的jar包
解决项目中使用到了Oracle数据库,无法正常引入pom的问题原创 2022-11-09 18:00:49 · 827 阅读 · 0 评论 -
项目启动初始化SQL脚本
比如我要初始化一个系统管理员1.需要先检查这个用户是否存在,若存在则不执行插入用户的sql脚本需要将检查的sql语句放在配置文件中sql: init: checksql: "1-sys_user-DML": "select case when exists(select 1 from sys_user su where su.login_name='admin') then 1 else 0 end as result from dual"2.如果不存在就执行插入用户的sq原创 2021-07-19 09:50:29 · 1882 阅读 · 0 评论 -
Java8的Stream简单实用功能
近日同事推荐了一篇技术文章,是前辈写的关于 Java8 对于 Stream 的一些简单的使用示例,虽然自己经常用,单却没有好好总结一下,看完这篇文章感觉非常实用,也帮大家简单总结一部分对象集合转属性集合//转List集合(两种写法都是可以的)List<Integer> idsList = list.stream().map(user -> user.getId()).c...原创 2020-05-06 15:42:21 · 309 阅读 · 0 评论 -
计算两个人相爱的天数
输入相爱日期即可打印出两个人相爱的天数package cn.jason.service;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Scanner;/** * @...原创 2020-02-17 09:32:17 · 3447 阅读 · 0 评论 -
Nginx与Zuul的简单对比
zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMIP服务器。相同点:...原创 2019-07-12 11:55:20 · 6106 阅读 · 0 评论 -
JMeter 压力测试工具安装配置
Apache JMeter是Apache组织开发的基于Java的压力测试工具。 用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另...原创 2019-07-18 12:02:04 · 304 阅读 · 1 评论 -
Ribbon 实现负载均衡集群搭建
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,主要配置在客户端想深入了解Ribbon的推荐阅读:https://www.jianshu.com/p/1bd66db5dc46创建一个 spring boot 的 maven 项目(声明 spring cloud 项目并规定了各组件的版本)引入pom文件<?xml version="1.0"...原创 2019-07-11 13:42:50 · 906 阅读 · 0 评论 -
Eureka&Zookeeper&Consul 原理与对比
看主要区别的话,三者都可作为注册中心,具体怎么选择可根据 CAP 定理去选择CAP 定理CAP定理:CAP定理又称CAP原则,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。一致性(C):在分布式系统中的所有数据备份,在...原创 2019-07-10 21:16:13 · 5364 阅读 · 0 评论 -
Ribbon 详解
学习 Ribbon 这一篇就够了: https://www.jianshu.com/p/1bd66db5dc46原创 2019-07-10 14:40:24 · 478 阅读 · 0 评论 -
Feign使用Hystrix实现断路器简单案例
断路器的作用是为了保护系统,控制故障范围不再扩大为了保证系统的高可用,一般我们都会将单个服务进行集群部署,由于网络原因或者其他原因导致单个服务出现问题,调用这个服务时就会线程阻塞,若此时有大量请求涌入,Servlet容器线程资源被消耗完毕,就会导致服务瘫痪。服务与服务之间存在依赖性,故障会传播,会对整个服务器系统造成灾难性的严重后果,这就是服务故障的雪崩效应。Feign中已经集成了Hystri...原创 2019-07-12 15:07:06 · 845 阅读 · 0 评论 -
Java 中创建线程的三种方式
一、继承 Thread 类创建线程类定义 Thread 类的子类,并重写该类的 run 方法,该 run方法的方法体就代表了线程要完成的任务。因此把 run() 方法称为执行体。创建 Thread 子类的实例,即创建了线程对象。调用线程对象的 start() 方法来启动该线程。二、通过 Runnable 接口创建线程类定义 Runnable 接口的实现类,并重写该接口的 run()...原创 2019-08-05 09:10:33 · 151 阅读 · 0 评论 -
线程的生命周期
新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead) 5种状态新建(new Thread)当创建 Thread 类的一个实例(对象)时,线程进入新建状态(未被启动)。例如:Thread thread = new Thread();就绪(runnable)线程已经被启动,正在等待被分配给 CPU 时间片,也就是说此时线程正在就绪队列...原创 2019-08-05 09:50:24 · 92 阅读 · 0 评论 -
多线程异步编排
CompletableFuture使用举例:任务的合并最快完成任务的时候所有任务都完成的时候异常的处理加 @FunctionalInterface 才支持lamoda表达式底层方法:supplyAsync() 异步运行thenCombine() 合并thenAccept() 上面执行完触发此方法get() 同步获取结果get(long timeout, ...原创 2019-09-06 10:41:33 · 3827 阅读 · 0 评论 -
详解 Lock锁
ReadWriteLock有读写操作的读和读不互斥读和写互斥写和写互斥ThreadLocalThreadLocal 为每一个线程创建一个副本,一摸一样的数据,但是又互相隔离的;ThreadLocal维护着一个ThreadLocalMap,这是ThreadLocal的静态内部类,在每一个线程中维护着一个ThreadLocalMap的变量threadLocals,ThreadLocalM...原创 2019-09-06 10:43:40 · 1631 阅读 · 0 评论 -
Java并发包下的类
CountDownLatchCountDownLatch(int)使用时必须给一个初始值,这个值时允许并行线程的数量内部维护着一个计数器,每调用一次countDown()就 -1 ,直到减为0才可继续执行,如果不为0,则一直处于堵塞状态。await()方法是等待,让计数器去计算是否为0,若为0就结束堵塞,若不为0则不能结束堵塞。CyclicBarrierCyclicBarrier使用时也...原创 2019-09-06 10:45:21 · 556 阅读 · 0 评论 -
Swagger2 的简单使用
SpringBoot 整合 Swagger2在做一些老项目的后期开发时我们会发现,大多数公司在做项目时都是根据项目经理所编写的开发文档来做项目,而后台的程序员根据接口文档来开发接口,这时我们会发现一些问题,由于有一些小改动后代码更改了,但是文档却没有即时更新,造成后期在看文档时,和代码对应不上之前用的都是由word编写的接口文档,在大部分情况下,会有这么几个问题:接口文档与代码的实时更...原创 2019-09-21 12:01:31 · 217 阅读 · 0 评论 -
一张图看懂Dubbo的底层原理
原创 2019-10-02 11:05:24 · 443 阅读 · 0 评论 -
Spring Cloud Eureka 详解
百度百科描述:Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka 内部包含两个组件:Eureka Server和Eureka ClientE...原创 2019-07-12 21:02:19 · 1242 阅读 · 0 评论 -
EurekaServer 高可用的注册中心集群搭建
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。Eureka ...原创 2019-07-08 17:17:26 · 349 阅读 · 0 评论 -
Dubbo 协议介绍
Dubbo 协议共九种,分别为:dubbo:// rmi:// hessian:// http:// webservice:// thrift:// memcached:// redis:// rest://dubbo://Dubbo 缺省协议采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服...原创 2019-06-05 21:01:03 · 344 阅读 · 0 评论 -
数组
数组的内存结构:数组在内存中是一块连续的空间,用于存储相同类型的数据数组基本要素: 数组名:用于标识数组的标识符 数组元素:数组元素是存储在数组中的数据 数组类型:数组类型是数组中元素共同的类型 数组下标:数组下标是数组中的元素的标识符,一般从0开始 数组的内涵: 数组是有序的元素序列 数组长度是固定的 数组是一种数据结构 ...原创 2018-11-09 14:08:03 · 138 阅读 · 0 评论 -
类和对象的理解
什么是面向对象(名词解释): 面向 Oriented(adj. 以...为导向的,以…为目标的) 对象 Object(n. 物体;目标;客体,对象) 面向对象(Object Oriented) 以对象为导向,围绕对象 面向对象思想、面向对象方法 面向对象相比面向过程的软件开发的优点: 维护性好 扩展性好 重用性...原创 2018-11-09 14:13:35 · 740 阅读 · 0 评论 -
构造方法与方法的重载
构造方法也叫做构造器。构造方法的作用:开辟内存空间、创建实例、初始化属性值。构造方法的特点: 方法名与类名相同 (大写敏感)public Student( ); 不能声明返回类型,void也不行 //没有返回类型(也算对,但是不严谨) 不能使用return语句返回内容/不能有返回值 通常为public 注意: 如果没有明确提供构造方法,...原创 2018-11-09 14:17:32 · 421 阅读 · 0 评论 -
日期时间
java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。Date(long millisec)Date对象创建以后,可以调用下面的方法。序号 方法和描述 1 bo...原创 2018-11-09 14:45:29 · 121 阅读 · 0 评论 -
继承
继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。生活中的继承:兔子和羊属于食草动物类,狮子和豹属于食肉动物类。食草动物和食肉动物又是属于动物类。所以继承需要符合的关系是:is-a,父类更通用,子类更具体。虽...原创 2018-11-09 18:20:08 · 135 阅读 · 0 评论 -
重写与重载深入详解
重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 ...原创 2018-11-09 18:34:12 · 162 阅读 · 0 评论 -
正则表达式
正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下表列出了一些正则表达式的实例及描述...原创 2018-11-18 16:08:24 · 130 阅读 · 0 评论 -
Java 反射
Java 反射一丶反射的概念 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。 反射的机制,简单来说,反射机制其实就是指程序在运行的时候能够获取自身的信息。例,知道一个类的名称/或者它的一个实例对象, 就能把这个类的所有方法和变量的信息(方法名,变量名,方法,修饰符,类型,方法参数等等所有信息)找出来。如果明确知道这个类里...原创 2018-11-30 11:08:08 · 283 阅读 · 0 评论 -
Java 多线程—上篇
多线程简介简单概念: Ctrl+Alt+Del(也就是在0数字旁边的.)看到进程了嘛!进程里面执行的程序里面就有很多的线程,当然你是看不到的懂吗?这都是编写代码的时候,程序员写的。当然你看过你打开软件的时候跳出了另外一个软件(也就是广告)吗?这就是又创建了一个进程,而这个进行里面有很多的线程,不是同时执行的哦,只是CPU在做着快速的切换。多线程概述进程: 是一个正在执行的程序每一...原创 2018-12-09 15:55:25 · 108 阅读 · 0 评论 -
Java 多线程—下篇
线程的生命周期线程的状态:获取线程的状态的方法:public State getState()线程状态类型:NEW // 新建RUNNABLE // 可运行的BLOCKED // 阻塞WAITING // 等待TIMED_WAITING // 定时等待TERMINATED // 终于线程生命周期:线程控制方法:设置线程的优先级:setPrior...原创 2018-12-19 11:01:01 · 148 阅读 · 0 评论 -
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read
今天在做项目时出现了异常,用的是 spring+springmvc+hibernate+mysql 技术报的错误如下:org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn you...原创 2019-01-09 21:16:01 · 1020 阅读 · 0 评论 -
JAVA 集合详解
集合的由来: Java是面向对象语言,如果我们要针对多个对象进行操作,就必须对多个对象进行存储。 而对多个元素进行存储,前面我们学习过数组,数组的弊端,长度固定。这样,数组将不能满足变化的要求。所以,Java就提供了集合供我们使用。集合的特点: 长度可以发生改变。 只能存储对象。 可以存储多种类型对象(一般存储的还是同一种,因为1.5JDK的新特性 泛型)。常用集合的分...原创 2019-03-22 09:29:16 · 118 阅读 · 0 评论 -
深入理解 Java虚拟机
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节...原创 2019-03-24 14:09:55 · 354 阅读 · 0 评论 -
Linux 下安装 MySQL
下载 MySQL 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64 位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)解压下载...原创 2019-05-08 21:32:05 · 163 阅读 · 0 评论 -
过滤器(Filter)和拦截器(Interceptor)的区别
过滤器(Filter):它依赖于servlet容器。在实现上,基于函数回调,它可以对几乎所有请求进行过滤。缺点: 是一个过滤器实例只能在容器初始化时调用一次使用过滤器的目的:用来做一些过滤操作,获取我们想要获取的数据,比如:在Javaweb中,对传入的request、response提前过滤掉一些信息提前设置一些参数,然后再传入servlet或者Controller进行业务逻辑操作,比...原创 2019-05-22 07:42:57 · 113 阅读 · 0 评论 -
一个 Vue 的简单实例
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.w3.org/1999/xhtml"><head> <meta charset="UTF-8"> <META HTTP-E...原创 2019-05-30 19:58:20 · 778 阅读 · 0 评论 -
标识符、关键字、数据类型
数据类型包含: 基本数据类型:(基本数据类型是Java预定义的,用关键字命名的数据类型) 整型 byte(字节型):8位,1个字节(取值范围:-128~127)(默认值为:0) short(短整型):16位,2个字节(默认值为:0) int(整型):32位,4个字节(默认值为:0) long(长...原创 2018-11-09 14:05:07 · 455 阅读 · 0 评论