- 浏览: 209845 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (267)
- java.lang (8)
- 问题汇总 (21)
- 异常记录 (20)
- 功能实现 (19)
- 面试总结 (25)
- 技巧总结 (8)
- 常用代码 (4)
- 编程习惯 (3)
- 编码规则 (3)
- java.util (10)
- java.io (1)
- JavaWeb (9)
- MySQL (16)
- SVN (3)
- MyBatis (11)
- Velocity (7)
- 其他知识 (10)
- 人生哲理 (1)
- 人生故事 (1)
- 自我感悟 (1)
- shiro (3)
- 基础知识 (0)
- 问题总结 (1)
- Spring 标签 (1)
- Spring (3)
- 点滴生活 (1)
- DOS (1)
- CAS (4)
- Linux (9)
- Storm (6)
- Shell (1)
- regex (1)
- Collection (4)
- poi (1)
- 经典语句 (1)
- NIO (5)
- concurrent (14)
- RPC (1)
- zookeeper (3)
- 待整理 (2)
- Hadoop (9)
- RabbitMq (2)
- flume (1)
- hive (7)
- hbase (4)
- kafka (1)
- scala (1)
- GC (0)
- java.util.concurrent.atomic (1)
- java.lang.ref (6)
- JVM (2)
- algorithm (1)
- conception (1)
- java key word (1)
- sun.misc (1)
最新评论
String StringBuilder StringBuffer 的区别
代码应用
正确输出结果:
问题:
1.经过Trim()之后应去掉两边多余的空格(包括制表符),为什么此处输出没有变化
说明:
1.字符串对象(String Object)是非可变的(immutable),这个题目容易迷惑人的地方在s.trim( )这一行。
2.理解对象引用和不可达对象会由垃圾回收器收集。
解决:
如果需要输出前后没有空格的”Hello World”,那么应该将s.trim( )再赋值给”s”。这个赋值操作可以让s指向新创建出来的字符串对象。
StringBuilder不是一个线程安全的类,因此仅仅用作本地变量是没有问题的。如果你希望用作实例变量,那么可以选择线程安全的StringBuffer类。
运行StringBuilder 会出现ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JD
添加System.exit(0); 可避免
博文转载:
http://www.importnew.com/2217.html
代码应用
public static void main(String[] args) { String s = " Hello "; s += " World "; s.trim( ); System.out.println(s); }
正确输出结果:
Hello World
问题:
1.经过Trim()之后应去掉两边多余的空格(包括制表符),为什么此处输出没有变化
说明:
1.字符串对象(String Object)是非可变的(immutable),这个题目容易迷惑人的地方在s.trim( )这一行。
2.理解对象引用和不可达对象会由垃圾回收器收集。
解决:
如果需要输出前后没有空格的”Hello World”,那么应该将s.trim( )再赋值给”s”。这个赋值操作可以让s指向新创建出来的字符串对象。
StringBuilder sb = new StringBuilder(" Hello "); sb.append(" World "); System.out.println(sb.toString().trim()); StringBuffer sf = new StringBuffer(" Hello "); sf.append(" World "); System.out.println(sf.toString().trim()); System.exit(0);
StringBuilder不是一个线程安全的类,因此仅仅用作本地变量是没有问题的。如果你希望用作实例变量,那么可以选择线程安全的StringBuffer类。
运行StringBuilder 会出现ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JD
添加System.exit(0); 可避免
博文转载:
http://www.importnew.com/2217.html
发表评论
-
京东商城--商城研发部面试
2017-12-01 19:30 5852017年12月01日 笔试题目 1. final fina ... -
海量日志数据,提取出某日访问百度次数最多的那个IP
2017-11-29 21:18 2220问题:一个的日志文件中存放IP地址,按照访问量对IP地址取访问 ... -
输出十进制数字的二进制数的表示
2017-11-03 23:16 1097一、代码如下: public static void m ... -
将数组中的内容随机打乱
2017-10-27 22:45 508问题:斗地主游戏,开局会将纸牌重新打乱,请用数组的随机排序实现 ... -
JVM基础
2017-10-26 22:41 419一、Java 运行时区域 《 ... -
String为什么使用final 修饰
2017-10-25 22:32 965主要是为了”安全性“和”效率“的缘故 1、由于String类 ... -
沐金地面试记录
2017-10-25 22:15 50210.25 下午同事帮忙投递的,约在晚上面试,下班之后赶紧去了 ... -
JD广告部面试经历
2017-10-23 16:46 426同事的同事招聘,于是同事帮忙推荐了一下! 2017年10月1 ... -
编程题目(一)
2017-09-28 22:28 3951.函数:参数为两个字符串a,b ,判断 b 中是否包含 a ... -
值传递与引用传递
2017-05-30 12:25 325一、值传递与引用传递 其实按值还是按引用的区别在于“是否在传 ... -
装箱与拆箱
2016-10-24 22:46 524public class IntegerTest { ... -
CS架构和BS架构的区别
2015-05-25 08:50 477一、简介 1.C/S结构,即 ... -
HTTP常见响应状态码
2015-05-20 08:26 416问题:程序调试过程中 ... -
JIT的概念
2015-05-19 18:48 703参考文献: http://blog.csdn.net/yan ... -
JDK与JRE与JVM的区别
2015-05-19 18:45 10941.JDK (1)概念 JDK : Java Developm ... -
运行时与编译时
2015-05-17 18:05 535运行时与编译时 博文转载:http://www.import ... -
System.exit(0)与return的区别
2015-05-17 16:49 1021问题:System.exit(0)与return的区别 1. ... -
重载(overloading)与重写(overriding)
2015-05-17 15:50 636问题:重载(overloading)与重写(overridin ... -
==和equals
2015-05-15 20:07 650参考文献: http://www.cnblogs.com/zh ... -
return finally 与 System.exit(n)
2015-05-10 18:00 665问题:System.exit(n);的含义以及作用 说明: ...
相关推荐
什么是不可变性呢?简单来说,就是 String 对象一旦被创建,不能被修改。那么,为什么 String 对象不能被修改呢?这就需要从 Java 的内存分配机制说起。 Java 把内存划分为两种:一种是栈(stack)内存,一种是堆...
在引言部分,作者讨论了在广义相对论下,时间反演的可变性与不可变性原则上的过度可能性,以及在微观和宏观层次下观测到的不同时间反演行为。例如,在微观尺度下时间反演可变与不可变是共存的现象,而在宏观长时间...
总的来说,本篇文章提供的Java学习路径强调了编写可维护代码的重要性,包括使用final关键字、理解可变性与不可变性、采用函数样式编程、控制变化以及运用单元测试和重构。这些知识对于任何Java程序员来说都是宝贵的...
列表和for循环章节中,详尽地介绍了列表的概念、方法、for循环的使用,以及索引、range()函数的用法,还涉及了可变性与不可变性的概念。 从这些内容可以看出,这本书是一个很好的入门教材,它不仅为读者提供了编程...
可变性与不可变性 在函数式编程中,数据通常是不可变的,这意味着一旦创建,对象的值就不能更改。这种设计减少了副作用,提高了代码的可预测性和测试性。例如,在使用Scala或Haskell等纯函数式语言时,所有的数据...
- **可变性与不可变性**:对象分为可变对象和不可变对象。不可变对象(如整数、字符串)一旦创建就不能更改其状态;而可变对象(如列表、字典)可以在创建后修改其内容。 - **别名**:Python中的对象可以通过多个...
4. **数组的可变性与不可变性** JavaScript中的数组是可变的,这意味着可以直接修改原数组。然而,在某些情况下(如函数返回结果、React的状态更新等),我们可能需要保持数据的不可变性,这时`filter()`方法就显得...
1. **可变性与不可变性**:Sycamore 支持创建可变和不可变的树。不可变树是线程安全的,可以在多线程环境中使用,而不用担心数据竞争问题。 2. **高效操作**:由于其内部实现,Sycamore树的操作通常具有很好的性能,...
本文将深入探讨Java中String的不可变性,分析其设计原因,并讨论其优势和最佳实践。 Java中的String类是不可变的,这是由于其内部使用final字符数组实现的。这种设计带来了线程安全、内存优化和性能提升等优势,但也...
### Java常用类与基础API-String的理解与不可变性 #### 一、字符串相关类之不可变字符序列:String ##### (1) 对String类的理解(以JDK8为例说明) **1. 环境** 本文档使用JDK 8进行演示。JDK 8的环境设置确保了...
不可变对象由于其不可变性,更易于进行引用计数,而可变对象可能涉及更复杂的引用关系,如循环引用,需要更复杂的垃圾回收策略。 总的来说,了解Python中的可变与不可变数据类型及其特性,可以帮助我们更好地控制...
总结来说,Python的对象引用允许变量共享同一块内存,可变性和不可变性决定了对象的内容是否可改变,垃圾回收机制则负责高效地管理内存。了解这些概念对于编写高效、无内存泄漏的Python代码至关重要。在实际编程中,...
由于列表的可变性,它在处理动态数据和需要频繁修改的情况时特别有用。 接着,元组(Tuple)是Python中的不可变数据类型。元组用圆括号`()`表示,元素之间同样用逗号分隔。例如,`(1, 2, 3)`就是一个包含整数的元组...
String类是Java中不可变性的一个经典例子。它的`value`数组存储字符,一旦创建,就无法更改。String类的所有方法,如`substring`、`concat`等,都会返回新的String对象,而不是修改原对象。例如,`String(char value...
不可变性意味着一旦创建了数据结构,就不能更改其内容。这种特性可以带来很多好处,例如更容易的并发处理、更好的性能优化以及更简单的调试。在JavaScript中,虽然原始类型(如字符串、数字和布尔值)本身就是不可变...
理解不可变性是非常重要的,无论是Java语言规范还是Java存储模型都没有对不可变性做出正式的定义。因此,需要开发者自己来确保对象的不可变性。例如,在定义不可变类时,需要将所有域都声明为final类型,并且确保...
不可变性保证了数据的安全性,因为它们不会因为意外的修改而产生副作用,特别适用于多线程或并发环境。 2. **Python中的可变与不可变容器**: Python的列表、字典等是可变容器,允许添加、删除或更改元素。而元组...
**不可变性与持久化数据** 不可变性意味着一旦创建一个对象,其状态就不能改变。在`immutable.js`中,对数据的任何操作都会返回一个新的对象,而不是直接修改原有对象。这种特性确保了代码的预测性,减少了因意外...
Java编程学习之java的不可变数据结构 在Java编程中,数据结构的不可变性是一个非常重要的概念。许多开发人员认为,只要使用final...但是,我们需要正确地理解不可变对象的概念,并正确地设计类以确保对象的不可变性。
列表的可变性使其成为需要修改数据时的理想选择,而元组的不可变性则适用于确保数据不被更改的场景。掌握这两种数据结构的使用方法对于Python编程至关重要。通过本文的介绍,你应该对如何在Python中使用列表和元组有...