一 Java语言基础
1.1Java主类结构
(1)Java是面向对象的编程语言,基本组成单元是类,类体中包括属性和方法两部分。每个应用程序都需要含有一个main方法,含有main方法的类叫做主类。
package com.mw
public class First{
static String s1 = "你好Java。";
public static void main(String [] args){
String s2 = "我是MW.";
System.out.println(s1 + s2);
}
}
(2)局部变量和成员变量
将类的属性称作为全局变量或成员变量,将方法中的属性称为局部变量。
1.2 基本数据类型
1.2.1 整数类型 (int byte short long)
用于存储整数值。八进制整数值须以0开头,十进制整数值不能以0开头,十六进制整数值须以0x开头。如:
int a = 10002;
int b = 0123;
int c = 0x25bc
1.2.2 浮点类型(float double)
1.2.3 字符类型
(1)char 型,用于存储单个字符,占用16位两字节空间(java使用Unicode编码),定义chair型变量时使用单引号 ‘ ’。
如:
char ch1 = 'a';
char ch2 = 97;
(2)转义字符,是一种特殊的字符变量,以 “ \ ”开头,后跟一个或多个字符。
转义字符 | 含义 |
---|---|
\ddd | 1-3位八进制数据所表示的字符,如\123 |
\udddd | 1-4位十六进制数据所表示的字符,如\u1234 |
\’ | 表示单引号‘ |
\\ | 表示反斜杠字符\ |
\t | 垂直制表符 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
char ch1 = '\\';
char ch2 = '\u4562'
1.2.4 布尔类型
boolean 类型的取值只有true 和 false
1.3常量与变量
程序执行过程中值不能改变的量叫做常量,可以改变的量叫做变量
1.3.1 标识符和关键字
(1)标识符:Java规定标识符由字母,下划线_,$和数字组成。第一个字符不能是数字且标识符不能是Java中的保留关键字。标识符严格区分大小写。
(2)关键字:是Java中已经被富赋予特定意义的单词,如 int ,boolean ,interface ,instanceof 等
1.3.2 声明变量
char ch ;
int a = 4 ;
1.3.3 声明常量
通常被称为final变量,在整个程序中只能被赋值一次,再次改变final变量的值编译器会报错。一般来说,常量值通常使用大写形式的单词定义:
final int ELEMENT_NOT_FOUND = 0;
static final int OUT_OF_BOUNCE = 0;
当final变量是成员变量时,需要在定义时就赋予初值。
1.3.4 变量的有效范围
指程序代码能够访问该变量的区域。
(1)成员变量:在整个类中有效
public class Test{
int x = 45 ;
static int y = 55 ;
}
x称为实例变量,y称为静态变量。静态变量由static关键词修饰,有效范围可以跨类,甚至可以达到整个应用程序范围之内。
(2)局部变量:在方法中声明的变量,包括方法参数,只在当前的代码块中有效。
局部变量的生命周期取决于方法,当方法被调用时,JVM为方法中的局部变量分配内存空间,方法调用结束,则内存空间被收回,该局部变量被销毁。
class Test2{
int i = 2 ;
public void testNum(){
int i = 5;
System.out.println(i);
}
}
输出的i应为5,在方法内外声明标识符相同的变量时,方法外的变量相对于方法内的变量不可见,故成员变量 i 在testNum方法内无效。
1.4 运算符
1.4.1 赋值运算符 =
是二元运算符,处理时先取得右方表达式处理后的结果,复制给左边的表达式。因此运算顺序为从右到左。
1.4.2 算术运算符 + - * / %
注意,取余运算符只能应用于整型。
1.4.3 自增和自减运算符
是单目运算符,可以放在操作元前后
i--或i++
表示先参与运算,再自增或自减
++i或--i
表示先自增或自减,再参与运算
1.4.4 比较运算符 >,<,>=,<=,== ,!=
是二元运算符,比较运算符的运算结果是boolean型。
1.4.5 逻辑运算符 &&,&;||;!
注意:&&与运算符具有短路性质,而&具有非短路性质
1.4.6 位运算符 &,|,~,^,>>,<<,>>>
注意:移位运算符通常用于实现乘以或除以2^n的效果,由于计算机中数据是按照二进制代码形式存储,因此移位操作比乘法操作要节省时间。
如下面代码相当于实现1.5*Capacity的操作:
int Capacity += Capacity << 1 ;
1.4.7 三元运算符 a?b:c
一般用于简易判断,如取代if…else…流程
1.4.8 运算符优先级
(1)增量和减量运算
(2)算术运算
(3)比较运算
(4)逻辑运算
(5)赋值运算
1.5 数据类型转换
1.5.1 隐式类型转换
由低级类型向高级类型转换,由系统自动执行,不包括逻辑类型和字符类型。
byte<short<int<long<float<double
1.5.2 显式类型转换
当高精度的值赋给低精度的变量,发生显式类型转换,不过可能会导致精度损失。除boolean类型之外所有基本数据类型都可以进行显式类型转换。
int a ;
double b = 1.63;
a = (int) b;
当给一个变量赋值时,复制不可超过该变量可表示的数据的范围,否则需要进行显式类型转换
byte b = (byte) 129;
1.6代码注释和编码规范
1.6.1 代码注释
(1)单行注释 //
(2)多行注释 ,注意,多行注释中可以嵌套单行注释,但不可嵌套多行注释
(3)文档注释 ,当文档注释出现在声明之前时,会被Javadoc文档工具读取作为Javadoc文档内容。
1.6.2 编码规范
养成良好的编码习惯,形成自己的编码风格
多用注释,少用晦涩的语句。
第一节包括一些Java的语言基础,包括下一节的流程控制,是程序设计必须具备的基础知识点,将这些知识熟练掌握不光有助于Java语言的学习,对于学习其他语言来说也同样是非常有用的。