一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
-
**属性:**事物固有的一些特征,例如人的年龄、性别、姓名;
-
**方法:**完成某种特定行为或者功能,例如人会唱歌,吃饭等等行为;
-
对象:对象是类的一个实例,有属性和方法。例如,一条狗是一个对象,它的属性有:颜色、名字、品种;方法有:摇尾巴、叫、吃等。
-
类:类是一个模板,它描述一类对象的属性和方法,一条黑背狗是一个对象,而所有的黑背就是一个类。
-
实例变量:每个对象都有独特的实例变量,对象的属性由这些实例变量的值决定。
编写 Java 程序时,应注意以下几点:
- 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
- 类名:对于所有的类来说,类名的首字母应该大写。驼峰原则(除了第一个单词之外,所有单词首字母大写)
- 方法名:所有的方法名都应该以小写字母开头。驼峰原则
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存,文件名的后缀为 .java。
- 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
- 访问控制修饰符 : default(默认), public(共有) , protected(保护), private(私有)
- 非访问控制修饰符 : final(常量), abstract(抽象), static(静态), synchronized
这些关键字不需要死记,用到的时候记住即可。
| 关键字 | 说明 |
|---|---|
| private | 私有的 |
| protected | 受保护的 |
| public | 公共的 |
| default | 默认 |
| abstract | 声明抽象 |
| class | 类 |
| extends | 扩充,继承 |
| final | 最终值,不可改变的 |
| implements | 实现(接口) |
| interface | 接口 |
| native | 本地,原生方法(非 Java 实现) |
| new | 新,创建 |
| static | 静态 |
| strictfp | 严格,精准 |
| synchronized | 线程,同步 |
| transient | 短暂 |
| volatile | 易失 |
| break | 跳出循环 |
| case | 定义一个值以供 switch 选择 |
| continue | 继续 |
| default | 默认 |
| do | 运行 |
| else | 否则 |
| for | 循环 |
| if | 如果 |
| instanceof | 实例 |
| return | 返回 |
| switch | 根据值选择执行 |
| while | 循环 |
| assert | 断言表达式是否为真 |
| catch | 捕捉异常 |
| finally | 有没有异常都执行 |
| throw | 抛出一个异常对象 |
| throws | 声明一个异常可能被抛出 |
| try | 捕获异常 |
| import | 引入 |
| package | 包 |
| boolean | 布尔型 |
| byte | 字节型 |
| char | 字符型 |
| double | 双精度浮点 |
| float | 单精度浮点 |
| int | 整型 |
| long | 长整型 |
| short | 短整型 |
| super | 父类,超类 |
| this | 本类 |
| void | 无返回值 |
| goto | 是关键字,但不能使用 |
| const | 是关键字,但不能使用 |
**注意:**Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。
注释单行注释:// xxxxxx
多行注释:
文档注释:
标识符 Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
注意:
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始;
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合;
- 关键字不能用作标识符
- 标识符是大小写敏感的
可以使用中文命名,但是不建议
第一个程序public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
}
}
public是访问修饰符,class是说明在声明一个类,HelloWord是类名,且必须与Java文件名相同。一个类必须有且只能由一个main方法,main方法的介绍如下图,每个参数的含义都会在后续介绍到。
数据类型Java 基本数据类型 | 菜鸟教程 (runoob.com)
强类型语言与弱类型语言**强类型语言:**强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。java、.NET、C/C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换(后续会介绍),那么它就永远是这个数据类型了。
**弱类型语言:**弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等就属于弱类型语言。
强类型语言_百度百科 (baidu.com)
弱类型语言_百度百科 (baidu.com)
Java数据类型 Java的数据类型分为两大部分,基本数据类型(又叫做内置数据类型)和引用类型。为了说明数据类型,首先介绍字节的概念:
字节
- 位(bit):是计算机存储数据的最小单位;
- 字节(byte):一个字节(1B)等于8个位;
- 字符:计算机使用的字母、数字和符号
基本数据类型(primitive type)又叫做内置数据类型,一共有8钟基本数据类型,其中6种是数值类型(四种整数两种浮点数)。
整数 整数一共有四种类型,根据占用内存的不同,具体如下:
byte:
- byte 数据类型是8位(1个字节)、有符号的以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一。
short:
- short 数据类型是 16 位(2个字节)、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0。
int:
- int 数据类型是32位(4个字节)、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 。
long:
- long 数据类型是 64 位(8个字节)、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 注意long类型后边一般用大写L,因为小写l和数字1容易混淆。
浮点型有两种,分为单精度和双精度:
float:
- float 数据类型是单精度、32位(4个字节)、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币。
double:
- double 数据类型是双精度、64 位(8个字节)、符合 IEEE 754 标准的浮点数;
- 浮点数的默认类型为 double 类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
- 例子:7D也是double量。
银行系统中表示货币会有一个专门的类型
布尔型- boolean数据类型表示一个字节的信息;
- 只有两个取值:true 和 false;
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false。
- char 类型是一个单一的 16 位(2个字节) Unicode 字符;
- 最小值是 u0000(十进制等效值为 0);
- 最大值是 uffff(即为 65535);
- char 数据类型可以储存任何字符;
- 例子:char letter = ‘A’;。
字符类型和整数类型是可以互换的
字符串String不是一个关键词,是一个类
各种类型默认值| 数据类型 | 默认值 |
|---|---|
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d |
| char | ‘u0000’ |
| String (或者其他任何对象) | null |
| boolean | false |
- 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型。变量一旦声明后,类型就不能被改变了。
- 对象、数组、字符串都是引用数据类型。
- 所有引用类型的默认值都是null。
- 一个引用变量可以用来引用任何与之兼容的类型,例如父类的引用变量可以指向子类的对象。
- 例子:Site site = new Site(“Runoob”)。
常量在程序运行时是不能被修改的。在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似,常量名一般用大写:
final double PI = 3.1415927;
Java的字符串常量也是包含在两个引号之间的字符序列:
"Hello World" "twonlines" ""This is in quotes""
字符串常量和字符常量都可以包含任何Unicode字符。例如:
char a = 'u0001'; String a = "u0001";Java数据类型扩展 基本数据类型扩展
整数
所有的整数类型(byte、int、long、和short)都可以用十进制、16进制以及8进制的方式来表示。二进制以0b开头 八进制以0开头,十六进制以0x开头:
int decimal = 100; int octal = 0144; int hexa = 0x64;
例子
public class Demo02 {
public static void main(String[] args) {
//整数类型
int i=10;
int i2=010;
int i3=0x10; //十六进制 0!0 A!F
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=============");
}
}
浮点型
银行业务中,float和double是有问题的,因为两者表示范围有限、离散的,有舍入误差,两个数接近但是不等于,所以银行中用以一个类BigDecimal。
public class Demo02 {
public static void main(String[] args) {
//浮点数拓展
//银行业务中,float和double是有问题的
// float 表示范围有限、离散的,有舍入误差,接近但是不等于,所以银行中用以一个类BigDecimal
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);
float d1=43728974291794f;
float d2=d1+1;
System.out.println(d1==d2);
}
}
字符型
字符类型和整数类型可以转换,编码 Unicode表;每个字符都有一个对应的数字 2字节 65536个字符,范围 U0000~UFFFF。
public class Demo02 {
public static void main(String[] args) {
//字符拓展
//字符类型和整数类型可以强制转换
// 编码 Unicode表;每个字符都有一个对应的数字 2字节 65536个字符,
//范围 U0000~UFFFF
char c3='u0061';
System.out.println(c3);
}
}
布尔类型
一般用布尔类型作标志位时候,用如下书写方式:
boolean flag=true;
if(flag)
{
System.out.println("flag=true");
}
String
用New建立的String涉及到内存,所以即使两个相等的字符串也,再程序看来也是不相等的
转义字符| 转义字符 | 意义 | ASCII码值(十进制) |
|---|---|---|
| a | 响铃(BEL) | 007 |
| b | 退格(BS) ,将当前位置移到前一列 | 008 |
| f | 换页(FF),将当前位置移到下页开头 | 012 |
| n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
| r | 回车(CR) ,将当前位置移到本行开头 | 013 |
| t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
| v | 垂直制表(VT) | 011 |
| 代表一个反斜线字符’’' | 092 | |
| ’ | 代表一个单引号(撇号)字符 | 039 |
| " | 代表一个双引号字符 | 034 |


