java是一门面向对象的语言,class是关键字

类的命名习惯:

必须是英文开头,后可字母,数字和下划线

一般为大写字母开头

例如:

public class Abc

public是访问修饰符,表示该class为公开,如果没有写pulic,也可以正常编译,但是这个class将不能在命令行中执行

在class内部可以定义方法,例如:

public static void main(String[] args){}

这个例子的方法名为main,返回值为void,表示没有返回值,空

static是一个关键字,同样也是修饰符,表示静态方法

java入口程序必须是静态方法,方法名也必须为main,参数必须为String数组

在方法内部,语句才能执行,每一行程序都必须要以分号结束;

// 单行注释

java的变量的类型和JavaScript一样,变量分两种,基本类型变量和引用类型变量

变量必须先定义,后赋值使用,例如:

int a = 1;

定义为int整数类型,名称为a,初始值为1

变量的特点就是可以重新赋值

int i = 1; // 定义int类型,名称为i,赋值为1

i = 100; // 重新赋值为100

int x = i; // 变量x的值为i,因为i的值为100,所以x的值为i

整型

整型类型的数就是整数

因为java的整型是有符号类型的,0表示正数,1表示为负数,所以取值范围是从负多少到正多少

byte:-128 ~ 127
short: -32768 ~ 32767
int: -2147483648 ~ 2147483647
long: -9223372036854775808 ~ 9223372036854775807

浮点型

浮点类型的数就是小数
float(单精度)精度是8位有效数字,第7位数字后面的会四舍五入

float a = 0.987654321f; // 实质上为0.9876543 ,2和1被四舍五入了,使用float类型,要在后面加上f

double(双精度)精度是17位有效数字

在计算机中,使用符号位(sign)+指数(exponent)+小数位(fraction),来表示浮点数(浮点表示法)

符号位表示正负,指数表示取值范围,小数位表示计算精度

例如: float类型为32位,符号位占1位,指数位占8位,小数位占23位,小数位不足位数的补0

double类型为64位,符号位占1位,指数占11为,小数位占52位,小数位不足位数的补0

布尔类型

java布尔类型和很多程序语言一样,只有两个值,true和false

可以赋值变量为布尔类型,也可以通过关系运算来返回

例如:

boolean a = true;

boolean b = 1>2;

字符类型

字符类型char表示一个字符,char类型不但可以表示标准的ASCII,还可以表示一个Unicode字符

char类型使用单引号',而且只有一个字符

字符串

字符串类型String是一个引用类型,例如:

String a = "abc";

引用类型的变量是类似于c语言的指针,内部保存了一个地址,指向某一个对象在内存的位置

常量

使用final修饰符定义常量,例如

final int a = 123;

常量在定义时初始化后就不能重新赋值了,常量的命名习惯为全部大写

var 关键字

var关键字会自动推断变量的类型,使用var定义变量只是少写了变量类型,例如

var a = 123;

运算

整数的运算,是精确的,因为只取结果的整数部分

溢出:指一个数超过数据类型的取值范围了,只要这个数超出了取值范围,那么就会产生溢出,溢出不会报错,会返回一个数,这个数会通过二进制运算来处理

+=,-=,*=,/=

例如:
a+=2 // 相当于 a = a + 2

++和--运算

a++ // 相当于 a = a + 1
a-- // 相当于 a = a - 1

a++和++a

++a ,表示先加1,再引用a,a++,表示引用a,再加1

移位运算

因为在计算机中整数是以二进制表示的,所以可以通过移位运算

例如:

int abc = 100;

int a = abc << 3; // 向左移动3位 a = 800

int b = abc >> 3; // 向右移动3位,b = 12

int c = -1 >>> 2; // 无符号向右移,c = 1073741823

if判断

根据条件来执行或者不执行某段语句,基本语法例如:

if(条件){
// 当条件满足时执行的语句
}else{
// 当条件不满足时执行的语句
}

例如:
if(a>=100){
System.out.println("a大于或者等于100");
}else{
System.out.println("a不大于或者等于100");
}

switch判断

根据表达式的结果来执行相对应的语句,例如:

switch(a){
case 1:
System.out.println("a等于1");
break;
case 2:
System.out.println("a等于2");
break;
default:
System.out.println("不知道a等于多少");
}

switch也可以匹配字符串

while循环

循环就是根据条件进行循环处理,当条件满足时循环处理,当条件不满足时退出循环

例如:

while (a>=100){
System.out.println(a);
a++;
}
while循环是先判断后循环处理,当初始条件不满足时,那么一次循环都不会发生

do...while就是先执行再判断条件,例如:

do{
System.out.println(a);
a++;
}while (a>=100);

先执行do里面的语句,再判断条件是否满足,所以do...while最低也会执行一次,哪怕初始条件也是不满足的

for循环

for和while不一样,它是使用计数器(自增或者自减)来实现循环,例如:

for (int a=1;a<=100;a++){
system.out.println(a);
}

for可以用于数组遍历

break语句用于退出当前循环

continue语句用于提前结束本次循环,直接执行下次循环

例如:

for (int a=1;a<=100;a++){
system.out.println(a);
if(a==2){
break;
}
if(a==3){
continue;
}

数组