- 浏览: 2622075 次
- 性别:
- 来自: 广州
最新评论
-
hsluoyz:
PyCasbin是一个用Python语言打造的轻量级开源访问控 ...
权限管理的一个简单后台 -
liuyachao111:
谢谢 问题解决了
对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾 -
jnjeC:
多谢博主分享,在配置文件里的&也要改成& ...
对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾 -
大维啊:
同志,你这不行啊!
java 的 AccessController.doPrivileged使用 -
lisha2009:
解决了我的问题,多谢博主分享!
对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾
文章列表
获取字符长度的正确姿势
- 博客分类:
- java基础
public static void main(String[] args) throws UnsupportedEncodingException {
String a="\uD864\uDD00";
System.out.println(a.length()); //结果是2
System.out.println(a.codePointCount(0, a.length())); //结果是1 这个才要正确姿势
System.out.println(a.getBytes("utf8").length); // ...
启动一切都是好好的,也没报什么错,但是访问的时候就是各种404.那个愁啊。
各种配置确认,server.xml也确认了,webapps目录也确认了。各种都是没问题啊。
只能再仔细看看日志了,在 localhost.2017-05-23.log 发现了这个:
INFO: No Spring WebApplicationInitializer types detected on classpath
感觉是能找到应用的啊,不然为什么会提示spring啊,但是为什么找不到WebApplicationInitializer呢。
只能google一下了
上面有些说要情空wrok目录的东西,做了,不好 ...
public class Main {
public static void main(String[] args) throws UnsupportedEncodingException {
String a="a";
System.out.println(a.length());
byte[] bb= a.getBytes("UTF-16");
System.out.println(binary(bb,16));
System.out.prin ...
tomcat反序列化的过程中一直报ClassNotFoundException,这个是什么原因呢
很明显是classloader找不到这个class,为什么呢,我的应用代码中明明就有啊。
实际上java反序列化的时候,我们一般用的是ObjectInputStream,他默认会去找sun.misc.VM.latestUserDefinedLoader(),这个就是系统默认的appClassloader。
重点来了,我们的tomcat中应用代码的类不是appClassloader,而是webAppClassloader,是tomcat自己搞的一个classLoader。
解决方法:写个类继 ...
目前看到的影响有两个:影响类名的读取和Main方法参数的读取。
1 影响类名的读取
设置 -Dsun.jnu.encoding=gbk
public class 中文 {
public static void main(String[] args) throws Exception {
}
}
//这个会运行报错:
Exception in thread "main" java.lang.ClassNotFoundException: com.涓枃
at java.net.URLClassLoader.findClass( ...
jsckson序列化处理泛型
- 博客分类:
- java基础
我有这样两个类
package com.vipshop.mapi.wallet.test;
import java.util.List;
public class A<R> {
private List<R> list;
public List<R> getList() {
return list;
}
public void setList(List<R> list) {
this.list = list;
}
}
pa ...
超时是一种很常见的边界条件,我们如何验证这种边界条件呢。
超时时间一般是可以配置的,我们如何测试我们的配置生效没有呢。
对于自己的代码,我们可以简单粗暴的sleep一段时间,但是超时一般都是对于其他系统的,我们不能修改别的系统代码,这个时候怎么办呢?
这个时候tc qdisc就派上用场了。
tc 是Linux 系统中的一个工具,全名为 traffic control(流量控制),qdisc是Tc中的队列,通过队列的控制,可以实现发包的控制,从而实现模拟延时。
注意是发起请求的服务器进行设置,因为tc控制的是发包动作
设置超时 (这里的1000ms可以改成你想要的)
tc qdisc add ...
先说问题的结论:https://jira.terracotta.org/jira/browse/QTZ-45
问题的解决方法:https://issues.jboss.org/browse/JBAS-8598 其实就是升级到1.8.3 就解决了
问题的源头:
项目中的代码发现死锁,jstack查看线程堆栈:
Found one Java-level deadlock:
===== ...
java的double乘法精度问题
- 博客分类:
- java基础
项目中实际的代码,我们实际的金额单位是元,精确到分,另外一个系统传递的时候需要的是整数,就是分,我们就简单乘以100转换了下,结果发现是有问题的:
public static void main(String[] args) {
double payMoney = Double.valueOf("1253.59");
String result = String.valueOf((int)(payMoney * 100));
System.out.println(result);
}
结果 ...
map和flatmap的区别
- 博客分类:
- java8
对于stream, 两者的输入都是stream的每一个元素,map的输出对应一个元素,必然是一个元素(null也是要返回),flatmap是0或者多个元素(为null的时候其实就是0个元素)。
flatmap的意义在于,一般的java方法都是返回一个结果,但是对于结果数量不确定的时候,用map这种java方法的方式,是不太灵活的,所以引入了flatmap。
对于Optional的map和flatmap:
map是把结果自动封装成一个Optional,但是flatmap需要你自己去封装。
public static void main(String[] args) {
Opti ...
Calendar.getInstance()看起来应该是个单例,但实际上并不是。
一次在JProfile中查看CPU的消耗的时候,发现 Calendar.getInstance() 消耗的CPU占比比较大,具体看了下代码才发现实际上是每次都创建对象的。
public static Calendar getInstance(TimeZone zone,
Locale aLocale)
{
return createCalendar(zone, aLocale);
}
...
针对jquery的when方法做的应变
- 博客分类:
- java基础
需求:a,b两个任务都处理(不管a,b是成功还是失败)后,执行后面的任务。
代码1:
var leftResult = leftPromise.then(
function (value) {
console.info("jsonA end");
}, function () {
console.info("jsonA fail");
}
);
var rightResult = rightPromise.then(
function (value) {
...
http的501错误
- 博客分类:
- java基础
普通的url请求是get put之类的,如果是乱七八糟的,比如et,tomcat就会报501错误。
curl -X 可以指定请求方式
java对象初始化的顺序
- 博客分类:
- java基础
public class Son extends Father {
String value = null;//2
public Son() {
super(); //1
System.out.println("Son: " + value);//3
}
public static void main(final String[] args) {
new Son();
}
}
class Father {
public F ...
超级简单的获取url内容的代码
- 博客分类:
- java
只是需要一行代码:
String result = new Scanner(new URL("http://www.baidu.com").openStream(), "UTF-8").useDelimiter("\\A").next();
上面那个虽然看上去是一行代码,还是有点繁琐的。借助其他类库可以更加简单,比如用IOUtils
IOUtils.toString(URL url, String encoding)