Java
文章平均质量分 53
Java相关文章分类
CodeWorkerZHL
科大小硕一枚
展开
-
分布式ID算法——snowflake(Java版)详解
1、前言原创 2020-03-30 11:02:12 · 567 阅读 · 0 评论 -
Spring解决CORS问题
1、前言出于安全原因,浏览器禁止AJAX调用当前来源之外的资源,跨域资源共享(CORS)是由大多数浏览器实施的W3C规范,使您可以灵活地指定对哪种跨域请求进行授权。从Spring Framework 4.2开始,开箱即用地支持CORS。 CORS请求(包括带有OPTIONS方法的预检请求)将自动分派到各种已注册的HandlerMappings。2、Controller方法的CORS配置可以...原创 2020-03-22 10:15:18 · 1690 阅读 · 0 评论 -
部署Tomcat项目去除项目名称
1、前言我们在部署项目到Tomcat中的时候,其访问路径一般为localhost:8080/projectName/接口,但是我们觉得这种很不方便,我们想要去除这个projectName,该怎么做呢?2、修改server.xml我们需要修改server.xml文件。在Host之间添加入下内容<Context path="" docBase="E:\\tomcat\webapi" de...原创 2020-03-15 14:15:17 · 695 阅读 · 0 评论 -
SpringBoot 打war包并部署到Tomcat
1、移除Tomcat依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion>...原创 2020-03-10 16:55:24 · 248 阅读 · 0 评论 -
Java后端多级缓存写法
1、前言在我们开发项目的过程中经常会遇到一些读多写少的接口,在这些接口中会有很大批量的查询操作,如果我们这些查询操作都需要查询数据库的话,会造成数据库承受不了,以及数据库的响应比较慢导致该接口无法在规定时间进行相应,所以我们要减少数据库的查询操作,使用多级缓存机制。2、架构多级缓存的架构如图所示:...原创 2020-02-24 11:26:52 · 1179 阅读 · 0 评论 -
在使用Mybatis插入或者更新数据的时候出现类似"??"的乱码
在jdbcurl中要插入“useUnicode=true&characterEncoding=utf8url = jdbc:mysql://localhost:3306/zhanghanlun?useUnicode=true&characterEncoding=utf8原创 2020-02-17 18:47:15 · 382 阅读 · 0 评论 -
String、StringBuffer和StringBuilder之间的区别
前言在平常使用Java语言中的字符串的时候,会有三个数据结构供使用,String、StringBuffer和StringBuilder该使用哪一个呢?下面探讨一下其中的异同点。String先看下其Java源码public final class String implements java.io.Serializable, Comparable<String>, Cha...原创 2019-04-01 19:47:50 · 155 阅读 · 0 评论 -
Java基础知识
1、Object类的方法toString()getClass()clone()equal()notify()notifyAll()wait()finalize()2、ArrayList和LinkedList区别底层结构ArrayList的底层结构是数组LinkedList的底层结构是双向链表执行效率ArrayList随机存取 O(1),插入删除效率低Lin...原创 2019-04-09 22:53:57 · 154 阅读 · 0 评论 -
Java多线程
1、synchronized关键字1.1 作用范围修饰普通方法,作用于当前对象,进入同步代码前要获取当前对象实例的锁。修饰静态方法,作用于当前类对象,进入同步代码前要获取当前类对象的锁。修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码前要获得给定对象的锁。1.2 具体使用(单例模式,联合volatile)public class Singleton { pr...原创 2019-04-10 00:08:39 · 121 阅读 · 0 评论 -
使用EasyExcel读写Excel
这里写自定义目录标题1、前言2、引入jar包3、读Excel3.1 Student实体类3.2 读取Excel4、写Excel1、前言在没有EasyExcel之前我们经常使用Apache的poi jar包进行excel的读写,配置起来比较麻烦,也比较消耗内存,阿里开源了EasyExcel,配置上简化了,在一定程度上简化了内存溢出问题。2、引入jar包<dependency> ...原创 2019-05-14 19:57:35 · 3680 阅读 · 0 评论 -
Java中变量、常量、静态变量、静态常量、局部变量
1、前言在使用Java进行编程的过程中,我们经常碰到这些关于变量和常量的概念。如何区分变量、常量、静态变量、静态常量、局部变量等概念,下面看我一一道来。2、变量...原创 2019-09-02 13:49:39 · 1109 阅读 · 0 评论 -
get请求中文中文乱码问题
这里写自定义目录标题请求乱码解决办法请求乱码解决办法name= new String(name.getBytes(), "utf-8");原创 2019-02-22 11:50:49 · 2023 阅读 · 0 评论 -
IDEA开启远程dubug模式
目录Tomcat配置Linux服务器Window服务器IDEA配置Tomcat配置Linux服务器在catalina.sh中添加一行export JAVA_OPTS=&quot;-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8001&quot;Window服务器在catalina.bat中添加一行set JAVA_OP...原创 2019-01-15 10:39:35 · 698 阅读 · 0 评论 -
RabbitMQ exchange(交换机)的三种模式
1、前言我们在rabbitMq的时候经常会用到exchange来分发我们的消息,在使用exchange的时候要了解其常见的三种模式:fanout模式direct模式topic模式2、exchange的fanout模式这个模式的要点是:忽略routing key,将消息发送到绑定到交换机的所有队列中fanout 例子交换机为:zhanghanlun其绑定的状态为:生产者...原创 2018-11-27 16:27:32 · 2860 阅读 · 1 评论 -
HashMap源码解读(一)
1.前言 在我们面试过程中,经常会遇到要求说HashMap的底层实现,在JDK源码中,Oracle公司给出了我们HashMap的源码,通过阅读HashMap的源码,我们可以很清楚的知道HashMap是怎么实现的。下面我们开始阅读HashMap的源码吧。2.关于HashMap的类的继承与实现public class HashMap<K,V> extends Abst...原创 2018-04-20 21:08:32 · 234 阅读 · 0 评论 -
HashMap源码解读(二)
1.前言上次的博客,主要讲了HashMap的数据结构,没有详细的阐述HashMap的具体实现。在这次的博客中通过阐述put()方法和get()方法来阐述HashMap怎么实现的。 2.put方法public V put(K key, V value) { return putVal(hash(key), key, value, false, true);}fina...原创 2018-04-25 13:21:30 · 191 阅读 · 0 评论 -
Java多线程之线程池
1. 前言我们经常在Java并发框架中用到线程池。关于线程池我们该了解哪些东西的。 线程池实现的基本原理 常用的线程池的介绍,以及其源码的实现。 2. 线程池的基本原理其线程池执行execute()方法的过程如下: 如果当前运行的线程少于corePoolSize,则创建新线程来执行任务。 如果运行的线程等于或多于corePoolSize,则...原创 2018-05-12 19:15:14 · 192 阅读 · 0 评论 -
图片处理框架thumbnailator解析
前言Thumbnailator 包是处理图片缩略图的,可以对图片进行裁剪,修改格式,压缩等等。非常的方便。Thumbnailator压缩图片按长宽约束比例压缩简单例子代码直接上手Thumbnails.of("D:\\Images\\0gkZ4L5sxt.jpg")//输入路径 .size(100,100)//按长宽比例约束进行...原创 2018-07-29 22:55:02 · 1928 阅读 · 0 评论 -
获取request输入流
前言我们在进行请求进行拦截的时候经常会碰上这样一个问题,我们想要在拦截器filter中获取request的请求,如果使用请求中默认的getInputStream()方法或者getReader()方法获取数据,但是在后面的Controller中使用@ResquestBody注解,我们读取不到request的body中的值,这是因为request的body中的数据只能通过getInputStrea...原创 2018-08-12 22:16:47 · 4792 阅读 · 0 评论 -
使用Mybatis-generator自动生成Mybatis代码
1.前言在我们使用Mybatis的时候,我们想要建立数据库中表的Mybatis基本的增删改查,如果表十分复杂,我们如果手写的话会十分的繁琐,这里调用了Mybatis的自动生成工具来自动生成Mybatis的代码,生成之后,我们在做自己的一些修改就可以用了。基本的两个步骤是: 配置pom.xml中添加 在resource目录下添加generatorConfig.xml文件 ...原创 2018-08-22 19:48:54 · 263 阅读 · 0 评论 -
单例模式总结
1.定义 单例模式,顾名思义,在该设计模式中,一个类只能存在一个实例。不能有超过一个实例的情况。 下面的图片就是单例模式的类图: 2.应用场景 单例模式的应用场景还挺多的。举个例子吧 windows系统的任务管理器 回收站 网站计数器 3. 单例模式的写法3.1 懒汉式(线程不安全) 在我们学习单例模式的时候,第一次给出我们...原创 2018-08-28 16:59:53 · 272 阅读 · 0 评论 -
Bug之javax.imageio.IIOException: Error reading PNG metadata
问题描述在用thumbnailator包的时候遇到一个问题:就是png文件元数据有损坏,但是在电脑上该png文件是可以显示的。 问题代码如下: File file = new File("D:\\data\\1.png"); try { Thumbnails.of(file).height(300).asBufferedImage(); ...原创 2018-08-30 10:40:18 · 12540 阅读 · 0 评论 -
可重入锁ReetrantLock源码分析
前言关于锁,大家都清楚的是synchronized,和lock接口。关于lock显式锁,我们常用的是ReentrantLock类中的公平锁和非公平锁。本篇文章根据ReentrantLock和AbstractQueuedSynchronizer的源码来分析可重入锁中的公平锁和非公平锁的实现机制。非公平锁在ReentrantLock中默认的是非公平锁,我们先来看一下非公平锁的实现机制。...原创 2018-09-03 10:19:39 · 386 阅读 · 0 评论 -
Java之Date类和Calendar类比较
前言目前Java版本的Date类中已经逐步抛弃getDate()、getDay()的方法了,取而代之的是Calendar类的get()方法。所以在这边对Date类和Calendar类做一个总结。Date类这个类的来源非常的古老,从JDK1.0就有了,但是因为后面不支持国际化,Java逐渐向Calendar类倾斜了。先来谈一下Date类的使用获取当前的时间Date date = new ...原创 2018-10-23 17:32:47 · 4143 阅读 · 0 评论 -
Java 保存两位小数
前言在Java开发过程中,我们经常会遇到需要保留double类型的数字的位数问题,这里以保存两位小数为例,阐述一下Java开发中,保留小数点后小数位数问题的几种做法。做法(1)使用DecimalFormat类用0.00表示保存两位小数double a = 100.2365;DecimalFormat df = new DecimalFormat("0.00");System.out.p...原创 2018-10-24 10:53:30 · 5867 阅读 · 0 评论 -
JVM知识总结
1. JVM内存分配 程序计数器 虚拟机栈 本地方法栈 堆 方法区 常量池 2. GC2.1 GC分代 新生代 老年代 永久代 2.2 收集算法 复制算法 标记-清除 标记-整理 2.3 GC收集器 Serial收集器 ParNew收集器 CMS收集...原创 2018-04-02 14:27:50 · 231 阅读 · 0 评论