-
java利用递归算法实现对文件夹的删除功能
所属栏目:[Java] 日期:2020-12-14 热度:184
前提: 集成开发环境(IDE):eclipse jdk版本:8.0 File类的几个方法: 1)isFile() 测试此抽象路径名表示的文件是否为普通文件。 2)list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。 3)delete() 删除由此抽象路径名表示的文件或目[详细]
-
java final本质详解
所属栏目:[Java] 日期:2020-12-14 热度:96
含义:final 含义是【仅可以被赋值一次】。 赋值位置:在【声明时赋值】、在【构造方法中赋值】 举例: package com.dada.data;public class TestFinal { // 1.声明时赋值 private final int i = 0; private final int j; public TestF() { // 2.构造方法中[详细]
-
Java如何使用Optional与Stream取代if判空逻辑(JDK8以上)
所属栏目:[Java] 日期:2020-12-14 热度:150
通过本文你可以用非常简短的代码替代业务逻辑中的判null校验,并且很容易的在出现空指针的时候进行打日志或其他操作。 注: 如果对Java8新特性中的lambda表达式与Stream不熟悉的可以去补一下基础,了解概念。 首先下面代码中的List放入了很多Person对象,其[详细]
-
Java使用OTP动态口令(每分钟变一次)进行登录认证
所属栏目:[Java] 日期:2020-12-14 热度:140
GIT地址:https://github.com/suyin58/otp-demo 动态码截图: 在对外网开放的后台管理系统中,使用静态口令进行身份验证可能会存在如下问题: (1) 为了便于记忆,用户多选择有特征作为密码,所有静态口令相比动态口令而言,容易被猜测和破解; (2) 黑客[详细]
-
Java泛型extends关键字设置边界的实现
所属栏目:[Java] 日期:2020-12-14 热度:84
本文主要介绍在泛型定义中的 中的占位符如何配合extends关键字使用,形如T extends Integer。泛型定义存在于这三种形式中:泛型类、泛型接口、泛型方法。 一般的泛型定义中的T,相当于T extends Object,而类型擦除则会将类型参数擦除成T的上界,即Object。[详细]
-
Java super关键字用法实战案例分析
所属栏目:[Java] 日期:2020-12-14 热度:116
本篇章节讲解Java super关键字用法。供大家参考研究具体如下: 一 点睛 如果子类继承了父类的数据成员,这时就需要调用父类的有参构造方法,来初始化来自父类的数据成员,这时就需要显示的调用父类中的有参构造方法super(参数1,参数2)。 二 实战—[详细]
-
Springboot集成JSR303参数校验的方法实现
所属栏目:[Java] 日期:2020-12-14 热度:143
JSR303 是一套 JavaBean 参数校验的标准 1、pom导入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId/dependency 2、注解类型 (1)空检查 @Null 验证对象是否为null@NotNull 验证对象是否不为nul[详细]
-
SpringMVC请求的路径变量里面写正则表达式的方法
所属栏目:[Java] 日期:2020-12-14 热度:107
/** * * 限制路径变量里面的值只能是数字 * http://localhost:8080/test/getUser/1 * http://localhost:8080/test/getUser/a */@RequestMapping("/getUser/{id:d+}")public User getUser(@PathVariable(name = "id") String userId) { User user = new Use[详细]
-
SpringBoot整合ActiveMQ过程解析
所属栏目:[Java] 日期:2020-12-14 热度:145
目录结构 引入 maven依赖 parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version1.5.4.RELEASE/version relativePath/ /parent properties project.build.sourceEncodingUTF-8/project.build.sourceEnco[详细]
-
利用数组实现栈(Java实现)
所属栏目:[Java] 日期:2020-12-14 热度:116
栈介绍 栈是一个先入后出的有序列表。 栈是限制线性表中元素的插入和删除只能在线性表中同一端进行的一种特殊的线性表,允许插入和删除的一端,为变化的一端,称为 栈顶 ,另一端为固定的一端,称为 栈底 。 最先放入栈中的元素在栈底,最后放入的元素在栈顶[详细]
-
Java利用策略模式优化过多if else代码
所属栏目:[Java] 日期:2020-12-14 热度:169
前言 不出意外,这应该是年前最后一次分享,本次来一点实际开发中会用到的小技巧。 比如平时大家是否都会写类似这样的代码: if(a){ //dosomething}else if(b){ //doshomething}else if(c){ //doshomething} else{ ////doshomething} 条件少还好,一旦 else[详细]
-
Spring Boot 部署过程解析(jar or war)
所属栏目:[Java] 日期:2020-12-14 热度:100
前言 对于传统的 ssm 或者 ssh 项目的部署,一般会打包成war包,或者是一个编译好的文件夹,再放到 tomcat 的 webapps 目录下,如果是 war 包,会自动解压出来。而 Spring Boot 默认会内嵌一个 Tomcat,因此即便是 web 项目也可以直接打包成 jar 包,直接 ja[详细]
-
Java面向接口编程之简单工厂模式示例
所属栏目:[Java] 日期:2020-12-14 热度:152
本篇章节讲解Java面向接口编程之简单工厂模式。供大家参考研究具体如下: 一 代码 interface Output{ // 接口里定义的成员变量只能是常量 int MAX_CACHE_LINE = 50; // 接口里定义的普通方法只能是public的抽象方法 void out(); void getData( Str[详细]
-
java 教你如何给你的头像添加一个好看的国旗
所属栏目:[Java] 日期:2020-12-14 热度:123
今天朋友圈又火了,听说原因是 @腾讯官网 就能得到一顶绿色的帽子,啊呸,是一个好看的国庆节头像,可是听说没一会就502了,那么我们自己动手实现一个吧 由于代码比较简单就不一一介绍了。 var cvs = document.getElementById("cvs");var ctx = cvs.getConte[详细]
-
ThreadPoolExecutor线程池的使用方法
所属栏目:[Java] 日期:2020-12-14 热度:54
ThreadPoolExecutor ThreadPoolExecutor线程池,java提供开发框架,管理线程的创建、销毁、优化、监控等。 有4种不同的任务队列: 1.ArrayBlockingQueue: 基于数组结构的任务队列。此队列按先进先出的原则对任务进行排序。 2.LinkedBlockingQueue: 基于链表[详细]
-
java实现代码统计小程序
所属栏目:[Java] 日期:2020-12-14 热度:116
本文实例为大家分享了java代码统计小程序,供大家参考,具体内容如下 可以测试每周你的工作量 package rexExp;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOExcept[详细]
-
Java中Future、FutureTask原理以及与线程池的搭配使用
所属栏目:[Java] 日期:2020-12-14 热度:52
Java中的Future和Future通常和线程池搭配使用,用来获取线程池返回执行后的返回值。我们假设通过Executors工厂方法构建一个线程池es ,es要执行某个任务有两种方式,一种是执行 es.execute(runnable),这种情况是没有返回值的; 另外一种情况是执行 es.submit[详细]
-
SpringBoot异步调用方法并接收返回值
所属栏目:[Java] 日期:2020-12-14 热度:98
项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的方式,运行这一个过程的时间是计算所有指标的时间之和。比如: 方法A:计算指标x,指标y,指标z的值,其中计算指标[详细]
-
Java线程池的拒绝策略实现详解
所属栏目:[Java] 日期:2020-12-14 热度:58
一、简介 jdk1.5 版本新增了JUC并发编程包,大大的简化了传统的多线程开发。 Java线程池,是典型的池化思想的产物,类似的还有数据库的连接池、redis的连接池等。池化思想,就是在初始的时候去申请资源,创建一批可使用的连接,这样在使用的时候,就不必再进[详细]
-
Java原生服务器接收上传文件 不使用MultipartFile类
所属栏目:[Java] 日期:2020-12-14 热度:161
由于工作中 使用MultipartFile 与现有的一些上传文件组件冲突 所以使用其他的接收上传文件的方法. 首先我把MultipartFile 类的配置文件注释掉. !-- bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver[详细]
-
Java 数组元素倒序的三种方式(小结)
所属栏目:[Java] 日期:2020-12-14 热度:145
将数组元素反转有多种实现方式,这里介绍常见的三种. 直接数组元素对换 @Testpublic void testReverseSelf() throws Exception { System.out.println("use ReverseSelf"); String[] strings = { "ramer","jelly","bean","cake" }; System.out.println("t" +[详细]
-
SpringMVC 单文件,多文件上传实现详解
所属栏目:[Java] 日期:2020-12-14 热度:199
需要用到的流的相关知识:https://www.jb51.net/article/170640.htm SpringMVC中写好了文件上传的类。 要使用文件上传,首先需要文件上传相关的Jar包。commons-fileupload.jar 和 commons-io.jar。 添加到pom.xml或lib文件夹下。 pom.xml: dependency group[详细]
-
Java实现简单棋盘存档和读取功能
所属栏目:[Java] 日期:2020-12-14 热度:110
最近实现研究了下五子棋的存档,主要实现是将残局的五子棋棋盘保存到本地文件中,需要读取棋局时能够从本地文件获取,并展示出原有的残局局面。 主要思路 如上图所示,第一个表格是11*11的棋局,可以转换成11行11列的二维数组,1代表黑子,2代表蓝子,转换成[详细]
-
Java字节流 从文件输入输出到文件过程解析
所属栏目:[Java] 日期:2020-12-14 热度:144
假如需要复制一张图片,一份word,一个rar包。可以以字节流的方式,读取文件,然后输出到目标文件夹。 以复制一张4M的图片举例。 每次读一个字节: ch = (char)System.in.read(); //读入一个字符,返回读到的字节的int表示方式,读到末尾返回-1 复制时候一个[详细]
-
浅谈java线程join方法使用方法
所属栏目:[Java] 日期:2020-12-14 热度:148
本博客简介介绍一下java线程的join方法,join方法是实现线程同步,可以将原本并行执行的多线程方法变成串行执行的 如图所示代码,是并行执行的 public class ThreadTest { //private static final Long count = 10000L; public static void main(String[] ar[详细]