@生活冷战士 #和我一起去战斗
`java基础
1.一个简单的Java应用程序
public static void main(String[] args){
System.out.print("Hello world");
}
注意事项:
1、类名和文件名一致
2、main全部小写,不能写成main或者Main
3、System首字母大写
4、暂时不考虑static void 等修饰符
5、.是一个运算符用来调用方法
6、[]代表一个数组,args是方法参数
7、{代表程序开始,}代表程序结束
2、Java注释
代码千万行,注释第一行,注释不规范,同事两行泪!
1、//一般用于语句注释
2、//一般用于方法或者代码段
3、/ */一般用于方法或者类
注意事项:注释不能嵌套
3、Java数据类型
- 引用类型:Array,String;
- 基本类型:byte 、short、int,long,char,boolean,float,double;
- 变量
1.成员变量
2.局部变量
3.类变量
1. 声明变量:数据类型 变量名
2. 变量命名规则:
3. 只能以字母或者_或者$符号开头,且不能包含上述符号以外的符号
4. 不能以数字开头
5. 不能使用java关键字
6. 变量初始化:声明一个变量后,必须用复制语句对变量进行显式初始化,不能使用未初始化的变量。
7. 常量:java中利用final修饰的变量是常量。final修饰的变量只能赋值一次,赋值以后不能再更改。命名全部大写
4.运算符
1.算术运算符:
+ - * / % ++ -- ;
2.关系运算符:
> < == != >= <=;
3.位运算符:
& | ~ ^ >> << >>> ;
4、赋值运算符:
= += *= -= /= %=;
5、条件运算符
条件 ? 表达式1 : 表达式2
(1)首先对条件进行判断,其结果是布尔值true或者false
(2)如果为true,则返回表达式1;
(3)如果是false,则返回表达式2;
示例
int min;
min=2<3?2:3;
!提示
(1) 优先级最低的是赋值运算符,其次是条件运算符。
(2) 单目运算符包括 ! ~ ++ -- ,优先级最高。
(3) 可以通过()来控制运算顺序,()优先级最高。
(4) 总体而言,算术运算符>关系运算符>逻辑运算符。
(5) 结合性为从右向左的只有赋值运算符、三目运算符、单目运算符。
流程控制
-
程序的基本结构
(1)顺序结构: 从上到下,依次执行。
(2)选择结构:根据条件来选择执行不同的语句。
(3)循环结构:根据判断条件反复执行某段代码。 -
选择结构控制
使用if和switch语句实现选择结构。
if(score>60){
system.out.println("考试通过!!!");
}
if(score>60){
system.out.println("考试通过!!!");
}
else{
system.out.println("考试未通过。。。");
}
if(score>=90&&score<=100){
system.out.println("A");
}else if(score>=80){
system.out.println("B");
}else if(score>=70){
system.out.println("B");
else if(score>=60){
system.out.println("C");
}else{
system.out.println("D");
}
判断是否是闰年
int year;
if( year % 4 == 0){
if(year %100 = 0){
if(year %400 = 0){
system,out.println("是闰年");
}else{
system,out.println("不是闰年");
}
}else{
system,out.println("是闰年");
}
}else{
system,out.println("不是闰年");
}
Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩");
int score =scanner.nextInt();
switch (score/10) {
case 10:
case 9:
System.out.println("A");
break;
case 8:
System.out.println("B");
break;
case 7:
System.out.println("C");
break;
case 6:
System.out.println("D");
break;
default:
System.out.println("E");
break;
}
int i=1,sum=0;
while(i<=100) {
sum+=i;
i++;
}
System.out.println(sum);
打印九九乘法表
for (int i = 1; i < 10; i++) {
for (int j = 1; j < i+1; j++) {
int sum=0;
sum=i*j;
System.out.print(i+"*"+j+"= "+ sum +"\t");
}
System.out.println();
}
数组
1.定义:
具有相同数据类型,按照一定次序排列的一组数据的集合。
2.声明及初始化
数据类型 [] 变量名;
注意:数组在定义时一定要给定长度并且长度不可更改。
//静态初始化
int[] a ={1,2,3,4};
int[] a = new int[]{1,2,3,4};
//动态初始化
int[] a = new int[5];
a[0] = 1;
3.数组的生命过程
1. 声明
2. 分配内存
3. 初始化(赋值)
4. 使用,通过下标访问,如a[0]
4.名词
1. 数组元素:构成数组的数据
2. 数组下标:元素在数组中的位置,从0开始
3. 数组长度:数组中元素的个数,长度一旦确定就不可变
5.数组默认值
6.常见问题
1.数组下标越界异常
2.空指针异常
7.二维数组
注意:Java中没有多维数组,所谓二维数组不过是一维数组里的数组内储存了一维数组。可以说是数组中的数组。
int [][] ary={{1,2,3},{4,5,6},{7,8,9}};
int [][] ary=new int[length][length];
8.Arrays工具类
9.foreach
for(数据类型 变量名:被遍历数组集合){
Syetem.out.println(变量)
}
字符串
- 创建字符串
//字符串的本质是一个字符串数组
String a = new String("abc");//不推荐
String b = "abc";
- 字符串的常用API
3.可变参数
1. 本质是一个数组
2. 参数可以传0个,也可以传1个,也可以传多个
3. 使用可变参数前,要判断参数是否为null,以及长度是否大于0
4.数组类型转换
1. 基本类型转字符串
+
String.valueOf(基本数据来类型)
2. 字符串转基本类型
基本类型的包装类
5.==和equals的区别
1. ==用于判断内存中值是否相等
2. equals用于判断对象是否相等
6.String中的陷阱
1、String a="abc";String b="abc",
a==b?------- true
a.equals(b) -------- true
2、String a = "abc";String b = new String("abc");
a==b? ------- false
a.equals(b) ------ true
3、String类可以被继承吗?
答案是不能的
String类的方法头是:Public final class String extends Object
之所以不能被继承就是因为其中的修饰关键字 final
其含义相当于C/C++的const,意味着不可修改。
final可以用来修饰 类 、变量 和 方法,
final修饰类的时候 ,这个类就不能被继承了, 类中所有的方法也就被隐式的变为final方法
final修饰的方法的类可以被继承,但是final修饰的方法无法被覆写final修饰的变量相当于常量,只能被赋值一次,赋值后值不再更改 ,这就表示了final修饰的变量必须被初始化,初始化可以在声明变量的时候,也可以在构造函数中初始化
7.字符串格式化
format(Stringformat,Object...args);