java概述
java历史
1995年sun公司正式推出java,2009年sun公司被Oracle收购.2014年推出java8,java8是当前最流行稳定的版本.除了java8,还有java7,java11是长期维护的版本.
java介绍
java分类
public class Test{
//主方法,是程序的入口,有且只有一个
public static void main(String[] args){
System.out.println("Hello World!");
}
}
编辑的是.java文件,称为源文件。通过javac命令进行编译,生成同名的.class字节码文件,在jvm(虚拟机)上解释该字节码文件运行。
数据类型
原始数据
1.整型:byte,short,int,long。
2.浮点型:float,double。
3.布尔型:boolean。
4.字符型:char。
应用类型
1接口
2数组
3类
类型转换
类型转换对于我们初学者来说是容易搞错的需注意.
short s=123;
int i=s;
long num=123;
float f=num;
小字节类型数据可以直接保存到大字节类型的变量中
int i=123;
byte b=(int) i;
同类型下,如果大字节类型的数据强制保存到小字节类型的变量中,需要强制类型转换
变量
保存数据的内存区域,其中的数据可以变化。
定义变量
数据类型 变量名;
int num;
变量赋值
变量名=值;
=右边的值有默认的数据类型。
整数默认为int,小数默认double类型。
num=300;
变量初始化
数据类型 变量名 = 值;
变量需要定义、赋值后才能使用。
int num=300;
System.out.println(num);
运算符
算数运算符
符号 | 描述 | 例子 |
+ | 加法 - 相加运算符两侧的值 | A + B 等于 30 |
- | 减法 - 左操作数减去右操作数 | A – B 等于 -10 |
* | 乘法 - 相乘操作符两侧的值 | A * B等于200 |
/ | 除法 - 左操作数除以右操作数 | B / A等于2 |
% | 取余 - 左操作数除以右操作数的余数 | A%B等于3 |
两端都是数值是当做相加,有一端是字符串时当做拼接 ,两个整数相除/,结果只保留整数部分。10/3=3;
关系运算符
符号 | 描述 | 例子 |
> | 检查左边的值否大于右边,如果是条件为真 | A>B,为真 |
< | 检查右边的值是否大于左边,如果是条件为真 | A<B,为真 |
>= | 检查左边的值否大于等于右边,如果是条件为真 | A>=B,为真 |
<= | 检查右边的值是否大于等于左边,如果是条件为真 | A<=B,为真 |
== | 检查左边是否等于右边,如果是条件为真 | A==B,为真 |
!= | 检查两边的值是否相等,如果不是条件为真 | A!=B,为真 |
关系运算的结果都是布尔型
逻辑运算符
符号 | 描述 | 例子 |
&& | 两边条件要同时满足,则为真 | (A && B)为真 |
| | | 两边条件有一个满足,则为真 | (A | | B)为真。 |
! | 否运算,当条件为真时,经过运算,结果假 | !(A||B)为假 |
赋值、复合赋值运算符
符号 | 描述 | 例子 |
= | 赋值 | A=3 |
+= | 赋值 | A+=3相等于A=A+3 |
-= | 赋值 | A-=3相等于A=A-3 |
*= | 赋值 | A*=3相等于A=A*3 |
/= | 赋值 | A/=3相等于a=A/3 |
%= | 赋值 | A%=3相等于A=A%3 |
自增、自减运算符
符号 | 描述 | 例子 |
++ | 非单独成行,符号在前,先+1,再使用,符号在后.先使用,在+1 | ++1和1++ |
-- | 非单独成行,符号在前,先-1,再使用,符号在后,先使用,在-1 | --1和1-- |
三目运算符
表达式1?表达式2:表达式3
双分支语句,先执行表达式1,结果为true时执行表达式2,结果为false时执行表达式3
运算符的优先级
小括号>>单目运算符(!、++、--)>>算术>>关系>>逻辑>>条件>>赋值
int year=2000;
String res=(year%4==0&&year%100!=0)||year%400==0?"闰年":"平年";
条件语句
单分支
if(){
}
双分支
if(){
}else {
}
多分支
if(){
}else if(){
}else if(){
}
...
else{}
嵌套
if(){
if(){
}
}else{
}
在方法的if语句中出现return,就不再执行后续的代码。
如果方法的返回值是void,return后无需添加值,如果不是void,return后必须添加值。
可以将if嵌套改造为if-return。
public static void main(String [] args){
if(1>0){
return;//提前结束main方法
}
System.out.println("程序结束");//这句话不会输出
}
public int chu(int a,int b){
if(b==0){
System.out.println("0不能作为除数");
return 0;
}
return a/b;
}
```
switch(变量){
case 变量的值 :
break;
case 变量的值:
break;
case 变量的值:
break;
case 变量的值:
break;
default:
break;
}
可以不写break,会继续执行后续case后的内容。
如果能例举出一件事情的分支,建议使用swtich语句。
如果一件事情的分支是范围时,只能使用if语句
循环语句
while
while(条件){
语句
}
do-while
do{
语句
}while(条件)
for
for(表达式1;表达式2;表达式3){
语句
}
我们在已经知道循环次数时,好用for循环,而while和do_while,的区别是,do_while,会先运行一次.
循环控制
break终止整个循环如果循环中有swtich语句,switch中的break只能终止switch,不能终止循环。
continue停止本次循环,进行下次循环。(不再执行continue后续的代码)
break和continue通常配置if语句使用
数组
组类型相同的数据的有序集合。在内存中是一块连续的区域。
每个数据都称为元素,每个元素有自己的唯一索引,从0计数。
数组一旦定义后,其数据类型和大小不可改变,无法获取当前数组中的元素数量。
数组的定义
数据类型[] 数组名 = new 数据类型[数组大小];
int[] list=new int[10]
数组的初始化
数据类型[] 数组名 = new 数据类型[]{元素1,元素2...};
数据类型[] 数组名 = {元素1,元素2...};
int[] list=new int[]{1,2,3};
int[] list={1,2,3};
数组的取值和赋值
String[] namelist=new String[50];
namelist[0]="小红";
namelist[1]="小绿";
namelist[2]="坤坤";
namelist[3]="小千";
namelist[4]="杰伦";
namelist[5]="小仙女";
System.out.println(namelist[1]);
System.out.println(namelist[5]);
System.out.println(namelist[4]);
System.out.println(namelist[2]);
数组特点
数组可以通过“数组名.length”获取其长度
数组定义后,如果没有对其赋值,会有默认值
整型默认0,浮点型默认0.0,字符默认空白字符,布尔型默认false,引用类型默认null
通常使用增强for循环遍历数组
int[] list=new int[3];
System.out.println(namelist.length);
//调出数组长度
int num={1,2,3,4,5}
for (int i:num){
System.out.println(i);
}
//循环遍历