标识符即Java程序中需要自定义的名称,如变量名、方法名、类名、包名、工程名等。

标识符的命名规则:

1.可由字母、数字、下划线(_)和美元符($)组成,不能以数字开头。

2.严格区分大小写。

3.不能是Java关键字和保留字。

4.最好能反映其作用。

变量名、方法名的命名规则:

1.满足标识符命名规则。

2.符合驼峰法命名规范。(首字母小写,如果名称由多个单词组成,从第二个单词开始每个单词的首字母都要大写。)

3.尽量简单,做到见名知意。

常量名的命名规则:

字母全部大写,且单词间用下划线(_)分隔。

如:final int MAX_VALUE=100;

类名、接口名的命名规则:

满足Pascal命名法规范。(首字母大写,如果名称由多个单词组成,每个单词的首字母都要大写。)

接口的实现类的命名规则为:<接口名>+"Impl"。

包名、项目名的命名规则:

包名:<域名反转>.<团队名>.<项目名>。相关项目可使用<域名反转>.<团队名>.<f父项目名>.<子项目名>。

命名必须全部使用英文小写字母,不要用下划线等字符。(除常量外,Java命名习惯中均不推荐使用下划线等字符)

项目工程名用小写英文字母。

数据类型

基本数据类型的数据变量在声明后就会立刻在内存中的栈上被分配内存空间,变量值存储在栈空间里。

例如:int n=100; //变量类型、变量名、变量值

在栈中开辟int类型大小的存储空间, 4个字节,占用32个二进制位,把100这个整型字面值放到开辟的空间中,n是100所占内存空间的别名,代表100去做运算。

引用类型继承于Object类(也是引用类型),内存栈里存储的是对象的引用变量(要存储的是实际对象的地址),对象本身存储在内存堆上。

例如: 用类定义一个变量叫对象的引用变量名,new出来的对象存储在堆空间,把对象在堆内存的地址存储到栈内存中这个引用变量名所在的空间里,这个引用变量名可以通过地址来找到对象,即对象的引用变量指向这个对象。

            图1

栈:栈数据可共享,存取速度比堆快,仅次于寄存器,存在栈中的数据大小与生存期必须是确定的。关于回收:当超过变量的作用域后,Java会自动释放该变量内存空间,可立即被其它利用。

堆:存储速度较慢,动态地分配内存大小,生存期也不必预先告诉编译器。关于回收:由Java虚拟机的自动垃圾回收器来回收不再使用的数据。

           图2

例子:

Dog d1; //在栈内存里给引用变量d1开辟存储空间,这时d1=null。(null不是一个合法的Object实例,所以编译器并没有为其(null)分配内存,它仅仅用于表明该引用目前没有指向任何对象。)

d1=new Dog(); //在堆内存里给Dog类的对象开辟空间,并调用Dog类的构造函数。(若未自定义,调用系统默认提供的。)

注:

1.这里的"=",是把Dog类的对象在堆中的地址传递给引用变量d1,即栈中的引用变量d1里存放了新创建的Dog类对象的地址,这时引用变量d1指向了新创建出来的对象。

2.对象创建出来,没有名字,通过引用变量来对其操作。

Dog d2;

d2=d1; //d2也指向了d1所指向的对象  如上图2

注:

1.一个对象引用可以指向0个或1个对象。

2.一个对象可以有n个引用指向它。

d2=new Dog(); // 引用变量d2改成指向了新的第2个对象

d1=d2;  // d1也指向了第2个对象

注:第一个对象已成为垃圾回收机制的处理对象。

Java中的基本数据类型及其描述如下:

Java中的数值类型都是有符号的,不存在无符号的数,它们的取值范围也是固定的,不会随着硬件环境或者操作系统的改变而改变。除了以上八种基本数据类型以外,在Java语言中,还存在另外一种基本类型void,它也有对应的封装类java.lang.void,只是无法直接对它进行操作。

封装类型和原始类型有何不同:

1.原始数据类型在传递参数时都是按值传递,而封装类型是按引用传递的。

2.当封装类型和原始类型用作某个类的实例数据时,它们所指定的默认值不同。对象引用实例变量的默认值为null,而原始类型实例变量的默认值与它们的类型有关(例如int默认初始化为0)。

例子:

 public class Test {
String s;
int i;
float f;
public static void main(String args[]) {
Test t=new Test();
System.out.println(t.s==null);
System.out.println(t.i);
System.out.println(t.f);
}
}

程序运行结果为:

true

0

0.0

Java基础笔记(四)——命名规则、数据类型的更多相关文章

  1. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  2. MYSQL基础笔记(六)- 数据类型一

    数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...

  3. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  4. Java实习生常规技术面试题每日十题Java基础(四)

    目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...

  5. Java基础笔记(一)

    本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...

  6. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  7. Java基础笔记05-06-07-08

    五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...

  8. Java基础笔记01-02-03-04

    一.今日内容介绍 1.Java开发环境搭建 2.HelloWorld案例 3.注释.关键字.标识符 4.数据(数据类型.常量) 01java语言概述 * A: java语言概述 * a: Java是s ...

  9. for、while循环(java基础知识四)

    1.循环结构概述和for语句的格式及其使用 * 什么是循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把 ...

随机推荐

  1. MVC+Ext.net零基础学习记录(三)

    这里开始说明一下,如何在MVC项目中引用EXT.NET,这里参考:http://www.cnblogs.com/zhanghaomars/p/3470987.html

  2. 存储过程IF --ELSE IF -- END IF 使用

    CREATE OR REPLACE PROCEDURE BJPJYXK_HF_SD( sqid_p IN VARCHAR2,--申请单ID xkbh_p IN VARCHAR2,--新生成的许可证编号 ...

  3. css中字体大小在不同浏览器兼容性问题

    css中使用font-size设定字体大小,不同浏览器的字体height一样,但是width不同,比如在火狐和谷歌中,font-size:20px,字体的高度变为20px,但是谷歌的字体宽度比火狐长 ...

  4. Java_正则_00_资源贴

    二.参考资料 1.揭开正则表达式的神秘面纱

  5. ActorModel 概念翻译

    学习 skynet 时初次接触到 ActorModel 模型,始终觉得有必要从宏观上了解 ActorModel 的概念,所以以维基上这篇文章为参考,把文章中的部分内容翻译成中文,好让自己体会一下 Ac ...

  6. “libgomp.so.1: version `GOMP_4.0' not found” || “libstdc++.so.6: version `CXXABI_1.3.8' not found”错误

    类似问题还有 'ImportError ../lib/libstdc++.so.6: version `CXXABI_1.3.7' not found (required by xxx)'.      ...

  7. MySQL_活动期间单笔订单最高的且满600元 判别是重激活客户还是10月注册客户_20161031

    将29号和30号两个需求放到一个表当中 首先都满足在10.29到31号之间单笔订单最高的且满600元 数据结构为一个用户一个订单ID 一行一行的 上面是第一个表 我们当做主表 a 第二个表 我们找注册 ...

  8. Jasper:用户指南 / 设备 / 生命周期管理 / SIM 卡状态

    ylbtech-Jasper:用户指南 / 设备 / 生命周期管理 / SIM 卡状态 1.返回顶部 1. SIM 卡状态 每个设备都有一个状态,决定了它能否在网络上建立数据连接,并且会影响设备是否计 ...

  9. ExecutorService和CompletionService区别

    ExecutorService和CompletionService区别: ExecutorService:一直习惯自己维护一个list保存submit的callable task所返回的Future对 ...

  10. mogilefs分布式文件存储

    MogileFS是一个开源的分布式文件存储系统,由LiveJournal旗下的Danga Interactive公司开发.Danga团队开发了包括 Memcached.MogileFS.Perlbal ...