来看Java String字符串对象的创立及办理
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net网页编程并驾齐驱的ConstantPool常量池的观点:
在讲到String的一些特别情形时,总会提到StringPool大概ConstantPool,可是我想良多人都不太分明ConstantPool究竟是个怎样的工具,运转的时分存储在那里,以是在这里先说一下ConstantPool的内容。
StringPool是对应于在ConstantPool中存储String常量的地区.习气称为StringPool,也有人称为StringConstantPool.仿佛没有正式的定名。
在java编译好的class文件中,有个地区称为ConstantPool,他是一个由数组构成的表,范例为cp_infoconstant_pool[],用来存储程序中利用的各类常量,包含Class/String/Integer等各类基础Java数据范例。
关于ConstantPool,表的基础通用布局为:
cp_info{
u1tag;
u1info[];
}
tag是一个数字,用来暗示存储的常量的范例,比方8暗示String范例,5暗示Long范例,info[]依据
范例码tag的分歧会产生响应变更。
关于String范例,表的布局为:
CONSTANT_String_info{
u1tag;
u2string_index;
}
tag流动为8,string_index是字符串内容信息,范例为:
CONSTANT_Utf8_info{
u1tag;
u2length;
u1bytes;
}
tag流动为1,length为字符串的长度,bytes为字符串的内容。
(以下代码在jdk6中编译)
为了具体了解ConstantPool的布局,我们参看一些代码:
Strings1="sss111";
Strings2="sss222";
System.out.println(s1+""+s2);
因为"sss111"和"sss222"都是字符串常量,在编译期就已创立好了存储在class文件中。
在编译后的class文件中会存在这2个常量的对应暗示:
08001101000673737331313108001301;......sss111....
0006737373323232 ;..sss222
<p>
不得不提一下的是:.net网页编程是看到java红,而开发出来的工具。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 是一种为 Internet发展的计算机语言 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 是一种为 Internet发展的计算机语言 是一种将安全性(Security)列为第一优先考虑的语言 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种将安全性(Security)列为第一优先考虑的语言 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
页:
[1]