- 浏览: 5053699 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (2844)
- java (1094)
- hadoop (37)
- jvm (39)
- hbase (11)
- sql (25)
- 异常 (83)
- div css (6)
- 数据库 (95)
- 有趣的code (15)
- struts2 (6)
- spring (124)
- js (44)
- 算法 (65)
- linux (36)
- hibernate (7)
- 中间件 (78)
- 设计模式 (2)
- 架构 (275)
- 操作系统 (91)
- maven (35)
- tapestry (1)
- mybatis (9)
- MQ (101)
- zookeeper (18)
- 搜索引擎,爬虫 (208)
- 分布式计算 (45)
- c# (7)
- 抓包 (28)
- 开源框架 (45)
- 虚拟化 (12)
- mongodb (15)
- 计算机网络 (2)
- 缓存 (97)
- memcached (6)
- 分布式存储 (13)
- scala (5)
- 分词器 (24)
- spark (104)
- 工具 (23)
- netty (5)
- Mahout (6)
- neo4j (6)
- dubbo (36)
- canal (3)
- Hive (10)
- Vert.x (3)
- docker (115)
- 分布式追踪 (2)
- spring boot (5)
- 微服务 (56)
- 淘客 (5)
- mesos (67)
- php (3)
- etcd (2)
- jenkins (4)
- nginx (7)
- 区块链 (1)
- Kubernetes (92)
- 驾照 (1)
- 深度学习 (15)
- JGroups (1)
- 安全 (5)
- 测试 (16)
- 股票 (1)
- Android (2)
- 房产 (1)
- 运维 (6)
- 网关 (3)
最新评论
-
明兜3号:
部署落地+业务迁移 玩转k8s进阶与企业级实践技能(又名:Ku ...
Kubernetes系统常见运维技巧 -
q328965539:
牛掰啊 资料收集的很全面
HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS) -
guichou:
fluent挂载了/var/lib/kubelet/pods目 ...
kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 -
xu982604405:
System.setProperty("java.r ...
jmx rmi 穿越防火墙问题及jmxmp的替代方案 -
大漠小帆:
麻烦问下,“获取每个Item相似性最高的前N个Item”,这个 ...
协同过滤推荐算法在MapReduce与Spark上实现对比
在面试的时候可能经常会被问到,String是否是可变的,我觉得String是可变的!你们觉得了?
public class T { /** * @param args */ public static void main(String[] args)throws Exception { // TODO Auto-generated method stub String s = "1"; System.out.println(s); c(s); System.out.println(s); } public static void c(String s)throws Exception{ Field f = s.getClass().getDeclaredField("value"); f.setAccessible(true); Object o = f.get(s); char[] c = (char[]) o; f.set(s, "5".toCharArray()); //System.out.println(s); } }
结果是
1
5
评论
17 楼
m635674608
2013-01-14
muyishuihan 写道
你都用反射了,还有什么不能做的
16 楼
muyishuihan
2013-01-14
你都用反射了,还有什么不能做的
15 楼
rainsilence
2013-01-12
kanme818 写道
我会回答可变,真的可不可变先不讨论,我知道在面试官心里,答案就是可变
别把面试官想的那么高端。人家也许也只知其一不知其二呢。所以要回答既不可变,又可变
14 楼
rainsilence
2013-01-12
m635674608 写道
rainsilence 写道
setAccessible(true)
取消一切类型检查,连private,final都没问题。
取消一切类型检查,连private,final都没问题。
如果面试官问你这样的问题,你怎么回答
简单,原理在于不变模式。因为不变模式,所以用正常的方法是无法改变值的。但是可以用反射改变
13 楼
m635674608
2013-01-12
qianhd 写道
恩, 要是用C 都能把你从这世界上抹掉
看来我得改行了。。
12 楼
qianhd
2013-01-12
恩, 要是用C 都能把你从这世界上抹掉
11 楼
m635674608
2013-01-12
if(i!=我){} 写道
m635674608 写道
if(i!=我){} 写道
你如果直接改内存数据的话,一切都是可变的!哗众取宠!!!!
如果面试官问你这样的问题,你怎么回答
我会说在不破坏java特性下是不可变的,然后略微说一下String变量的储存特性。如果这个解释令他很鄙夷你的话,你也用不着到这个公司上班!
10 楼
if(i!=我){}
2013-01-12
m635674608 写道
if(i!=我){} 写道
你如果直接改内存数据的话,一切都是可变的!哗众取宠!!!!
如果面试官问你这样的问题,你怎么回答
我会说在不破坏java特性下是不可变的,然后略微说一下String变量的储存特性。如果这个解释令他很鄙夷你的话,你也用不着到这个公司上班!
9 楼
m635674608
2013-01-12
kanme818 写道
kanme818 写道
我会回答可变,真的可不可变先不讨论,我知道在面试官心里,答案就是可变
sorry,是不可变~~~打错字了
不错。。正解
8 楼
kanme818
2013-01-12
kanme818 写道
我会回答可变,真的可不可变先不讨论,我知道在面试官心里,答案就是可变
sorry,是不可变~~~打错字了
7 楼
kanme818
2013-01-12
我会回答可变,真的可不可变先不讨论,我知道在面试官心里,答案就是可变
6 楼
m635674608
2013-01-12
rainsilence 写道
用了反射,一切设计模式都是浮云!
如果面试官问你这样的问题,你怎么回答
5 楼
m635674608
2013-01-12
rainsilence 写道
setAccessible(true)
取消一切类型检查,连private,final都没问题。
取消一切类型检查,连private,final都没问题。
如果面试官问你这样的问题,你怎么回答
4 楼
m635674608
2013-01-12
if(i!=我){} 写道
你如果直接改内存数据的话,一切都是可变的!哗众取宠!!!!
如果面试官问你这样的问题,你怎么回答
3 楼
if(i!=我){}
2013-01-12
你如果直接改内存数据的话,一切都是可变的!哗众取宠!!!!
2 楼
rainsilence
2013-01-12
setAccessible(true)
取消一切类型检查,连private,final都没问题。
取消一切类型检查,连private,final都没问题。
1 楼
rainsilence
2013-01-12
用了反射,一切设计模式都是浮云!
发表评论
-
Kryo 使用指南
2017-12-05 20:14 20541、Kryo 的简介 Kryo 是一个快速序列化/ ... -
spring session序列化问题排查
2017-12-01 19:07 6293严重: Servlet.service() for ser ... -
利用junit对springMVC的Controller进行测试
2017-11-30 16:26 1460平时对junit测试service/D ... -
Java内存模型之重排序
2017-11-29 09:44 870在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重 ... -
pmd spotbugs 文档
2017-11-28 10:02 0https://pmd.github.io/pmd/pmd ... -
PMD、FindBug、checkstyle、sonar这些代码检查工具的区别?各自的侧重点是什么?
2017-11-28 10:01 2153可以说都是代码静态分析工具,但侧重点不同。pmd:基于源代码 ... -
阿里巴巴Java代码规约插件p3c-pmd使用指南与实现解析
2017-11-23 17:09 1613阿里巴巴Java代码规约插件安装 阿里Java代码规 ... -
静态分析工具PMD使用说明 (文章来源: Java Eye)
2017-11-23 17:07 1153质量是衡量一个软件是否成功的关键要素。而对于商业软件系统,尤 ... -
MyBatis 使用 MyCat 实现多租户的一种简单思路
2017-11-20 18:27 2854本文的多租户是基于多数据库进行实现的,数据是通过不同数据库进 ... -
Spring+MyBatis实现数据库读写分离方案
2017-11-20 17:15 1112百度关键词:spring mybatis 多数据源 读写分离 ... -
数据库连接池druid wallfilter配置
2017-11-20 11:38 1360使用缺省配置的WallFilter <be ... -
java restful 实体封装
2017-11-16 09:47 1611package com.mogoroom.bs.commo ... -
dak
2017-11-15 11:21 0package zzm; import jodd.ht ... -
Java内存模型之从JMM角度分析DCL
2017-11-15 09:35 648DCL,即Double Check Lock,中卫双重检查锁 ... -
Java 打印堆栈的几种方法
2017-11-14 09:36 4771java 中可以通过 eclipse 等工具直接打印堆栈, ... -
Servlet Session学习
2017-11-10 09:25 563HTTP 是一种"无状 ... -
浅析Cookie中的Path与domain
2017-11-10 09:26 1070Path – 路径。指定与co ... -
入分析volatile的实现原理
2017-11-08 09:47 697通过前面一章我们了解了synchronized是一个重量级的 ... -
Spring MVC-ContextLoaderListener和DispatcherServlet
2017-11-15 09:35 698Tomcat或Jetty作为Servlet ... -
搭建spring框架的时候,web.xml中的spring相关配置,可以不用配置ContextLoaderListener(即只配DispatcherServl
2017-11-07 18:27 1443搭建spring框架的时候,web.xml中的sprin ...
相关推荐
在Java编程语言中,String对象被认为是不可变的。这个特性是Java设计者为了优化性能、安全性和线程安全性而有意设定的。理解String对象的不可变性对于Java开发者来说至关重要,因为它影响着代码的编写、内存管理和多...
在Java编程语言中,String对象被认为是不可变的,这意味着一旦创建了一个String实例,就不能更改它的内容。这种特性是由String类的设计决定的,它对程序员在处理字符串时提供了许多优势和安全保证。 首先,理解什么...
`String`类在Java中被广泛使用,因为它代表不可变的字符序列,这使得它在很多场景下非常安全。这里我们将深入探讨`String`对象在编译期和执行期的创建方式以及它们之间的差异。 首先,我们来了解一下编译期的`...
在Java编程语言中,String类是一个非常特殊且重要的类,它是不可变的。这个特性意味着一旦创建了一个String对象,它的值就不能被改变。这个设计决策背后有多种原因,包括性能、安全性和线程安全性。 首先,理解...
这是因为 String 对象是一种不可变的对象。一旦 String 对象被创建,它的值就不能被修改。例如,我们可以创建一个 String 对象 String str = "abc";,然后尝试修改它的值 str = "def";,但是,这样做并不会修改原来...
6. **String是不可变的**: `String`类的对象一旦创建,其内容就不能更改。每次对`String`对象进行修改操作(如`concat()`、`substring()`等),都会生成新的`String`对象。 7. **垃圾回收与String对象**: 如果...
String 对象有一个非常重要的特点,即它是不可变的(immutable)。这意味着一旦创建了 String 对象,它的值就不能被改变。 在 Java 中,可以使用两种方式创建 String 对象:一种是使用字面值赋值方式,例如 `String...
Java中的String类是不可变的,这意味着一旦创建了一个String对象,就不能改变它的内容。这个特性是由几个关键的设计决策和语言特性共同决定的。首先,String类被声明为final,这防止了其他类对其进行子类化并改变其...
### Java String对象的经典问题 #### 一、String 类与对象机制概述 在Java中,`String`类是一个非常重要的类,它提供了丰富的功能用于处理文本数据。`String`类是不可变的(immutable),这意味着一旦一个`String`...
尽管如此,`String` 类拥有其独特之处,比如它是不可变的(final),这保证了字符串一旦创建便不能更改其内容。 **常量池(Constant Pool)**:在 Java 编译阶段确定的数据集合,存储在 `.class` 文件中。它包含了类...
那么,为什么 Java 语言的设计者要把 String 类型设计成不可变对象呢?下面,我们将深入探讨字符串不可变性的原因和优点。 不可变对象的定义 不可变对象指的是对象创建之后,对象的内部状态以及对象的内存指针地址...
在Java中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。`String` 对象的创建涉及复杂的内存分配机制,特别是在Java虚拟机 (JVM) 的环境中。本文将详细介绍创建 `String` 对象过程中涉及的不同...
3. **线程安全**:由于`String`对象不可变,它们在多线程环境下可以安全地共享,无需额外的同步措施。这是Java设计者为了提高安全性及并发性能所做的决策。 4. **字符串池**:Java使用字符串池来存储常量字符串,以...
因为在程序编写的过程中,会大量地用到String常量,如果每次声明一个String引用都要新建一个String对象,那么会造成空间的极大浪费。于是,在java的堆中开辟了一块存储空间String pool,用于存储String常量对象。当...
字符串在JavaScript中是一种不可变的数据类型,这意味着一旦创建,就不能更改其内容。尽管如此,String对象提供了丰富的内置方法来处理字符串的各种需求,包括查找、替换、连接、格式化以及提取子字符串等。 首先,...
本文主要来介绍一下Java中的不可变对象,以及Java中String类的不可变性,那么为什么Java的String类是不可变对象?让我们一起来分析一下。 答案一: 流行的Java面试题之一是:什么是不可变对象(immutable ...
什么是不可变对象? 众所周知, 在Java中, String类是不可变的。... 对于Java初学者, 对于String是不可变对象总是存有疑惑。看下面代码: String s = ABCabc; System.out.println(s = + s); s = 1
动力节点的Java课程适合绝对零基础的观看,教程中讲解了Java开发环境搭建、Java的基础语法、Java的面向对象。每一个知识点都讲解的非常细腻,由浅入深。适合非计算机专业,想转行做Java开发的朋友,或者想让Java基础...
并且由于 String 对象是不可变对象,每次操作 String 都会重新建立新的对象来保存新的值。这样原来的对象就没用了,就要被垃圾回收。这也是影响性能的。 下面是一个实验,我们通过循环来连接 26 个英文字母重复加了...