1.Java语言基础
1.0 快捷键
①Ctrl+Alt+/快捷键自动补全Java关键字
②Alt+/快捷键启动Eclipse代码辅助菜单
Java主类结构
- Java语言是面向对象的程序设计语言, Java程序的基本组成单元是
类, 类体中又包括属性与方法两部分
每一个应用程序都必须包含一个main()方法, 含有main()方法的
类称为主类。
类名为
package Number;
public class Frist1 {
static String s1 = "你好";
public static void main(String[] args) {
// TODO 自动生成的方法存根
String s2 = "Java";
System.out.print(s1);
System.out.print(s2+"!");
}
}
/*包声明
类名为Frist的类, 语句package Number为声明该类所在的包, package为包的关键字
*/
/*声明成员变量和局部变量
类的属性称为类的全局变量( 成员变量),将方法中的属性称为局部变量。
全局变量声明在类体中, 局部变量声明在方法体中。
s1是成员变量, s2是局部变量。
*/
/*编写主方法
main()方法是类体中的主方法。 该方法从“{”开始, 至“}”结束。
public、 static和void分别是main()方法的权限修饰符、 静态修饰符和返回
值修饰符, Java程序中的main()方法必须声明为public static void。
String[] args是一个字符串类型的数组, 它是main()方法的参数
*/
- 基本数据类型 对于long型值, 若赋给的值大于int型的最大值或小于int型的最小值, 则需要在数字后加L或l, 表示该数值为长整数, 如long num= 2147483650L。
在默认情况下, 小数都被看作double型, 若使用float型小数, 则需要在小数后面添加F或f。
字符类型(char) 用于存储单个字符, 占用16位(两个字节) 的内存空间。 在定义字符型变量时, 要以单引号表示, 如’s’表示一个字符,而"s"则表示一个字符串
char x = 'a';
char x = 97;
public class Gess {
public static void main(String[] args) {
// TODO 自动生成的方法存根
char word = 'd' , word2 = '@';
int p= 23045 , p2 = 45213;
System.out.println("d在unicode表中顺序位置是:" + (int)word);
System.out.println("@在unicode表中顺序位置是:" + (int)word2);
System.out.println("unicode表中的第23045位是:" + (char)p);
System.out.println("unicode表中的第45213位是:" + (char)p2);
}
}
/*OUTPUT:
d在unicode表中顺序位置是:100
@在unicode表中顺序位置是:64
unicode表中的第23045位是:娅
unicode表中的第45213位是:?
*/
布尔类型又称逻辑类型, 通过关键字boolean来定义布尔类型变量,
只有true和false两个值, 分别代表布尔逻辑中的“真”和“假”。 布尔值不
能与整数类型进行转换。
3.声名变量
系统的内存可大略分为3个区域, 即系统(OS) 区、程序(Program) 区和数据(Data) 区。 当程序执行时, 程序代码会加载到内存中的程序区, 数据暂时存储在数据区中。 假设两个变量(int age; char c=‘r’)定义在方法体中, 则程序加载到程序区中。 当执行此行程序代码时, 会在数据区配置空间给出这两个变量。
- 声明常量
final 数据类型 常量名称[=值]
常量名通常使用大写字母
5.变量作用域
变量的有效范围是指程序代码能够访问该变量的区域
根据变量的“有效范围”将变量分为“成员变量”和“局部变量”。
成员变量在整个类中都有效。 类的成员变量又可分为两种, 即静态变量和实例变量。
public class HelloJava {
int x = 45;
static int y = 90;
}
/*
x为实例变量, y为静态变量(也称类变量) 。 如果在成员变
量的类型前面加上关键字static, 这样的成员变量称为静态变量。 静态变
量的有效范围可以跨类, 甚至可达到整个应用程序之内。 对于静态变
量, 除了能在定义它的类内存取, 还能直接以“***类名.静态变量***”的方式在
其他类内使用。
*/
在类的方法中声明的变量, 包括方法的参数, 都属于局部变量。 局
部变量只在当前定义的方法内有效, 不能用于类的其他方法中。 局部变
量的生命周期取决于方法, 当方法被调用时, Java虚拟机为方法中的局
部变量分配内存空间, 当该方法的调用结束后, 则会释放方法中局部变
量占用的内存空间, 局部变量也将会销毁。
局部变量可与成员变量的名字相同, 此时成员变量将被隐藏, 即这
个成员变量在此方法中暂时失效。
6.运算符
当两个表达式都为true时, “逻辑与”的结果才会是true。 使用逻辑运算符“&”会判断两个表达式; 而逻辑运算符“&&”则是针对boolean类型的类进行判断, 当第一个表达式为false时则不去判断第二个表达式, 直接输出结果从而节省计算机判断的次数。通常将这种在逻辑表达式中从左端的表达式可推断出整个表达式的值称为“短路”, 而那些始终执行逻辑运算符两边的表达式称为“非短路”。 “&&”属于“短路”运算符, 而“&”则属于“非短路”运算符。
移位操作
左移就是将运算符左边的操作数的二进制数据, 按照运算符右边操作数指定的位数向左移动, 右边移空的部分补0。
右移则复杂一些。 当使用“>>”符号时, 如果最高位是0, 右移空的位就填入0; 如果最高位是1, 右移空的位就填入1
无符号右移“>>>”, 无论最高位是0还是1, 左侧被移空的高位都填入0。
移位运算符适用的数据类型有byte、 short、 char、 int和long。
移位可以实现整数除以或乘以2n的效果。 例如, y<<2与y*4的结果相同; y>>1的结果与y/2的结果相同。 总之, 一个数左移n位, 就是将这个数乘以2n; 一个数右移n位, 就是将这个数除以2n。
三元运算符
条件式?值1:值2<=等价于=>if…else语句
→若条件式的值为true, 则整个表达式取值1, 否则取值2。
运算符优先级
如果两个运算有相同的优先级, 那么左边的表达式要比右边的表达式先被处理。
7.数据类型转换
如果从低精度数据类型向高精度数据类型转换, 则永远不会溢出,并且总是成功的; 而把高精度数据类型向低精度数据类型转换时, 则会有信息丢失, 有可能失败。
隐式转换
从低级类型向高级类型的转换, 系统将自动执行
byte < short < int < long < float < double
显式类型转换可能会导致精度损失
把高精度的变量的值赋给低精度的变量时, 必须使用显式类型转换运算(又称强制类型转换) 。
语法→**(类型名)要转换的值**
8.代码注释
“//”为单行注释标记
“/* /”为多行注释标记
“/* */”为文档注释标记。
9.编码规范
①每条语句要单独占一行, 一条命令要以分号结束。
②在声明变量时, 尽量使每个变量的声明单独占一行, 即使是相同的数据类型也要将其放置在单独的一行上, 这样有助于添加注释。 对于局部变量应在声明的同时对其进行初始化。
③在Java代码中, 关键字与关键字间如果有多个空格, 这些空格均被视作一个。
④对于关键的方法要多加注释