自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(426)
  • 资源 (1)
  • 问答 (7)
  • 收藏
  • 关注

获取字符长度的正确姿势

[code="java"]public static void main(String[] args) throws UnsupportedEncodingException { String a="\uD864\uDD00"; System.out.println(a.length()); //结果是2 System.out.println(a.codePointC...

2017-05-23 16:09:31 208

tomcat 404的解决--坑爹的java版本

启动一切都是好好的,也没报什么错,但是访问的时候就是各种404.那个愁啊。各种配置确认,server.xml也确认了,webapps目录也确认了。各种都是没问题啊。 只能再仔细看看日志了,在 localhost.2017-05-23.log 发现了这个:[size=large]INFO: No Spring WebApplicationInitializer types detec...

2017-05-23 15:26:06 203

getBytes("UTF-16")长度多2的原因

[code="java"]public class Main { public static void main(String[] args) throws UnsupportedEncodingException { String a="a"; System.out.println(a.length()); byte[] bb= ...

2017-05-22 16:20:28 359

解决tomcat中反序列化找不到class

[size=medium]tomcat反序列化的过程中一直报ClassNotFoundException,这个是什么原因呢很明显是classloader找不到这个class,为什么呢,我的应用代码中明明就有啊。实际上java反序列化的时候,我们一般用的是ObjectInputStream,他默认会去找sun.misc.VM.latestUserDefinedLoader(),这个就是系...

2017-05-19 09:59:23 233

模拟超时来进行超时测试

[size=medium]超时是一种很常见的边界条件,我们如何验证这种边界条件呢。超时时间一般是可以配置的,我们如何测试我们的配置生效没有呢。对于自己的代码,我们可以简单粗暴的sleep一段时间,但是超时一般都是对于其他系统的,我们不能修改别的系统代码,这个时候怎么办呢?这个时候tc qdisc就派上用场了。tc 是Linux 系统中的一个工具,全名为 traffic cont...

2017-01-10 09:18:30 704

map和flatmap的区别

[size=medium]对于stream, 两者的输入都是stream的每一个元素,map的输出对应一个元素,必然是一个元素(null也是要返回),flatmap是0或者多个元素(为null的时候其实就是0个元素)。flatmap的意义在于,一般的java方法都是返回一个结果,但是对于结果数量不确定的时候,用map这种java方法的方式,是不太灵活的,所以引入了flatmap。 ...

2016-12-07 09:26:47 125

java对象初始化的顺序

[code="java"]public class Son extends Father { String value = null;//2 public Son() { super(); //1 System.out.println("Son: " + value);//3 } publi...

2016-10-08 17:18:06 96

超级简单的获取url内容的代码

只是需要一行代码:[code="java"]String result = new Scanner(new URL("http://www.baidu.com").openStream(), "UTF-8").useDelimiter("\\A").next();[/code] 上面那个虽然看上去是一行代码,还是有点繁琐的。借助其他类库可以更加简单,比如用IOUtils[code=...

2016-09-09 16:33:42 128

java 关闭main方法中的定时器线程(2)

[code="java"]import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/** * Created by cloud.huang on 16/5/20. */...

2016-05-20 15:49:28 86

原创 java 关闭main方法中的定时器线程

[code="java"]public class TestTreadClose { public static volatile boolean flag = true; public static void main(String[] args) throws Exception { Thread t = new Thread() { ...

2016-05-20 15:29:04 98

apktool 打包失败问题的解决

首先直接说原因: 因为linux 下的PATH变量错误导致的需求:让运营打包时修改应用名,比如wifi管家改为天天wifi管家做法: 修改res/values/strings.xml的app_name字段。问题过程 :很愉快的用shell替换了[code="java"]sed "s/.*/${new_app_name}/" $DECODE_PATH/res/va...

2016-02-26 17:25:24 437

项目中出现的死循环(2)

[size=medium]有10个奖励,随机得到3个,10个中有些是不符合要求的,要过滤掉。游戏中过滤逻辑写得不对,过滤了8个,得到的结果只有2个,还没有满足3个,所以一直循环下去。正确的做法是,先过滤掉不符合要求的,如果小于3个,直接返回全部,否则再随机最上面错误的做法是 过滤逻辑和随机逻辑混在一起,就容易出问题。[/size]...

2015-04-02 20:35:41 111

项目中出现的死循环(1)

[size=medium]做的项目是个网页游戏出现的死循环的地方:我们有个玩法是远征,战斗结束后立马开始下一个战斗。我们用的是个回调: onBattleEnd 如果还有下一场战斗就返回true,没有就返回false。返回true的时候战斗系统会继续战斗问题出现在业务代码写的有点问题,一直返回true,然后就是一直战斗了。[/size]...

2015-04-02 20:29:37 120

hibernate不能创建表坑爹的原因

[size=medium]原因是 我们有个字段名叫index 这个是数据库的关键字但是hibernate居然没有报任何的错[/size]

2015-04-01 15:36:23 97

mina实现相同session后到的请求一定后处理的原理

[size=medium]mina后面的业务处理是一个线程池去处理的,在线程池的多线程的情况下,一般是不能保证后面的请求一定后处理的。因为可能后面的线程处理更快。mina是怎么做到的呢:基本原理是 每个session有个自己的queue,而且相同这个queue的元素一定在同一个线程处理具体原理:mina使用的是OrderedThreadPoolExecutor,具体的处理是Wo...

2015-03-26 22:04:32 122

简单实现一个java公平策略的锁

代码是:[code="java"]package com.eyu.gift.lock;import java.util.Queue;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.locks.LockSupport;class FailLock { Q...

2015-03-24 21:40:55 105

Hibernate清空数据库

[size=medium]设置 hibernate.hbm2ddl.auto=create-drop这样每次程序启动的时候就会先删除之前的表,然后创建一张新表,从而达到清库的目的这个对于测试的时候是很好用的[/size]正常情况hibernate.hbm2ddl.auto=update 这个是表示有字段增加的话,会增加数据库字段...

2015-03-17 11:43:52 179

java为什么没有无符号类型

一次对 James Gosling 的采访说到:你去问 C 语言开发人员关于无符号的问题,你很快就会发现没有几个 C 语言开发人员真正理解无符号类型到底发生了些什么,什么是无符号运算。这些事情让 C 语言变得复杂。我觉得 Java 语言是非常简单的。在之前的Oak规范也有说:“8 比特,16 比特,32 比特,64 比特的,这 4 种不同宽度的整数类型都是有符号的,除非在前面加上 ...

2015-02-06 11:14:02 254

java的Condition 加强版的wait notify

[size=medium]Lock对应Synchronized,使用之前都要先获取锁 Object Condition 休眠 wait await 唤醒个线程 notify signal 唤醒所有线程 notifyAll signalAll Co...

2015-01-29 20:26:39 104

通过继承LinkedHashMap实现LRU缓存

[code="java"]import java.util.LinkedHashMap;import java.util.Map;/** * LinkedHashMap默认是不删除元素的,通过重写removeEldestEntry来实现最大容量 * @author bean */public class LRUMap extends LinkedHashMap {...

2015-01-26 17:27:15 92

java用cyclicBarrier来实现Phaser的分段功能

[size=medium]cyclicBarrier是有自动重置功能的,我们可以用这个功能来实现分阶段:还是之前的需求: 开启3个线程,分别打印字母a,b,c各10次,然后进入下一阶段打印后面的字母d,e,f各10次,然后再进入下一阶段.......以此类推,直到整个字母表全部打印完毕。下面是代码,可以看到是有点麻烦的cyclicBarrier是没有明确的分段功能的,坑爹的是如...

2015-01-26 10:22:08 104

Java的Integer是由缓存决定的,我们可以改变缓存来改变Integer

[code="java"]import java.lang.reflect.Field;import java.util.Random;public class IntegerTest { public static void main(String[] args) throws Exception { Class clazz = Class.forName("j...

2015-01-25 16:00:24 101

java的Phaser,多线程分阶段执行

[size=medium]Phaser是处理分阶段的多线程的很好的方法:比如需求是:开启3个线程,分别打印字母a,b,c各10次,然后进入下一阶段打印后面的字母d,e,f各10次,然后再进入下一阶段.......以此类推,直到整个字母表全部打印完毕。代码实现:[/size][code="java"]import java.util.concurrent.Phaser;...

2015-01-25 12:00:01 128

java实现热更新

[size=medium]原理很简单,就是使用ClassLoader加载新的类,替换掉旧的对象。注意最好使用接口,我们只是加载实现类,接口类一直使用旧的ClassLoader,这样就不会存在类型转换的报错。具体的代码也可以参考我的github:https://github.com/huangyunbin/hot/tree/master[/size][code="java"]pu...

2015-01-24 16:01:47 169

wrong number of arguments,java方法反射时数组参数的坑

[size=medium]java方法中只有一个参数是数组,反射的时候我们不能想当然的传歌数组进去,传数组进去的时候表示多个参数。两个数组不是一个意思啊。我们应该把数组转为objet,这样才表示一个参数。[/size][code="java"]import java.lang.reflect.Method;public class MethodTest { publ...

2015-01-24 10:45:12 148

原创 java的泛型并不是都擦除了的

[size=medium]具体参考这篇文章: http://rednaxelafx.iteye.com/blog/586212Java泛型有这么一种规律: 位于声明一侧的,源码里写了什么到运行时就能看到什么; 位于使用一侧的,源码里写什么到运行时都没了。 具体例子:[/size][code="java"]import java.lang.reflect.Fiel...

2015-01-23 16:23:59 180

java的int和byte数组的相互转换

[size=medium]byte数组转为int有两种原理,一种是先左移动24位,在无符号右移 对应的是byte2int3另外一种是 先移动 在把干扰的和0做与操作,消除干扰(byte负数的时候 右移时左边都是1,这个时候是有干扰的) 对应的是byte2int2还有就是这两种的结合了 对应byte2int注意这个转成byte和实际int的byte的顺序是相反的,不要理...

2015-01-15 16:31:28 95

juel 性能测试 表达式的写法有点奇怪

[size=medium]获取一个对象的属性是这样写:"${test.a}" 但是外层有$的时候,要去掉测试发现性能还是挺好的:1000000次 ===>1243毫秒 100000次 ===>394毫秒测试代码:[/size][code="java"]package com.eyu.ahxy.module.expression.juel;import javax...

2015-01-13 15:43:28 168

ognl性能测试

[size=medium]编译后 1000000次 ===>4091毫秒 100000次 ===>1255毫秒 不编译 1000000次 ===>27091毫秒 100000次 ===>3997毫秒性能不是很好 mvel和rinho是它的2-3倍ongl使用静态方法的形式不太好:@java.lang.Math@min(3,5),这个样子,有点蛋疼啊[/size][...

2015-01-13 12:32:46 162

@RequestBody注解时 HttpClient 发送post的例子

[size=medium]主要是这句:post.setRequestEntity(new ByteArrayRequestEntity(json.getBytes("UTF-8")));[/size][code="java"]@Testpublic void test_http() throws Exception {HttpClient client = new ...

2015-01-12 10:33:16 153

RequestParam 的坑

[size=medium]@RequestParam(required = false, defaultValue = "0") int gold,这里就不能传一个参数:gold= 这样会400的错但是换成 Integer也是不行的 会变成null所以前端要么就不要传这个参数过来,要么就是要正确的传,gold= 这种是不行的[/size]...

2015-01-12 10:28:17 138

BigDecimal做四舍五入的坑

[code="java"]BigDecimal decimal = new BigDecimal(String.valueOf(2.345f));decimal.setScale(3,RoundingMode.HALF_EVEN);[/code][size=medium]BigDecimal是不可变对象,上面的写法是有问题的,应该这样写:[/size][code="...

2015-01-12 10:23:09 164

mvel表达式遇到的坑2 这个更坑

之前写的一篇文章说的mvel遇到的坑 解决办法是*1.0,这次貌似是无解了[code="java"]public static void main(String[] args) { System.err.println(19950574*0.3); System.err.println(19950574*0.2999999399); String exp3="a*b"...

2015-01-09 17:53:02 215

对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾

在hibernate启动的时候报了个错: 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾原因是在hibernate的配置文件中:jdbc:mysql://127.0.0.1/cache?useUnicode=true&characterEncoding=utf-8要改为jdbc:mysql://127.0.0.1/cache?useUnic...

2015-01-03 11:27:48 83

mvel表达式遇到的坑

简单的说是:mvel中int和一个double做乘法,是可能出问题的[code="java"]public static void main(String[] args) throws Exception { System.err.println(1350*0.7*(0.97+0.5*0.06)); String exp3="a...

2014-12-31 18:02:31 246

原创 java运行jar文件中某个类

[size=medium]运行jar文件的方法是:1java -jar xxx.jar但是有时,我们希望运行里面的具体某个类,这时可以通过:1java -cp xxx.jar xxx.com.xxxx其中-cp命令是将xxx.jar加入到classpath,这样java class loader就会在这里面查找匹配的类。[/size]...

2014-06-20 11:55:07 285

原创 java中File类getCanonicalPath

[size=medium]getAbsolutePath():返回的是定义时的路径对应的相对路径,但不会处理“.”和“..”的情况getCanonicalPath():返回的是规范化的绝对路径,相当于将getAbsolutePath()中的“.”和“..”解析成对应的正确的路径举例如下:File file = new File(".\\test.txt"); Syste...

2014-06-18 14:53:38 142

原创 转 :如何在 Eclipse 中使用命令行

原文: http://www.oschina.net/question/28_46291虽然我们已经有了像 Eclipse 这样高级的 IDE,但是我们有时候也是需要在开发的时候使用 Windows 的命令行,来运行一些独立的程序。在两个程序中切换来切换去是很麻烦的。所以 Eclipse 提供了这样的工具,让我们在 Eclipse 中使用 Windows 命令行。 第一步:设置一个...

2014-06-10 17:11:53 81

原创 转:一次领域驱动设计(DDD)的实际应用

原文 url:http://www.davenkin.me/post/2014-02-19/domain-driven-design-example一次领域驱动设计(DDD)的实际应用笔者先前参与了一个有关汽车信息的网站开发,用于显示不同品牌的汽车的信息,包括车型,发动机型号,车身尺寸和汽车报价等信息。在建模时,我们只需要创建名为Car的实体(Entity)对象。其他的信息,比如车...

2014-06-10 11:10:31 102

java方法的syntethic类型

[size=medium]我们一般说java的方法有public private,但其实还有种是syntethic。什么是syntethic呢 就是外部类的方法持有内部类的私有变量。具体的解释可以看:http://ifeve.com/syntethic-and-bridge-methods/。这个文章顺便解释呢方法类型的bridge。bridge就是有对父类泛型的重写,就是父类的方法返...

2014-04-15 19:16:32 75

mysql中文参考手册

mysql中文参考手册,还不错。有详细的mysql介绍和说明,里面的语法也还比较详细,有例子

2011-05-02

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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