- 浏览: 1147108 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
先定义S 1. String str1 = "abc"; System.out.println(str1 == "abc"); 步骤: 1) 栈中开辟一块空间存放引用str1, 2) String池中开辟一块空间,存放String常量"abc", 3) 引用str1指向池中String常量"abc", 4) str1所指代的地址即常量"abc"所在地址,输出为true 2. String str2 = new String("abc"); System.out.println(str2 == "abc"); 步骤: 1) 栈中开辟一块空间存放引用str2, 2) 堆中开辟一块空间存放一个新建的String对象"abc", 3) 引用str2指向堆中的新建的String对象"abc", 4) str2所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出为false 3. String str3 = new String("abc"); System.out.println(str3 == str2); 步骤: 1) 栈中开辟一块空间存放引用str3, 2) 堆中开辟一块新空间存放另外一个(不同于str2所指)新建的String对象, 3) 引用str3指向另外新建的那个String对象 4) str3和str2指向堆中不同的String对象,地址也不相同,输出为false 4. String str4 = "a" + "b"; System.out.println(str4 == "ab"); 步骤: 1) 栈中开辟一块空间存放引用str4, 2) 根据编译器合并已知量的优化功能,池中开辟一块空间,存放合并后的String常量"ab", 3) 引用str4指向池中常量"ab", 4) str4所指即池中常量"ab",输出为true 5. final String s = "a"; String str5 = s + "b"; System.out.println(str5 == "ab"); 步骤: 同4 6. String s1 = "a"; String s2 = "b"; String str6 = s1 + s2; System.out.println(str6 == "ab"); 步骤: 1) 栈中开辟一块中间存放引用s1,s1指向池中String常量"a", 2) 栈中开辟一块中间存放引用s2,s2指向池中String常量"b", 3) 栈中开辟一块中间存放引用str5, 4) s1 + s2通过StringBuilder的最后一步toString()方法还原一个新的String对象"ab",因此堆中开辟一块空间存放此对象, 5) 引用str6指向堆中(s1 + s2)所还原的新String对象, 6) str6指向的对象在堆中,而常量"ab"在池中,输出为false 7. String str7 = "abc".substring(0, 2); 步骤: 1) 栈中开辟一块空间存放引用str7, 2) substring()方法还原一个新的String对象"ab"(不同于str6所指),堆中开辟一块空间存放此对象, 3) 引用str7指向堆中的新String对象, 8. String str8 = "abc".toUpperCase(); 步骤: 1) 栈中开辟一块空间存放引用str6, 2) toUpperCase()方法还原一个新的String对象"ABC",池中并未开辟新的空间存放String常量"ABC", 3) 引用str8指向堆中的新String对象
发表评论
-
一个例子全部说明java泛型中的K,V,T,E,?,object的意思及其用法
2013-03-07 11:09 70471.意思 jdk中的K,V,T,E等泛型名称很多人以为 ... -
Log4j 把不同包的日志打印到不同位置
2012-11-29 08:23 1149需要的包和测试的代码下载附件! 如果需要将不同的日 ... -
Java多线程发展简史
2012-09-16 14:25 1034转自:http://www.raychase.ne ... -
Java编码易疏忽的十个问题
2012-09-06 08:52 911在Java编码中,我们容易 ... -
网络编程
2012-09-04 13:30 970计算机网络基础 什么是计算机网络 把分布在 ... -
获取Java程序运行的路径 | 获取当前jar包的路径
2012-09-04 11:55 14074经过试验,不管是否是 Jar 包,不管是否是 Tom ... -
java的concurrent用法详解
2012-08-03 11:28 1016我们都知道,在JDK1.5之前,Java中要进行业务并发时 ... -
Java程序员必知的8大排序
2012-07-05 09:56 10268 种排序之间的关系: ... -
Comparator与Comparable的区别
2012-07-05 08:38 1215当需要排序的集合或数组不是单纯的数字类型的时候,通常可以使用C ... -
RSA算法Java实现
2012-06-27 08:22 1415Java代码 package c ... -
队列阻塞浅析
2012-06-17 18:10 930这几天所做的项目中涉及到了队列阻塞机制,通过研究整理如下 ... -
Java面试过程中会遇到的问题
2012-06-13 13:04 11431、abstract的method是否可同时是static,是 ... -
【解惑】深入jar包:从jar包中读取资源文件
2012-06-13 13:02 1099我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。 ... -
java 处理文件路径中的空格
2012-06-13 12:57 1535问题背景: windows下有个目录名称Program ... -
java内存分配机制
2012-06-13 12:52 1171通过这几天对一个 ... -
byte[]转化成其他数据类型
2012-05-14 16:41 1651Java与其他语言数据类型之间的转换方法实例程序 /*** ... -
java中byte转换int时为何与0xff进行与运算
2012-05-14 16:39 1068java中byte转换int时为何 ... -
java整型数与网络字节序的 byte[] 数组转换关系
2012-05-14 16:31 6458工作项目需要在 java 和 c/c++ 之间进行 ... -
利用 Base64 缩短 UUID 至22位
2012-04-15 18:57 7166UUID还是比较常用的,尤其在web应用里。 有时在UR ... -
图解Java中的值传递与引用传递(更新版)
2012-04-09 12:49 1178编程的人,都会遇到值传递与引用传递的困惑,不过很快都会迎 ...
相关推荐
//这种用new关键字定义的字符串,是在堆中分配空间的。而分配空间就是由new去完成的,由new去决定分配多大空间,并对空间初始化为字符串"hello world" 返回其在堆上的地址。 通过上面的原理,可以做如下实验: ...
当使用`new String()`构造函数创建`String`时,会在堆内存中创建一个新的对象。即使两个`new`操作的字符串值相同,它们也会分别创建独立的对象。例如: ```java String s3 = new String("hello"); String s4 = new ...
而第二种是先在栈中创建一个对 String 类的对象引用变量 str,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令 str 指向”abc”,如果已经有”abc” 则直接令 str 指向“abc”。 在比较类里面的...
#### 四、堆与栈的区别 1. **生命周期**:栈内存中的变量在其定义的方法执行结束后就会被销毁;而堆内存中的对象直到没有引用指向它才会被垃圾回收。 2. **内存分配**:栈内存分配和释放速度快,而堆内存的分配涉及...
本篇文章将深入探讨`String`对象的内存分析,包括栈、堆、常量池以及静态存储的概念,并通过具体的示例来解析不同情况下`String`对象的创建和内存分配。 首先,了解Java内存的基本结构。Java内存分为以下几个区域:...
标题与描述中提到的知识点是关于C#编程语言中`String`与`string`的区别,以及`string`类型的...通过以上分析,我们可以深入了解C#中`String`与`string`的区别及其使用细节,这对于提高代码质量和程序性能具有重要意义。
Java 把内存划分为两种:一种是栈(stack)内存,一种是堆(heap)内存。在函数中定义的一些基本类型的变量和对象的引用变量都在栈内存中分配。当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间...
堆是一个运行时数据区,类的对象从中分配空间,通过new、newarray、anewarray 和 multianewarray 等指令建立,垃圾回收器会自动收走这些不再使用的数据。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉...
堆是一个运行时数据区,用于存放由 new 创建的对象和数组。Java 虚拟机的自动垃圾回收器负责管理堆中的内存,垃圾回收器会自动收走不再使用的数据。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,...
转化为以下几个步骤:先定义一个名为str的对String类的对象引用变量,然后在栈中查找有没有存放值为"abc"的地址,如果没有,则开辟一个存放字面值为"abc"的地址,接着创建一个新的String类的对象o,并将o的字符串值...
Java 中 int、char、String 三种类型的相互转换详解 Java 作为一种静态类型语言,对变量的类型定义非常严格。然而,在实际开发中,我们经常需要在不同的类型之间进行转换以满足不同的需求。其中,int、char、String...
Java内存机制主要包括堆内存(Heap)和栈内存(Stack)两个主要部分,它们各自具有不同的特点和作用。栈内存主要用于存储基本类型变量和对象的引用,而堆内存则用于存储对象实例。 首先,栈内存的分配是线性的,...
使用 `new` 关键字创建 `String` 对象时,虽然语法上看起来类似直接赋值的方式,但实际上是在堆内存中创建了一个新的 `String` 对象: ```java String s1 = new String("abc"); ``` 这种方式创建的字符串不会存放在...
Java中堆和栈的区别 Java是一种面向对象的编程语言,它的内存管理机制是自动化的,程序员不需要手动地分配和释放内存。Java中堆和栈是两个重要的概念,它们都是Java用于在RAM中存放数据的地方。 栈(Stack)是一块...
本文将基于提供的代码片段深入探讨与 `String` 类型相关的几个关键概念,包括字符串常量池、字符串比较、以及 `new` 关键字在创建 `String` 对象时的影响。 #### 一、字符串常量池的理解 首先,我们需要理解字符串...
栈主要用于存储基本类型变量和对象的引用,而堆则是用于存储由`new`关键字创建的对象和数组。 栈内存的特点在于它的快速存取和自动管理。当在代码中定义一个局部变量时,Java会在栈中为这个变量分配内存。一旦超出...
`CString`是MFC框架中定义的一个类,它提供了一些额外的功能,但通常不如`std::string`那么通用。 #### 二、boost字符串算法库 **2.1 boost字符串算法库导论** - **2.1.1 boost.algorithm.string是什么?** `...
- **数组长度**:当使用`new String[list.size()]`创建数组时,确保列表中的元素数量与数组长度一致,避免出现数组越界的问题。 - **性能考虑**:在转换过程中,尽量减少不必要的对象创建,尤其是当列表很大时,这...
总之,`StringFormat`是Android开发中的强大工具,无论是格式化基本类型的数据,还是构建复杂的网络请求URL,都能提供极大的便利。同时,定义全局变量可以有效地管理和复用资源,提升代码的可读性和维护性。
在Java中,当通过直接字面量方式定义字符串时,如`String s = "Hello";`,该字符串会被存储在一个特殊的区域——字符串常量池(String Constant Pool)中。如果尝试再次创建一个相同内容的字符串,如`String s2 = ...