前章回顾
学习计算机的发展史
了解了JAVA语言的特性
跟着学习了JAVA的三大版本
自己学习安装了JAVA的开发环境
编写了第一个JAVA程序
2.1 安装了ECLIPSE
个人觉得初学者可以先去尝试功能不是那么强大的eclipse,这样扎实自己的基础,自己可以练习一下如何安装包,手动输入代码,可以更熟悉语法;但是idea在以后的用处比较大,可以为我们程序员节省时间。
2.2 注释
在程序比较简单的时候,我们轻而易举可以看懂自己的代码的含义,但是当我们完成复杂的项目时,因为它的结构是比较复杂的,因此我们加以注释,相当于解释说明,这样有利于以后看懂我们自己的代码。
/*
*@Description HelloWorld类
*@Author 袁伟
**/
public class Helloworld{
/*
这是我们Java程序的主入口
main方法也是程序的主线程
*/
public static void main(string[] args){
//输出Helloworld!
System.out.println("hello world")
}
}
注释不会被执行,只是起到解释说明的作用
注释三中类型:
单行注释:只能注释当前行,以//开始,直到行结束
//输出hello world
多行注释:注释一段文字,以/开始,/结束
/*
这是我们Java程序主入口,
main方法也是程序的主线程
*/
文档注释:用于生产API文档,配合javaDoc
/*
*@Description HelloWorld类
*@Author 袁伟
**/
2.3 标识符
我们人类都有一个自己的名字,同样我们的程序也是需要一个名字的
HelloWorld是类名,也是我们的文件名。前面的public class是关键字,它是Java前辈定义好的,有特殊作用,下面的每一行代码都有自己意思和名字,就是用来做区分。
public class HelloWorld{
public static void main(string[] args){
System sout println("hello world")
}
}
已经定义好的关键字是不能用来做名字的
Java所有的组成部分都需要名字。类名,变量名,以及方法名都被成为标识符
表示类名的标识符要用大写字母开始
如:Man Hello
表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始
如:eat(),eatFood()
//驼峰命名法
关于 Java 标识符,有以下几点需要注意:
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名。
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary、#abc
public class Man{
public static void main(string[] args){
name 关羽 = "羽"
System.out.println(关羽)
}
}
2.4 数据类型
Java是一种强类型语言,每个变量都必须声明其类型
强类型语言也称为强类型定义语言,要求变量要严格符合要求,每个变量要求先定以后才能使用
2.4.1 数据类型
数据类型分为:基本类型和引用类型
定义练习
public class Hello{
public static void main(string[] args){
//整型
int a = 100;
//长整型
long b = 9998989898989L;
//短整型
short c = 235;
//浮点型
double d = 3.5; //双精度
double d1 = 3;
float e = 3.5f;
//布尔类型
oolean isPass=true;
boolean isOk=false;
boolean isBig=5>8;
if(isPass){
System.out.println("通过了");
}else{
System.out.println("未通过");
}
//单字符
char f='女';
char m='男';
}
2.4.4 整型拓展
十进制整数,如:99, -500, 0。
八进制整数,要求以 0 开头,如:015。
十六进制数,要求 0x 或 0X 开头,如:0x15
//整型
int i=10;
int i2=010;
int i3=0x10;
System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16
2.4.4 浮点型拓展
浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。
public static void main(String[] args) {
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d); //false
float d1 = 2131231231f;
float d2 = d1+1;
if(d1==d2){
System.out.println("d1==d2");
}else{
System.out.println("d1!=d2");
}
}
浮点数精度表示不够,浮点数存在舍入误差,很多数字无法精确表示
2.4.5 字符型拓展
单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示一个字符串。
char 类型用来表示在Unicode编码表中的字符。
public class Num{
public static void main(string[] args){
char a = "袁";
char b = "伟";
int c = 65;
System.out.println((int)a);
System.out.println((int)b);
System.out.println((char)c);
}
}
2.4.6、布尔型拓展
boolean类型(一位,不是一个字节),就是0|1
boolean类型有两个值,true和false,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。
boolean 类型用来判断逻辑条件,一般用于程序流程控制
2.5 类型转换
由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
整型、实型(常量)、字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级(根据容量来看)。
byte,short,char—> int —> long—> float —> double (低-----高)
数据类型转换必须满足如下规则:
- 不能对boolean类型进行类型转换。
- 不能把对象类型转换成不相关类的对象。
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
- 转换过程中可能导致溢出或损失精度
2.5.1 自动类型转换
自动类型转换:容量小转换为容量大的数据类型
public class ZiDongLeiZhuan{
public static void main(String[] args){
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
char c2 = 'A';//定义一个char类型
int i2 = c2+1;//char 类型和 int 类型计算
System.out.println("char类型和int计算后的值等于"+i2);
}
}
2.5.2 强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型
强制类型转换的语法格式:(type)var
。
public class Hobby{
public static void main(string[] args){
char a = "李";
System.out.println((int)a);
}
}
2.6 变量,常量
Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value][{,varName[=value]}]
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
int a,b,c; //声明三个整型
int d = 3,e = 4,f = 5 //声明类型并赋予值
byte z = 22 //声明并初始化z
string s = "runoob"; //声明并初始化字符串s
double t 3.1419; //声明了双精度浮点型变量
char x = "x" //声明变量x值是字符"x"
不提倡在一行声明多个变量
2.6.1变量作用域
变量根据作用域可划分为三种:
- 类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰。
- 实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。
- 局部变量(lacal variable):类的方法中的变量。
2.6.1.1局部变量
public class Hello{
public static void main(string[] args){
int a ; //变量没有被赋予值
int b = a+1;
System.out.println(b)
}
}
public class Hello{
public static void main(string[] args){
int a = 10 ; //给变量赋值10
int b = a+1;
System.out.println(b)
}
}
2.6.2 常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
常量名一般使用大写字符。
final int A = 10
2.6.3 变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则 : monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
2.7 运算符
Java 语言支持如下运算符:
- 算术运算符: +,-,*,/,%,++,–
- 赋值运算符 =
- 关系运算符: >,<,>=,<=,==,!= instanceof
- 逻辑运算符: &&,||,!
- 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
- 条件运算符 ?:
- 扩展赋值运算符:+=,-=,*=,/=
2.7.1、二元运算符
整数运算
如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
public static void main(String[] args) {
long a = 1231321311231231L;
int b = 1213;
short c = 10;
byte d = 8;
System.out.println((a+b+c+d)); //Long类型
System.out.println((b + c + d));//Int类型
System.out.println((c + d));//Int类型
}
浮点运算
如果两个操作数有一个为double, 则结果为double.
只有两个操作数都是float, 则结果才为float.
public static void main(String[] args) {
float a = 3.14565F;
double b = 3.194546464;
float c = 1.3123123F;
System.out.println(a+b); //double类型
System.out.println(b+c); //double类型
System.out.println(a+c); //float类型
}
关系运算符
2.7.2一元运算符
自增(++)自减(–)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数,分为前缀和后缀两种。
public static void main(String[] args) {
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值
}
注意:java中的乘幂处理
ublic static void main(String[] args) {
int a = 3^2; //java中不能这么处理, ^是异或符号。
double b = Math.pow(3, 2);
}
2.7.3、逻辑运算符
逻辑与:&&和&,逻辑或:||和|,逻辑非:!。
public class Yuan{
public static void main(string[] args){
int a = 1;
int b = 2;
int c = 3;
int d = 2;
int e = 3;
System.out.println((a==b)&&(a==d));
System.out.println((b==d)&&(c==e));
System.out.println((a==b)||(c==e));
System.out.println((a==b)||(a==d));
}
}
逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
逻辑与只要有一个为false, 则直接返回false.
逻辑或只要有一个为true, 则直接返回true;
2.7.4、位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。
右移一位相当于除2取商。
左移一位相当于乘2。
问题【如何快速计算2^3】
public static void main(String[] args) {
System.out.println(2 << 3);
}
2.7.6、扩展运算符
ublic static void main(String[] args) {
int a=10;
int b=20;
a+=b; // a = a + b
System.out.println(a+":"+b);
}
2.7.7、字符串连接符
“+” 运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
public class Guitar{
public static void main(string[] args){
String a = "你好";
String b =
}
}
2.7.8、三目条件运算符
三目条件运算符,语法格式:
x ? y : z
public class Hello{
public static void main(string[] args){
int a = 10;
int b = 20;
System.out.println((a==b) ? "zhen": "jia")
}
}