Java
文章平均质量分 63
bdmh
多年从事软件开发工作,现在主要从事移动端应用开发
展开
-
Android:URLEncoder空格被转码为“+”号
另外,Android提供了Uri.encode,虽然可以正常转码空格,但是它不需要转换的字符和URLEncode有一点差别,大家在用的时候,根据情况选择即可。但当使用URLEncoder时,会发现字符串中的空格被转换成“+”号,如果编码后的内容入库后,将导致读取时,前段本来是空格的地方,会显示成“+”号字符。Android前段和后端接口交互时,经常会遇到特殊字符,比如表情、特殊标点等,这样在Url中是无法识别的,需要进行转码,后端进行解码交互。建议自己仿照官方的代码,写一套自己转码和解码过程,这个不难的。原创 2023-01-09 10:04:13 · 2503 阅读 · 0 评论 -
Java:从字节码看Enum类型
从以上字节码我们看到,它会为每个枚举值创建一个对象,保留名字和对应的值,还要创建一个数组来保存所有的枚举,相比一个int类型的数值来说,确实比较占用内存。枚举类型对于我们访问非常的方便和清晰,但是却有很多同学是不建议多多地使用枚举类型,原因就是枚举类型还是比较占用内存的。接下来我们看static这段,这是初始化的工作,大概的流程就是调用Enum的构造方法,创建数组,保存三个枚举值,具体看注释吧。然后就是,我们定义的one,two,three三个枚举属性,在这里也看到了,分别定义为Test类型。原创 2022-09-27 15:18:35 · 418 阅读 · 0 评论 -
Java:通过字节码看if-else和switch-case
条件语句是我们使用非常频繁的语法之一,其中if-else和switch-case最为常用,那很多同学也会有疑惑,这两种方式有什么区别,哪个效率更高一些呢。接下来我们就从字节码的角度,看看这两种方法的实现。先来看看if-else。public void foo(int i) { if (i == 1) System.out.println(1); else ...原创 2020-03-26 11:18:20 · 1007 阅读 · 0 评论 -
String的比较,你都搞清楚了吗
String这个使用频率极高的数据类型,每个人都能说出很多关于它的使用情景。因为String相对于int等基本类型的内在差别,也常被面试官拿来拿捏面试者。不过确实,虽然我们每天声明无数次String对象,但是对于它的那些事,还是既熟悉又陌生,有点最熟悉的陌生人的感觉。所以今天汇总一下String的常见问题,诸如比较不同形式创建方法创建的对象、不同方法创建了几个对象等问题,结合字节码、源码及分析工具...原创 2020-02-28 12:42:14 · 7460 阅读 · 0 评论 -
(转载)Java中关于内存泄漏出现的原因以及如何避免内存泄漏
原文链接Android 内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 coding 时怎么避免这些情况,提高应用的体验和质量。我转载 2016-09-14 08:16:54 · 2188 阅读 · 2 评论 -
在Android项目中配置Protocol Buffer环境
环境部署:下载Protocol Buffer的exe、source及maven,因为从官网下载需要翻墙,这里提供Protocol Buffer 2.5及maven3.2.3的资源下载,下载文件列表protobuf-2.5.0.tar.bz2:这里是源码protoc-2.5.0-win32.zip:这里是protoc.exeapache-maven-3.2.3原创 2014-12-12 12:01:11 · 3575 阅读 · 2 评论 -
Netty:options和configs
在使用Netty时,初始化服务端或客户端时,我们经常会看到如下代码Bootstrap b = new Bootstrap();......b.channel(NioSocketChannel.class).option(ChannelOption.TCP_NODELAY, true);通过option方法设置一些选项(参数),它其实是一个Map,维护这键值对,option方法在Abstract原创 2015-11-26 09:51:59 · 8566 阅读 · 1 评论 -
Netty:Channel
介绍一下channel中如何通过sokect连接客户端和服务端原创 2015-11-23 14:16:04 · 5992 阅读 · 1 评论 -
Netty框架初探
Netty实现服务端和客户端的TCP通信原创 2015-11-19 14:52:24 · 5884 阅读 · 1 评论 -
Netty:Bootstrap的handler和childHandler
介绍Bootstrap中handler和childHandler的区别原创 2015-11-19 15:16:15 · 18100 阅读 · 3 评论 -
Netty:ChannelInboundHandlerAdapter和ChannelOutboundHandlerAdapter
前面说到,服务端和客户端通讯,我们通常要绑定一个handler(Netty:Bootstrap的handler和childHandler)进行通道的监听,当收到数据时就会触发某个事件,从而进行进一步的处理。目前我们用的比较多的就是ChannelInboundHandlerAdapter和ChannelOutboundHandlerAdapter。ChannelInboundHandlerAdapt原创 2015-11-19 15:31:10 · 27332 阅读 · 3 评论 -
Netty:EventLoopGroup
浅谈EventLoopGroup的作用和流程原创 2015-11-20 13:11:41 · 21356 阅读 · 1 评论 -
Netty:ChannelPipeline
ChannelPipeline的作用以及如何维护handler原创 2015-11-24 14:16:01 · 4407 阅读 · 1 评论 -
Android开发:default activity not found
当你在默认的MainActivity中使用Intent并q原创 2014-06-13 15:16:06 · 45738 阅读 · 2 评论 -
ExtJs 4.x 学习小记:Ext中访问Jsp中的变量
在javascript中访问Jsp变量时,一般就是通过 访问,常用方法如下,不同的方法会产生不同的效果。第一种,脚本代码和Jsp文件在一起,也就是脚本写在Jsp文件中,这种方法访问正常。<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="GBK"%><% String o原创 2014-03-25 13:20:20 · 3166 阅读 · 0 评论 -
ExtJs 4.x 学习小记:动态添加节点到Ext.tree.Panel
实现:页面中有一个表单,输入分类名称,保存成功后,左侧目录树上添加一个新的节点。jsp代码 ,"././js/cataloginfo.js"为Ext创建表单的脚本<%@ page language="java" contentType="text/html; charset=gb2312" pageEncoding="GBK"%><% String optype=request原创 2014-03-24 14:28:01 · 11479 阅读 · 1 评论 -
使用GSon根据节点名称读取json数组
Json字符串{"data":{"proname":"002\u5de5\u7a0b0000","clprice":200.9,"id":2}}原创 2014-04-16 14:28:37 · 14097 阅读 · 0 评论 -
免安装版tomcat配置成服务程序
原文地址http://blog.csdn.net/taowei20061122/article/details/8249455免安装版的tomcat不会在系统的服务列表中找到Apache Tomcat的服务程序,通过下面配置可以将服务添加进去。tomcat本机目录 E:\java\tomcat找到bin目录下的service.bat文件,用记事本打开,在第一个if语句前面加上下面一句话转载 2014-03-20 16:30:34 · 2536 阅读 · 0 评论