java
文章平均质量分 55
java
byteRun
https://pamgo.github.io/byterun/#/
展开
-
Keepalived+LVS实现高可用负载均衡
原创 2022-03-19 10:56:46 · 229 阅读 · 0 评论 -
html转PDF java实现方式(解决中文乱码以及换行问题)
引入最新版本jar即可,地址:https://github.com/flyingsaucerproject/flyingsaucer<dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>flying-saucer-pdf-itext5</artifactId> <version>9.1.2原创 2021-04-09 10:11:18 · 647 阅读 · 0 评论 -
Java-Stream流规约、分组、分区
问题引入如果你在做一些汇总操作,比如1、对一个交易列表按货币分组,获取每种货币的和(Map<Cruuency,Integer>) 2、将交易分成贵的、不贵的(Map<Boolean,List<Transaction>>) 3、多级分组,按城市分组,再按贵和不贵分组如果是传统的写法,使用外部迭代即可,会有很多for+if组合,类似:private static void groupImperatively() { Map<Cu.转载 2021-02-24 15:50:58 · 1863 阅读 · 0 评论 -
Java并发编程(1)- Callable、Future和FutureTask
撸过JavaSE(即Java基础技术栈)的小伙伴都知道,实现多线程有两种方式,一种是继承Thread,即extends Thread然后实现其中的run()方法;另外一种是实现Runnable接口,即implements Runnable,然后实现其中的run()方法;仔细观察这两种方式,会发现这两者都不能返回线程异步执行完的结果,但在实际项目开发中却偶尔需要获取其中的返回结果,咋办嘞?于是乎Callable和Future就排上用场了,本文我们将对其做一番详尽的介绍!还是先介绍下多线程的传统实现方...转载 2020-12-21 11:12:53 · 184 阅读 · 0 评论 -
Java并发编程(3)- FutureTask详解与池化思想的设计和实战二
在Java并发编程领域,FutureTask可以说是一个非常强大的利器,它通过实现RunnableFuture接口间接拥有了Runnable和Future接口的相关特性,既可以用于充当线程执行的任务(Runnable),也可以用于获取线程异步执行任务后返回的结果(Future);本文将基于FutureTask实战一个高级案例:设计一款简化版的池容器,以此学习巩固池化思想.在上篇文章中:Java并发编程(2)-FutureTask详解与池化思想的设计和实战一,我们已经从源码的角度结合多线程ThreadP.转载 2020-12-21 11:06:53 · 109 阅读 · 0 评论 -
Java并发编程(2)- FutureTask详解与池化思想的设计和实战一
在Java并发编程领域,FutureTask可以说是一个非常强大的利器,它通过实现RunnableFuture接口间接拥有了Runnable和Future接口的相关特性,既可以用于充当线程执行的任务(Runnable),也可以用于获取线程异步执行任务后返回的结果(Future);本文将通过剖析解读FutureTask底层相关的核心源码,并基于FutureTask自设计并实战一款“池容器”,即池化思想的设计和实战;在上篇文章中:Java并发编程(1): Callable、Future和FutureTask转载 2020-12-21 11:01:00 · 137 阅读 · 0 评论 -
CentOS7系统巡查脚本,cpu、内存等监控
#!/bin/bash############################################################### File Name: CenOS7.sh# Version: V1.0# Author: # Organization: # Created Time : date# Description:####################...原创 2019-12-21 13:23:06 · 1396 阅读 · 0 评论 -
自定义缓存实现
直接上代码:一、定义缓存通用接口package com.example.cache.spring;/** * 定义缓存 * @author OKali * */public interface Cache { // 返回缓存实例名称 String getName(); Object getCacheValue(K key); void setCacheObj原创 2018-01-27 10:21:30 · 1745 阅读 · 0 评论