- 浏览: 655650 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (170)
- Android (10)
- Java (35)
- PHP (3)
- Linux (3)
- Powerdesigner (2)
- dedcms (1)
- nginx (1)
- Flex (9)
- REST (2)
- Google App Engine (1)
- mysql (6)
- JAVA开源项目 (1)
- Eclipse (18)
- Eclipse Orion (1)
- Dojo (2)
- UML (1)
- Eclipse GEF EMF (4)
- Eclipse 插件开发 (6)
- OSGI (2)
- DeDeCMS (1)
- Maqetta (2)
- JavaScript (1)
- nginx php (1)
- Dojo V1.7 (2)
- Spring3 (4)
- Hibernate3 (4)
- MongoDB (3)
- Scala (2)
- DSL (1)
- Python (3)
- Maven (1)
- Tomcat (3)
- XMPP (2)
- Apache (4)
- NodeJS (1)
- SQLSERVER (2)
- HTML5 (1)
- Nexus (1)
- web服务器 (2)
- Jetty (2)
- weixin (1)
- ngrok (1)
- 网络与信息安全 (1)
最新评论
-
wangyudong:
配置有点晕,开源社区上找了一个开源的Holer,只需要设置Ac ...
用ngrok实现外网访问本地WEB项目的方法 -
lolo968:
你收集的资料没有链接
基于OSGI的框架开发小结(转) -
smartdog:
使用的maven的版本很老的,而且写的不是很清楚,建议可以参考 ...
Maven多项目依赖配置 -
Tom.X:
OSGi联盟官网:http://osgia.com
基于OSGI的框架开发小结(转) -
Miller003:
你好,我在本地测试时,删除catalina.jar和tomca ...
基于Tomcat7的HTML5 WebSocket 应用示例
一、栈内存 基础类型int, short, long, byte, float, double, boolean, char和对象引用 栈的共享特性 String str1 = "abc"; 1、编译器先处理String str1 = "abc";它会在栈中创建一个变量为str1的引用,然后查找栈中是否有abc这个值,如果没找到,就将abc存放进来,然后将str1指向abc。 2、 接着处理String str2 = "abc";在创建完b的引用变量后,因为在栈中已经有abc这个值,便将str2直接指向abc。这样,就出现了str1与str2同时均指向abc的情况。 二、堆内存 new、newarray、anewarray和multianewarray等指令建立 要注意: 我们在使用诸如String str = "abc";的格式定义类时,总是想当然地认为,创建了String类的对象str。担心陷阱!对象可能并没有被创建!而可能只是指向一个先前已经创建的 对象。只有通过new()方法才能保证每次都创建一个新的对象。 由于String类的immutable性质,当String变量需要经常变换其值时,应该考虑使用StringBuffer类,以提高程序效率。 三、 == 内存地址比对 String str1 = "abc"; String str3 = "abc"; System.out.println(str3 == str4); //flase str3值在栈内存中,str4值在堆内存中 String hello = "hello" ; String hel = "hel" ; String lo = "lo" ; System.out.println(hello == "hel" + "lo") ; //true //两个常量相加,先检测栈内存中是否有hello如有有,指向已有的栈中的hello空间 System.out.println(hello == "hel" + lo) ; //flase System.out.println(hello == hel + lo) ; //flase //lo是在常量池中,不检查栈内存,在堆中产生一个新的hello 四、 equals 值进行比对 public boolean equals(Object anObject) 将此字符串与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 String str5 = "abc"; System.out.println(str5.equals(str6)); //true str5的值str6的值比对 五、 intern 栈中值的内存地址 Public String intern() 当调用 intern 方法时 1、如果池已经包含一个等于此 String 对象的字符串(用equals(Object) 方法确定),则返回池中的字符串。 2、将此 String 对象添加到池中,并返回此 String 对象的引用。 String s7 = new String("abc") ; String s8 = "abc" ; System.out.println(s7 == s7.intern()) ;//flase; System.out.println(s8 == s7.intern() );//true 1.检查栈内存中有没有abc对象如果有 2.将s7指向pool中abc |
发表评论
-
JVM系列三:JVM参数设置、分析(转)
2014-09-28 15:04 1084不管是YGC还是Full GC,GC过程中都会对导致程序运 ... -
Java中static、final用法小结 (转)
2012-08-26 10:51 1975一、final 1.final变量: ... -
java位操作符总结(转)
2012-08-17 11:16 1285以下是java位操作符的小总结,具体如下:二进制负数以它 ... -
Servlet生命周期与工作原理(转)
2012-08-14 16:57 1052Servlet生命周期与工作原理 Servle ... -
java类继承总结一 父类类型与子类类型之间的转化问题(转)
2012-08-06 21:13 8680java类继承总结一 父类类型与子类类型之间的转化问 ... -
java堆和栈小结(转)
2012-08-05 21:45 1055(1)JAVA中基本数据类型直 ... -
Java常见异常(Runtime Exception )小结--转
2012-08-02 21:04 1340Java常见异常(Runtime Exception ) ... -
java.lang.NoClassDefFoundError: org.objectweb.asm.Type
2012-06-03 15:27 2471在使用spring3的aop时,出现如下的错误: ja ... -
Bean named '*' must be of type [*], but was actually of type [$Proxy16]
2012-06-03 14:14 28356在用junit测试dao接口时,出现以下的错误 Caused ... -
saveOrUpdate is not valid without active transaction
2012-06-03 13:07 6857在使用Spring+Hibernate的框架时,在applic ... -
spring BeanCreationException confusion about mapping
2012-05-31 20:08 1378在进行spring3+rest配置时,出现了以下的错误: C ... -
如何获取新浪微博的登录参数
2012-05-23 20:32 77191、用Chrome的开发者工具或者Firefox的Firebu ... -
Java 程序中使用相对和绝对路径读取文件
2012-05-21 14:24 9154在Java中用File对象来创建文件时,绝对路径一般是不会出现 ... -
线程安全与线程不安全
2012-04-26 16:43 1219线程安全是针对多线程来讲的,如果所使用的公用变量在多线程 ... -
StringBuilder、StringBuffer和String的关系
2012-04-26 16:33 10081. String 类 S ... -
插件开发中如何正确使用第三方jar包
2012-04-21 20:48 2473在进行eclipse插件开发过程中,除了引用Eclipse本身 ... -
Errors running builder 'JavaScript Validator' on project '......'.
2012-04-21 20:36 31325在编译java工程时,如果出现 “Errors occu ... -
The method *** of type *** must override a superclass method
2012-04-21 20:34 1354如果在实现接口时,出现了“The metho *** o ... -
Java 1.6动态编译器 null问题
2012-03-16 10:45 15621、在java程序中用JavaCompiler compile ... -
在线Base64编码
2012-03-13 09:22 1813最近需要使用icon转换成base64编码,搜寻到一下网站: ...
相关推荐
### 详解Java堆和栈 #### 一、引言 在Java编程中,理解堆(Heap)和栈(Stack)的概念及其区别对于程序员来说至关重要。本文将深入剖析这两个概念,并探讨它们之间的差异以及如何影响程序的运行。 #### 二、Java...
### Java中堆内存和栈内存详解 #### 一、引言 在Java编程语言中,内存管理是一项核心技能。为了更好地理解和使用Java,必须清楚地了解堆内存与栈内存的区别及其工作原理。本文将深入探讨Java中堆内存与栈内存的概念...
### Java内存空间详解 #### 一、Java内存机制概述 Java程序在运行过程中涉及的内存主要分为两大类:栈内存和堆内存。 1. **栈内存**:主要用于存储局部变量和对象的引用变量。栈内存的特点是先进后出,即先压入的...
### Java中堆内存和栈内存详解 #### 一、引言 在Java编程语言中,内存管理是一项核心技能。为了更好地理解和使用Java,了解其内存分配机制至关重要。本文将详细介绍Java中的两种主要内存区域——堆内存(Heap ...
本文旨在详细介绍Java内存分配机制中的几个关键概念:寄存器、栈、堆、静态域、常量池及其在Java运行时环境中的角色与功能。 #### 二、Java内存分配机制概述 Java内存分配主要涉及以下几个区域: 1. **寄存器**:...
### Java内存分配详解 #### 一、Java内存区域划分 Java程序在运行过程中涉及的内存主要分为两大类:栈内存和堆内存。 1. **栈内存**:主要用于存储局部变量,如基本数据类型变量(int、long、char等)以及对象的...
Java栈主要用于存储局部变量等数据结构,它是线程私有的,因此每个线程都有自己的独立栈空间。当一个线程创建时,其栈也随之创建;当线程结束时,其栈也会被销毁。Java栈的特点是先进后出(First In Last Out, FILO...
### 详解Java学习中堆与栈的内容 #### 一、引言 在Java学习过程中,堆(Heap)和栈(Stack)是两个非常重要的概念,它们对于理解Java内存管理机制至关重要。很多初学者在接触到这两个概念时往往感到困惑,本文将...
Java的内存分配策略与编译原理密切相关。静态存储分配在编译时就确定了存储空间,适用于没有可变数据结构和嵌套/递归结构的场景。栈式分配适用于生命周期短、生存期确定的变量,而堆式分配则适合于需要动态分配和...
堆内存是Java中最主要的动态内存分配区域,用于存储通过`new`关键字创建的对象和数组。 - **对象存储**:通过`new`关键字创建的对象以及数组都存储在堆内存中。 - **引用变量**:在栈中定义的引用变量指向堆内存...
Java String 使用详解 Java String 使用详解是 Java 编程语言中最基础也是最重要的一部分,对于 Java 程序员来说,了解 String 类的使用方法是必不可少的。本文将详细介绍 Java String 的使用方法,包括 String ...
### Java中堆与栈的区别详解 #### 一、概述 在Java编程语言中,了解堆与栈的区别对于理解和管理程序的内存使用至关重要。本文将详细解释Java中的堆和栈的概念,以及它们之间的区别。 #### 二、Java堆 Java堆是...
### Java中堆和栈的区别详解 #### 一、引言 在Java编程语言中,内存管理是一项非常重要的任务。为了确保程序的高效运行以及资源的有效利用,Java虚拟机(JVM)将内存划分为堆和栈两种类型。这两种内存区域各自承担着...
### Java的内存分配详解 #### 一、Java内存模型概览 Java的内存管理是Java程序性能的关键之一。为了确保程序高效稳定地运行,开发者必须理解Java如何管理和分配内存资源。Java程序的内存主要分为以下几个部分: -...
- **调整JVM参数**:通过-Xms和-Xmx设置初始和最大堆大小,避免因内存分配不足导致的溢出。例如,可以尝试增大-Xms和-Xmx的值,如`-Xms512M -Xmx1024M`,并使用-Xloggc:gc.log开启GC日志,便于分析内存使用情况。 ...
JVM 内存分配主要涉及到五个运行时数据区域:程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区。 1. 程序计数器:它是线程私有的,一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号...
### Java内存分配原理精讲 #### 一、引言 Java作为一门广泛应用于企业级开发的语言,其内存管理和分配机制是其核心技术之一。本文旨在深入探讨Java内存分配的基本原理及其在不同内存区域的具体表现,帮助读者更好...
### 创建string对象过程的内存分配详解 #### 一、引言 在Java中,`String` 类是最常用的数据类型之一,用于表示不可变的字符序列。`String` 对象的创建涉及复杂的内存分配机制,特别是在Java虚拟机 (JVM) 的环境中...