
Java
技术小黑屋
博客已经转移到 http://droidyue.com/
展开
-
这可能是最好的 Android/Kotlin日志输出方法
在编程调试和定位问题的时候,日志是一个最常用的工具。比如输出一些信息,确定执行轨迹。今天我们这里简单聊一聊打印日志的一些分析。通常,我们进行日志输出的时候都会限定在debug包下执行,对于非debug包,我们就不输出日志。那么如果是非debug,不同的日志输出方式可能存在一定的性能问题,本文将通过几个版本来对比着方面的差异。原始版这可能是最原始的版本打印日志了,判断是否是debug,然后决...原创 2019-11-24 18:53:28 · 5627 阅读 · 0 评论 -
Thread’s start method and run method
工作中用到了Thread,一开始用错了,仔细研究了一下,稍作整理。前言,今天写代码居然这样写的new Thread() { @Override public void run() { System.out.println("test"); } }.run();天真得以为这样这样会新开启一个线程执行,可是打印了线程的信息之后,发现还是在主线程中。仔细一想,确实我原创 2013-06-27 13:54:16 · 1492 阅读 · 0 评论 -
DataOutputStream的writeBytes(String s)
最近,在关于网络请求中有用到DataOutputStraem中的writeBytes()方法,然而就是这个问题,导致了传输中文时就出现问题,着实困扰了很长一段时间。后来,服务器端同事建议我使用DataOutputStream.write(byte[])方法,发现问题解决了。起初认为是编码问题,后来认真研究了一下,发现了问题的原因。首先,先看一下DataOutputStream的writeB原创 2013-07-03 22:26:28 · 6555 阅读 · 1 评论 -
JSONObject构造时候不仅仅会抛出JSONException
一开始认为在构造json相关的对象时,如果传输的字符串参数为null,也会当作JSONException抛出,但是今天遇到了发现不是,会抛出一个NullPointerException,这里需要我们进行一下相关的处理。如下列代码:public void testJSONConstructor() { final String jsonStr = null; try { JSO原创 2013-07-05 19:59:11 · 7626 阅读 · 2 评论 -
BadPaddingException RSA
在Android 开发中有用到了RSA,使用时遇到了一个问题,提示BadPaddingException: Blocktype mismatch: 0.问题原因是:没有指定填充算法,由于默认填充存在问题,必须自己处理,所以需要指定填充算法即可。按照以下修改即可。Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");参考转载 2013-07-06 14:07:02 · 2370 阅读 · 0 评论 -
Java中Error捕获深入
Java Error能不能捕获这个问题,之前从别人的博客看到过,然后自己也实验过,其实Error和Exception一样是可以捕获的。但是前些时候,又开始和同事讨论了起来,相比之前别人的文章,只是验证可以捕获,想加入点不同的东西。所以写下这篇文章。首先下面的代码就是出现异常并捕获的代码。private static void testCatchError() { try {原创 2013-07-27 17:23:22 · 13078 阅读 · 0 评论 -
Kotlin 和 Flutter 对于开发者究竟意味着什么?
作者 | 段建华责编 | 唐小引出品 | 优快云(ID:优快云news)写在前面【优快云 编者按】近些年来,编程语言流行度的变化其实不大,在TIOBE 编程语言排行榜上,Java、C、C++ 固若金山,也就只有 Python 会攻城略地成为第四。在这 TOP3 之中,Java 以其非常优秀的普适性,可以用于前后端开发,再加上非常成熟的 JVM 虚拟机以及整个 Java...原创 2019-05-12 21:53:48 · 9206 阅读 · 10 评论 -
JSONArray中的put(int index, X value)深入
JSONArray中的put(int index, X value)今天有意间看了一下put(int index, X value),发现了原来这个并不是那么简单,也就是说put(1,"First")和put(1000,"One Thousand")是代价不一样的。深入代码一下:public JSONArray put(int index, Object value) throws J原创 2013-06-26 19:27:37 · 6226 阅读 · 0 评论 -
字符串正则匹配过滤
1.过滤字符串中的空白字符,可以移除tab,回车等空白字符str.replaceAll("\\s+", "");2.过滤中文标点符号str = str.replaceAll("(?i)[^a-zA-Z0-9\u4E00-\u9FA5]", "");3.去除 Linux的非法文件字符public static String cleanFileName(String badFile原创 2013-07-07 10:03:06 · 3061 阅读 · 0 评论 -
使用内部类让Java实现“多继承”
使用内部类让Java实现“多继承”众所周知,Java没有像c++那样支持多继承,但是我们可以使用接口或内部类来模拟实现多继承。我们使用内部类来实现一个继承自消费者,又继承自生产者的派生类。实际上Java之所以设计出内部类这个概念,一方面是为了更好的封装性,另一方面就是借助内部类模拟实现多继承。首先我们定义一个消费者抽象基类/** * Consumer Class *原创 2011-12-13 11:38:45 · 4784 阅读 · 2 评论 -
局部变量的默认值的问题
局部变量的默认值的问题昨天看了几道Java认证工程师的试题,有一道题如下。 局部变量boolean的默认值为A、false B、true C、null D、无默认值,必初始化 正确的答案是D,当时我的答案是A false,那么为什么我要选A呢,原因如下。基本类型 默认值boolean falsechar原创 2011-12-25 09:38:05 · 5082 阅读 · 1 评论 -
错误:仅当显式请求注释处理时才接受类名称错误
<br /><br />错误:仅当显式请求注释处理时才接受类名称错误:仅当显式请求注释处理时才接受类名称“dateoftoday” 1 错误<br />错误发生原因:运行javac编译是没有加上扩展名 如本次就是没有加上dateoftoday.java,<br />解决方法加上java扩展名重新编译即可,如javac dateoftoday.java 这样就可以了原创 2011-05-22 15:01:00 · 31295 阅读 · 0 评论