关于Java代码中一个方法代码超出65535字节详解

原创 2015年11月17日 22:09:12

由于java使用UNICODE标准字符集,为16位,因此一共能表示2的16次方个字符,即65535个。

由于java虚拟机的限制,在java中变量、方法的代码长度是不能大于65535字节的,针对此问题我总结了相关的解决办法。

1. 数据库

这是最为传统的,也是大多数人第一想到到的办法了。

2. 文件

这其实是替代数据库的另一种方法了。

3. 类

将复杂的类细化为多个类。

4. 方法

将复杂的方法细化为多个方法。

其实,介绍这四种方案并不是我本篇想要说的重点,而是要从程序性能的角度来诉述。有时一些相对静态的数据,虽然可以保存在数据库或文件里,但数据库和文件都要涉及到连接、io等性能问题,可能有人会说,我可以将静态数据预加载(即只获取一次,然后存入到静态变量里),但是数据量较大的数据都存入静态变量里,带来的就是系统对内存资源的消耗,在我看来同样是有取舍的。

而如果放入到类或方法里,就能很好解决上述问题。java文件之间的调用,速度的瓶颈已经降低到了JVM级别,无论从速度上还是能耗上都会令你满意,从读取速度上,他绝对比读取数据库快很多。从能耗上,我们不必再将大量的数据放到静态变量里了,什么时候用什么时候new即可。

条条大路通罗马,解决问题总是有着很多方法的,因此不要仅仅局限于“常理”,灵活运用技术才是成长的捷径。各位以后不放试试将一些数据以类或方法的形式去存储。

在我即将发布第四版的日期工具类中,就是一个很好的例子。大家可以参考参考,细细品味其中的各种优点(速度、性能、能耗、耦合性等)。

版权声明:本文为博主原创文章,未经博主允许不得转载。


相关文章推荐

Java单个方法代码长度不能多于65535字节

Java单个方法代码长度不能多于65535字节,否则编译会出错!用sun的编译器是编译不过的。eclipse的编译器虽然能编译,但是编译的时候会出错,不过最后还是老老实实地给我生成了个.class文件...
  • yxf
  • yxf
  • 2007年05月29日 22:23
  • 3313

java正则表达式判断是否在0到65535之间

正则表达式从头学起。 遇到要用正则表达式校验某个值是否在0-65535,抓瞎了,网上找着下面的,作为学习的开头吧。var re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9...

Android 解决65535的限制

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误: [java]...

Android 解决65535的限制(官网推荐方法)

随着Android平台持续增长,Android应用程序越来越大。在Android系统中,一个App的所有代码都在一个Dex文件里面。...

android开发,解决65535方法数超过限制问题

1、采用手动方式合并jar文件,将要合并的jar文件解压到同一目录下。然后将该目录压缩成libs.zip,再重命名为libs.jar。 合并jar包: ①将要合并的JAR包放到同一个文件夹下; ...

Java字节码.class文件案例分析

我是个懒人,平时都不太喜欢写点东西,大部分时间都是自己一个人在琢磨,被同事给了个外号叫:“码疯”;很少泡在CSDN的Blog中,也只是偶尔想起来了写点东西过来玩玩,大部分时间都习惯了一个人享受午后阳光...

在java语言中在byte 字节流读取大于127的情况处理

在android中,经常通过串口或者USB收发数据,得到的字节流,经常有大于127的情况。列举了下面几种处理方法:   1.如果只想读取一个字节最后一位是1还是0 ,可以简单的这样处理 r_se...

Java byte(short)溢出,口算方法

Java--byte(short)溢出快速计算(口算) 以byte为例: byte的范围(-128-127) 当强转的数值x的绝对值在256以内而且溢出时: (byte)x= (符号相反)256-|x...

Java 并发变成同步机制

并发编程的演进: 批处理——多进程——多线程 在多线程变成中,由于多个线程共享进程的变量,有可能出现同时访问一个资源的情况,因此需要使用同步机制。 java的内存模型: Java内...

jsonutil的使用

package comm;     import java.text.SimpleDateFormat;   import java.util.ArrayList;   import java.uti...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于Java代码中一个方法代码超出65535字节详解
举报原因:
原因补充:

(最多只允许输入30个字)