不积跬步,无以至千里

个人博客地址:https://lewky.cn

StringUtils.split()和string.split()的区别

场景 出于业务考虑,将多个字符串拼接起来时,使用的分隔符是;,;。如果要将这样一个拼接来的字符串分割成原本的多个字符串时,就需要使用到jdk自带的split()方法。不过因为公司的编程规范,改为使用了Apache工具类的StringUtils.split()。 之后就发现,当被拼接的字符串里含有;...

2019-04-09 23:53:45

阅读数 129

评论数 3

Access restriction: The type 'JPEGCodec' is not API

问题 今天导入项目时Eclipse报错如下: Access restriction: The type 'JPEGCodec' is not API (restriction on required library 'C:\Program Files\Java\jdk1.8.0_191\jre\l...

2019-01-18 23:16:14

阅读数 641

评论数 0

Java反编译工具JD-GUI以及Eclipse的反编译插件

什么是反编译 高级语言源程序经过编译变成可执行文件,反编译就是逆过程。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。 反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件:通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工...

2018-12-10 00:26:19

阅读数 1441

评论数 6

如何获取更多关于序列化异常的堆栈信息

问题与解决方法 有时候我们的系统会报java.io.NotSerializableException,根据堆栈信息又无法得出有用的信息,无法找到具体是因为哪些类或者变量造成的,可以使用一个java参数-Dsun.io.serialization.extendedDebugInfo=true来得到更...

2018-12-03 23:46:44

阅读数 728

评论数 0

在接口的实现类里使用@Override注解报错

问题分析 @Override注解用来检测子类对父类或接口的方法的重写是否正确,但有一次我在Eclipse里对接口的实现类里使用@Override注解却报错,不过在父类的子类里使用该注解却是正常的。 百度了下才知道原来这是jdk1.5时的一个bug,在1.6时已经被修复;那么问题来了,我使用的jdk...

2018-11-20 21:56:03

阅读数 453

评论数 0

Java - 怎么通过环境变量来切换jdk版本

问题与分析 我在本地安装了1.7和1.8两个版本的jdk,此时我的JAVA_HOME环境变量配置的是jdk1.8,在cmd窗口输入java -version发现报错如下: C:\Users\Lewis>java -version Error: Registry key 'So...

2018-11-16 22:09:25

阅读数 1113

评论数 2

Java - 安装jdk并设置环境变量

前言 双十一买了台新的笔记本,需要重新安装下Java,这里记录下安装的过程,毕竟万事开头难,就算是老手也不一定能一次就把Java安装成功。 安装jdk 作为一名Java开发,当然是要安装jdk了,如果只是需要Java的运行环境,那么安装jre就足够了。另外说下,jdk里以及包含了jre了。 首先去...

2018-11-15 23:34:16

阅读数 914

评论数 0

Java - Class版本号和UnsupportedClassVersionError

问题分析 Java是向下兼容的,每一个jdk版本都有对应的class版本号(major + minor version numbers);如果用低版本的jvm去加载高版本jdk编译的类,就会报错:java.lang.UnsupportedClassVersionError 源码中关于这个Uns...

2018-11-12 22:09:11

阅读数 390

评论数 0

如何正确地打印异常堆栈信息

前言 最近老大让我修改项目里所有和log有关的代码,之前我也用过log4j、slf4j或者Logback等日志框架/接口,一直以为打印异常信息就是简单地一句log.info()或者log.error()而已,没想到原来一直都使用错了,以至于有些错误信息没能在log文件中打印出堆栈信息,最终难以定位...

2018-11-11 11:08:12

阅读数 1918

评论数 1

foreach循环报NPE空指针异常

前言 最近debug时忽然发现,如果一个集合赋值为null,那么对该集合进行foreach循环(也叫增强for循环)时,会报NPE(即空指针异常NullPointerException)。 代码如下: final List<String> list = ...

2018-10-14 20:46:52

阅读数 957

评论数 0

Java笔记-序列化的注意点

1、使用serialVersionUID 在Eclipse中,如果一个类实现了Serializable接口,且没有给这个类设置一个serialVersionUID,就会有一个警告标志: The serializable class BaseEntity does not declare ...

2018-06-28 01:13:53

阅读数 137

评论数 0

验证邮件地址的Java正则表达式

最近写了个Java正则表达式来验证RFC 5322规范的邮件地址,这个邮件地址比较复杂,对于这样一个地址:userName@domainName,它满足以下条件: 对于userName 1、允许使用以下所有字符作为用户名: [A-Z], [a-z], [0-9], [.], [...

2018-04-03 10:14:59

阅读数 2415

评论数 0

java笔记-如何判断字符串的编码?

由于字符串的编码存在着多种可能,如果没有知名其编码格式,那么就只能一个个去测试,代码如下:String str = "测试字符串"; String encode = "UTF-8"; try { if (str.equals(new String(s...

2018-02-23 14:26:32

阅读数 956

评论数 0

java笔记-replace(), replaceAll(), replaceFirst()

java有三个替换String的函数:replace(), replaceAll(), replaceFirst(),其区别如下:replace()是直接替换对应的字符串,而replaceAll(), replaceFirst()这两个函数则是使用正则表达式来替换字符串。Stirng str = ...

2018-02-23 11:54:16

阅读数 210

评论数 0

Java笔记-环境变量正确但是Java版本不对的问题

最近安装了1.8的jdk,在修改了环境变量之后,在cmd里输入java -version和javac -version都显示正常,但是过了几天之后,jdk的版本又莫名其妙变回了1.7版本。 网上查了各自方法,基本都是在说环境变量的问题,但是我的环境变量是正确的,最后偶然发现,使用cmd进入C:\...

2018-01-09 10:14:25

阅读数 397

评论数 0

Eclipse笔记-sun.misc.BASE64Encoder找不到jar包的解决方法

在使用sun.misc.BASE64Encoder时报错如下:Access restriction: The type BASE64Encoder is not accessible due to restriction on required library C:\jdk1.7.0_79\jre...

2018-01-04 00:36:20

阅读数 6658

评论数 0

使用POI和dom4j来解析Excel生成Xml

工作中有时候我们需要使用Apache的POI来读写Excel文件,而dom4j则用来解析或者生成Xml文件,由于涉及到IO流,所以又使用了commons-io提供的IOUtils来关闭流。需要的Jar包 POI和dom4j需要的jar包 一个应用POI和dom4j的简单例子import jav...

2017-11-23 22:20:39

阅读数 1442

评论数 0

JavaMail-发送一封简单邮件(附带附件)

最近使用到JavaMail,写了个简单的工具类,记录一下。import java.util.Date; import java.util.Properties;import javax.mail.MessagingException; import javax.mail.Session; impo...

2017-11-22 23:31:05

阅读数 287

评论数 0

静态代码块、构造代码块和代码块

静态代码块static{ //do something } 静态代码块如上所示,和静态变量和静态方法一样,在类被类加载器首次加载时被执行,之后就不会被再次执行了(除非类加载器卸载该类后重新加载这个类)。当有多个静态代码块时按顺序执行。构造代码块public class Test{ ...

2017-10-30 23:43:18

阅读数 202

评论数 0

Java中哪些异常必须声明并捕获,否则产生编译错误

RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。也就是说,非RuntimeException异常类或者其子类的的异常都要声明捕捉。...

2017-10-05 10:49:47

阅读数 2500

评论数 0

提示
确定要删除当前文章?
取消 删除