java字面量
❶ java中变量为byte类型
b是byte类型,3是字面量,JAVA中字面量默认为INT类型,并且有一点很重要:INT ,CHAR ,BYTE ,这三个类型的变量,任选两个类型变量或同类型两个变量相加,结果都为INT 类型的量
b+3结果为int类型变量,将它赋值给byte类型的b,所以报错Type diamatch:cannot convert from
int to byte。
❷ java中byte b=10;byte b1=~b;编译错误原因。byte b 2=~10;是正
java中byte在内存中实际上是用int运算的。b取反后,会自动变成int类型。加法、减法,都一样,byte会自动变成int类型。所以会报错。
而~10可以,这是java字面量编译原则,会先将~10计算出来。在赋值给byte,所以不会有问题。
❸ java 如何缓存几十M的字符串
java的字符串字面量的长度是有限制的,6万多个字符。
几十M的就需要你切割用+拼接了,或者使用文件输入流读到内存中
❹ JAVA中字面量是什么意思
字面量是指双引号引住的一系列字符,双引号中可以没有字符,可以只有一个字符,也可以有很多个字符。
❺ 我是一个java初学者,分不清字符串与字面量的区别
这个问题其实牵扯就有点多了
在java里,除了int,long等基本类型外
其余都是类,包括String,所以String是个类,他是个封装了操作字符串的方法的类
比如String
s=new
String("a
string")
"a
string"是个字符串对象
s也是个字符串对象,使用String类的构造器方法构造的一个字符串实例(对象)
字符串在java中就是一个对象
一般来说,String都是指String这个类(首字母大写),string指的是字符串年
说的不清楚,建议去看看thinking
in
java,我想你应该是学过其他语言的,所以这本书应该比较适合你肯,里面讲面向对象思想讲的很好
❻ JAVA中的直接量,宏替换,常量池,宏常量,常量
-- 直接量,在js中有这个概念,java中没听说过
直接量也称为字面量,是JavaScript中一种对象的表示(或者说创建)方式,它可以通过直接给变量赋上JavaScript中原生对象值的方式从而转换为一个相应的对象。
对象直接量提供了一种创建并初始化新对象的简单而直接的方式。
var circle={x:0, y:0, radius:2,speed:function(){alert('ok')}}
说白了==>Javascript里直接量即对象的json表示法
供参考By monical
-- 宏替换 c/cpp里面的概念,不明
-- 常量池,java里指的是jvm的常量池,下面是原文:
For each type it loads, a Java Virtual Machine must store a constant pool. A constant pool is an ordered set of constants used by the type, including literals (string, integer, and floating point constants) and symbolic references to types, fields, and methods. Entries in the constant pool are referenced by index, much like the elements of an array. Because it holds symbolic references to all types, fields, and methods used by a type, the constant pool plays a central role in the dynamic linking of Java programs.
大概是讲常量池保存了各个类型的引用,对java这种动态语言很重要.
--宏常量 c/cpp里面的概念,不明
-- 常量,所有编程语言都有,java的常量就是给定的量,死的.比如int i= 1;i就是常量,不同的常量存储的区域不大一样.
分static变量,final变量,全局变量,局部变量等.
❼ 解释字面量,常量和变量之间的区别
区别:
1,在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复合类型的值也支持字面量表示法。
2,“常量”在程序运行时,不会被修改的量。换言之,常量虽然是为了硬件、软件、编程语言服务,但是它并不是因为硬件、软件、编程语言而引入。
常量区分为不同的类型,如25、0、-8为整形常量,6.8、-7.89为实型常量,‘a’‘b’为字符常量。常量一般从其字面形式即可判断。这种常量称为字面常量或直接常量。
3,变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如
Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和
Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。
❽ Java的String用法
java中String类型的字面量(即“java”这个字符串)是存放在内存中的静态存储区,当程序执行到String a = "java";该区域里就会生成一个字符串字面量“java”,执行String b = "java";时,java对字符串的创建过程进行了优化,会先去该区域里寻找字面量为“java”的字符串,如果找到了,就把该字符串的引用指向到b,如果找不到就创建新的字符串“java”,所以a和b共用一个。加号(+)是字符串的一个连接方法,可以理解为String类的concat方法,String c = x +y;和String c = x.concat(y);效果是一样的,变量c接受的是concat方法的返回值,是内存中“ja”和“va”连接后的对象,与前面的过程不是一码事!如果还不理解,可以再问我!
❾ Java中,这些字符串什么时候进入常量池的
Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new String("droid");,这两种方式我们在代码编写时都经常使用,尤其是字面量的方式。然而这两种实现其实存在着一些性能和内存占用的差别。这一切都是源于JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池。