今天看到一篇文章不用反射,能否交换两个字符串的值. 心想字符串常量在常量池里面,是在就算用了反射也交换不了吧。转念一想,不对,字符串常量虽然本身在常量池里面,但是它依然是个对象,那么 private final 类型的属性仅仅表示它是一个指向常量池的引用,而并非不可修改。完全可以让它指向另一个常量。
分析String的结构
通过反射可以很轻松地获取所有属性
// 获取所有属性
for (Field field : String.class.getDeclaredFields()) {
System.out.println(field);
}
方框框起来的 private final byte[] java.lang.String.value
即为需要的对象。
设置可见性
接下来就是常见的反射修改可见性。
相关文章

Halo 开源项目学习(三):注册与登录
基本介绍 首次启动 Halo 项目时需要安装博客并注册用户信息,当博客安装完成后用户就可以根据注册的信息登录到管理员界面,下面我们分析一下整个过程中代码是如何执行的。 博客安装 项目启动成功后,我们可...

程序员副业之如何借国庆流量,用换头像小程序日赚500?
你好啊,这里是程序员田同学。 再有二十天就是国庆了,时间快的让人猝不及防......除了缅怀以外,我们还要抓住商机。 今天我要教大家如何打造小程序这样的国庆头像,利用国庆流量赚取广告费。[En]Tod...

建造者模式
Builder模式:使用多个简单对象逐步构建一个复杂对象,它适用于一些基本组件,但可以有多种组合,这就是所谓的\[En]Builder mode: use multiple simple object...

单例模式只会懒汉饿汉?读完本篇让你面试疯狂加分
前言 说到设计模式,面试排在第一位的十有八九是单例模式,这一定是大部分人从入门到面试工作都避不开的基础知识。 但单例模式不仅有懒汉模式和饿汉模式两种写法,往往我们掌握的都是最基础的写法,如果你有阅读过...

Java 基础常见知识点&面试题总结(上),2022 最新版!| JavaGuide
你好,我是 Guide。秋招即将到来,我对 JavaGuide 的内容进行了重构完善,公众号同步一下最新更新,希望能够帮助你。 基础概念与常识 Java 语言有哪些特点? 简单易学; 面向对象(封装,...

最大子段和(分而治之)
分治法 (O(n\log{n})) 按照"分而治之"的思想,将整个数据区间从中间一分为二,这样我们就将求整个区间的最大子列和转换为求小区间的最大子列和。 设区间左端为left,区间右端为right,区...

【Java分享客栈】Java程序员为争一口气熬夜硬刚CSS实现掘金首页
前言 如果我做不了最厉害的Java工程师,那我就做Java工程师中最厉害的前端工程师。 前段时间,我默默给自己又喂了这碗心灵鸡汤...... 我不是很厉害的Java工程师,哪怕我已经工作八年,我依然觉...

Java(2)数据类型与变量
前言 Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共8种基本类型,其中有4种整型、2种浮点型、1种字符串类型char(用于表示Unicode编码的代码单元)和1种...

【每日算法】动态规划六
难度[中等] 给你一个正整数e...

Okhttp3 网络请求框架与 Gson
<span class="hljs-params"><dependency> <span class="hljs-params"&...

在web.xml配置springmvc过滤器解决乱码
代码: ``` characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-...

SpringCloud微服务实战——搭建企业级开发框架(二十八):扩展MybatisPlus插件DataPermissionInterceptor实现数据权限控制
一套完整的系统权限需要支持功能权限和数据权限,前面介绍了系统通过RBAC的权限模型来实现功能的权限控制,这里我们来介绍,通过扩展Mybatis-Plus的插件DataPermissionInterce...

spring事务传递特性-REQUIRES_NEW和NESTED
spring对于事务的实现的确是它的一大优点,节省了程序员不少时间。 关于交易有很多要谈的,比如实现方法、实现原则、交付特征等。[En]There is a lot to talk about abo...

来阿里一年后我迎来了第一次工作变动….
你为什么不更新它?为什么最近不那么活跃?你做了什么?你工作忙吗?[En]Why don't you update it? How come there is less dynamic recently...

Netty源码分析之自定义编解码器
在日常的网络开发当中,协议解析都是必须的工作内容,Netty中虽然内置了基于长度、分隔符的编解码器,但在大部分场景中我们使用的都是自定义协议,所以Netty提供了 MessageToByteEncod...