
Java
筱光
一个自称码神的搬砖将
展开
-
docker快速搭建ftp-封装vsftpd
docker快速部署ftp服务:vsftpd原创 2022-07-06 10:49:27 · 513 阅读 · 0 评论 -
阿里云课堂·云安全·Web应用安全认知(笔记)
Web应用安全认知主要内容Web应用的主要威胁SQL注入攻击分类、方式SQL注入攻击的防御XSS攻击的分类、方式XSS攻击的防御方法文件上传攻击的分类、方式文件上传攻击的防御1.OWASP TOP 10OWASP十大Web弱点介绍(OWASP-组织 https://www.owasp.org)OWASP提供了一个Web应用安全的适合和全面的框架和过程。OWASP提高电子商务安全的主要功能如下:十大Web应用安全漏洞开发指南代码审计指南测试指南OWASP移动安全十大漏原创 2020-06-30 14:04:56 · 698 阅读 · 0 评论 -
commons-lang3(常用)
原文链接:https://www.jianshu.com/p/1886903ed14cmaven包<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactI转载 2020-06-05 11:46:54 · 1098 阅读 · 0 评论 -
Java基于byte length参数生成易于理解的文件大小
commons-io工具类FileUtils中有一个方法,FileUtils.byteCountToDisplaySize => 以可读的方式,返回文件的大小EB, PB, TB, GB, MB, KB or bytes,但是该方法返回的是整数,如果满足需求可直接用,本人觉得保留两位小数在实际应用中更合理一些,因此在系统中新增FileUtils类,重写该方法。package cn.aresoft.common.util.file;import java.math.BigDecimal;i.原创 2020-05-15 17:00:15 · 1546 阅读 · 0 评论 -
SpringBoot线程池初始化
Application.java启动类中增加线程池初始化。@Bean(name = "threadPool") public static ExecutorService threadPool() { int max = Runtime.getRuntime().availableProcessors() + 1; return new ThreadPoo...原创 2019-11-21 15:50:25 · 2168 阅读 · 0 评论 -
线程等待时间过长的处理
Java编程中,并行任务,提高了系统资源利用率,提高效率。多线程协作,线程等待的场景时常有,实际使用中需要避免线程无休止的等待,避免用户等待时间过长。简单的一个案例:if (!transTimeQueryFuture.isDone()) { log.info("等待产品实际数据日期查询线程执行结束..."); long waitQueryStartTime = System....原创 2019-10-28 18:16:18 · 2725 阅读 · 0 评论 -
springboot下配置mybatis的call-setters-on-nulls属性
使用Mybatis时,如果查询语句中某些字段值是null的,则这个字段就无法返回。对于后台数据处理来说,这是一个致命的问题,于是通过修改Mybatis的配置来解决这个问题。在springmvc下,在mybatis的配置文件里面增加以下配置即可:mybatis.configuration.call-setters-on-nulls=true但在springboot中,则有时不起作用。经过研究...转载 2019-10-14 17:08:26 · 21848 阅读 · 5 评论 -
关于使用SecureCRT访问Linux服务器项目部署
原文链接:https://blog.youkuaiyun.com/qq_22570497/article/details/78059266首先先登录到我们的服务器(连接服务器输入帐号密码省略) 之后查看服务器根目录的文件和文件夹,进入我们的项目所在路径(tomcat中)cd /usr/local/eleph-recovery-test/webapps这里就是tomcat 的webapps文件...转载 2018-09-25 13:56:14 · 1337 阅读 · 0 评论 -
SpringBoot和SpringMVC的区别
原文链接:https://blog.youkuaiyun.com/u014590757/article/details/79602309spring boot只是一个配置工具,整合工具,辅助工具.springmvc是框架,项目中实际运行的代码Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的ioc和 aop. ioc 提供...转载 2018-11-01 14:43:18 · 652 阅读 · 0 评论 -
Java技术篇·HashMap实现原理
一、HashMap概述:HashMap的实现基于哈希表(即数组+链表)JDK1.8中做了优化(即数组+链表+二叉树(红黑树)),当链表长度大于8的时候,把链表转换为红黑树。默认加载因子是0.75(即默认认为当数组占用75%时达到上限,需要重新散列),默认数组大小是16。存储方式:把key对象通过hash()方法计算出hash值,然后用该hashcode与15异或(相当于与数组长...原创 2018-11-13 22:57:16 · 291 阅读 · 0 评论 -
Java技术篇·IO包·字符流
一、编码问题见之前的博客:https://blog.youkuaiyun.com/womeng2009/article/details/84187262二、文本和文本文件Java中文本(char)是16位无符号整数,是字符的unicode编码(双字节编码)文件是byte byte byte…的数据序列文本文件指的文本(char)序列按照某种编码方案(utf-8、utf-16be、gbk)序...原创 2018-11-18 22:03:11 · 284 阅读 · 0 评论 -
Java技术篇·IO包·文件编码
一、Java中默认的编码方式:编码问题存在两个方面:JVM之内和JVM之外。1、Java文件编译后形成class这里Java文件的编码可能有多种多样,但Java编译器会自动将这些编码按照Java文件的编码格式正确读取后产生class文件,这里的class文件编码是Unicode编码(具体说是UTF-16编码)。因此,在Java代码中定义一个字符串:String s="汉字";...原创 2018-11-17 14:46:03 · 342 阅读 · 0 评论 -
Java技术篇·IO包·RandomAccessFile类
有关知识及说明,全部在下边程序中体现。package com.io;import java.io.File;import java.io.RandomAccessFile;/** * RandomAccessFile Java提供的对文件内容的访问,既可以读也可以写。 * 支持随机访问,可以访问任意位置。 * java文件模型:在硬盘上是byte byte byte存储的,是...原创 2018-11-17 17:02:38 · 514 阅读 · 0 评论 -
Java技术篇·IO包·字节流
前言Java中,IO流从数据流向可以分为输入流、输出流,从外部设备流向中央处理器的数据流成为“输入流”,反之成为“输出流”。流还可分为字节流、字符流。字节流和字符流的区别:字节流读取的时候,读到一个字节就返回一个字节;字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时。先去查指定的编码表,将查到的字符返回。 字节流可以处理所有类型数据,如:图片...原创 2018-11-18 16:55:59 · 827 阅读 · 0 评论 -
使用@Autowired注解警告Field injection is not recommended
原文链接:https://blog.youkuaiyun.com/zhangjingao/article/details/81094529在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告大部分被警告的代码都是不严谨的地方,所以我深入了解了一下。被警告的代码如下:@Autowiredprivate UserDao userDao;@Autowired U...转载 2019-04-15 16:19:20 · 833 阅读 · 0 评论 -
Java高级工程师蜕变·多线程·Thread API的详细介绍
一、线程sleep1.sleep方法介绍 sleep方法会使当前线程进入指定毫秒数的休眠,暂停执行,虽然给定了一个休眠时间,但是最终要以系统的定时器和调度器的精度为准。休眠有一个非常重要的特性,那就是其不会放弃monitor锁的所有权。2.使用TimeUnit替代Thread.sleep 在JDK1.5以后,引入了一个枚举TimeUnit,其对sleep方法...原创 2019-04-27 22:42:35 · 267 阅读 · 0 评论 -
Java高级工程师蜕变·多线程·join方法结合实战【接上篇Thread API】
一、先看应用场景: 假设有一个APP服务主要用于查询航班信息,你的APP是没有这些实时数据的,当用户发起查询请求时,你需要到各大航空公司的接口获取信息,最后统一整理加工返回到APP客户端。 该例子是典型的串行任务局部并行化处理,用户在APP客户端输入出发地"上海"和目的地"北京",服务器接收到这个请求后,先来验证用户的信息,然后到各大航空公司的接口查询信息,最后经...原创 2019-04-28 21:22:19 · 248 阅读 · 0 评论 -
文件下载,文件名有中文及空格无法显示问题
原文链接:https://blog.youkuaiyun.com/zhoumengshun/article/details/72866210使用response.setHeader(“Content-Disposition”,”attachment;filename=”+fName)下载文件,中文文件名无法显示的问题及空格处理**该问题解决重点在于这两块代码**//处理文件名有中文问题 ...转载 2019-05-16 14:59:54 · 1559 阅读 · 0 评论 -
Java 递归删除某文件夹下所有目录及文件
使用Files类,递归算法。案例代码如下:/** * 删除某个目录下所有文件及文件夹 * @param rootFilePath 根目录 * @return boolean */private boolean deleteAllByPath(File rootFilePath) { File[] needToDeleteFiles = rootFilePat...原创 2019-05-17 18:27:47 · 4653 阅读 · 0 评论 -
Java·潜修·MyBatis框架工作原理和执行流程
MyBatis框架工作原理和执行流程一、MyBatis框架工作原理Created with Raphaël 2.2.0MyBatis核心配置文件: 配置数据源,事务管理方式,指定SQL映射文件位置SqlSessionFactory(会话工厂) 根据核心配置文件生成的一个工厂对象 作用:创建SqlSession(接口)提供给开发人员一个接口 ...原创 2019-08-24 23:10:39 · 234 阅读 · 0 评论 -
Java获取Web工程内网访问URL(形如:http://IP:8080/ProjectName)
由于有时候Web项目作为外部API调用时,每次启动都要先查一下IP,拼接项目名,然后呼叫该URL,很繁琐。因此写了一个小程序,用于Web项目获取内网URL,作为公用类,测试阶段很实用。如果访问不了局域网tomcat下的项目,可以看我另一篇博客,有详细说明。地址:http://blog.youkuaiyun.com/womeng2009/article/details/53513731下面是Java源代原创 2016-12-14 10:43:47 · 4058 阅读 · 0 评论 -
面试题:volatile关键字的作用、原理
转载地址:https://www.cnblogs.com/shan1393/p/8999683.html在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到“半个”单例。而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中“出现频率最高的关键字”,常用于保持内存可见性(随时见到的都是最新值)和防止指令重排序。...转载 2018-06-20 20:24:57 · 1286 阅读 · 0 评论 -
JAVA创建quartz-2.2.3定时任务(简单案例)
Job与JobDetail是Quartz用来定义具体任务的,而Trigger则是用来定义任务如何执行的。Quartz提供了Trigger接口来定义公共属性,使用TriggerBuilder可以创建具体类型的Trigger;最常见的两种Trigger分别是SimpleTrigger、CronTrigger。重点说一下Trigger。一、概念Trigger的公共属性:key,该属性是为了标识Trigg...原创 2018-05-15 20:28:14 · 8532 阅读 · 0 评论 -
解决eclipse中出现Resource is out of sync with the file system问题
本文内容概要: 解决eclipse中出现Resource is out of sync with the file system问题。eclipse版本:eclipse SDK 3.7.0———————————————————————————————————————————————————————————————————在eclipse中搜索时,搜索完之后有时候会弹出错误对话框,错误摘录如下:转载 2017-01-07 13:52:09 · 263 阅读 · 0 评论 -
java.io.File 删除文件delete()和deleteOnExit()的区别
file.delete()//删除文件,删除的是创建File对象时指定与之关联创建的那个文件. file.deleteOnExit();//在JVM进程退出的时候删除文件,通常用在临时文件的删除.转载 2017-01-06 23:52:58 · 1095 阅读 · 0 评论 -
com.sun.image.codec.jpeg找不到包解决方法
今天在做压缩图片的功能的时候发现JDK自带的jar找不到的问题,网上找到一个方法,实测可行,这边记录下:在Eclipse中处理图片,需要引入两个包:import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;报错:Access restriction: The type JPE转载 2017-01-05 17:46:28 · 648 阅读 · 0 评论 -
tomcat设置http文件下载
tomcat作为http的下载服务器,网上有很多办法但我认为最简单的是:1、直接把文件放在 /var/lib/tomcat6/webapps/ROOT 目录下,2、然后在网址中访问: http://192.168.2.31:8080/download.zip 便可下载。但是,如何你不想放在webapps/ROOT下,就要对想要下载的目录进行配置:1、在tomcat 安装转载 2016-12-26 20:04:18 · 5149 阅读 · 0 评论 -
Java 位运算
Java 位运算 一,Java 位运算 1.表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。 (1)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。 2.位运算符转载 2016-12-15 12:34:34 · 295 阅读 · 0 评论 -
Log4J2入门·配置详解
一、 关于Log4J2015年5月,Apache宣布Log4J 1.x 停止更新。最新版为1.2.17。如今,Log4J 2.x已更新至2.7。官方网址:http://logging.apache.org/log4j/2.x/二、 Log4J能做什么?1. 将信息送到控制台,文件,GUI组件等。2. 控制每条信息的输出格式。3. 将信息分类原创 2016-12-07 21:54:55 · 40216 阅读 · 2 评论 -
Java封装JDBC数据库增、删、改、查操作成JAR文件,以供Web工程调用,适用于多种数据库
废话不多说,直接上源代码,最后有使用方法,当然,也可以作为普通公用类使用,只是封装成JAR更方便使用。package db.util;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java原创 2016-12-12 21:49:54 · 3468 阅读 · 0 评论 -
Java实现返回截止今日为止,当月工作日数
直接上代码,不多说。可以封装成公用类使用。package com.edutohome.service;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.C原创 2016-11-28 22:54:37 · 985 阅读 · 0 评论 -
Java基础部分大纲
下边是本人粗略总结的Java学习体系图。Java基础部分一、认识Java1、 Java平台的三种版本:Java SE、Java EE、Java ME2、 Java的平台无关性:Java源代码àJava编译器àJava字节码àJava解释器àCPU由于这种特性,Java可以在任何具有Java解释器的平台上运行。3、 Java基本思想:面相对象原创 2016-11-28 22:41:37 · 995 阅读 · 0 评论 -
关于System.gc()解决File的Delete和DeleteOnExit()删除文件无效的问题——已解决
项目中使用FILE类中的Delete和DeleteOnExit删除文件,当文件夹有多个文件时使用delete无效,使用DeleteOnExit删除有时候有效有时候无效。。。。百思不得其解……关于两个方法的区别,网上很多解释,不多说。程序检查了很多遍,确实关闭了所有的FileInputStream和FileOutputStream,但是仍然删除不掉。因@anly_hz兄台的帖子得到灵感,原创 2017-01-07 15:53:53 · 4920 阅读 · 2 评论 -
maven项目部署到tomcat
其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路。下面就一一介绍这几种部署方式:1.打war包到tomcat/webapps目录这种方式其实跟非maven项目没什么区别,就是打包的方式不同之后在target目录下会生成war包,复制到tomcat/we转载 2017-04-11 14:52:44 · 430 阅读 · 0 评论 -
使用dom4j 把xml格式解析为对象或者对象集合
经常会遇到后台传来xml格式的数据,需要我们把它们解析后变成对象或者集合, dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、所以我们用dom4j解析xml,把其转化为对象,或者集合,使用之前导入dom4j.jar架包 1、把下面的xml 转化为person的对象<resp> ...转载 2018-05-13 11:03:23 · 5593 阅读 · 0 评论 -
【转载】阿里面试回来,想和Java程序员谈一谈
其实本来真的没打算写这篇文章,主要是我得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。我自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。其实之前我写过一篇文章,但是那篇文章更多的是在讨论“面试前该不该刷题”转载 2017-11-05 23:24:24 · 649 阅读 · 0 评论 -
Hibernate学习记录四(Hibernate执行sql返回List<Map>类型结果集)
之前在项目中使用的Spring的jdbcTemplate直接执行sql语句的,由于客户方要求sql全部写到hibernate配置文件,则改用Hibernate的Query执行SQL语句,从文件读取。最终查询结果使用阿里巴巴的fastjson转换json,这样就需要标准的List才可以,但Hibernate使用Query.list()获取到的结果集,调试查看可以看到是List类型的,转换JSON全部原创 2017-11-13 19:35:55 · 1715 阅读 · 0 评论 -
Hibernate4学习记录三(HibernateUtils工具类设计)
package com.utils;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.Ser原创 2017-11-11 16:13:18 · 1360 阅读 · 0 评论 -
Hibernate4 测试类(新的hibernate使用方法)
package com.qhn;import static org.junit.Assert.*;import java.sql.Date;import org.hibernate.*;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hib原创 2017-11-10 20:20:29 · 671 阅读 · 0 评论 -
Hibernate持久化对象修改id重新保存的办法——Hibernate学习记录二
昨天在工作中遇到一个特殊的场景,点击修改,对一条发布状态的记录进行复制,并生成一个草稿版本,也就是同一条记录的不同状态,也就出现需要从数据库get之后把id置空重新保存,这里出现一个问题,但Hibernate的持久化对象是无法对id进行修改操作的,需要重新new一个全新的对象存储才可以,但Java中的机制,如果采用new Object()并赋值的的方式并不是真的产生一个新的对象,而是引用赋值,即传原创 2017-11-10 20:16:48 · 3293 阅读 · 1 评论