码迷,mamicode.com
首页 > 编程语言 > 详细

Java被忽略的基本知识(一)

时间:2016-12-07 01:56:09      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:知识   递归   可变参数   存储   而且   java项目   没有   字符串池   可见   

工作一段时间发现Java的基本知识不是一般的重要,基本知识好项目理解快。特此看java的基本知识书本《Java项目实战开发》李兴华版,看完此书准备再看一下java更深一点的书——《Java核心技术 卷1》、《Java核心技术 卷2》。

总结如下:

一 概念

1、Java数据类型分类

技术分享

2、String、true、false、null不是Java的关键字,关键字也叫保留字。

3、Java使用的是Unicode字符码系统。

4、任何数据类型遇到String类型的变量或常量之后都会向String类型转换。

5、数据属于引用数据类型,数组在声明后数组名再栈中保存,通过new关键字实例化要在堆中

    分配数组所需的内存,并将堆内存的操作地址给了数组名。将堆内存的使用权交给了对应的栈内存空间,

   而且一个堆内存空间首地址的使用权可以交给多个栈内存空间指向。

5、栈中存放的是堆内存的地址。

6、数组、类、接口都属于引用数据类型,所以变量名,变量的内容存储相似。

7、像数组这样属于引用类型,把数组作为参数传递给方法后,如果在方法中对数组进行了修改,

   修改后的结果将保存下来,主方法中的数组也将改变(String类是个例外后面讲)。

8、递归处理不当,比如递归的次数过多,可能出现内存溢出。

9、foreach输出 for(数据类型 变量名 :数组名)。

10、可变参数    方法名(数据类型...参数名),参数是以数组(数组名为参数名)的形式保存。

二 面向对象

11、封装就是为了对于外部不可见,属性不让外部直接操作,有时候赋值前需要判断其合理性。

     对于私有变量的封装使用setter和getter还有一个目的,在Java的反射机制中利于setter和getter设置和取得属性内容。

12、匿名对象就是没有明确给出名字的对象,一般只使用一次,没有栈内存,只有堆内存。

      一般作为其他类实例化对象的参数传递。eg:new Person("李四",30);

13、一个字符串就是一个String类的匿名对象,在直接赋值(不通过new关键字)的字符串中:

    如果一个字符串已经被一个名称所引用,则以后再使用相同的该字符串时,不在重新开辟新堆空间,

    虽然变量名称不同,但名称的栈空间的存放的堆地址相同,即指向同一个堆地址。

   对于String的以上操作,在Java中称之为共享设计。在java中提供一个字符串池来保存所有已经声明过的

   字符串,每当实例化一个String对象时,先看一下字符串池中是否存在,若存在指向相同的堆地址,若不存在

  开辟新的堆空间。

  而通过new String(“内容”)的对象,无论内容是否存在,都会开辟新的堆空间。

Java被忽略的基本知识(一)

标签:知识   递归   可变参数   存储   而且   java项目   没有   字符串池   可见   

原文地址:http://www.cnblogs.com/duange/p/6139651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!