Java
文章平均质量分 50
TineAine
春随柳絮散不尽,君若烟火是流年
展开
-
Nifi常用表达式文档
文章目录表达式函数字符串大小写转换toUpper描述参数返回值案例toLower描述参数返回值案例去除字符串前后的空格trim描述参数返回值案例字符串截取substring描述参数返回值注意案例案例解释substringBefore/substringBeforeLast描述参数返回值注意案例案例解释substringAfter/substringAfterLast描述参数返回值注意案例案例解释附加与追加append/prepend描述参数返回值注意案例案例解释字符串替换replace/replaceFir原创 2021-09-20 09:54:03 · 5450 阅读 · 4 评论 -
通过IDEA调试Nifi
1.下载Nifi源码和程序建议使用未修改的源码和程序,自行打包比较困难,并且很多库需要通过特殊的方法才能下载Nifi 源码下载:各版本Nifi源码地址Nifi 程序下载:各版本Nifi程序地址Git下载指定版本源码:git clone --branch [tags标签] [git地址]下载完成后解压Nifi程序到任意目录2.修改并编译Nifi源码IDEA直接打开Nifi源码根目录的Pom即可,开始可能会要求下载Maven依赖,(建议通过特殊方法下载,阿里云上的依赖库不全)然后添加一个Mav原创 2021-09-16 15:01:03 · 943 阅读 · 0 评论 -
Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
创建Spring Boot项目后Pom报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found正常通过mvn clean install,也可以直接执行,报错原因是未指定版本号,指定即可 <build> <plugins> <plugin> <groupId>org.springframe原创 2021-08-31 13:50:57 · 484 阅读 · 0 评论 -
微服务 Redis链接问题
异常启动微服务时报错Connection failure occurred. Restarting subscription task after 5000 ms原因未启动Redis,无法连接到Redis服务解决检查Yaml、Properties配置文件或Nacos中的配置是否正确检查Redis服务是否启动从服务所在主机尝试链接Redis,查看能否联通...原创 2021-08-17 11:05:27 · 852 阅读 · 0 评论 -
Centos 安装JDK(压缩包)
步骤前往Oracle 下载安装包解压缩并移动到合适的目录配置环境变量并刷新下载安装包选择要安装的版本并下载(需要注册一个Oracle账户)https://www.oracle.com/java/technologies/javase-downloads.html解压缩并移动# 其中/opt/java 就是要安装jdk的目录,本次使用的是jdk1.8tar zxvf jdk-8u301-linux-x64.tar.gz && mkdir /opt/java &&原创 2021-07-26 09:07:20 · 504 阅读 · 0 评论 -
docker 快速部署nacos
执行即可,docker会自动下载最新版本的nacos,也可以在最后指定要部署的版本 docker run nacos/nacos-server原创 2021-07-15 14:26:04 · 106 阅读 · 0 评论 -
Nifi详细部署(配置文件,单节点,集群,性能优化)
Nifi部署文章目录Nifi部署前言信息引用单节点部署简单配置修改使用的JDK修改Nifi端口配置Nifi使用的内存启动命令配置文件详解bootstrap.confnifi.properties集群搭建步骤目录准备Zookeeper配置文件准备节点1的配置准备节点2的配置准备节点3的配置Docker的配置Nifi性能优化1.配置最大文件句柄2.配置最大派生进程数3.配置TCP Socket端口数4.设置Socket套接字停留时间5.禁止SWAP6.对Repository禁用atime7.排除防病毒扫描目录原创 2021-01-28 17:05:38 · 5924 阅读 · 0 评论 -
Mybatis Plus 注解
Mybatis Plus 注解@TableName表名注解@TableId主键注解@TableFieId字段注解(非主键字段)@Version乐观锁注解(标记于字段上)@EnumValue枚举类注解(标记于枚举字段上)@TableLogic表字段逻辑处理注解(逻辑删除)@KeySequence序列主键策略(Oracle)...原创 2021-01-22 10:07:40 · 161 阅读 · 1 评论 -
Debug:Spring Boot测试故障
特征java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test原因测试类直接就在test的根目录,没有和application同级解决为test创建和项目相同的包路径即可(main)...原创 2021-01-21 14:00:43 · 148 阅读 · 0 评论 -
Debug:Java 连接Oracle故障 12505,12514
Oracle服务和SID混用特征// 混用ORA-12505, TNS:listener does not currently know of SID given in connect descriptor// 错用ORA-12514, TNS:listener does not currently know of service requested in conn原因服务名和SID混用,比如应该写服务名的地方写成了SID,反之亦然也有可能是服务名根本就写错了,写Spring Boot的原创 2021-01-20 13:56:17 · 334 阅读 · 0 评论 -
Nifi简单入门
准备和资料参看Apache NiFiApache NiFi DocumentationExplore - Docker HubApache NiFi - WikipediaFlow-based programming - WikipediaLow-code development platform - WikipediaHow An Arcane Coding Method From 1970s Banking Software Could Save The (fastcompany.co原创 2021-01-19 17:27:32 · 606 阅读 · 1 评论 -
Java JDBC基本操作
JDBC测试环境Mysql 5.6JDK 1.8.0IDEA 2020总体步骤配置Mysql下载Mysql驱动加载Mysql驱动编写代码配置Mysql下载安装和配置Mysql的步骤不再赘述,本例中使用Mysql 5.6下载Mysql驱动如果是Maven项目<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</a原创 2020-12-21 17:48:57 · 133 阅读 · 0 评论 -
Java Web Html部分笔记
HTML CSS即超文本标记语言,一般不认为是编程语言HTML 语法HTML由标签组成,标签分为围堵标签和自闭合标签标签可以嵌套,但必须正确嵌套html后缀名可以是html或htm开始标签中可以定义属性,属性由键值对组成,值需要用引号引起来标签不区分大小写(但一般使用小写)<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>标题</title原创 2020-12-15 16:56:28 · 102 阅读 · 0 评论 -
从Java到Python(Java和Python的不同点)
变量定义方式不同:Java// 在java和绝大多数常用高级语言中,都需要类型描述符来描述类型int num = 10;String name = "Hello";Python# Python不需要预先声明类型,它会自动判断num = 10name = 'Hello'语句不同Java// Java语句必须以;结尾int a = 10;Python# Python不需要加分号a = 10函数/方法的定义方式不同JavaSt...原创 2020-08-14 08:55:53 · 230 阅读 · 0 评论 -
超简单的Redis安装与部署
在Centos 7中安装Redis1.为Redis准备安装环境#首先进行更新yum -y upgrade#首先安装gccyum install -y gcc2.下载Redis的安装包 这里可以通过wget下载,也可以通过浏览器下载,当然也可以自行选择版本,此处安装的是Redis 5.0版本#下载Redis安装包# -------------------------------------------#下载5.0.3下载一...原创 2020-07-30 15:15:15 · 832 阅读 · 0 评论 -
面试题:Java类实例化的先后顺序
父类静态变量父类静态代码块子类静态变量子类静态代码块父类非静态成员变量父类构造函数子类非静态成员变量子类构造函数原创 2020-06-16 23:18:02 · 148 阅读 · 0 评论 -
线程类中常用的方法
sleep:使该线程睡眠指定的毫秒数isAlive:判断该线程是否存活join:等待指定线程执行完毕activeCount:程序中当前活跃的线程数enumerate:枚举程序中的线程currentThread:得到当前线程setName:设置线程名称wait:使一个线程等待指定的毫秒notify:使线程继续运行notifyAll:使所有线程继续运行setPriority:设置线程的优先级...原创 2020-06-16 23:05:09 · 124 阅读 · 0 评论 -
代码片段:配置Spring的事务配置文件mybatis-config.xml文件
代码片段,用于配置mybatis的mybatis-config配置文件,直接修改其中的配置即可<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settin.原创 2020-06-16 21:01:45 · 133 阅读 · 0 评论 -
代码片段:配置Spring的事务配置文件applicationContext-transaction文件
代码片段,用于配置Spring事务的applicationContext-transaction文件,直接修改其中的配置即可<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="ht.原创 2020-06-16 20:26:37 · 221 阅读 · 0 评论 -
代码片段:配置Spring和Mybatis整合的applicationContext-mybatis文件
代码片段,用于配置Spring和Mybatis整合的applicationContext-transaction文件,直接修改其中的配置即可原创 2020-06-16 19:16:46 · 139 阅读 · 0 评论 -
代码片段:配置Spring的applicationContext文件
代码片段,用于配置Spring中的applicationContext文件,直接修改其中的配置即可<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.s..原创 2020-06-16 19:10:51 · 144 阅读 · 0 评论 -
为Maven项目添加热部署和Tomcat插件
很多情况下为了简化开发,会使用Tomcat插件和热部署插件,而不是使用Eclipse默认提供的Tomcat服务,通过热部署插件可以免去反复部署的麻烦。<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> ..原创 2020-06-16 18:59:52 · 131 阅读 · 0 评论 -
面试:如何计算一个数的阶乘?
递归就是自己调用自己(函数调用自己本身)的过程,一般都会通过某种条件跳出递归,也就是递归出口。递归的运行效率较低,递归层级不能过多,否则容易引起崩溃main函数如下所示:public static void main(String[] args){ System.out.println(fun(10));}阶乘的实现函数如下所示:public static int fun(int num){ if(n==1||n==0){ return ...原创 2020-06-16 08:25:40 · 249 阅读 · 0 评论 -
面试:String、StringBuilder和StringBuffer的区别?
可变性:String不可变,StringBuilder和StringBuffer可变 线程安全:String、StringBuffer线程安全,StringBuilder线程不安全 性能:StringBuilder > StringBuffer > String String 每次更改数据都会new一个新的对象,因为其本身是一个常量。但StringBuffer和StringBuilder会对本身进行修改,因此String速度最慢StringBuilder自身没有加..原创 2020-06-15 16:27:17 · 85 阅读 · 0 评论 -
String创建对象问题
String s = new String("abc")创建了几个对象?两个,一个是new的堆对象,一个是常量池中的"abc"String str1 = "hello"; //str1指向静态区String str2 = new String("hello"); //str2指向堆上的对象String str3 = "hello";String str4 = new String("hello");System.out.println(str1.equals(str2)); //true原创 2020-06-15 16:26:03 · 196 阅读 · 0 评论 -
Redis四种运行模式
Redis有四种常见的运行模式,分别为: 单机模式 主从模式 哨兵模式 集群模式 1.单机模式单机模式是指在单台服务器中运行的Redis程序,是最原始最基本的模式。单机模式的优势在于部署简单只要安装好Redis,并进行简单配置即可,因为没有其他Redis节点,因此费用低廉。单机模式的缺点在于可靠性差,如果Redis宕机,那么服务也就会直接失效。同时因为Redis是单线程的,所以在单机上运行时受CPU的影响很大。单机模式通常适合于在不需要很高的性能以及可原创 2020-06-15 16:21:56 · 2112 阅读 · 0 评论 -
面试:什么是AOP?AOP中最重要的概念是什么?
AOP(Aspect Oriented Programming),也称为面向切面编程,是OOP的一种延续,目的就是将与主业务无关的事情放到代码外去做,尽可能减少代码臃肿,并减少代码的重复部分。OOP通过继承大幅度的减少了类中重复的代码,AOP通过切面减少了方法外或方法中的横切逻辑代码。AOP最常用的地点就是日志,假设有一个加工流水线,分别是负责洗菜的A,负责做菜的B和负责上菜的C,通常用户点一份菜需要三分钟,但偶尔会出现三小时都没法上菜的情况,这就需要负责人去研究是那个环节出现了问题,比如让每个人把工作原创 2020-06-15 14:50:43 · 687 阅读 · 0 评论 -
面试:什么是IoC,IoC和DI的区别是什么?
IoC也称为控制反转,是一种思考方式,其主要关注点在于Java对象的创建与管理的问题。和传统的方式相比,当我们需要一个对象的时候,不需要直接new一个,而是去Spring容器中拿一个即可,此时我们失去了对对象的控制权,仅保有使用权。但这样也可以无需关注对象的管理。所谓控制,指的是管理对象的权利;所谓反转,指的是由Spring管理而不是开发者管理IoC的其中一个目的是为了解耦合,当将一个对象交给第三方容器管理后,那么对象之间的耦合相较于传统new方式会降低。同时Spring IoC也可以降低对象的原创 2020-06-15 14:30:58 · 1777 阅读 · 0 评论 -
面试:重载和重写的区别
两者都是实现多态的一种方式,重载是编译时多态,重写是运行时多态重载:在同一个类中存在仅参数列表(参数类型、个数、顺序)不同的同名方法,不能根据返回值类型和修饰符区分。重写:发生在继承关系中,其中重写的两个方法必须方法名、参数列表完全相同,遵循里氏代换原则(返回值<=父类;抛出异常<=父类;修饰符>=父类)...原创 2020-06-15 14:16:20 · 250 阅读 · 0 评论 -
java中序列化和反序列化的使用
Java中序列化是指将Java对象通过变换成为字节序列,来将该对象持久化到硬盘中。并且字节序列也很适合网络传输,因此如果需要在网络中传递Java对象,可以在其先序列化后进行传输,并由接收方进行反序列化操作。Java中反序列化是指将序列化的字节序列重新组织成Java对象,实际上,序列化是指将Java对象转换为字节序列,而反序列化是指将字节序列转换为Java对象。假设存在一个User对象,其代码如下:public class User implements Serializable{ pu...原创 2020-06-15 14:12:20 · 178 阅读 · 0 评论 -
Mybatis中#{}和${}的区别是什么?
#{}是占位符,通过预编译处理;${}是拼接符,通过字符串替换,非预编译处理。 #{}可以放置SQL注入攻击;${}不能防止SQL注入攻击 Mybatis会将SQL中的#{}替换为?,并通过PreparedStatement的set方法进行赋值;但Mybatis会直接将${}替换为变量的值,相当于使用的是Statement方式进行编译 ...原创 2020-06-15 13:20:32 · 625 阅读 · 0 评论 -
Mybatis中为Mapper中传入多个值
1.通过顺序<select id = "selectTest" resultMap = "SysResult"> select * from user where name = #{0} and dept = #{1}</select>在#{}中的数字代表了传递参数的顺序,一般不建议使用2.通过@Parampublic User selectTest(@Param("UserName") String name,@Param("deptID"...原创 2020-06-15 13:19:40 · 402 阅读 · 0 评论 -
将A文件的内容复制到B文件
private static void fileCopy1(File from, File to){ InputStream in = null; OutputStream out = null; try{ //定义高效字节流 in = new BufferedInputStream(new FileInputStream(from)); out = new BufferedOutp.原创 2020-06-12 13:53:55 · 1379 阅读 · 0 评论 -
AOP中通知的类型有哪些?
前置通知:在目标方法执行前执行后置通知:在目标方法执行后执行,无论方法是否执行成功返回通知:在目标方法返回后执行,执行成功之后异常通知:在目标方法抛异常时执行环绕通知:在目标方法执行中执行(之前或之后)try{ //前置通知 int method(){ return 0; //返回通知 } //后置通知}catch(Exception e){ //异常通知}...原创 2020-06-11 14:40:15 · 1696 阅读 · 0 评论 -
Spring Bean类中常用的注解有哪些?
@Scope()注解描述了Bean的作用域,常用有singleton(单例);prototype(每次获取都是新实例,但spring不会管理该类,并且不负责消毁该类的实例) singleton:单例,默认值,内存中只有一个bean实例,创建容器时就会自动创建,无论是否使用 prototype:原型,每次调用都会生成一个新的bean,只有获取Bean时才会创建Bean实例 request:每次发送HTTP请求时都会生成一个新的实例,该作用域仅适用于WebApplicationCont原创 2020-06-11 14:39:15 · 1144 阅读 · 0 评论 -
HashMap的实现原理是什么?
HashMap是根据Map接口实现的一种键值对数据结构,其中允许出现null的键或值;其顺序不固定。在Java中,基本类型可看做基础数据类型和引用类型(用于模拟C/C++中的指针),HashMap实际上是一种数组+链表的结合体。在JDK1.8之后,一旦链表的节点数据超过八个,就会将底层转为红黑树结构。HashMap底层在存储数据时,首先会根据Key的hashcode进行比较,如果发生hash冲突,就会继续判断值是否相同,如果相同,则直接进行覆盖,如果不同,则将其放入链表中保存。同样的在获取值时,原创 2020-06-11 14:36:00 · 216 阅读 · 0 评论 -
HashSet如何检查重复?HashSet是如何保证数据不重复的?
HashSet底层结构是一个HashMap,HashSet将值放在HashMap的键中,如果HashMap的键相同时会发生覆盖,因此HashSet的值不会重复。HashMap检查Key是否相同会通过equles方法,并通过比较hash值判断是否重复。//PRESENT是一个空的对象private static final Object PRESENT = new Object();private transient HashMap<E,Object> map;//Hash...原创 2020-06-11 14:35:26 · 1574 阅读 · 0 评论 -
Iterator和Listlterator的区别是什么?如何使用?
Iterator可以遍历list和set集合,而ListIterator只能遍历List集合 Iterator可以向后遍历,而ListIterator可以向前或向后遍历 ListIterator实现了Iterator接口,并加入了功能 代码 List list = new ArrayList<String>(); list.add("Hello"); list.add("What"); Ite...原创 2020-06-11 14:34:12 · 431 阅读 · 0 评论 -
Java常用集合之间的区别
是否允许重复 是否拥有顺序 父类 底层结构 数组 TRUE TRUE —— —— ArrayList TRUE TRUE List-Collection 对象数组 LinkedList TRUE TRUE List-Collection 双向循环链表 HashSet FALSE FALSE Set-Collection HashMap TreeSet FALS...原创 2020-06-11 14:32:34 · 102 阅读 · 0 评论 -
final、static、abstract的区别和联系
final和abstract不能一同出现 static和abstract不能一同出现 允许出现final static描述的变量(不能被修改的静态属性) 允许出现final static描述的方法(不能被重写的静态方法) finalfinal修饰类:该类不能被继承,不能加在抽象类中final修饰方法:该方法不能被重写,但可以被继承final修饰属性:该属性不能被重新赋值,但可以被继承,可以在定义或构造函数中初始化final修饰局部变量:该变量只能被赋值一..原创 2020-06-11 14:29:52 · 250 阅读 · 0 评论