java 技术
文章平均质量分 74
不曾放弃的只有自己
努力学习,快乐生活,尝试不同的新东西
展开
-
JAVA jvm虚拟机配置参数获取
Java 提供了类:java.lang.System 其中getProperties(String key)可以获取一些JVM参数属性:默认属性:java.version:java运行时版本java.vendor:java运行时环境供应商java.vendor.url:java供应商urljava.home;java安装目录java.vm.specification.version:java虚拟机规范版本java.vm.specification.vendor:java虚拟机规范原创 2020-10-14 13:52:50 · 798 阅读 · 0 评论 -
Flink keyby 报错:
问题:flink keyby 时候报错:org.apache.flink.api.common.InvalidProgramException: This type (GenericType<com.ctrip.frt.entity.hotel.apiresult.HotelApiResultInfoType>) cannot be used as key分析原因:HotelApi...原创 2020-01-07 19:38:52 · 1626 阅读 · 0 评论 -
设计模式:责任链模式
设计模式:责任链模式真正让自己提升的不是自己知道多少,而是自己知道多少,并且属于自己的有多少。自己知道的广泛让自己选择的时候考虑更加的全面,自己掌握的让自己实现的时候更加得心应手 责任链模式简介: 简介:为请求创造了一个接受者对象的链。 主要解决:职责链上的处理者负责处理请求,客户只需要将请求发送到职责连上,无需关心请求的处理细节和请求的传递,所以这种模式将请求的发送者和接受者解耦。...原创 2019-02-14 16:28:56 · 88 阅读 · 0 评论 -
设计模式:命令模式
设计模式:命令模式命令模式简介 简介:是一种数据驱动的设计模式,根据传入的命令调用不同的执行者。 意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户参数化 主要解决:面对变化多样的软件场景,使用命令模式可以实现解耦 使用场景:认为是命令的地方都可以使用命令模式比如:模拟CMD 命令模式成分 命令接口 命令实现类 命令处理类 命令模式优缺点 优点...原创 2019-02-15 18:36:38 · 99 阅读 · 0 评论 -
设计模式:工厂模式
设计模式:工厂模式工厂模式介绍: 工厂模式是一种创建型模式,在工厂模式中,我们在创建对象的时候不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象 意图:定义一个创建对象的接口,让其子类决定实例化哪个工厂类,工厂模式使其创建过程延迟到子类进行 让其子类实现工厂接口,返回的也是一个抽象产品 使用场景:我们明确地计划不同条件创建实例时。 工厂模式成分: 产...原创 2019-01-30 15:59:19 · 122 阅读 · 0 评论 -
设计模式:抽象工厂模式
设计模式:抽象工厂模式抽象工厂模式简介: 简介:抽象工厂模式是一种创建型模式,围绕一个超级工厂创建其他工厂。 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体类 主要解决: 解决接口选择问题 使用场景: 系统的产品有多余一个的产品族,而系统只消灭其中某一族的产品。 抽象工厂模式成分 产品族A,B接口 产品族A,B的实现 工厂抽象方法:包含获取...原创 2019-01-31 11:45:55 · 165 阅读 · 0 评论 -
java Until4 单元测试
Java Until4 单元测试测试简介: 测试在软件生命周期中是非常重要的一个环节。从测试方法上可以分为:黑盒测试,白盒测试,静态测试,动态测试等,从软件开发的过程分为:单元测试,集成测试,确认测试,验收,回归等,众多测试中,需要我们开发人员密切注意的是单元测试。 单元测试简介: 单元测试时对软件中最小可测试单元进行检查和验证。比如我们可以测试一个类,或者一个类中的方法 单元测试的好...原创 2019-02-11 18:40:45 · 782 阅读 · 0 评论 -
设计模式:观察者模式
设计模式:观察者模式观察者模式简介: 单例模式:当对象存在一对多关系时,则使用观察者模式(Observe Pattern) 意图:定义对象间的一种一对多的关系,当一个对象状态发生改变的时候,所有依赖于它的对象都得到通知并自动更新 主要解决:使用面向对象基数,可以将这种依赖关系弱化 使用场景一个对象的状态发生改变的时候,所有的依赖对象都得到通知,进行广播通知 注意事项: J...原创 2019-02-12 18:52:22 · 161 阅读 · 0 评论 -
设计模式:迭代器模式
PS:学了迭代器模式,就知道java的集合框架中迭代器访问的原理,原来我以前想的太复杂了。设计模式:迭代器模式迭代器模式简介: 简介:顺序访问集合对象的元素,不需要知道集合对象的底层表示。 意图:提供一种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部表示。 主要解决:不同的方式来遍历整个整合对象。 使用场景: 访问一个聚合对象的内容而无需暴露它的内部表示。...原创 2019-02-18 16:19:15 · 140 阅读 · 0 评论 -
设计模式:备忘录模式
设计模式:备忘录模式备忘录模式简介: 介绍:备忘录模式就是有一个组件,保持对象的某种状态,方便在适当的时候恢复对象。行为型模式 意图:在不破坏封装的前提下,捕获一个内部的状态,并在该对象之外保存这个状态 主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先的状态。 何时使用:我们需要记录一个对象的状态...原创 2019-02-20 19:40:19 · 123 阅读 · 0 评论 -
设计模式:空对象模式
设计模式:空对象模式空对象模式简介:一个空对象取代null对象实例的检查,null对象不是检查空值,而是反应一个不做任何动作的关系。这样的null对象也可以在数据不可用的时候提供默认的行为 空对象模式成分: 对象抽象类 package com.fg.java.nullobject;public abstract class AbstractCustomer { prote...原创 2019-02-20 20:26:17 · 498 阅读 · 0 评论 -
如何避免断点阻断定时任务
当我们本地跑多线程的项目的时候,经常用到的一个工具就是断点:断点可以让我们在我们想看到运行数据的地方停下来。但是断点也有不好的地方就是,当多线程的情况,它会阻碍其他的线程启动,那么我们怎么解决这个问题呢?其实IDE已经帮我们解决了这个问题,当我们先选择1,点开BreakPoints设置,然后在2的位置选择Thread,这样断点只会作用与线程,而不是ALl全部拉...原创 2019-03-12 11:26:16 · 801 阅读 · 0 评论 -
spring学习:spring是什么?
战略上藐视敌人,战术上重视敌人。定义一个自己用尽全力蹦起能够到的目标,然后一步步认真的走下去。每日三问:spring是什么? spring 为我们做了什么? spring 是怎么实现的?第一问:spring 是什么?spring 是为了解决企业应用开发的复杂性而设计出来的一种核心工具包,使用基本javabean,让java EE更加简单。是企业应用开发过程中的一种解决...原创 2019-03-13 17:19:47 · 520 阅读 · 0 评论 -
java 关系名词解析
关系名词解析:继承: 类继承类或者接口继承接口,而且子类可以添加新的功能 实现: 类实现接口interface 所定义的方法 依赖: 一个类的方法中用到另外一个类,一般依赖关系在java中体现为局部变量,方法参数,或者对静态方法的调用。是一种弱关系: 关联: 是一种强关系,类与类或者类与接口之间的一种强依赖关系,一般以类的属性形式出现在关联类中,在java中关联关系一般使用成员变量实现。...原创 2019-10-08 12:15:31 · 195 阅读 · 0 评论 -
设计模式:单例模式
设计模式:单例模式单例模式简介: 单例模式是一种创建型的设计模式,提供了一种创建对象的最佳方式 意图:保证一个类仅有一个实例对象,并且提供一个访问他的全局访问方法 主要解决:一个全局使用的类频繁创建和销毁的问题 使用的场景:需要控制实例的数据,节省系统资源的情况 单例模式成分 私有构造函数 :保证不能通过new等方法创建对象 静...原创 2019-01-28 19:36:34 · 102 阅读 · 0 评论 -
设计模式:模板模式
设计模式:模板模式模板模式简介: 简介:一个抽象类公开定义了它的方法的方式/模式。它的子类可以按照需要重写方法实现,但调用将以抽象类中定义的方式进行。 意图:定义一个操作中的算法的骨架,而讲义步骤延迟到子类中。 主要解决:一些方法通用,却在每一个子类都重写了这一个方法。 使用场景: 有多个子类公有的方法,且逻辑相同 重要的,复杂的方法可以考虑作为模板方法 模...原创 2019-02-02 16:52:18 · 299 阅读 · 0 评论 -
设计模式:访问者模式
设计模式:访问者模式访问者模式简介 访问者模式中,我们使用一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。属于行为型模式 意图: 将数据结构和数据操作分离 主要解决:稳定的数据结构和一遍的操作耦合问题。 使用场景: 对象结构中的对象对应的类很少改变,但经常需要在此对象结构上定义新的操作 需要对一个对象结构中的对象进行很多不同...原创 2019-02-02 16:09:04 · 479 阅读 · 0 评论 -
JAVA 定时任务实现的方法
今天工作的过程中,利用线程的框架编写一个后台定时任务,执行一些操作,突然我就在想java中实现定时任务的方式有哪些呢,于是在下班后自己搜了一些资料,试着写了一个定时任务,特此在这些个笔记,让自己加深一下印象,证明自己也曾经学过java定时器的实现。java实现定时有三种方法:利用单线程,通过线程的睡眠,来达到定时效果。 通过java提供的Timer and TimerTask类来实现。...原创 2018-07-19 22:06:55 · 143 阅读 · 0 评论 -
Apache Tomcat 9 下载安装手册
Apache Tomcat 9 下载安装手册Tomcat9在安装前需要安装和配置好JDK1.7+的版本。Tomcat 9不需要安装,只要下载下zip,解压,并配置环境变量就可以下载Apache Tomcat9 zip包 下载地址:https://tomcat.apache.org/ 打开浏览器,输入网址可以看到下面的界面: 点击Download,跳到: 根据自己的电脑操作系统,下载...原创 2018-09-04 14:48:59 · 3376 阅读 · 0 评论 -
Spring boot + log4j 实现日志架构
对于跑在服务器上的程序来说,日志对于我们很重要,合理的打印日志,我们才能更好的了解程序运行所在的位置以及了解程序运行中的一些错误,或者性能信息。今天小飞用Spring boot +log4j搭建自己的日志架构;1. 创建自己的spring boot项目:在pom.xml中修改添加如下代码,排除spring boot 自身架构所使用的日志架构,引用log4j2的jar包。<depe...原创 2018-10-12 11:06:50 · 217 阅读 · 0 评论 -
axios post 请求tomcat,拦截器获取不到getInputStream流中的数据
今天做项目,前端的大佬用axios发送post请求,而我要利用过滤器和拦截器进行权限的校验,校验的内容就是上送的某个字段的内容,所以我们需要重写request请求(request请求只能获取一次,如果在拦截器中获取,那么控制器就获取不到相应的参数),并且在拦截器中进行校验,我先重写HttpServletWrapper,然后获取流,进行操作,但是我获取到的流数据都是null,但是用postman测试...原创 2018-10-08 21:54:33 · 865 阅读 · 0 评论 -
spring 框架下,如何通过拦截器和过滤器读取request里的内容
当我们用spring 拦截器实现权限校验的时候,往往我们需要从request中获取一些数据进行校验,但是当我们在拦截器获取到数据,getinputStream,那么在后续的action即:controller中我们获取不到request,这是为什么呢?因为java.util.Map所包装的HttpServletRequest对象的参数是不可改变的。 这句话的意思就是我们通过request.getI...原创 2018-09-30 16:06:36 · 4109 阅读 · 0 评论 -
并发 & 并行 简单理解
学习编程不可能不了解并发,和并行,但是身为一个小白,我哪怕工作了那么久,今天才记住并发并行的区别:并发:在同一时间段有多个事件发生,但同一时刻只有一个事件在执行。并行:在同一时刻有多个时间发生 并发:是相对于同一实体来说, 并行:是对多个实体来说,这个实体放在电脑里面就是cpu的一个核。P.S.: 时间段 时刻 单核 多核...原创 2018-12-28 17:30:16 · 349 阅读 · 1 评论 -
浅谈锁的概念
在并发编程中,经常会遇到多个线程访问同一个共享资源,这时候我们要保证数据的一致性,那么就要用到了锁的概念,给资源加上锁,拿到锁所有权的人才能够进行操作共享资源,没有拿到锁的线程需要等待,等锁的所有权放开。Java中实现锁的工具类有: synchronized和JDK以后才引用Lock接口锁 如:ReentrantLock(可重入锁),ReadWriteLock (读写锁) reentra...原创 2019-01-03 20:19:10 · 1591 阅读 · 0 评论 -
java 序列化那些事
本文主要讲述:序列化是什么?序列化实现手段?transient关键字的作用?如何自己定义序列化和反序列化?序列化过程中我们应该注意点? 序列化是一种对象持久化的手段,一般都是用在网络传输或者RMI中。 大家都知道java对象在运行过程中是存放在jvm虚拟机,当脱离本机的jvm,那么java对象就不存在,为了在网络中传输或者保存当前对象的状态我们需要将对象持久化,持...原创 2018-12-25 17:57:23 · 148 阅读 · 0 评论 -
java Enum 实现
java 数据结构中的枚举:enum使用枚举:列出某些有穷序列集合的所有成员 这些成员的结构就是枚举的结构,可以在枚举中单独调用,枚举类型的对象只能是枚举集合中的值。 如果我们自定义枚举的属性,那么我们需要定义枚举的构造函数,包含枚举的所有用到属性,当编译的时候,会根据枚举成员一次次的调用构造函数。 枚举的成成员是有序的,我们可以根据成员名称来获取成员,也可以根据序列号获取成员,或者自...原创 2019-01-11 15:08:54 · 685 阅读 · 0 评论 -
java实现三种代理
设计模式—代理模式java实现概念解释: 代理是一种设计模式,提供了对目标对象另外的访问方式,即通过代理对象访问目标对象。可以不修改目标对象,对目标对象功能进行拓展代理模式的实现: 代理模式的实现分为两大类:静态实现和动态实现,动态实现根据实现的方式分为:jdk 动态实现,cglib动态实现 静态实现: 组成部分: ...原创 2019-01-15 14:46:50 · 3531 阅读 · 0 评论 -
设计模式:原型模式
设计模式:原型模式原型模式简介 原型模式是一种创建型的模式,是用于创建重复的对象,同时又能保证性能。 意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象(浅拷贝和深拷贝) 主要解决:在运行期建立和删除原型 使用场景: 当一个系统应该独立于它的产品创建,构成和表示时 当要实例化的类是在运行时刻指定时,例如通过动态装载。 为了避免创建一个与产品类层次...原创 2019-02-01 15:39:15 · 126 阅读 · 0 评论 -
设计模式:建造者模式
设计模式:建造者模式解释: 使用多个简单的对象一步一步构建成一个复杂的对象,属于创建型模式,提供一种创建对象的最佳方式。 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 主要解决:解决在软件系统中,有时候面临着一个复杂对象的创建工作,其通常由各个部分的子对象用...原创 2019-01-22 20:06:13 · 89 阅读 · 0 评论 -
设计模式:适配器模式
设计模式:适配器模式适配器模式简介 简介:适配器模式是一种结构模式,是作为两个不兼容接口之间的桥梁,它结合两个单独独立接口的功能。 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使的原本由于接口不兼容而不能一起工作的那些类可以一起工作 主要解决:现存对象放到新的环境中,而新环境要求的接口是现对象不能满足的 使用场景 系统需要使用现有的类,而此类的接口不符合系统的...原创 2019-02-02 11:10:23 · 114 阅读 · 0 评论 -
java代理技术的学习以及分析
当我们说道代理的时候脑海里出现的是代理模式,没错,这是比较专业的说法。代理模式的实现形式可以分为:静态代理和动态代理两种。根据技术又有jdk代理,cglib代理两种。下面我就根据自己浅薄的学习说一下代理。代理:根据汉语的意思就是:代替他人进行相应的操作,我们想要找一个明星唱歌,那么我就要找他的经纪人,然后经纪人再找明星,经纪人所做的作用就是代理。那么这就很明白了,代理分为代理类(经纪人),委托类(...原创 2018-06-12 15:37:58 · 144 阅读 · 0 评论