工作一段时间发现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被忽略的基本知识(一)的更多相关文章

  1. Java被忽略的基本知识(四)

    Java IO(不是一般的重要) 54.IO中的流:字节流(InputStream.OutputStream).字符流(Reader.Writer).转换流(InputStreamReader.Out ...

  2. Java被忽略的基本知识(三)

    35.e.printStackTrace();输出异常信息,也可以使用System.out.println(e); 36.范围小的异常,要放在范围大的异常前面. 37.断言:判断某个结果的正确性,正确 ...

  3. Java被忽略的基本知识(二)

    14.字符串的内容不可改变,不能修改某个下标的字符值.字符串之间的"+"连接是通过"断开--再连接",修改变量的栈中的引用地址指向. 15.对于数组.类(类的属 ...

  4. JAVA学习笔记—review基本知识[反射与异常]

    JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...

  5. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  6. Java 7 中的Switch 谈 Java版本更新和反编译知识

    Java 7 中的Switch 谈 Java版本更新和反编译知识          学习编程,享受生活,大家好,我是追寻梦的飞飞.今天主要讲述的是Java7中的更新Switch实现内部原理和JAD反编 ...

  7. 两个容易被忽略的mysql知识

    原文:两个容易被忽略的mysql知识 为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql ...

  8. Java内存原型分析:基本知识

    转载: Java内存原型分析:基本知识 java虚拟机内存原型 寄存器:我们在程序中无法控制 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 堆:存放用new产生的数据 静 ...

  9. Java 工程师应该掌握的知识

    以 Java 工程师应该掌握的知识为例,按重要程度排出六个梯度: 第一梯度:计算机组成原理.数据结构和算法.网络通信原理.操作系统原理. 第二梯度:Java 基础.JVM 内存模型和 GC 算法.JV ...

随机推荐

  1. CentOS7下安装chrome浏览器

    在CentOS 7环境下安装chrome浏览器 1.修改yum源 在/etc/yum.repos.d/目录下新建文件google-chrome.repo,向其中添加如下内容: [google-chro ...

  2. mysql缓存、存储引擎

    一.         mysql查询缓存 查询缓存不是mysql的子系统,却是查询优化和执行子系统不可缺少的组成部分.它不仅可以缓存查询结果,还可以缓存查询结果本身.如果某个查询的结果就在缓存里, 系 ...

  3. pythonchallenge 解谜

    所有代码均使用python 3.5.1 版本 最近在学python,闲来无事觉得这个解谜还挺有意思. 解谜网址  http://www.pythonchallenge.com/ 接下来会写破解教程~

  4. java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)可能出现的原因

    可能是因为你的服务器http连接过多,导致端口被占用,无法释放

  5. MySQL优化性能my.cnf详解

    提供一个MySQL 5.6版本适合在1GB内存VPS上的my.cnf配置文件(点击这里下载文件): [client] port=3306 socket=/tmp/mysql.sock [mysqld] ...

  6. php进程占用大量cpu优化

    使用TOP 命令发现php进程占用大量的cpu,达到100%,需要优化. 1 ll /proc/6264/fd 查看进程正在使用的资源 2 strace -p 6264 追踪进程正在做的事情 引用 h ...

  7. 如何使用QQ号进行快捷登录

    注意:第三步回调地址域名必须严格按照规范填写否则无法使用.QQ回调地址域名为您的网站地址无论您是否为DISCUZ论坛,请全部使用网站申请.discuz论坛申请的KEY无效注册QQ登录应用将会获得该应用 ...

  8. Windows 10家庭版共享打印机

    原文地址:http://blog.csdn.net/Purpleendurer/article/details/50498788P.s. 原文太罗嗦,简化了一下~ 启用Guest账户 按Win+X,从 ...

  9. shell 条件判断

    一.数值判断 INT1 -eq INT2           INT1和INT2两数相等为真 INT1 -ne INT2           INT1和INT2两数不等为真 INT1 -gt INT2 ...

  10. erlang文章博客推荐

    博客排名不分先后. 诸霸,http://blog.yufeng.info/. 淘宝核心系统资深技术专家,真的是专家,了解erlang已不久局限于erlang,而且现在也一直在更新技术博文,和陈晧一样. ...