Java基础笔记(四)——命名规则、数据类型
标识符即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基础笔记(四)——命名规则、数据类型的更多相关文章
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- MYSQL基础笔记(六)- 数据类型一
数据类型(列类型) 所谓数据烈性,就是对数据进行统一的分类.从系统角度出发时为了能够使用统一的方式进行管理,更好的利用有限的空间. SQL中讲数据类型分成三大类:1.数值类型,2.字符串类型和时间日期 ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- Java实习生常规技术面试题每日十题Java基础(四)
目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...
- Java基础笔记(一)
本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- Java基础笔记05-06-07-08
五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...
- Java基础笔记01-02-03-04
一.今日内容介绍 1.Java开发环境搭建 2.HelloWorld案例 3.注释.关键字.标识符 4.数据(数据类型.常量) 01java语言概述 * A: java语言概述 * a: Java是s ...
- for、while循环(java基础知识四)
1.循环结构概述和for语句的格式及其使用 * 什么是循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把 ...
随机推荐
- M1卡的工作原理【转】
本文转载自:https://blog.csdn.net/zmq5411/article/details/52042457 M1卡的工作原理 本篇对M1卡的编程是利用上述第二种方法.M1卡最为重要的优点 ...
- 7.8 LZW压缩的实现
7-10 lzw.c #include <stdlib.h> #include <stdio.h> #define BITS 12 //每个数据项的二进制位数 #define ...
- python绘制圆和椭圆
源自:https://blog.csdn.net/petermsh/article/details/78458585 1. 调用包函数绘制圆形Circle和椭圆Ellipse from matplot ...
- babel-runtime 和 babel-polyfill
Babel 默认只转换新的 JavaScript 语法 https://excaliburhan.com/post/babel-preset-and-plugins.html babel-plugin ...
- css书写规则
无规矩不成方圆,不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的 不要在自闭合(self-closing)元素的尾部添加斜线 不要省略可选的结束标签(closing tag)(例 ...
- Ubuntu16.04上安装arm-linux-gcc4.4.3
一.首先下载arm-linux-gcc-4.4.3.tar.gz安装包,安装包地址: http://www.cr173.com/soft/42654.html 二.解压安装包: sudo tar -z ...
- 运算符-----------instanceof
- Chrome检查更新总失败?安装细则讲解
现在 Google Chrome 的稳定版都已经发布 68.0 版本了,我机上还是 54, 本想在线更新一下,结果点击菜单项中的“关于 Google Chrome”后,进入的界面提示“更新失败(错误: ...
- docker的操作
查询容器 docker ps 只能查询到正在运行的docker镜像: 如果添加上-a的选项,则会显示所有的(包括已经exit,未启动)的容器 基于一个镜像来构建(run)容器,并启动 docker ...
- TreeView滚动TreeViewItem
今天帮忙修了一个bug, 在拖动TreeViewItem时,需要滚动TreeView向前翻页,或向后翻页. 思路: 1.找到TreeView控件里的ItemsControl 2.找到ItemsCont ...