标识符即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. 时尚创意VI矢量设计模板

    时尚创意VI矢量设计模板 创意VI VI设计 企业VI 时尚背景 信封设计 封面设计 杯子 桌旗 帽子 EPS矢量素材下载 http://www.huiyi8.com/vi/

  2. HDU 6170 Two strings (dp)

    /** * 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6170 * 字符串match, '.'代表匹配任意一个字符,"*" 代表 ...

  3. 2018.3.3 How too much fructose may cause liver damage

    Fructose is the sweetest of the natural sugars. As its name suggests, it is found mainly in fruits. ...

  4. physoft.net网站暂停 www.physoft.cn 正式开通 (菲烁科技, physoft)

    physoft.net原本计划以开源代码为主体,由于各种原因代码未能开源.基于这些代码,physoft成立了 菲烁(重庆)科技有限公司 ( www.physoft.cn) ,专注于工业级双目视觉测量, ...

  5. HihoCoder1643 : 最少换乘([Offer收割]编程练习赛37)(bfs)

    描述 小Ho居住的城市有N条公交车线路,其中第i条线路上有Ki个车站. 某些线路之间会有公共的车站,小Ho可以在这些车站从一条线路换乘到另一条线路. 现在给定N条公交车线路以及两个车站S和E,你能帮助 ...

  6. 关于qwerta

    性别女 爱好男 有时喜欢装成男孩子混迹于OI圈. 就读于长沙市MD中学 是个剧毒蒻蒻蒻. 以 qwerta['kwɜ:rtɑ] 的ID混迹于各大OJ,但是在其它地方通常用qwertaya(重名率太高了 ...

  7. codevs 4939 欧拉函数

    传送门 4939 欧拉函数  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 钻石 Diamon     题目描述 Description 输入一个数n,输出小于n且与n互素的整数个 ...

  8. 基于django封装的常用装饰器和函数

    1:返回操作成功的json数据 def response_success(message, data=None, data_list=[]): return HttpResponse(json.dum ...

  9. Redis的Spring配置讲解

    Redis是一种特殊类型的数据库,他被称之为key-value存储 本文覆盖缓存和存储两方面进行说明,使用的是Spring 4.0和Java配置方式 代码地址下载地址:https://github.c ...

  10. zk 05之:ZooKeeper的配置

    ZooKeeper 的功能特性通过 ZooKeeper 配置文件来进行控制管理( zoo.cfg 配置文件). ZooKeeper 这样的设计其实是有它自身的原因的.通过前面对 ZooKeeper 的 ...