当前位置:  技术问答>java相关

两个JAVA的基本概念问题,谢谢!

    来源: 互联网  发布时间:2015-09-19

    本文导语:  1、书上说 String test = "this is a string";  的test是一个对象,    我不明白,test 难道不是一个字符串变量吗? 创建对象不是要这样吗:    String test = new String(); 谢谢! 2、JDK装好后,那些类包到底放在哪里?是在 dt...


1、书上说 String test = "this is a string";  的test是一个对象,
   我不明白,test 难道不是一个字符串变量吗? 创建对象不是要这样吗:
   String test = new String(); 谢谢!
2、JDK装好后,那些类包到底放在哪里?是在 dt.jar和tools.jar里面吗,
   我把dt.jar和tools.jar解开后,好像没有找到书上说的那些类包。


|
String test = "this is a string"和 String test = new String("this is a string");效果上一样,但本质是有区别的,前一个创建时首先回到内存池中寻找是否存在该字符串,如果存在直接拿来,如果不存在则新创建一个,而后者无论如何都新创建一个字符串对象。所以这就是很多书上说的推荐用前者而不用后者。
jdk的类包在jdkjrelibrt.jar里面

|
1、String是java中一个特殊的对象,他不属于基本数据类型,但又可以象基本数据类型一样当左值使用。
其实String test1 = "this is a string",它是把test指向一个字符串池(不从新分配内存)。
而String test2 = new String("this is a string");是开辟一块新的内存区域。
所以:
String test1 = "this is a string";
String test2 = new String("this is a string");
test1 = test2 ? yes, no
肯定返回no,因为他们指向的地址不一样。

|
String test = "this is a string";  
實際上等同與;
String test=new String("this is a string");

在jdklib*.jar中

|
String是类,创建的test对象具有一些方法的

test.~~~~



|
直接付值是一种初始化方法,java 的一些"基本类型"可以这样操作

|
對啊,如果是先new,這時String s2="this",看到對象池里應該有"this"了吧,如果有就不創建,那s2和s1就是相同的對象了(內存地址相同)?
可是if(s1==s2)還是false啊

|
1.书上说的没错,java文档里有的。
String test = "this is a string";  

String test = new String(); 
完全一样,对string.


2.在jdklib*.jar中

|
用new 创建的对象是存在于堆中的,而用一般方法建立的是存在于堆栈中的。
而且最好把变量看成一个某个对象类型的句柄,这样比较好理解的。

    
 
 

您可能感兴趣的文章:

  • 请问“终端”和“显示器”这两个概念上有什么区别?
  • 请帮忙解释两个专业概念!
  • 如何运行包含两个文件的源文件?"引用"是什么概念?
  • 请教两个关于 java 基本概念的问题。
  • Oracle体系结构需要首先了解的两个概念
  • Oracle两个基本概念帮你了解体系结构
  • 下载了jbuilder5,是rar格式的,解开后有两个文件,一个是rsc-jb5.bin,一个是rsc-jb5.cue,据说这两个文件是刻光盘的,请问谁知道怎么刻?不会用这两个文件直接安装吧?谢谢!
  • 请问两个以上用户同时读一个文件的问题。谢谢!
  • 请问怎样从键盘读入一个字符串,怎样连接两个字符串,谢谢
  • awk输出两个文件相同部分,请指教.谢谢
  • 两个题请大侠们给个答案,谢谢。
  • 现在有两个操作系统:win98+win2000;请问在这样的环境下怎样安装linux?谢谢!!
  • 两个问题,请大家帮助!!!谢谢!
  • linux下,要实现两个程序共享同一个串口,该怎么设置参数?谢谢
  • 各位高手,请问我的机器已经安装了redhat8,想再安装winxp,能否实现两个系统双引导启动?谢谢
  • 急!同一个c文件里vfork();pthread_create();两个函数,Makefile该怎么写?谢谢
  • 新手求解linux编程两个问题,谢谢!!!
  • 两个问题,请高手帮忙解答一下,谢谢!
  • jbuilder5 编译器,为什么光标总停在实际上所指字符的前面两个字符前,在哪里改变一下设置,谢谢
  • 请看一下这个程序,有两个问题。谢谢
  • 急,socket编程的两个问题,谢谢
  • 请教两个脚本问题,高手帮忙解决一下吧,谢谢了
  • linux文件系统实验设计的两个问题。谢谢。
  • 从网上载了个C++程序的源代码,包含38个.cpp和.h,还有makefile.in和makefile.am两个文件,但无configure和makefile.请问怎么编译?谢谢!
  • 请教:两个程序只差一点点,可是结果却不相同,请各位大哥帮我看看原因?谢谢!
  • 各位高手,请问我的机器已经安装了redhat8,想再安装winxp,能否实现两个系统双引导启动?谢谢 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ MultiMaps 成员 swap():交换两个multimaps
  • 急!有两个char buf[]里面是两个日期(2004-08-02),怎样判断两个日期之间的天数?(只能用标准C)
  • C++ Lists(链表) 成员 merge():合并两个list
  • 一个Statement不能同时打开两个ResultSet?为了同时打开两个,可以考虑建立两个Statement?甚至两个Connection?
  • C++ Lists(链表) 成员 swap():交换两个list
  • Keepalived 能配两个虚拟ip吗,匹配两个数据库实例?
  • C++ Maps 成员 swap():交换两个map
  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • C++ Vectors 成员 swap():交换两个Vector
  • 两个域名,两个端口,一个服务器……
  • C++ Lists(链表) 成员 splice():合并两个list
  • 你们看是不是可以这样理解:在用来进行两个对象的比较时,==操作符用来比较两个对象的引用地址,而equals()用来比较两个对象的值。
  • C++ Strings(字符串) 成员 swap():交换两个字符串的内容
  • 基础问题,刚学的!请教,两个日期格式变量,我要求两个日期之间的天数,怎么求?
  • C++ Strings(字符串) 成员 compare():比较两个字符串
  • 主进程有两个线程,fork子进程后复制主进程两个线程的内存么?
  • cocos2d中CCSpriteFrameCache文件同时存在两个plist的问题解决
  • 我机器上安装了linux和win2000两个系统,请问如何在两个系统之间切换。
  • linux字符模式下怎样可以运行两个任务(开两个终端)
  • 听说,初学JAVA有两个开源程序是必看的,请问是哪两个。在那里下载?
  • 由同一个服务端创建两个线程分别向两个客户端同时发送不同的数据···


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3