标识符即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. 【LeetCode】最大子序和

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 ...

  2. jquery 3D分页翻转滑块

    jquery 3D分页翻转滑块,jquery分页,jquery插件,jquery,3D翻转,css3分页,360度旋转,网页特效代码3D分页翻转滑块是一款使用网格样式与滑块效果分页的特效.

  3. 分享知识-快乐自己:Hibernate 关联映射

    关联关系映射--概念: 关联关系是使用最多的一种关系,非常重要.在内存中反映为实体关系,映射到DB中为主外键关系. 实体间的关联,即对外键的维护.关联关系的发生,即对外键数据的改变. 外键:外面的主键 ...

  4. Linux下Fork与Exec

    一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期 ...

  5. 理解YOLOv2训练过程中输出参数含义

    原英文地址: https://timebutt.github.io/static/understanding-yolov2-training-output/ 最近有人问起在YOLOv2训练过程中输出在 ...

  6. python之网络编程(概述及SOCKET)

    概述(TCP/IP协议是一个协议族): TCP/IP 协议按照四层怎么划分:链路层,网络层,传输层,应用层(实际上是四层) TCP/IP 协议按照七层怎么划分:物理层,数据链路层,网络层,传输层,会话 ...

  7. MySQL 单笔订单满6个及以上产品且金额>=300赠送优惠券_20161103

    活动内容: 单笔订单满6个及以上产品(帽子.浴巾除外),金额满赠300元,即赠送300-10元(除帽子.浴巾外)优惠券一张.需求数据:满足条件的用户ID活动时间:11.2-11.5(4天)活动规则:① ...

  8. [JSOI 2018] 潜入行动

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5314 [算法] 考虑dp , 用f[i][j][0 / 1][0 / 1]表示以i为 ...

  9. 解析Monte-Carlo算法(基本原理,理论基础,应用实践)

    引言 最近在和同学讨论研究Six Sigma(六西格玛)软件开发方法及CMMI相关问题时,遇到了需要使用Monte-Carlo算法模拟分布未知的多元一次概率密度分布问题.于是花了几天时间,通过查询相关 ...

  10. 百度地图API的第一次接触——右键菜单

    1.初始化地图 var map = new BMap.Map("container"); var point = new BMap.Point(116.404, 39.915); ...