
Java
HyperDai
Hyper Hyper Hyper Dai~~
展开
-
Swagger..Unable to render this definition The provided definition does not specify a valid version
Unable to render this definition The provided definition does not specify a valid version field.Please indicate a valid Swagger or OpenAPI version field. Supported version fields are swagger: “2.0” ...原创 2020-05-02 22:37:24 · 21101 阅读 · 2 评论 -
Springboot异常处理AppErrorController
package com.hyperdai.base;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Aut...原创 2020-05-01 11:18:51 · 436 阅读 · 0 评论 -
JWT(Json Web Token)工具包:JwtUtil.java
前言原定方案,token 用的DES对称加密,然后为了加上有效期验证,最终改为JWT加密方式了代码Maven依赖:<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9....原创 2020-01-05 20:12:02 · 3394 阅读 · 0 评论 -
单机百万连接调优(Netty Demo)
Netty DemoConstant.java public class Constant { static final int BEGIN_PORT = 8000; static final int N_PORT = 100; }ConnectionCountHandler.javaimport io.netty.channel.Chan...转载 2019-05-13 17:40:30 · 1609 阅读 · 0 评论 -
【破冰】ElasticSearch 7.x 操作示例
前言想要了解ElasticSearch的朋友可以去:Elastic官网想了解ElastciSearch7的同学可以去:ElasticSearch7.x新特性正文参考ElasticSearch 遇见原创 2019-05-31 11:01:26 · 1270 阅读 · 0 评论 -
Java Web开发后端常用技术汇总
技术名称及官网Spring FrameworkSpring容器http://projects.spring.io/spring-framework/SpringMVCSpring MVC框架http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvcApache Shiro安...转载 2019-07-03 20:34:29 · 2636 阅读 · 0 评论 -
微服务通讯协议RPC的dubbo/dubbox、thrift、grpc、motan比较
前言从通讯协议角度考虑,常见的协议有REST APIRPCMQ如何选择RPC框架,要考虑这些:I/O、线程调度模型序列化方式多语言支持服务治理流行的RPC框架DubboMotanThriftGRPC总结...原创 2019-07-12 22:07:11 · 814 阅读 · 1 评论 -
[JAVA] JVM基础——“反射” 代码案例
代码新建Robot.java文件package com.hyperdai.jvm;/** * @author hyperdai * @create 2019-07-28 16:00 */public class Robot { private String name; public void sayHi(String helloSentence) { ...原创 2019-07-28 16:24:31 · 187 阅读 · 0 评论 -
[JDK工具]虚拟机性能监控与故障处理工具
1 前言不会程序调优的程序员不是一个好程序员。给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。2 JDK的命令行工具我们熟知的JDK的bin目录中有“java”、“javac”命令。除此...原创 2019-08-08 15:33:53 · 192 阅读 · 0 评论 -
[Java] Properties配置文件装载进JavaBean对象工具函数 案例
前言本文所用Properties配置读取使用的commons-configuration2pom.xml引入:<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-configuration2</artifactId> &...原创 2019-08-28 14:39:11 · 1083 阅读 · 0 评论 -
Spring在项目启动时就执行特定方法
如何在项目启动时就执行特定方法方法上加注解@PostConstruct@Compantpublic class InitDemo{ @PostConstruct public void init(){ //项目启动就会执行这个方法 doSomething(); }}2.xml配置init-method<bean id...原创 2019-08-30 22:59:13 · 619 阅读 · 0 评论 -
MySQL导出数据 用Java读时一行记录的某些列出现换行导致读取到多行数据 问题分析与解决方法
背景数据库导出到文件中的一项记录,出现了多行……根据主键查数据库发现,数据字段中有换行符……但是奇怪的事情是,我用命令:cat data.txt |wc -l查看文本行数时,只有一行可是我拿到自己机器(Mac)用SublineText打开,发现是多行!正文开始关注到ASCII码中的CR(回车符)、LF(换行符)找到问题的原因:为什么会使用命令查询行数是一行,用文本读取器打开是多行这...原创 2019-08-31 19:16:58 · 1120 阅读 · 0 评论 -
Netty的最强FAQ(常见问题与解答)
问题引出默认情况下,Netty服务端起多少线程?何时启动?Netty是如何解决jdk空轮训bug的?Netty如何保证异步串行无锁化问题探究问题1:默认情况下,Netty服务端起多少线程?何时启动?...原创 2019-05-26 15:29:28 · 628 阅读 · 0 评论 -
封装自己的LogUtils —— 基于Logback&Slf4j
前言正文LogUtils.javapackage com.hyperdai.contest.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * author hyperdai * create 2019-05-24 21:26 */public class LogUtils { pr...原创 2019-05-25 22:23:18 · 1712 阅读 · 0 评论 -
【破冰】ElasticSearch7.x「新特性」——不完全解读
前言公司ELK系统需要重构,然后我准备尝试把Es6.x升级到Es7.x,翻了许多文档,踩了很多坑,以下是对于新特性的一些解读(理论),主要是从ES6.x-》7.x。当然接下来会推出ES7+Java代码实践(期待)。正文1. 集群连接变化:TransportClient被废弃以至于,es7的java代码,只能使用restclient。然后,个人综合了一下,对于java编程,建议采用 Hig...原创 2019-05-24 21:15:50 · 17567 阅读 · 2 评论 -
java日志「SLF4j + Logback」
前言常见的日志框架我们可以分类为「日志门面」和「日志实现」日志门面:JCL、SLF4j、jboss-logging日志实现:Log4j、Log4j2、Logback、JUL最后我选择「SLF4j + Logback」使用基本实现import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Logger...原创 2019-01-25 04:54:23 · 372 阅读 · 0 评论 -
JAVA泛型通配符T,E,K,V区别,T以及Class<T>,Class<T>的区别
原文地址:https://www.jianshu.com/p/95f349258afb1. 先解释下泛型概念泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型O...转载 2019-01-27 03:46:34 · 3132 阅读 · 0 评论 -
java的concurrenthashmap和hashtab
一、背景:线程不安全的HashMap因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他线程访问Ha...转载 2019-02-28 22:35:49 · 544 阅读 · 0 评论 -
创建和启动线程的两种方式
方式1:继承Thread类步骤:1):定义一个类A继承于java.lang.Thread类.2):在A类中覆盖Thread类中的run方法.3):我们在run方法中编写需要执行的操作:run方法里的代码,线程执行体.4):在main方法(线程)中,创建线程对象,并启动线程.(1)创建线程类对象: A类 a = new A类();(2)调用线程对象的start方法: a.st...原创 2019-02-25 23:36:20 · 364 阅读 · 0 评论 -
[Java]一篇文章浅入深出了解「JVM原理」以及常见问题
前言知识学了又丢,不得不开个专场,把「JVM」的内容专门放在这里,常更新,欢迎收藏~JVM为什么要先编译成字节码为了实现跨平台「一次编写,到处运行」JVM如何加载.class文件JVM 全称是Java Virtual Machine ,Java 虚拟机,也就是在计算机上再虚拟一个计算机,这和我们使用 VMWare 不一样,那个虚拟的东西你是可以看到的,这个JVM 你是看不到的,...原创 2019-03-08 01:11:41 · 219 阅读 · 0 评论 -
[Java]一篇文章浅入深出了解「GC原理」以及常见问题
前言本章回顾的是:GC垃圾回收机制原理。想回顾JVM的可以看这篇文章:[Java]一篇文章浅入深出了解「JVM原理」以及常见问题常更新,欢迎收藏~GC通常我们判断一个对象判定为垃圾的标准,是有没有被其他对象引用。判定对象是否为垃圾的算法引用计数算法但是,Java中却没有使用这种算法,因为这种算法很难解决对象之间相互引用的情况。看一段代码。public class Re...原创 2019-03-08 01:16:50 · 192 阅读 · 0 评论 -
Java多线程
Java多线程与并发进程和线程的区别进程是资源分配的最小单位,线程是CPU调度的最小单位所有进程相关的资源,都被记录在PCB中进程是抢占处理机的调度单位;线程属于某个进程,共享其资源线程只由堆栈寄存器、程序计数器和TCB组成Java进程和线程的关系每个进程对应一个JVM实例,多个线程共享JVM里的堆Java采用单线程编程模型,程序会自动创建主线程主线程...原创 2019-03-30 15:33:19 · 142 阅读 · 0 评论 -
Java项目(JAR包)上线环境下(Linux系统)的启动停止脚本配置(Shell脚本)
引言对于一般性Java项目,我们会这样定义项目目录,此处项目目录不包括java的代码,只把java代码编译输出的jar包放入lib文件夹下,通过调用bin文件夹下的脚本文件启动,并读取conf目录下的自定义配置文件,写项目运行日志记录到conf文件夹下话不多说,直接上脚本代码#!/bin/bash#description: 启动重启server服务 #目录和包名 HOME='/U...原创 2019-05-01 17:44:19 · 751 阅读 · 0 评论 -
[logback] 关于logback.xml加载非类路径配置文件 - 问题排查与解决
前言之前我的所有配置文件放在Resource目录下,现在我想移到dc_server目录读取配置文件,然后就:自定义配置文件读取的坑……探索项目启动后发布加载不到根目录下的配置文件,一直报这种错误ERROR in ch.qos.logback.core.joran.action.PropertyAction - Could not find resource [/Users/hyperda...原创 2019-05-08 10:54:08 · 5589 阅读 · 3 评论 -
BIO、NIO和AIO的区别
一、事件分离器在IO读写时,把 IO请求 与 读写操作 分离调配进行,需要用到事件分离器。根据处理机制的不同,事件分离器又分为:同步的Reactor和异步的Proactor。Reactor模型:应用程序在事件分离器注册 读就绪事件 和 读就绪事件处理器事件分离器等待读就绪事件发生读就绪事件发生,激活事件分离器,分离器调用 读就绪事件处理器(即:可以进行读操作了,开始读)读事件处理器开...转载 2019-04-30 12:55:29 · 154 阅读 · 0 评论 -
Logback的核心API调用,动态输出日志
前言项目碰到了不能读logback配置文件,因为配置文件是第一次启动读的,然后我程序运行时要动态写。比如这种场景:根据不同的业务id,生成不同的日志文件。因为动态场景,无法写配置文件,我们只能通过调用自己输出,然后自己输出还得写文件,为什么不借助logback的api去写文件呢?毕竟别人开源的代码比我们牛逼!写代码之前,从官网看一下logback工作原理(为了让你们感觉我是看懂了原理图,手...原创 2019-05-09 01:06:55 · 2406 阅读 · 0 评论 -
java转JSON串的几种方式
昨天在与对端系统调接口的时候,对端系统对我们传过去的json串老是处理不了,后来查原因是应为我们传过去的json串里有json对象数组,因为我们的json串存在表里的,取出来是作为json字符串放到json数组里的,所以带了双引号,对端认为是字符串,不是json对象所以处理不了。[{“cardName”:“bankCard1”,“cardCode”:“888888888”,“cardValue”:...转载 2019-01-24 03:19:38 · 1665 阅读 · 0 评论