![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
黑色幽默ma
Fighting
展开
-
使用jdk Docker镜像部署常规SpringBoot web Jar项目
基础环境如果服务器不具备Docker环境,请优先安装docker基础环境,安装基础环境参考:Docker在线自动化安装脚本开始部署本次部署为SpringBoot架构下打成jar包。拉取镜像拉取镜像,常规使用的是jdk8。docker pull registry.cn-hangzhou.aliyuncs.com/zhy-cn/jdk8:1.0开始部署本次部署jar存放位置为/data/demo,jar包名称为demo.jar命令方式:# 使用jdk1.8镜像,自动重原创 2020-10-12 17:22:20 · 495 阅读 · 2 评论 -
Quartz定时器使用
触发器 Trigger: 什么时候工作任务 Job: 做什么工作调度器 Scheduler: 搭配 Trigger和Job1.创建一个job类,用作要定时执行的方法:package quartz;import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.DisallowConcurrentExecution;import org.quartz.Job;import org.quartz.Jo原创 2020-09-23 16:30:04 · 307 阅读 · 0 评论 -
获取线程的返回值的方法
主线程等待public class CycleWait implements Runnable{ private String value; public void run() { try { Thread.currentThread().sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); }原创 2020-08-18 10:14:53 · 771 阅读 · 0 评论 -
logback的使用与@Slf4j注解
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="/home" /> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos..原创 2020-06-15 11:32:21 · 680 阅读 · 0 评论 -
java8的日期处理
Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。示例1:Java 8中...转载 2020-05-07 15:47:19 · 134 阅读 · 0 评论 -
Timer.schedule()与timer.scheduleAtFixedRate()的区别
schedule() 下一个任务在上一个任务开始计时执行 scheduleAtFixedRate() 下一个任务在上一个任务结束后执行 import java.text.SimpleDateFormat;import java.util.Timer;import java.util.TimerTask;public class TimerTest { public...原创 2020-05-07 14:19:56 · 528 阅读 · 0 评论 -
使用 LOMBOK写pojo类
eclipse引入插件:https://pan.baidu.com/s/1uiE7NqFOraQCO3JWut1ijQ 提取码:jqes到路径下执行jar:java -jar lombok.jar按步骤一步一步安装完成。重新启动eclipse。package java_demo;import lombok.AllArgsConstructor;import lom...原创 2020-03-24 16:03:02 · 387 阅读 · 0 评论 -
Collection的sort()升序排序、reverse()降序排序,copy复制
注意问题:jdk版本。用了1.6的,reverse()方法排序乱掉了。@Test public void testCollection() { List<Integer> list = new ArrayList<Integer>(); list.add(25); list.add(1); list.add(7); list.add(36...原创 2020-01-13 16:31:31 · 1033 阅读 · 0 评论 -
List多重排序
以String[]的list集合为例:先按第一列排序,再按第二类排序。package java_demo;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test22 { public s...原创 2020-01-07 20:54:03 · 1053 阅读 · 0 评论 -
单例模式(饿汉式与懒汉式代码)
饿汉:早就实例过,已有实例,(准备好饭了都)饿了随时 可以吃package java_demo;/** * 单例模式 * @author mzj07 * 1.构造方法私有化,使得该类无法在外部通过new实例化 * 2.准备一个类属性指向一个实例对象(静态属性指向实例) * 3.定义一个方法获取实例 对象singleton * */public class Singleto...原创 2019-08-14 15:30:18 · 1611 阅读 · 0 评论 -
dubbo注册中心redis,zookeeper
dubbo需要将提供者和消费者写入注册中心,注册中心根据请求去辨别去请求哪个服务。使用redis作为注册中心:主要是因为redis的存储机制是key-value,并且还有发布和订阅的消息机制。key存贮的是服务名和类型,value中存map集合。map中的key存的是服务的url,map中的value存的是服务的过期时间,用于判断是否为脏数据,如果已经过期则为脏数据,由监控中心删除。...原创 2019-06-26 16:00:05 · 1641 阅读 · 0 评论 -
多线程
多线程主要是为了在同一时间做很多事情。按照之前的加载顺序,方法体肯定是从上到下依次执行,上一个步骤执行完成之后,下个方法才会执行。这就导致了一个问题,就页面而言,页面的加载顺序也依次加载,上一个方法没有执行完毕的时候,下部分页面就 加载不出来。多线程可以 将这几个方法同时的进行加载,互相抢占资源去加载,更有利于提升查询效率。创建线程的几种方式:public class TestThr...原创 2019-06-22 14:50:51 · 85 阅读 · 0 评论 -
java获取屏幕的宽高
//获得当前屏幕的宽度, Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int screenWidth = (int)screenSize.getWidth(); int screenHeight = (int)screenSize.getHe...原创 2019-06-11 19:14:17 · 1686 阅读 · 0 评论 -
删除指定日期前的文件File
/** * 定时删除日志 * * @param path 日志路径 * @param day 最近几天 * @param pdate 计划日期 */ public static void deleteLogFileMyself(String path, int day, String pdate) { File ...原创 2019-06-01 15:22:35 · 1407 阅读 · 0 评论 -
File文件的拷贝(剪切),文件夹的复制
/** * 日志备份 * * @param srcPath 源文件 * @param destDir 目标文件 * @param pdate 计划日期 * @param peirodname */ public static void copyLogFile(String srcPath, String destDir...原创 2019-06-01 15:20:29 · 3958 阅读 · 0 评论 -
Joiner拼接String
传统拼接模式:需要去掉最后的一个符号。@Test public void test6() { List<String> list = new ArrayList<String>(); list.add("kobe"); list.add("james"); list.add("paul"); StringBuilder builder = ne...原创 2019-06-05 11:53:53 · 868 阅读 · 0 评论 -
java定时器执行程序
业务场景:需要实时刷新的操作。//定时刷新频率 5分钟private static final long PERIOD_DAY = 5 * 60 * 1000;final Timer t = new Timer(); //线程定时执行刷新 t.schedule(new TimerTask() { @Override ...原创 2019-05-10 16:19:45 · 1167 阅读 · 0 评论 -
java窗体初始化下拉框
1.选取下拉框。可以右键属性赋初始值2.像jsp页面一样页面加载执行函数初始化,动态赋值。 /** * 初始化部门下拉框 */ private void initDept() { //移除下拉框所有选项 jComboBox1.removeAllItems(); //首先添加一个item ...原创 2018-09-12 13:48:12 · 2037 阅读 · 0 评论 -
java窗体获取多选框的值
1.拖动几个复选框控件(可以在控件属性设置默认选中)2.后台代码://遍历面板的所有控件,找到属于JCheckBox的控件,然后//isSelected()方法判断是否选中for(Component c:jPanel4.getComponents()){ if(c instanceof JCheckBox){ ...原创 2018-09-12 13:37:45 · 2753 阅读 · 0 评论 -
java窗体获取单选按钮的值
1.拖两个单选按钮2.拖动一个按钮组(默认不会显示在面板上)3.把每个单选按钮的某个属性和按钮最联系起来4.后台代码: System.out.println("性别:"+(jRadioButton1.isSelected()?jRadioButton1.getText():jRadioButton2.getText()));...原创 2018-09-12 13:34:25 · 8832 阅读 · 0 评论 -
正则表达式
1.正则表达式 正则(regex) (1)正则表达式概念: 正则表达式(regular expression)描述了一种字符串 匹配的模式,可以用来:校验 (a)检查一个串中是否含有符合某个规则的子串,并且可以得到这个子串; (b)根据匹配规则对字符串进行灵活的替换操作。 (2)常见表达式:3 [a]...原创 2018-08-26 16:38:50 · 73 阅读 · 0 评论 -
List去重
package cn.java.test;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.stream.Collectors;import org.junit.Test;/** * list去重 * @author Administrator...原创 2018-08-19 20:59:11 · 307 阅读 · 0 评论 -
equals和==
==:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:int a=10 与 long b=10L 与 d...转载 2018-08-17 17:12:37 · 89 阅读 · 0 评论 -
zxing生成二维码
引入jar包:zxingpackage com.imooc.zxing;import java.io.File;import java.nio.file.Path;import java.util.HashMap;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;imp...原创 2018-08-16 14:37:25 · 108 阅读 · 0 评论 -
jquery_code二维码
jquery.qrcode.min.js(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;...原创 2018-08-16 14:32:15 · 184 阅读 · 0 评论 -
shiro和servlet的结合
shiro.ini[main] #使用数据库进行验证和授权databaseRealm=com.how2java.DatabaseRealmsecurityManager.realms=$databaseRealm #当访问需要验证的页面,但是又没有验证的情况下,跳转到login.jspauthc.loginUrl=/login.jsp#当访问需要角色的页面,但是又不拥有这个角色...原创 2018-08-15 15:27:42 · 1558 阅读 · 0 评论 -
二进制存储图片或文件的读取与下载
上传头像的时候,如果把图片上传至服务器,那么数据库中建议存储相对路径,页面显示的时候就可以以相对路径的形式获取。如果以二进制的形式直接将文件或者图片上传到数据库中,那么读取的时候也是通过数据库的byte[]数组读取。首先数据库存储的字段要设置为blob。上传不在介绍,就是以byte数组去存储。读取的时候: @RequestMapping("/showImg") @ResponseBod...原创 2018-07-29 22:07:14 · 1380 阅读 · 0 评论 -
Arrays.asList(),数组转list
package java_demo;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import org.junit.Test;public class DemoTest { @Test public void test1() { String[] arr = {"ko...原创 2019-06-05 11:29:27 · 421 阅读 · 0 评论 -
BufferedWriter、BufferedReader读写文件
写文件:bw = new BufferedWriter(new FileWriter(localPath, false));false:重新写入文件true:在原文件之后增加内容。bw.newLine(); 换行bw.flush();BufferedWriter是缓冲输入流,意思是调用BufferedWriter的write方法时候。数据是先写入到缓冲区里,并没有直接写入到目的文...原创 2019-05-14 15:26:34 · 1021 阅读 · 0 评论