文档章节

5,表达式中的陷阱

7
 761218914
发布于 2015/10/13 10:09
字数 473
阅读 33
收藏 1

关于字符串的陷阱;

第一次使用某一个字符串直接量得时候,jvm会将它放入字符串池中进行缓存;

关于内存泄漏例子:

String str=“hello”

String str=str+“java”

由于String里包含得字符序列是不能被改变的。 所以第二个str是指向另外一个字符串对象,此时hello字符串就会一次在内存中,垃圾回收机制不会回收它,此时就会内存泄漏。

如果要使用String可变字符串一般使用StringBuffer和StringBuilder,但是StringBuffer中绝大部分方法都使用了synchronized修饰符,以保证线程安全,但是它会降低该方法得执行效率。在没有多线程的环境下所以尽量使用StringBuilder类来表示字符串。

表达式类型的自动提升规则;

1,所有byte,short。和char类型都将被提升为int型。

char(byte,short)_int_long_float_double

2,整个算术表达式的数据类型自动提升与表达式最高级操作数同样得类型。

short sValue=5;
//定义了一个short类型变量,sValue将自动提升为int。
sValue=sValue-2;
// 讲一个int类型赋值给short类型变量时发生错误。
sValue-=2却可以编译正常,因为他等价与sValue=(sValue)(sValue-2);它包含隐士类型转换。(几乎所以双目运算符都包含隐士转换)
int val=3; 
int result=20/val;
System.out.println(""+result);
//输出6,可见结果为int类型。
System.out.println("hello"+'a'+7); 
System.out.println('a'+7+"hello");
输出  helloa7
     104hello 
当基本类型和String类型进行连接运算时,系统会将基本类型得值自动转化为String类型。

2,输入法也可能导致错误。

java程序通常不能包含全角字符,例如中文空格,tab制表符。

© 著作权归作者所有

共有 人打赏支持
7
粉丝 5
博文 133
码字总数 47263
作品 0
南昌
程序员
私信 提问
JavaScript 中的陷阱

全局变量 JavaScript 通过函数管理作用域。在函数内部声明的变量只在这个函数内部,函数外面不可用。另一方面,全局变量就是在任何函数外面声明的或是未声明直接简单使用的。 “未声明直接简...

cd_ing
2014/02/17
0
0
七、基本语句和运算

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 一、基本语句 C语言...

长平狐
2013/03/28
41
0
AngularJS: 使用Scope时的6个陷阱

在使用AngularJS中的scope时,会有6个主要陷阱。如果你理解AngularJS背后的概念的话,这6个点其实非常的简单。但是在具体讲述这6个陷阱之前我们先要讲两个其它的概念。 概念1: 双向数据绑定...

WolfX
2016/02/20
4
0
Learning Typescript读书笔记2

Chap 3 函数 1.函数定义包括函数声明和函数表达式,函数声明能力提升,可以使用在定义之前。 2.函数参数支持可选(?),必须是最后一个参数;支持默认值(参数类型后加=),必须是最后一个;支持...

GunnerAha
06/04
0
0
令人抓狂的代码 - 万能正则表达式.*陷阱

转载请注明joymufeng,欢迎访问PlayScala社区(http://www.playscala.cn) 原文链接:http://www.playscala.cn/article/view?id=10-59ee9f831d00000f0033a556 先尝试执行下面的代码: println(......

joymufeng
2017/10/24
0
1

没有更多内容

加载失败,请刷新页面

加载更多

tomcat线程模型

Connector结构 BIO模式 NIO模式

grace_233
22分钟前
1
0
Javascript

变量定义 以$,_,字母开头 大小写敏感 var 关键字声明变量 声明未赋值undefined 数据类型 字符串,数字,布尔,数组,NULL,undefined 变量均为对象 函数 无默认值 var声明的是局部变量 函数外声明...

关元
24分钟前
1
0
文件系统、服务、防火墙、SELINUX——安全四大金刚

一提到安全,大家都会想到防火墙,和文件系统权限。而实际工作环境中,我们在Linux的安全配置,会涉及到四个级别。我们思考一个场景,你要在百度盘中存放一个文件,这个动作需要考虑下面四个...

Linux就该这么学
25分钟前
1
0
从源码角度理解Java设计模式——门面模式

一、门面模式介绍 门面模式定义:也叫外观模式,定义了一个访问子系统的接口,除了这个接口以外,不允许其他访问子系统的行为发生。 适用场景:子系统很复杂时,增加一个接口供外部访问。 优...

我叫刘半仙
34分钟前
2
0
新鲜出炉,2019最新大厂面试题总汇!

在这个互联网技术快速迭代的时代,每个程序员都知道技术对于职业发展的重要性,那些技术好的程序员不仅薪资高,而且大多数集中在一线互联网企业工作,让人感觉非常高大上的同时,也想去大厂做...

Java架构资源分享
43分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部