java

Java两种方式实现动态代理

2020-10-08
一.JDK动态代理 Java 在 java.lang.reflect 包中有自己的代理支持,该类(Proxy.java)用于动态生成代理类,只需传入目标接口.目标接口的类加载器以及 InvocationHandler 便可为目标接口生成代理类及代理对象.我们称这个Java技术为:动态代理 @CallerSensitive public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, Invoca

java8 stream sort自定义复杂排序案例

2020-10-07
java 8 自定义排序 需求 今天在项目中遇到个需求,按照对象中的三个属性进行排序. 具体要求: 前提:对象 Obj [a=a,b=b,c=c] 1. 优先级为a > b > c 2. a属性为中文,固定排序规则为:政府,合作,基金 - - 3. b的为BigDecimal类型,固定的排序规则为:降序排序 4. c为java.util.Date类型,规则为:降序排序 其实看这个需求,第3点和第4点不是什么问题,但是第1点,会考虑下怎么实现好. 直接上方案吧! 方案一 新建一张排序表,至少要有

Java获取线程ID的实例

2020-10-07
以下实例演示了如何使用 getThreadId() 方法获取线程id: public class Main extends Object implements Runnable { private ThreadID var; public Main(ThreadID v) { this.var = v; } public void run() { try { print("var getThreadID =" + var.getThreadID()); Thread.sleep(200

基于SpringBoot bootstrap.yml配置未生效的解决

2020-10-07
我就废话不多说了,大家还是直接看代码吧~ <!--需要引入该jar才能使bootstrap配置文件生效--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-context</artifactId> </dependency> 补充知识:SpringBoot不读取bootstrap.yml/properti

idea创建springboot项目和springcloud项目的详细教程

2020-10-07
一:创建springboot项目 1.选择File –> New –> Project –>Spring Initialer –> 点击Next 2.填写项目相关的信息,–>点击next 3.选择web –> web,–>点击next 4.填写项目名和项目位置,–>点击finish 5.会自动生成一个Application类,加上一个@RestController注解就可以写方法了 6.启动Application类中的main()方法,浏览器输入localh

Spring Cloud Gateway不同频率限流的解决方案(每分钟,每小时,每天)

2020-10-07
SpringCloud Gateway 简介 SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式. SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuu

Java并发编程——volatile关键字

2020-10-07
一.volatile是什么 volatile是Java并发编程中重要的一个关键字,被比喻为"轻量级的synchronized",与synchronized不同的是,volatile只能修饰变量,无法修饰方法及代码块等. 下面是使用volatile关键字实现的单例模式: public class Singleton implements Serializable { private static volatile Singleton singleton; private Singleto

Java 实现协程的方法

2020-10-07
协程(Coroutine)这个词其实有很多叫法,比如有的人喜欢称为纤程(Fiber),或者绿色线程(GreenThread).其实究其本质,对于协程最直观的解释是线程的线程.虽然读上去有点拗口,但本质上就是这样. 协程的核心在于调度那块由他来负责解决,遇到阻塞操作,立刻放弃掉,并且记录当前栈上的数据,阻塞完后立刻再找一个线程恢复栈并把阻塞的结果放到这个线程上去跑,这样看上去好像跟写同步代码没有任何差别,这整个流程可以称为coroutine,而跑在由coroutine负责调度的线程称为Fiber.

详解JUC 常用4大并发工具类

2020-10-07
什么是JUC? JUC就是java.util.concurrent包,这个包俗称JUC,里面都是解决并发问题的一些东西 该包的位置位于java下面的rt.jar包下面 4大常用并发工具类: CountDownLatch CyclicBarrier Semaphore ExChanger CountDownLatch: CountDownLatch,俗称闭锁,作用是类似加强版的Join,是让一组线程等待其他的线程完成工作以后才执行 就比如在启动框架服务的时候,我们主线程需要在环境线程初始化完成之后

IDEA 单元测试创建方法详解(2020.03版本亲测)

2020-10-07
IntelliJ IDEA创建单元测试 在 Android 中,单元测试基于 JUnit,JUnit 的平面使用足以测试完全基于 Java 代码的功能. 但是,为了测试 Android 特定的功能,您需要一堆构建在 JUnit 之上的包装类.IntelliJ IDEA 简化了 Android 测试项目构建过程中的大部分任务. 1.确保你的代码是可测试的 单元测试要求源代码的编写方式使得模块之间的依赖关系可以很容易地通过模仿来消除.另外,单元测试要求功能相互隔离. 因为这个 HelloDroid

Springmvc异常处理器及拦截器实现代码

2020-10-07
一.异常处理器 1.实现HandlerExceptionResolver接口 package com.wuxi.exceptions; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servl

Java 遍历 String 字符串所有字符的操作

2020-10-07
我就废话不多说了,大家还是直接看代码吧~ package com.app.main.utils; /** * Created with IDEA * author:Dingsheng Huang * Date:2019/6/28 * Time:下午8:48 */ public class StringUtils { public static void main(String[] args) { String test = "abc123"; // 遍历所有字符 for (int i

解决IntelliJ IDEA中鼠标拖动选择为矩形区域问题

2020-10-07
修改方法有两个 1.方法1:点"编辑"-->"列选择模式" 2.方法2:快捷键Shift+Alt+Insert 修改后结果如下: 到此这篇关于解决IntelliJ IDEA中鼠标拖动选择为矩形区域问题的文章就介绍到这了,更多相关IDEA鼠标拖动选择矩形区域内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

Java fastdfs客户端实现上传下载文件

2020-10-07
一.项目结构 二.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.

IDEA2020.1构建Spring5.2.x源码的方法

2020-10-07
内容概览 使用IDEA2020.1构建Spring5.2.x源码 环境 源码:spring5.2.xjdk11.08idea2020.1 spring spring5.2.x源码下载地址 gradle 下载 查看spring使用的gradle版本,这里要记得将distributionUrl指向本地的gradle包,不然还是会去下载的. distributionUrl=file:///H:/download/gradle-5.6.4-bin.zip gradle下载地址 安装 window下,配置

详解SpringBoot简化配置分析总结

2020-10-07
在SpringBoot启动类中,该主类被@SpringBootApplication所修饰,跟踪该注解类,除元注解外,该注解类被如下自定注解修饰. @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan 让我们简单叙述下它们各自的功能: @ComponentScan:扫描需要被IoC容器管理下需要管理的Bean,默认当前根目录下的 @EnableAutoConfiguration:装载所有第三方的Bean @SpringB

mybatis 通过拦截器打印完整的sql语句以及执行结果操作

2020-10-07
开发过程中,如果使用mybatis做为ORM框架,经常需要打印出完整的sql语句以及执行的结果做为参考. 虽然mybatis结合日志框架可以做到,但打印出来的通常都是sql和参数分开的. 有时我们需要调试这条sql的时候,就需要把参数填进去,这样未免有些浪费时间. 此时我们可以通过实现mybatis拦截器来做到打印带参数的完整的sql,以及结果通过json输出到控制台. 直接看代码和使用方法吧: MyBatis拦截器打印不带问号的完整sql语句拦截器 import java.text.DateF

JavaWeb开发之【Tomcat 环境配置】MyEclipse+IDEA配置教程

2020-10-07
MyEclipse配置 IDEA配置Tomcat 环境 IDEA:2020.2 Tomcat:apache-tomcat-9.0.38 创建Web项目 Q1:Tomcat启动输出乱码 Q2:Servlet中使用 System.out,Tomcat控制台输出乱码 一:创建Web项目 1> 创建普通项目,添加框架支持 2> 为项目配置Tomcat 3> 部署项目到Tomcat 4> 手动添加依赖包 二:Tomcat启动输出乱码 -Dfile.encoding=UTF-8 三:Servl

java中下拉框select和单选按钮的回显操作

2020-10-07
前提: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 1.下拉框select <select name="departmentId" id="departmentId"> <option value="0">请选择部门</option> <c:forEach items=&

Java形参和实参的实例之Integer类型与Int类型用法说明

2020-10-07
经常会有这样一道面试题,有两个整形变量分别是a = 1 ,b = 2.编写一个方法swap互换他们的值. 
class
 
Main
 
{


 
public
 
static
 
void
 main
(
String
[]
 args
)
 
{


 
Integer
 a 
=
 
1
;


 
Integer
 b 
=
 
2
;


 
System
.
out
.
println
(
"a="
 
+
 a 
+
 
",b="
 
+
 b