java dev

开发java程序

1.环境准备

1.安装jdk1.8

2.配置环境变量

​ JAVA_HOME,Path

3.查看是否配置成功

javac -version

java -version

2.IDE--集成开发工具

eclipse/myeclipse

idea

3.java基础知识

1.基本数据类型

8种:byte short int long char float double boolean

2.运算符:

1.算术运算符:+,-,*,/,%

2.赋值运算符:=,+=,-=,*=,/=,%=

3.逻辑运算符:与或非---&,|,!;短路与或:&&,||

4.比较运算符:>,<,>=,<=,!=,==

注意:和=的区别:是比较运算符,=是赋值运算符

5.三元运算符:表达式1?表达式2:表达式3.-----如果表达式1为true,返回表达式2,否则返回表达式3

前++(先加1再使用),后++(先使用后加1),前--,后--

3.类型转换

1.向上转型--由低转高,自动完成

2.向下转换--由高到低,强制类型转换--(数据类型)a

byte--short--int--long--float--double

4.分支语句

1.if语句

格式1:
if(条件表达式){
	语句;
}

格式2:
if(条件表达式){
    语句1;
}else{
    语句2;
}

格式3:
if(条件表达式1){
    语句1;
}else if(条件表达式2){
    语句2;
}else if(条件表达式3){
    语句3;
}
......
else{
    语句n;
}

2.switch语句

switch(变量){
	case 值1:
        语句1;
        break;
    case 值2:
        语句2;
        break;
    	...
    case 值n:
        语句n;
        break;
    default:
        其他;
        break;//可以省略
}

注意:break;用来跳出switch语句。如果不加break,会依次往下执行下一个case,直到遇到break为止。

5.循环语句

1.while

while(循环条件){
	循环语句;
}

2.do...while

do{
	循环语句;
}while(循环条件);

3.for

for(初始化语句;循环条件;增量){
    循环语句;
}

4.循环的嵌套

双重循环

for(初始化语句;循环条件;增量){
    for(初始化语句;循环条件;增量){
        内层循环语句;
    }
    外层循环语句;
}

6.数组

声明数组+初始化

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...元素n}

数据类型 数组名[] = {元素1,元素2,...元素n}

数据类型[] 数组名 = new 数据类型[元素数量]

获取数组元素:

数组名[索引]--索引从0开始,最大索引是:数组长度-1

获取数组的长度:使用length属性

数组名.length

遍历数组:通过索引和length属性

for(int i = 0;i < 数组名.length;i++){
	数组名[i];
}

数组的特点:

1.数组类型和长度是固定的,一旦创建不可修改

2.数组中的元素是连续的,数组在内存中开辟的是一块连续的空间

3.数组中可以存放任意类型的元素

4.数组是引用类型的数据

注意:

1.索引的范围是:0-数组的长度-1,如果超出范围取值,会报数组下标越界异常:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

2.调用length属性的数组不能是空(null)的,否则会报空指针异常:

Exception in thread "main" java.lang.NullPointerException

多维数组:二维及以上的数组

​ 二维数组:一维数组的每个元素也是一维数组

数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2,...元素n},{元素1,元素2,...元素n},...{元素1,元素2,...元素n}}

数据类型 数组名[][] = {{元素1,元素2,...元素n},{元素1,元素2,...元素n},...{元素1,元素2,...元素n}}

数据类型[][] 数组名 = new 数据类型[n][m]

示例代码:遍历二维数组

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j] + "\t");
    }
    System.out.println();//换行
}

7.方法

定义:完成一个特定功能的代码的集合

声明方法:

public static 返回类型/void 方法名(参数列表){
    方法体;
    return 返回值;//如果有具体返回值
}

调用方法:

1.直接调用

方法名(实参);

2.输出调用--方法有返回值

System.out.println(方法名(实参));

3.赋值调用--方法有返回值,且和变量的数据类型一致

数据类型 变量名 = 方法名(实参);

8.键盘录入

扫描器:Scanner类

Scanner input = new Scanner(System.in);

接收整数:

int num = input.nextInt();

9.String类

1.String不是基本数据类型,是引用类型,用来声明字符串

2.可以类似于声明基本数据类型变量的方式创建String对象

String name = "郭靖";

3.String类型的值必须用双引号引起来

4.常用方法:

int length():获取字符串的长度并返回
char charAt(int index)获取到指定位置的字符
String[] split(String regex) 分割字符串
int indexOf(int ch) 返回此字符串中指定字符的第一个匹配项的索引
boolean contains(CharSequence s) 判断是否包含某个字符串
String concat(String str) 将指定的字符串连接到此字符串的末尾
boolean isEmpty() 当且仅当length()为0时,返回true
boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始
boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束
boolean equals(Object anObject) 比较两个字符串是否相等
String trim() 去除字符串两边的空格
String substring(int beginIndex, int endIndex) 截取子字符串并返回
String toUpperCase() 把该字符串中所有字符转为大写
String toLowerCase() 把该字符串中所有字符转为小写

4.面向对象

1.类和对象:

类是一组有相同行为的对象的集合

类是对象的抽象,对象是类的实例化,比如学生类,张三对象

创建对象:类名 对象名 = new 类名();

比如:

Student student = new Student();

构造方法:

1.构造方法名和类名是相同的

2.构造方法没有返回值,void也没有

3.调用方式和普通方法不一样,创建对象的时候调用,是用来初始化对象的

方法的重载:同一个类中,方法名相同,参数列表不同,和返回值没有关系。(例如:println()方法)

2.封装

把属性私有化,提供公共的get,set方法

private:只能被本类访问

public:所有地方都可以访问

3.继承

关键字:extends

java只支持单继承,不支持多继承。支持多层继承

super和this关键字的不同

super代表父类引用,this代表当前对象

super(参数列表):引用父类构造方法;this(参数列表):调用本类其他的构造方法

super.方法名():执行父类的方法;this.方法名():调用本类中的方法

super.属性名:访问父类的属性;this.属性名:访问当前对象的属性

所有的类都继承自Object类--Object类是所有类的父类

4.多态

前提:

1.要有继承关系

2.要有方法重写(重写:子类定义一个和父类一模一样的方法)

3.要有父类引用指向子类对象

5.抽象类

关键字:abstract

用abstract修饰的类就是抽象类

抽象类不能实例化

抽象类可以有构造方法

抽象类中可以有具体方法

可以有抽象方法,也可以没有

6.接口

关键字:interface

实现接口:implements

接口不能实例化

接口中不能有构造方法

接口中不能有具体方法--1.8以上可以有默认方法和静态方法

接口中的成员全部都是公共的

5.集合类

Collection和Map

Collection的子接口:List和Set,单列的

List接口:有序的可以重复,常用实现类:ArrayList和LinkedList

常用方法:

boolean add(E e) 将指定的元素追加到列表的末尾
void clear() 从列表中删除所有元素
E get(int index) 返回列表中指定位置的元素
int indexOf(Object o) 返回该列表中指定元素的第一个匹配项的索引,如果该列表不包含该元素,则返回-1
boolean isEmpty() 判断集合是否为空
E remove(int index) 移除指定位置的元素
int size() 返回集合的元素数量
Iterator<E> iterator()  返回当前集合的迭代器对象

遍历list集合:

  • 普通for循环
  • 迭代器
  • ListIterator--List集合特有的迭代器
  • 增强for循环

ArrayList和LinkedList的区别:

  1. ArrayList是数组结构,查询快,增删慢
  2. LinkedList是链表结构,查询慢,增删快

Set接口:无序的不可重复,常用实现类:HashSet,TreeSet,LinkedHashSet

Map接口:存储键值对的集合,双列的,常用实现类:HashMap,TreeMap,LinkedHashMap

posted @ 2020-10-13 16:35  Coast-  阅读(257)  评论(0)    收藏  举报