Java 经验书

目录

正文

字节 转 String

在开发中,会遇到各种 byte 类型转换为 String 的情况
下面做些记录

// 1. String.valueOf() 效率最高的方法
String s = String.valueOf('c'); 
String s = String.valueOf(new char[]{'c'}); //将一个char数组转换成String

// 2. 
Character.toString() 实际上底层还是 String.valueOf()
String s = Character.toString('c');
String s = new Character('c').toString();

// 3. 直接使用 + 运算符
String s = "" + 'c';
// 虽然这个方法很简单,但这是效率最低的方法
// Java中的String Object的值实际上是不可变的,是一个final的变量。
// 所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。
// 而Java对使用 + 运算符处理String相加进行了方法重载。
// 字符串直接相加连接实际上调用了如下方法:
// new StringBuilder().append("").append('c').toString();

// 4. 利用 String 构造器,创建新的 String 对象
String s = new String(new char[]{'c'});

Base64Encoder 的使用

对于 Base64 的转换(编码和解码),在数据传输(图片),签名或简单加密的时候可用到
不过并不推荐使用 Base64进行加密

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;

// 编码
BASE64Encoder encoder = new BASE64Encoder();
  //编码器
String imagestr =  encoder.encode(captcha);
  // 进行编码

// 解码
BASE64Decoder decoder = new BASE64Decoder();
  // 解码器
byte[] bytes = decoder.decodeBuffer(imagestr);
  // 进行解码

// ------ 新的写法 ----
import java.util.Base64.Encoder
import java.util.Base64.Decoder
 
// 编码
Encoder encoder = Base64.getEncoder();
String result = encoder.encodeToString(byteArray);

// 解码
Decoder decoder = Base64.getDecoder();
byte[] result = decoder.decode(str);
// 为什么有新的写法?
// 原因是 /lib/tool.jar 和 /lib/rt.jar 已经在 Java SE 9 中删除

Java 经验书传送地址: https://www.cnblogs.com/inick/p/14389414.html

posted @ 2021-02-08 16:34  iNick  阅读(58)  评论(0编辑  收藏  举报