
Java
CarlosXu14
日常分享代码心得,勿吐槽
展开
-
MultipartEntityBuilder发送文件
pom: <!-- httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.4&l原创 2021-12-01 16:25:21 · 1555 阅读 · 0 评论 -
获取bean并执行目标方法
废话不多说,都在代码中 @ApiOperation(value = "调用bean方法", httpMethod = "POST") public Result<?> invoke( @RequestParam String passwd, @RequestParam String beanClass, @RequestParam String methodName, @RequestPar原创 2021-10-11 18:17:14 · 572 阅读 · 0 评论 -
在普通类中获取spring容器中的bean
如果我们需要在一个类中使用spring提供的bean对象,那么我们需要把这个bean注入到spring容器中,交给spring容器来管理。但是在实际应用中我们往往会碰到在普通的java类中,需要直接使用spring提供的对象或者说有一些对象不需要交给spring容器来管理,但是需要用到spring容器中的一些对象。如果这是spring框架的独立应用程序,我们通过ApplicationContext对象即可获取到:ApplicationContext applicationContext = new Fi原创 2021-02-03 14:37:21 · 519 阅读 · 0 评论 -
java回调函数
案例:老板与员工 背景:老板把手中的工作交给了员工去做,自己出去玩了,员工干完之后,通知老板。看代码。步骤1:先定义一个包含了回调函数的回调接口,方法就是回调函数。public interface CallBack { //这就是回调函数,回调函数也就是别人干完帮你做的事后,调用你(通知你)。 public void call(String info);}步骤2:定义一个员工类,该类的一个方法就是自己的工作,也就是帮老板做的事,需要传入一个老板的引用。public cl原创 2020-12-30 17:17:25 · 226 阅读 · 0 评论 -
先获取百分比再保留小数点后两位数
/** * @author: wb-xw750640 * @date: 2020/7/12 10:14 * @description: 先得到百分比,保留小数点后两位 **/public class DigitalConvertUtil { public static String percentConvert(String pre){ float number=Float.parseFloat(pre); NumberFormat percentInst原创 2020-07-14 17:03:25 · 335 阅读 · 0 评论 -
log4j.xml配置打印指定数据到指定文件中
1. 指定某个特殊功能的日志打到独立的日志文件<?xml version="1.0" encoding="GBK"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><!-- Log4j配置文件。--><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="DEFAULT原创 2020-06-22 14:51:20 · 608 阅读 · 0 评论 -
Spring定时任务的实现方式(程序启动后运行)--ScheduledExecutorService
本方式会在程序启动后单独开启一个线程去执行,慎用建立一个Java类,并实现Runnable接口import java.util.Date;public class StartupTask implements Runnable{ @Override public void run() { System.out.println(new Date()+" ScheduledExecutorTask..."); }}Spring配置<!原创 2020-06-19 11:09:10 · 852 阅读 · 0 评论 -
开源博客链接
分享一些好的开源博客,持续更新中。。。http://blog.java1234.com/index.html原创 2020-06-17 09:50:51 · 195 阅读 · 0 评论 -
Calendar工具类的日常使用--保持持续更新中
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class CalenderUtils { public static boolean isThisWeek(Long time) { if (time == null) { return false; } Calendar calendar原创 2020-06-01 16:49:42 · 199 阅读 · 0 评论 -
集合实现先归类再排序
实现思路:先将数据转换成对象,再将数据通过Map归类,最后通过实现集合的compare方法实现排序import java.text.SimpleDateFormat;import java.util.*;public class SortTest001 { public static void main(String[] args) throws Exception { SimpleDateFormat simpleDateFormat=new SimpleDateForm原创 2020-06-01 16:47:26 · 267 阅读 · 0 评论 -
Spring并发访问的线程安全性问题
由于Spring MVC默认是Singleton的,所以会产生一个潜在的安全隐患。根本核心是instance变量保持状态的问题。这意味着每个request过来,系统都会用原有的instance去处理,这样导致了两个结果:一是我们不用每次创建Controller,二是减少了对象创建和垃圾收集的时间;由于只有一个Controller的instance,当多个线程同时调用它的时候,它里面的instance变量就不是线程安全的了,会发生窜数据的问题。当然大多数情况下,我们根本不需要考虑线程安全的问题,比如d原创 2020-05-08 17:59:49 · 207 阅读 · 0 评论 -
数组扩容的实现
public class MyArrayList { int size; int arr[]; public MyArrayList() { arr=new int[10]; } void add(int i){ if (size>=arr.length){ //默认扩容是1.5倍扩容,初始大小 是...原创 2020-04-30 19:55:20 · 170 阅读 · 0 评论 -
List对象集合的排序:比较器Comparator
这种方法不需要实体类实现Comparable接口,比较灵活。 /** * 根据时间戳进行倒序排序 * * @param list * @return */ private List<ApplyBarrageVO> timeSortDesc(List<ApplyBarrageVO> list) { ...原创 2019-12-16 15:28:23 · 315 阅读 · 0 评论 -
java线程安全问题,CAS
什么是线程安全问题答:当多个线程同时共享一个全局变量,做写的时候,可能会受到其他线程的干扰,导致数据有问题,这种现象叫做线程安全问题。做读的时候,不会产生线程安全的问题。对局部变量不会发生线程安全问题。线程如何实现同步:即保证数据的原子性解决办法:synchronized–自动锁lock–jdk1.5并发包–手动同步的前提:要有两个线程以上,需要发生同步;多个线程想同步,...原创 2019-10-24 22:29:13 · 185 阅读 · 0 评论 -
Rbac权限控制管理
一、 RBAC简介RBAC(Role-BasedAccessControl )基于角色的访问控制。 RBAC 认为权限的过程可以抽象概括为: 判断【Who 是否可以对 What 进行 How 的访问操作(Operator)】 Who:权限的拥用者或主体 What:权限针对的对象或资源 How:具体的权限 Operator:操作。表明对 What 的 How 操作。也就是 Privilege+Re...原创 2019-08-03 11:20:43 · 206 阅读 · 0 评论 -
GOF23--模板方法模式(template method)
使用场景:实现一个算法,整体结构很固定,但对某些特定的功能是易变的,将特定的功能抽象出来,供子类实现。(子类继承父类时,必须要实现父类的抽象方法)定义模板方法:public abstract class BankTemplateMethod { //具体方法 public void takeNumber(){ System.out.println("取号排队"); } p...原创 2019-08-01 22:17:46 · 142 阅读 · 0 评论 -
MD5加盐,迭代
加盐就是往自己希望所希望加密的字段中添加字段进行干扰迭代就是对字段进行加密加密几次@Test public void testMd5(){ //加密 Md5Hash md5Hash = new Md5Hash("1234"); System.out.println(md5Hash); //加盐 md5Hash=new Md5Hash("1234", "bjsxt");...原创 2019-08-05 22:01:27 · 463 阅读 · 0 评论 -
分页功能的实现
工具类:package com.util;import java.util.List;/** * 分页的三个基本属性 * 1.每页几条记录size 可以有默认值5 * 2.当前页号 index 可以有默认值1 * 3.记录总数totalCount:不可能有默认值,需要查询数据库获取真正的记录总数 * * 4.一共多少页 :totalPageCount=tota...原创 2019-07-23 12:29:30 · 121 阅读 · 0 评论 -
使用反射和反序列化破解单例模式以及如何阻止
单例实现类,这里以懒加载举例(因为枚举自带天然防反射和反序列化,所以这两种方法对枚举实现单例模式无效)/** * 测试懒汉式单例模式 * * @author CarlosXu */public class LazySingleton implements Serializable { // 类初始化时不创建对象,有延时加载的优势 private static LazySin...原创 2019-08-01 09:24:35 · 153 阅读 · 0 评论 -
静态代理
代理主要具有什么作用?可以隐藏目标类的具体实现;可以在不修改目标代码的情况下能够对其功能进行加强。代码实现//定义接口public interface SomeService { void printMessage(); String toUp();}//定义接口实现类import com.bjsxt.service.SomeService;public cl...原创 2019-07-26 12:58:27 · 129 阅读 · 0 评论 -
Echarts插件的使用
下载地址https://echarts.baidu.com/download.html因为echarts常常需要用到ajax请求,所以同时需要jquery使用echarts实现数据可视化:使用ajax请求向后端请求数据,根据请求的数据画图<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&...原创 2019-07-22 11:42:03 · 245 阅读 · 0 评论 -
谈谈 Java 的多态
实现多态的三个条件(前提条件,向上转型、向下转型)前提条件:1、继承的存在;(继承是多态的基础,没有继承就没有多态)2、子类重写父类的方法。(多态下会调用子类重写后的方法)3、父类引用变量指向子类对象。(涉及子类到父类的类型转换)向上转型 Father person = new Son()将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换。 此时通过父类引用变量调用的...原创 2019-08-02 09:16:01 · 126 阅读 · 0 评论 -
SpringBoot整合ehcache缓存
导入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav...原创 2019-08-11 13:43:35 · 161 阅读 · 0 评论 -
springboot与jdbc(mybatis)整合
导入依赖以及配置组件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http...原创 2019-08-11 14:01:02 · 117 阅读 · 0 评论 -
springboot与springdataJpa整合
- springdataJpa的继承结构其中JpaSpecificationExecutor接口是一个单独的用于高级查询(排序,分页,自定义条件分页)的接口,需要与JpaRepository组合使用。在开发中使用的最多的是JpaRepository。下面按照继承结构一一示例:- 所需依赖<?xml version="1.0" encoding="UTF-8"?><pr...原创 2019-08-11 14:32:15 · 146 阅读 · 0 评论 -
springboot整合springdatajpa实现对象关系一对一,一对多
一对多:在多的一方添加外键维护;多对多:添加中间表,实现双向一对多即可;- 实体类/** * @Author:CarlosXu * @Date:2019/8/10 0010 * @Description:com.bjsxt.spring.boot.data.jpa */@Entity@Table(name = "users")public class Users { ...原创 2019-08-11 14:45:21 · 550 阅读 · 0 评论 -
springboot整合scheduler定时器
所需依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav...原创 2019-08-11 19:33:17 · 1377 阅读 · 1 评论 -
实现字符串的反转以及替换
可以使用String或StringBuffer/StringBuilder的方法来实现;下面采用递归实现字符反转:public class Res { public static void main(String[] args) { String str = "abcdef"; String resverse = resverse(str); ...原创 2019-08-21 09:03:16 · 219 阅读 · 0 评论 -
dubbo流程介绍以及快速搭建开发案例
- dubbo介绍Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。Dubbo 框架,是基于容器 运行的.。容器是 Spring。 官方网站 : http://dubbo.apache.org/ 。阿里巴巴已经将 dubbo 框架捐献给了 Apache 软件基金会- 框架结构1.1regi...原创 2019-08-12 14:22:35 · 235 阅读 · 0 评论 -
使用记事本编写程序+可能出现的错误+总结
使用记事本编写代码:public class HelloWord{public static void main(String args []){ System.out.println("我要成为java大牛,神挡杀神,佛挡杀佛");}}将该文件放入d盘目录下,保存为:HelloWord.java (文件名必须为HelloWord,大小写也必须一致)。师兄经验:1.代码中的引号...原创 2018-10-21 10:08:36 · 2662 阅读 · 0 评论 -
servlet导出数据为excel文件
导包在项目中导入poi的jar包在servlet中调用 //到处数据为xls格式 private static void createExcel(List<Duty> list,HttpServletResponse response) { // 创建一个Excel文件 HSSFWorkbook workbook = new HSSF...原创 2019-07-20 19:43:39 · 375 阅读 · 0 评论 -
Servlet实现文件的下载
Servlet实现package com.servlet;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;i...原创 2019-07-24 21:14:36 · 126 阅读 · 0 评论 -
构造方法分析
构造方法分析:构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。声明格式:[修饰符] 类名 (形参列表){//多条语句}师兄经验:通过new关键字调用!构造器虽然有返回值,但是不能定义返回值类型...原创 2018-11-07 20:00:47 · 441 阅读 · 0 评论 -
Java中的控制语句
控制语句在Java中可分为顺序语句,条件语句,循环语句顺序语句:语句的执行按照顺序来,先执行结构在上面的语句。条件语句:在java中常用的就是 if 判断语句。循环语句:常用的就是for循环和while循环if语句if语句可分为单条件语句,双条件语句,多条件语句if(case)[//当条件为真时,只执行这一个语句块}if(case){}else{// 当布尔表达式为真时,执...原创 2018-11-03 16:18:39 · 177 阅读 · 0 评论 -
Java中的Scanner的概述和常用方法的介绍
Scanner的概述和方法介绍1、概述:一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。 Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。例如,以下代码使用户能够从 System.in 中读取一个数:Scanner sc = new Scanner(System.in);in...原创 2018-11-03 14:51:20 · 440 阅读 · 0 评论 -
详述Java中的运算符
一、算术运算符算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。1、整数运算:如果两个操作数有一个为Long, 则结果也为long。没有long时,结果为int。即使操作数全为short,byte,结果也是int。2、浮点运算:如果两个操作数有一个为double,则结果为double。只有...原创 2018-10-27 16:04:11 · 791 阅读 · 0 评论 -
使用eclipse开发和运行java程序
在本篇文章中师兄会带着大家敲一个桌球的小游戏来体会使用eclipse开发和运行java程序的流程。在上一篇已经知道怎样使用eclipse创建java项目了,现在在建好的Java项目中,开始开发Java程序。首先,新建一个Java类。在src目录上右键单击,建立一个Java类。如图所示。出现新建类的开始界面,如图所示。我们只需输入类名即可,其他不需做任何设置:点击Finish,新建的Ja...原创 2018-10-21 15:11:31 · 2062 阅读 · 1 评论 -
Eclipse的下载和安装以及创建第一个Java项目
Eclipse的下载和安装下载地址:http://www.eclipse.org/downloads/eclipse-packages/1、选择Eclipse IDE for Java Developers,根据自己安装的JDK, 决定是下载32位还是64位。下载完成后,直接解压。进入目录,双击eclipse.exe即可使用。师兄经验:如果之前安装的jdk是32位的,就选择32位的Ec...原创 2018-10-21 11:06:35 · 453 阅读 · 0 评论 -
常用Java开发工具以及Dos命令
今天师兄给大家带来一些小福利,拿去不谢。常用Java开发工具:入门学习时,进行简单的Java程序编写,我们可以使用文本编辑器,比如:记事本。但是,记事本功能不够强大,我们可以考虑使用“更加强大的记事本”,常见的有如下三种软件:1.Notepad++2.UltraEdit3.EditPlus在我们真正学习开发中,包括以后在企业中从事软件开发时,一般使用集成开发环境(IDE), 如下三种软...原创 2018-10-21 10:28:24 · 205 阅读 · 0 评论 -
Java中的常量和变量
常量常量通常指的是一个固定的值如:123,‘abc’,true等。在java中使用关键字final来定义,final修饰的常量不能再更改。定义的格式为:final type varName=value师兄经验:变量和常量命名要做到规范(规范是程序员的基本准则,不规范会直接损害你的个人形象):所有变量、方法、类名:见名知意类成员变量:首字母小写和驼峰原则: monthSalary局...原创 2018-10-23 10:32:54 · 282 阅读 · 0 评论