252条记录
10 阅读
1 评论

深入源码分析 Java 线程池实现原理

程序的运行,其本质上,是对系统资源(CPU、内存、磁盘、网络等等)的使用。如何高效的使用这些资源是我们编程优化演进的一个方向。今天说的线程池就是一种对CPU利用的优化手段。网上有不少介绍如何使用线程池的文章,那我想说点什么呢?我希望通过学习线程池原理,明白所有池化技术的基本设计思路。遇到其他相似问题...
2019年10月18日 16:06
66 阅读
2 评论

android通过web与后台数据库交互

1.背景 开发一个app与后台数据库交互,基于mysql+jdbc+tomcat,没有使用DBUtils或jdbc框架,纯粹底层jdbc实现.以后逐步改用Spring框架,优化mysql,进一步部署tomcat等等,现在项目刚刚起步,还有很多不懂的东西,得慢慢来…这几天踩了很多坑,说得夸张点真是踩到...
2019年10月14日 20:14
136 阅读
3 评论

图文演示:利用Java常见的命令分析线程的信息

查看java线程的状态和信息可采用3种常见命令,它们分别是jsp+jstack.exe、jmc.exe以及jvisualvm.exe。这些命令在jdk的bin目录中。 在演示之前,我们需要先创建一些线程,代码如下: public class Thread01 { public static ...
2019年09月28日 11:25
50 阅读
3 评论

Java url pattern源码完美解决/**、/*.do等通配算法,让自定义Java Filter匹配Url更简单

Java写一些通用框架,例如filter、拦截器、监听器时,我们通常会匹配一些固定的url请求,做一些特殊处理。我们可能会遇到如下问题:1、如何通配符匹配Url请求?2、如何使用正则的方式匹配Url? 3、如何自定义算法匹配Url?实际上我们可以借鉴一些成熟的框架源码来实现我们的需求。例如...
2019年08月20日 16:53
33 阅读
3 评论

SpringBoot报错:Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured

搭建SpringBoot时报错如下: Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-c...
2019年08月13日 22:38
51 阅读
3 评论

SpringBoot启动报错:WebServerException: Unable to start embedded Tomcat的解决方法

最近搭建springboot启动报错:org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat 报错信息如下: org.springframework.cont...
2019年08月13日 22:26
41 阅读
3 评论

JVM内存溢出、java.lang.OutOfMemoryError常见原因及解决办法

JVM 内存溢出会抛出 java.lang.OutOfMemoryError异常。让我们来聊聊OOM 原因及其解决方法。 1. Java heap space 当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang.OutOfMe...
2019年07月30日 22:41
24 阅读
3 评论

Java中有wait和sleep延迟方法,那么wait和sleep有什么区别?

sleep源码如下: public class Thread implements Runnable { public static native void sleep(long millis) throws InterruptedException; public s...
2019年07月30日 12:23
16 阅读
3 评论

SpringBoot如何优雅的关闭应用程序 ?使用Actuator的shutdown即可

假设你要关闭运行中的应用程序。比方说,在微服务架构中,你有多个微服务应用的实例运 行在云上,其中某个实例有问题了,你决定关闭该实例并让云服务提供商为你重启这个有问题的 应用程序。在这个场景中,Actuator的/shutdown端点就很有用了。 为了关闭应用程序,你要往/shutdow...
2019年07月29日 12:17
20 阅读
3 评论

聊聊Spring Aop、JDK、Cglib代理

说说 Spring AOP 面向切面编程,在我们的应用中,经常需要做一些事情,但是这些事情与核心业务无 关,比如,要记录所有 update*方法的执行时间时间,操作人等等信息,记录到日志,通过 spring 的 AOP 技术,就可以在不修改 update*的代码的情况下完成该需求。&nbs...
2019年07月28日 21:13
55 阅读
3 评论

SpringBoot使用CaffeineCacheManager实现多重缓存配置

缓存几乎是每个应用程序性能的关键。有时需要分布式缓存,但并非总是如此。在许多情况下,本地缓存可以正常工作,不需要考虑分布式缓存的开销和复杂性。因此,在许多应用程序中,包括plain-spring和spring-boot,您可以在任何方法上使用@cacheable,它的结果将被缓存,以便下次调用该方法...
2019年07月28日 09:09
20 阅读
3 评论

反射Reflection是最重要的Java API

前几天我在想,哪一个是最重要的Java API。SE和EE API中的哪一个实现了Java生态系统的大部分框架、功能,而这不可能只是作为第三方库重新创建的。正如您可能已经通过标题猜到了,我认为是反射API。是的,它不可避免地、直接或间接的成为每个项目的一部分。但对于更多的API来说,这是正确的,特别...
2019年07月28日 08:18
35 阅读
3 评论

权限控制Shiro框架的核心知识点整理

Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个...
2019年07月27日 18:37
19 阅读
3 评论

高可用缓存Redis和memcached有什么区别?哪个更好用?详细的一份对比清单

使用 redis 或 memcached 之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。对于 redis 和 memcached我认为有如下区别:1.redis支持更丰富的数据类型(支持更复杂的应用场景):Redis不仅仅支持简单的k/v类型的数据,同时还提供 li...
2019年07月27日 18:30
71 阅读
3 评论

Java工具类:根据访问者IP获取访问者的国家、省市区域以及ISP运营商等信息

通过Java代码实现IP地址所在区域等信息获取是很难实现的,我们需要强大的IP库支持。好在淘宝提供了公益开源的IP信息获取接口,让我们能够轻松实现IP地址的具体信息的获取。(PS:淘宝提供的IP Url有每日调用次数限制,对于访问量大的网站可能要考虑缓存IP信息到本地库,减少对该Url的调用次数)。...
2019年07月20日 10:17
25 阅读
3 评论

Java Cookie工具类关于Cookie的移除、获取、写入的实现

在很多项目中,我们都会用到Cookie来读取一些会话等信息。例如登录、用户识别、防重复点击等。那么,如何用java实现对Cookie的简单管理呢? 一个完善的Java工具类实现Cookie的获取、移除、写入:package com.my.common.utils; import java.io...
2019年07月20日 09:57
19 阅读
3 评论

Java代码如何实现中文转拼音?工具包pinyin4j轻松实现中文转拼音

在一些Java项目中,我们希望根据中文名称自动生成一串拼音代号,那么我们该如何实现呢?自己写代码实现类似功能还是比较麻烦的,我们可以使用开源的此类工具包pinyin4j来实现。 首先,引入pinyin4j依赖包: <dependency> <groupId...
2019年07月20日 09:48
22 阅读
3 评论

SpringBoot 如何永久301跳转?SpringMVC301跳转代码实例

在一些项目中,例如博客、论坛等服务由于迁移了域名或者url访问地址发生了改变,我们希望原来被搜索引擎收录的请求仍然能访问到最新的内容地址,这时候我们需要对旧的Url做永久301至新的Url链接上。 对于这类需求,通常我们可以使用Nginx 301跳转,也可以在项目代码中实现301跳...
2019年07月20日 09:31
53 阅读
3 评论

Mockito如何mock多线程?教你如何用Mockito注入ThreadPoolTaskExecutor实例

Mockito是常用的写单元测试覆盖率的框架之一。在有的业务服务中,使用了多线程,这时候我们如何mock多线程呢?其实很简单,通过ReflectionTestUtils手动setter多线程实例即可。代码如下:import org.junit.Before; import org.junit.Te...
2019年07月18日 17:03
860 阅读
3 评论

高并发订单库存系统如何实现?让我们来看看Redis如何解决高并发下订单库存的高可用性!

一、高并发下的问题A、B两个商品各有若干库存,如何在高并发下保证商品库存的安全性?1)库存是否存在多扣?2)库存是否存在少扣?3)扣库存的时候是否存在死锁?二、 下单的步骤(1)下单(2)下单同时预占库存(3)支付(4)发货真正减扣库存(5)取消订单(6)回退预占库存三、 重复下单问题(1)用户点击...
2019年07月10日 22:53
新上文档

Hive教程

Hive是一个数据仓库基础设施工具,用于处理Hadoop中的结构化数据

Scala教程

Scala是一种现代多范式编程语言,旨在以简洁,优雅和类型安全的方式表达常见的编程模式。

Hbase教程

HBase是一个数据模型,类似于Google的大表

R语言教程

R是用于统计分析,图形表示和报告的编程语言和软件环境

PHP Calendar函数

PHP Calendar函数的使用、详解