
Java基础
文章平均质量分 92
闪光的岁月
公号:闪光的岁月,博客:www.laughitover.com
展开
-
Java程序优雅关闭的两种方法(程序停止前做一些善后工作)
java程序关闭时,往往需要做一些善后工作,称之为优雅关闭。这里介绍两种比较典型的方法:一、注册关闭钩子通过调用Runtime.getRuntime().addShutdownHook()方法,添加一个最后运行的线程。@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplicatio原创 2020-09-24 20:34:50 · 3201 阅读 · 1 评论 -
接收json或x-www-form-urlencoded类型参数
@RestController@RequestMapping(value = "public")public class ReceivePostRquest { /** * 接收 application/json;charset=UTF-8 类型的数据 * @param data **对象** * @return */ @Request...原创 2019-12-05 17:39:44 · 2036 阅读 · 0 评论 -
form-data请求返回500(Could not parse multipart servlet request; nested exception is java.io.IOException)
问题描述:接口采用post请求,参数以表单形式提交,数据格式是application/x-www-form-urlencoded没有问题,数据格式用form-data时报错如下:{ "timestamp": 1571629285428, "status": 500, "error": "Internal Server Error", "exception": "...原创 2019-10-21 14:53:29 · 965 阅读 · 0 评论 -
关于三种编码方式的排雷escape,encodeURI,encodeURIComponent
有人建议使用encodeURIComponent,但是项目中原来的人用的是encodeURI,也就延续了,然后问题出现了问题:用encodeURI编码,用java.net.URLDecoder.decode(po.getProduceName(),"UTF-8")解码,但是输入+号时,会变成空格解决:使用encodeURIComponent编码,或者自己写个工具类替换//对特殊字符原创 2017-08-28 14:19:47 · 677 阅读 · 0 评论 -
springboot实践
小技巧:https://my.oschina.net/xiedeshou/blog/1926191最近在学习springboot,书看了一遍,开始实践,出了一些问题,记录1.@SpringBootApplication等注解无法被解析引入应该是springboot的包冲突了所致。需要删掉 repository\org\springframework\boot 目录下的spring-bo...原创 2018-04-10 11:17:13 · 493 阅读 · 2 评论 -
mybatis中的两种传参方式#{}和¥{}原理
之前没注意,最近公司测试提了个bug,问题:输入框中输入单引号会报错,原因:单引号截断了sql总结:#{}速度快,能防止sql注入,是占位符方式,先预编译,然后填充参数,字符串格式,相当于填空题 用户名=(___),参数只是下划线上的内容 ${}是直接拼接到语句上,执行语句,对于上面那道填空题 ,这种方式需要自己拼括号和参数,但是也可以拼接想执行的任何语句,也就是原创 2017-08-28 14:38:50 · 5519 阅读 · 0 评论 -
面试系列之单例模式
一、单例模式单例模式是最常用的设计模式之一,常常在面试中被面试官要求手写。1、什么是单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。比如我们在系统启动时,需要加载一些公共的配置信息,对整个应用程序的整个生命周期中都可见且唯一,这时需要设计成单例模式。如:spring容器,session工厂,缓存,数据库连接池等等。2、如何保证实例的唯一2)由类本身进行实例化3)保证实例...原创 2019-03-12 16:19:33 · 640 阅读 · 0 评论 -
Java基础之详解Java IO
Java IO基本概念Java IO:即Java输入/输出系统,区分Java输入和输出的方法:把自己当成程序, 当你从外边读数据到自己这里就用InputStream/Reader, 向外边写数据就用OutputStream/Writer。Stream:Java中将数据的输入输出抽象为流,流是一组有顺序的,单向的,有起点和终点的数据集合.就像水流。按照流中的最小数据单元又分为字节流和字符流...原创 2018-08-22 10:48:43 · 504 阅读 · 1 评论 -
java实现获取月份的天数
/** * <p>Description: 获取月份的天数</p> * @param date 月份 * @return List<String> * @author wangjs * @date 2018年7月4日下午2:56:41 */ public List<String> getMonthDays(String d...原创 2018-07-04 15:03:05 · 3151 阅读 · 0 评论 -
使用MyBatis自动创建代码
MyBatis属于一种半自动的ORM(object relation mapping) 对象关系映射框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。 使用自动生成有很多方式,可以在eclipse中...转载 2018-05-28 10:46:58 · 303 阅读 · 0 评论 -
weblogic上部署项目实录
最近公司有个客户要求服务器用weblogic,只好把原本在resin上跑的项目改造一下一.项目改造1.首先需要在web.xml同级目录下新建weblogic.xml,内容如下<?xml version="1.0" encoding="UTF-8"?><weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogi...原创 2018-04-02 16:57:46 · 933 阅读 · 0 评论 -
java文件上传总结
最近公司项目用到文件上传,总结一下第一种 传统表单上传比较简单,网上也有好多文章介绍,推荐一篇:表单方式文件上传和下载再此只提醒两点:一,form表单中要加入enctype="multipart/form-data" method="post"POST上传文件最早的HTTP POST是不支持文件上传的,在1995年,ietf出台了rfc1867,也就是《RFC 1867 -Fo原创 2017-09-05 14:06:53 · 702 阅读 · 0 评论 -
问题记录
区块链项目1、向activemq推消息报错:Caused by: javax.jms.JMSException: Error while attempting to add new Connection to the pool很明显是向activemq连接池添加新连接失败,排查过后,发现是配置没有读进来:原来是同事多加了一个冒号,这样相当于默认值为空,当该配置没有读到的时候,不会报错(待验...原创 2019-05-21 11:03:42 · 2338 阅读 · 0 评论 -
什么是Java的反射机制
Java反射机制是Java的特点,是框架实现的基础,精简总结一下1.什么是反射答:就是可以在程序运行的时候动态装载类,查看类的信息,生成对象,或操作生成对象。类在运行的时候,可以得到该类的信息,并且 可以动态的修改这些信息,自己能看到自己,跟照镜子一样,也就是说Java的反射机制是在编辑的时候并不确定哪个类被加载了,而是在程序运行的时候才加载、探知、自审,使用在编译期并不知道的类,这样的特原创 2016-09-01 19:29:31 · 7072 阅读 · 0 评论 -
varchar和char的区别
varchar和char的区别转载 2016-04-20 18:36:49 · 1183 阅读 · 0 评论 -
Java io实现读取文件特殊内容进行替换
最近公司在做一个项目其中一个需求是读取文件中的特殊字符在其后进行添加或删除字符操作,本来想直接使用randomAccessFile按行读取,读取到特殊字符就进行添加或删除操作,但是randomAccessFile会覆盖后边的内容,虽然可以使用临时文件的方式解决,但是感觉很古怪,权衡之后用如下方式实现:public static void delAccessNumber(File source...原创 2018-08-22 17:19:59 · 1699 阅读 · 0 评论 -
Java基础之详解jvm
一、JVM内存结构1、方法区(Method Area)别名Non-Heap(非堆)、永久代(Permanent Generation)、持久代(PermGen),各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、以及编译器编译后的代码等数据(jdk1.7的HotSpot中,已经把原本放在方法区中的静态变量、字符串常量池等移到堆内存中)。 注:在Java 8里...原创 2018-09-04 10:26:57 · 378 阅读 · 0 评论 -
java基础之常用 JVM 参数详解
控制参数-Xms设置堆的最小空间大小,默认物理内存的1/64(常见:-Xms512M)。 -Xmx设置堆的最大空间大小,默认物理内存的1/4(常见:-Xms2G)。 -XX:NewSize设置新生代最小空间大小。 -XX:MaxNewSize设置新生代最大空间大小。 -XX:PermSize设置永久代最小空间大小,默认为物理内存的1/64(常见:-XX:PermSize=128M)...原创 2018-09-04 11:33:50 · 441 阅读 · 0 评论 -
Java并发编程之详解工具类CountDownLatch
CountDownLatch是一个在java1.5被引入同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。countdownlatch在Java开发中应用场景及其广泛,同时也是面试中的高频考点。每一个Java程序员都应该熟练掌握,在本篇文章中,我将会从以下几方面对其进行详细讲解:一、根据源码刨析CountDownLatch工作原理1、实现原理2、源码解析2.1、C...原创 2019-01-17 14:32:12 · 520 阅读 · 0 评论 -
Java 8常用日期时间操作
旧的 Java 日期 API 也就是 Java 8 之前的日期 API 之烂是公认的。一方面在于它设计分工上不明确,往往一个类既能处理日期又能处理时间,很混乱;另一方面,在某些年月日期的数值映射存储违反人们的正常认知,如 0 对应月份一月、11 对应月份十二月等。常用 //获取当前时间并格式化 DateTimeFormatter format = DateTi...原创 2018-12-24 15:49:52 · 384 阅读 · 0 评论 -
java中接口的意义
之前感觉都明白了,但是过了一段时间,特别是在公司写了一个项目,又困惑了,还是整理一下记录下来吧简单地说:接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心实现的细节。4点关于JAVA中接口存在的意义: 1、重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这原创 2017-03-30 18:10:35 · 4709 阅读 · 0 评论