2.基本概念和认识

2.1 Java引用

Java中一切皆是对象,一切对象实例的标识符号(对象名称)都只是对象的引用。

2.2 对象的创建

  1. 通过new关键字创建,但是要注意基础类型和String类型的特殊之处并且还有常量池的概念。
  2. 放在哪里:
    • 寄存器:位于CPU内部,这是存取最快的区域,但是Java并不能直接控制,程序运行过程中也并不能感知到这一块的分配和操作情况;
    • 堆栈:位于RAM,存放基础类型变量数据和对象、数组的引用,但是对象本身并不在堆栈中,而是在堆中或常量池中;
    • 堆:位于RAM,存放new出来的对象;
    • 静态存储:位于RAM,存放static变量;
    • 常量存储:可以放在ROM,存放public final static变量;
    • 非RAM存储:硬盘等永久存储空间,存放持久化对象。
  3. 存取速度:寄存器>堆栈>堆>其它
  4. 基本类型:基本类型不是创建对象并放在堆中而是直接将值放在堆栈中,这样更加高效,这些基本类型有:
    基本类型 大小 最小值 最大值 包装类
    boolean - - - Boolean
    char 16bit unicode 0 unicode 216 - 1 Character
    byte 8bit -128 +127 Byte
    short 16bit -215 +215 - 1 Short
    int 32bit -231 +231 - 1 Integer
    long 64bit -263 +263 - 1 Long
    float 32bit IEEE754 IEEE754 Float
    double 64bit IEEE754 IEEE754 Double
    void - - - Void

  5.数组:创建数组就等于创建了一个引用数组,数组里保存每个元素对象的引用。

2.3 GC

不需要程序员主动释放内存。

2.4 类

  1. class关键字。
  2. 默认值:类中基本类型的成员变量,如果没有初始化,他们将被初始化为0(泛),但是局部变量未初始化却会在编译阶段报错。

2.5 方法参数返回值

ReturnType methodName(/* Argument list */) {
/* Method body */
}

2.6 Java程序

  1. 包命名规范:域名反转,解决冲突;
  2. import关键字:告诉编译器将要引用的类的位置;
  3. static关键字:方法、成员变量、域

[Thinking in Java]这些必须先了解的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. Visual Studio 2015 Update 1 ISO

    Visual Studio Community 2015 with UPDATE 1___________________________________________English ENU - h ...

  2. Javascript常用方法函数收集(一)

    1.字符串长度截取 function cutstr(str, len) { var temp, icount = 0, patrn = /[^\x00-\xff]/, strre = "&q ...

  3. Fragment之间的通信(四)

    自定义两个fragment的布局和java类. 在mainactivity中引用布局文件 在其中的一个fragment中的控件上添加监听,获取到另一个fragment中控件的内容,展示出来完成frag ...

  4. Xcode清除缓存、清理多余证书

    Xcode清除缓存.清理多余证书 1.删除Xcode中多余的证书provisioning profile 手动删除: Xcode6 provisioning profile path: ~/Libra ...

  5. 重载运算符:类成员函数or友元函数

    类成员函数: bool operator ==(const point &a)const { return x==a.x; } 友元函数: friend bool operator ==(co ...

  6. 使用PowerDesigner导出MySQL数据库建模

    数据库服务器在linux上面,客户端本子win8系统 1.安装odbc 1.1 下载odbc,http://dev.mysql.com/downloads/connector/odbc/  Windo ...

  7. 深入理解JavaScript系列:史上最清晰的JavaScript的原型讲解

    一说起JavaScript就要谈的几个问题,原型就是其中的一个.说了句大话,史上最清晰.本来是想按照大纲式的行文写一下,但写到后边感觉其实就一个概念,没有什么条理性,所以下面就简单按照概念解释的模式谈 ...

  8. SELECT控件操作的JS代码示例

    SELECT控件操作的JS代码示例 1 检测是否有选中 if(objSelect.selectedIndex > -1) { //说明选中 } else { //说明没有选中 } 2.动态创建s ...

  9. Tarjan算法--强连通分量

    tarjan的过程就是dfs过程. 图一般能画成树,树的边有三种类型,树枝边 + 横叉边(两点没有父子关系) + 后向边(两点之间有父子关系): 可以看到只有后向边能构成环,即只有第三张图是强连通分量 ...

  10. 黑马程序员:Java编程_网络编程

    =========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 网络编程就是两个(或多个)设备(例如计算机)之间的数据传输,更具体的说,网络编程 ...