Java
文章平均质量分 55
zsensei
这个作者很懒,什么都没留下…
展开
-
Java基础练习题 (3)正则表达式
(1)如何将字符串按指定的字符进行分割?. 使用 String 类的 split(regex) 方法,根据给定的正则表达式分割字符串。String str = "abcabcabc";String[] result = str.split("b");上面就是以 ‘b’ 为分割字符,结果为 {“a”, “ca”, “ca”, “c”}。 与 split 方法对立的功能是 String 类的静态方原创 2017-05-05 17:28:45 · 1413 阅读 · 0 评论 -
[Spring] 基于 Java 的配置
在对 Spring 进行显示配置的时候,有两种可选方案:Java 和 XML。Java 配置是更好的选择,因为它更强大,类型安全且对重构友好。因为它就是 Java 代码,就像程序中的其他 Java 代码一样。同时,JavaConfig与其他的Java代码又有所区别,尽管它与其他的组件一样都使用相同的语言进行表述,但JavaConfig是 配置代码。这意味着它不应该包含任何业务逻辑,JavaConf原创 2017-12-23 11:29:42 · 1364 阅读 · 0 评论 -
[Java] Class.getResource 和 ClassLoader.getResource 的区别
获取项目中的文件时,通常可以使用 Class 或者 ClassLoader 的 getResource 方法。对于 Class 的 getResource 方法,有两种路径写法以 / 开头:以 classpath 为相对目录不以 / 开头:以当前类所在的包路径为相对路径 而 ClassLoader 的 getResource 方法总是从 classpath 开始搜寻。本质上 ...原创 2018-03-08 16:45:32 · 427 阅读 · 0 评论 -
File 类的 getPath()、getAbsolutePath()、getCanonicalPath() 的区别
考虑一下几种路径:C:\temp\file.txt - 绝对路径,也是规范路径.\file.txt - 相对路径C:\temp\myapp\bin\..\..\file.txt 这是一个绝对路径,但不是规范路径关于什么是规范路径可参考 What’s a “canonical path”? 粗略的认为规范路径就是不包含相对路径如 ..\ 或者 .\ 的绝对路径看一个例子:...原创 2018-02-24 20:57:53 · 23490 阅读 · 1 评论 -
SpringMVC 处理 multipart/form-data 请求
用 postman 做测试时,发现用 multipart/form-data 的格式发送请求,要么是接收不到数据,要么就是 415 错误。出现这些问题通常是因为没有配置好 Multipart resolver 引起的。SpringMVC 的 Multipart resolver 有两种实现基于 Apache Commons FileUpload基于 Servlet 3.0 的 mu...原创 2018-04-10 11:21:42 · 4462 阅读 · 0 评论 -
Spring MVC 异常处理
Spring MVC 提供了多种异常处理方式,总的来说,有四种方式:@ResponseStatus@ExceptionHandler@ControllerAdviceHandlerExceptionResolver@ResponseStatus通常用于自定义异常上,并会产生合适的 HTTP 状态码@ResponseStatus(value=HttpStatus.NOT...原创 2018-04-24 21:56:18 · 276 阅读 · 0 评论 -
Spring Web 中时间日期格式化
通常我们习惯使用 2018-07-07 12:00:00 这样的日期格式,那么在 Spring 中需要配置自己的转换器SpringMVC @Configuration@EnableWebMvcpublic class WebConfiguration implements WebMvcConfigurer { @Override public void configu...原创 2018-07-07 13:45:46 · 1676 阅读 · 0 评论 -
Spring 中使用 Redis
引入Maven<dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId&a原创 2018-08-05 14:08:19 · 582 阅读 · 0 评论 -
@Inherited 的作用
在注解上使用@Inherited 表示该注解会被子类继承,注意,仅针对类,成员属性、方法并不受此注释的影响。对于类来说,子类要继承父类的注解需要该注解被 @Inherited 标识。 对于成员属性和方法来说,非重写的都会保持和父类一样的注解,而被实现的抽象方法,被重写的方法都不会有父类的注解。 Indicates that an annotation type is automati...原创 2018-08-27 21:55:10 · 10185 阅读 · 1 评论 -
Spring bean 的初始化和销毁回调
有时想让 Spring Bean 在创建或者销毁时执行某些特定方法,有三种方式使用注解 @PostConstruct 和 @PreDestroy实现 InitializingBean 和 DisposableBeanXML 配置中指定 init-method 和 destroy-methodSpring 官方推荐第一种方式,使用注解 @PostConstruct 和 @PreDes...原创 2018-09-05 20:44:25 · 1434 阅读 · 0 评论 -
Spring + Mybatis 单元测试 (DAO)
Spring + Mybatis 的 dao 层的单元测试内存数据库DbSetup原创 2017-10-22 17:55:24 · 13480 阅读 · 1 评论 -
java.lang.OutOfMemoryError: PermGen space
出现问题的运行环境: JDK 1.7,Tomcat 7Tomcat 运行的时候,或热部署时偶尔会出现 java.lang.OutOfMemoryError: PermGen space 的错误。PermGen 指 Permanent Generation,是 Java 内存划分的一个区域,包含了类相关的信息,包括字节码、名字和JIT等信息。出错原因有太多的类或太大的类被加载到 permanent g原创 2017-10-15 14:19:00 · 840 阅读 · 0 评论 -
Java基础练习题 (4)数组操作
(1)如何创建空数组?int[] array = {};int[] array = new int[]{};如果是创建空集合呢?Collections 类有一个方法 emptyList(), 返回一个空 List,当然你可以直接 new 一个List也是一样的,只是 emptyList() 方法返回的 List 是被 final 修饰的。(2)如何对数组进行排序? java.util.Array原创 2017-05-08 17:52:12 · 1345 阅读 · 0 评论 -
Java基础练习题 (6)文件系统
(1)如何创建一个文件夹? java.io.File 有很多处理文件和文件夹的方法。 创建文件夹如下File file = new File("E://demo");file.mkdir();这样就会在 E 盘创建一个 demo 文件夹,这个方法返回一个布尔值,如果文件夹已存在,就返回 false,否则返回 true。还有一个也是创建文件夹的方法File file = new File("E:原创 2017-05-18 15:26:53 · 1007 阅读 · 0 评论 -
Java基础练习题 (8)多线程
(1)如何创建并运行一个线程? 有三种方法继承 java.lang.Thread 类,重写 run() 方法public class TestThread extends Thread { @Override public void run() { //do something }}调用这个类的 start() 方法就能开始运行线程,当然这里不一定立刻会运行,只是进入就绪原创 2017-05-24 17:48:36 · 1160 阅读 · 0 评论 -
Java基础练习题 (7)网络编程
(1)如何使用Socket和ServerSocket?Socket部分构造方法Socket()Socket(InetAddress address, int port)Socket(InetAddress address, int port, InetAddress localAddr, int localPort)Socket 的构造方法中除了无参的构造方法,其他方法都会尝试与给定的服务原创 2017-06-09 14:44:33 · 1306 阅读 · 0 评论 -
Java基础练习题 (5)集合操作
(1)如何将数组转换为List? java.util.Arrays 类有一个 asList 方法,接受可变参数,由于 List 并不接受基本数据类型,所以如果想将基本数据类型数组转换为 List,需要先进行装箱,然后就可以用List list = Arrays.asList(array);得到转换后的 List。(2)如何将List转换为数组? Collection 接口有一个 toArray原创 2017-05-10 14:08:03 · 1227 阅读 · 0 评论 -
Java基础练习题 (9)资源文件
(1)如何用 Properties 类读取 .properties 文件? Properties 类是 Hashtable 的子类,常用的方法有:load(InputStream inStream),load(Reader reader) 【读取文件】getProperty(String key) 【获取属性值】setProperty(String key, String value) 【设原创 2017-06-26 11:35:44 · 854 阅读 · 0 评论 -
Spring 注解
Spring 2.5 之后加入了对注解的支持,省去了繁琐的 XML 文件配置。使用 XML 进行注入的过程: 首先有两个类,HelloWorld 和 HelloWorldServiceHelloWorldService.javapackage com.zack.springdemo;public class HelloWorldService { private HelloWorld hw原创 2017-08-03 22:39:50 · 698 阅读 · 0 评论 -
Maven 中使用本地 jar 包
如果引用了在 Maven 远程仓库中没有的 jar 包,比如自己组使用的类包,或者是一些历史遗留的包,在使用 Maven 构建过程中就容易遇到找不到类之类的问题。比如我遇到过的问题就有:编译时找不到 xxx 类进行测试时找不到 xxx 类针对这两个问题的一些解决方法编译 只针对编译的时候可以通过配置插件来设置扩展(即本地 jar)的位置,假设我们的 jar 包放在 lib 文件...原创 2017-09-10 18:38:39 · 2071 阅读 · 0 评论 -
Spring 与 Mybatis 整合
参考官方文档在引入 Spring 和 Mybatis 的包之后,要将两者整合,我们还需要 Spring-Mybatis 的包。使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。安装如果你使用 Maven,那么在 pom.xml 中加入下面原创 2017-10-06 11:18:57 · 780 阅读 · 0 评论 -
Redis 分布式锁
https://redis.io/topics/distlockhttp://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html原创 2018-10-09 21:56:53 · 358 阅读 · 0 评论