- 浏览: 2049987 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (795)
- java (263)
- 聚类搜索引擎 (9)
- 经验之谈 (67)
- DSP (3)
- C++ (140)
- Linux (37)
- SNMP (6)
- Python (6)
- 数据库 (61)
- 网络 (20)
- 算法 (15)
- 设计模式 (4)
- 笔试题 (38)
- 散文 (35)
- 数据结构 (9)
- 银行知识 (0)
- 榜样 (9)
- Lucene (15)
- Heritrix (6)
- MetaSeeker (0)
- netbeans (12)
- php (3)
- 英语 (8)
- DB2 (0)
- java基础 (5)
- mongodb & hadoop (4)
- Javascript (7)
- Spring (4)
- ibatis & myibatis (1)
- velocity (1)
- 微服务 (0)
- paddle (1)
- 第三方 (0)
- 知识沉淀 (1)
- 建模 (0)
最新评论
-
0372:
标示对java很陌生!
中文乱码解决的4种方式 -
梦留心痕:
Java中\是转意字符, 可是你的这句话我没看懂,只要把得到的 ...
java中如何忽略字符串中的转义字符--转载 -
yanjianpengit:
[b][/b]
java为什么非静态内部类里面不能有静态成员 -
springdata-jpa:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
eclipse 如何把java项目转成web项目 -
qq1130127172:
,非常好。
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
这样运行一个测试程序 出来的结果是: public class BASE64Encoder {
6
7 private static char[] codec_table = { 'A', 'B', 'C', 'D', 'E', 'F', 'G',
8 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
9 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
10 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
11 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6',
12 '7', '8', '9', '+', '/' };
13
14 public BASE64Encoder() {
15
16 }
17
18 public String encode(byte[] a) {
19 int totalBits = a.length * 8;
20 int nn = totalBits % 6;
21 int curPos = 0;// process bits
22 StringBuffer toReturn = new StringBuffer();
23 while (curPos < totalBits) {
24 int bytePos = curPos / 8;
25 switch (curPos % 8) {
26 case 0:
27 toReturn.append(codec_table[(a[bytePos] & 0xfc) >> 2]);
28 break;
29 case 2:
30
31 toReturn.append(codec_table[(a[bytePos] & 0x3f)]);
32 break;
33 case 4:
34 if (bytePos == a.length - 1) {
35 toReturn
36 .append(codec_table[((a[bytePos] & 0x0f) << 2) & 0x3f]);
37 } else {
38 int pos = (((a[bytePos] & 0x0f) << 2) | ((a[bytePos + 1] & 0xc0) >> 6)) & 0x3f;
39 toReturn.append(codec_table[pos]);
40 }
41 break;
42 case 6:
43 if (bytePos == a.length - 1) {
44 toReturn
45 .append(codec_table[((a[bytePos] & 0x03) << 4) & 0x3f]);
46 } else {
47 int pos = (((a[bytePos] & 0x03) << 4) | ((a[bytePos + 1] & 0xf0) >> 4)) & 0x3f;
48 toReturn.append(codec_table[pos]);
49 }
50 break;
51 default:
52 //never hanppen
53 break;
54 }
55 curPos+=6;
56 }
57 if(nn==2)
58 {
59 toReturn.append("==");
60 }
61 else if(nn==4)
62 {
63 toReturn.append("=");
64 }
65 return toReturn.toString();
66
67 }
68
69 }
1 public static void main(String[] args) throws Exception {
2
3
4 BASE64Encoder encoder=new BASE64Encoder();
5 sun.misc.BASE64Encoder sunEncoder=new sun.misc.BASE64Encoder();
6 byte[] testBytes=new byte[1024*1024*2];
7 long start=System.currentTimeMillis();
8 for(int i=0;i<10;i++)
9 {
10 sunEncoder.encode(testBytes);
11 }
12
13 System.out.println("[sun encoder]use time :"+(System.currentTimeMillis()-start));
14 start=System.currentTimeMillis();
15 for(int i=0;i<10;i++)
16 {
17 encoder.encode(testBytes);
18 }
19
20 System.out.println("[our encoder]use time :"+(System.currentTimeMillis()-start));
21
22 }
[sun encoder]use time :4844
[our encoder]use time :2609
差不多慢一倍。
发表评论
-
流式计算
2022-02-07 14:31 286private void postHandle(List& ... -
消息队列使用的四种场景介绍
2018-08-09 16:34 2478以下介绍消息队列在实际应用中常用的使用场 ... -
设计模式
2018-04-11 16:49 9861.桥梁模式,将抽象部分与实现部分隔离开,抽象部分持有实现 ... -
Spring boot web可以访问Service和Mapper层
2018-03-26 16:42 2872Spring boot的web层可以访问Service层,然 ... -
FreeMarker的基础语法使用 && 心得和技巧
2018-01-10 10:03 2063FreeMarker是一个模板引 ... -
webService----wss4j+cxf实现WS-Security(基于UsernameToken)
2017-10-23 18:58 1561分享一下wss4j+cxf基于UsernameToken的安 ... -
Spring MVC之LocaleResolver(解析用户区域)
2017-09-23 15:55 2534为了让web应用程序支持国际化,必须识别每个用户的首选区域, ... -
(转)java泛型
2016-11-12 20:29 1650http://www.cnblogs.com/lwbqqyu ... -
java中如何忽略字符串中的转义字符--转载
2016-06-28 16:42 9916原文地址:http://my ... -
(转)关于JAP FetchType.LAZY(hibernate实现)的理解 .
2016-04-27 15:22 5108JPA定义实体之间的关系有如下几种: @OneToOne ... -
(转)hibernate annotation注解方式来处理映射关系
2016-04-26 16:52 1841http://www.cnblogs.com/xiao ... -
代码片段,导出的文件头
2015-11-18 20:34 1606public static void setDownload ... -
(转)为什么要两次调用encodeURI来解决乱码问题
2015-08-03 20:19 2489地址:http://blog.csdn.net/howla ... -
杀死进程
2015-07-21 14:54 1293sudo lsof -i :9000 COMMAND P ... -
批处理batch,执行多个SQL语句
2015-07-15 19:21 10616批处理batch,执行多个SQL语句。 ... -
中文乱码解决的4种方式
2015-07-03 14:20 2630目前收集到4中方法,中文传参一documentPath为例: ... -
GET请求的中文乱码问题及处理意义
2015-07-03 13:47 6635首先看一段乱码的程序 ... -
java.ByteArrayInputStream与ByteArrayOutputStream再次理解
2015-03-16 17:59 3242第一次看到ByteArrayOutputStream的时 ... -
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
2014-07-28 17:42 2282概述 继 Spring 2.0 对 Spring MVC ... -
java中序列化的serialVersionUID解释
2014-07-25 09:26 1891serialVersionUID: 字面意思上是序列化的版本号 ...
相关推荐
描述中提到的"sun.misc"包是Java早期提供的一组实用工具类,其中包括了用于Base64编码和解码的`BASE64Encoder`和`BASE64Decoder`类。 1. **Base64编码原理**: Base64编码基于64个可打印字符,这些字符包括大小写...
在这个"BASE64Encoder.zip"压缩包中包含了一个名为"BASE64Encoder.jar"的文件,这很可能是一个Java实现的BASE64编码和解码工具。 在Java中,`java.util.Base64`类库提供了对BASE64编码和解码的支持。这个"BASE64...
Base64Encoder.jar包是Java开发中用于进行Base64编码和解码的工具包,它可以帮助开发者在处理数据时,将二进制数据转换为可打印的ASCII字符串,反之亦然。在Java标准库中,虽然已经包含了`java.util.Base64`类来执行...
在Java编程语言中,`sun.misc.BASE64Encoder`和`BASE64Decoder`是用于进行Base64编码和解码的内部类,它们属于`sun.misc`包,这是一个非公开(非标准)的Java库。`sun.misc`包中的类主要用于JVM内部使用,因此在官方...
在Java编程语言中,`sun.misc.BASE64Encoder` 和 `sun.misc.BASE64Decoder` 是两个用于Base64编码和解码的内部类,它们位于`sun.misc`包下。Base64是一种用于在网络上传输二进制数据的文本编码方式,它将任意的字节...
最近项目实验发现导入工具程序后项目有错,查看发现sun.misc.BASE64Decoder和sun.misc.BASE64Encoder不可用,找不到相应的类。 二、原因分析 冲浪后发现JDK中的lib\tools.jar和JRE中的lib\rt.jar已从Java SE 9中...
在Java中,`BASE64Encoder`和`BASE64Decoder`是两个核心类,分别用于对数据进行BASE64编码和解码。 `BASE64Encoder`类: 这个类在Java SDK中位于`javax.crypto`包下,主要负责将字节序列(byte array)转换为BASE...
`sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`就是这样的两个类,它们分别用于Base64编码和解码。 Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式,常用于在网络上传输二进制数据,如电子...
啥都不说了,CSDN都要30多分,抢钱啊,我着急下载,没有那么多分,对那些...android需要的BASE64Encoder的jar包,欢迎大家下载使用,为什么要5分,是因为,为了下载这么个破jar包,我花干了我的分,也是为了凑够字数。
在Java编程中,`sun.misc.BASE64Encoder` 类曾是Java标准库早期版本中用于进行Base64编码的一个工具类。然而,由于这个类属于Sun Microsystems的内部实现细节,自Java 9开始,它被标记为废弃,并在后续版本中逐步...
然而,需要注意的是,这两个类自JDK 9起已被弃用,建议使用`java.util.Base64`包中的`Base64.getEncoder()`和`Base64.getDecoder()`方法来进行BASE64的编码和解码工作。 #### 示例代码分析 给出的代码示例展示了...
`Base64.Encoder`接口代表Base64编码器,而`Base64.Decoder`接口代表Base64解码器。你可以通过`Base64.getEncoder()`和`Base64.getDecoder()`获取默认的编码器和解码器实例。例如: ```java import java.util.Base...
BASE64Encode 编码,在andorid没有这个编码,这里面有打成jar包,可以导进去。用源代码打包的。手懒不愿意自己弄得话,可以下载导进去。里面附带着源代码,也可将源代码开进去直接使用,希望能帮助大家。
在Java中,`sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`是用于处理BASE64编码和解码的类,它们位于`sun.misc`包下,这是一个非公开的、由Sun Microsystems提供的包,主要用于JVM内部使用。 然而,需要注意...
在Java平台上,`sun.misc.BASE64Encoder`类被用来实现BASE64编码,但需要注意的是,这个类属于Java的非公开(sun.misc)包,官方并不推荐直接使用。 首先,我们来深入理解一下BASE64编码。BASE64编码是一种基于64个...
将BASE64Encoder编码与普通字节的互相转换,很好用!
在早期的Java版本中,如JDK 1.4及更早版本,可以使用`sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`类进行Base64操作,但这些类位于非公开的`sun.misc`包下,不是标准API,使用它们可能引发不兼容性问题,且不...
sun.misc.BASE64Encoder 找不到jar包