2021-07-02 Java基础概述

Java概述
1、java程序如何实现在任意操作系统上运行(俗称跨平台) jvm(java虚拟机),针对不同的操作系统提供不同版本操作系统的jvm
2、jre:java程序的运行环境,包含jvm和运行时所需要的核心类库。(只要有jre就可以运行已有的java程序)
jdk:是java程序的开发工具包,,包含jre和开发人员使用的工具。其中的开发工具:编译工具(javac.exe)和运行工具(java.exe)。(开发全新的java程序就必须安装jdk)
3、jre、jdk、jvm之间的关系:jdk包含jre和开发工具,jre包含了jvm和核心类库。(故只需要一个jdk就可以了)。
4、jdk下载与安装:http://www.oracle.com(要针对不同的操作系统下载对应的jdk)下载exe版本的。
jdk的安装目录: 【1】bin:dk的各种工具命令,javac和java放在这个目录。【2】conf:jdk的相关配置文件。【3】include:一些平台特定的头文件。【4】jmods:jdk的各种模式。【5】legal:jdk各模块的授权文档。【6】lib:jdk工具的一些补充jar包。【7】其余为说明文档。

5、常用DOS命令:【1】命令提示符窗口 按下win+R输入cmd回车 【2】盘符切换:E:【3】dir:查看当前路径下的内容 【4】cd目录:进入单级目录【5】cd…:回到上一级目录【6】cd 目录1\目录2…:进入多级目录【7】cd\:回退到盘符目录【8】cls:清屏【9】exit:退出命令窗口

6、注释 ://,/**/

7、关键字: 关键字字母都是小写的,使用notepad软件会有特殊的颜色表示。
8、常量:不发生改变的量。【1】字符串常量“”【2】整数常量【3】小数常量【4】字符常量‘’【5】布尔常量,表示真假,true,false【6】空常量null
9、数据类型:【1】计算机存储单位,8位(b)=1字节(byte,B)【2】数据类型{1}基本数据类型:数值型(整数byte,1,-128123**short,2,-3276832767**int,4,**long,8,,浮点数float,4,**double,8,,字符char,2,0~65535)和非数值型(布尔boolean,1,true,false){3}引用数据类型(类,接口,数组)
10、变量:变量是内存中的一小块区域。数据类型 变量名=变量值;long赋值加L,float赋值加F。
11、标识符:由数字、字母、下划线_和美元符$组成,不以数字开头,不是关键字,区分大小写。
12、类型转换:【1】自动类型转换:数据范围小的数值或变量赋值给数据范围大的变量 double d=10;【2】强制类型转换:数据范围大的数值或变量赋值给数据范围小的变量 目标数据类型 变量名=(目标数据类型)值或者变量;

13、算数运算符:+、-、*、/、%
字符的+: ‘A’65,‘a’97,‘0’48;
多个基础类型的值会提升到最高类型。
等级顺序:byte,short,char->long->float->double
字符串的+:“”+“”
14、赋值运算符:=
注意:扩展的赋值运算符底层隐含了强制类型转换
【1】、自增自减运算符:i++;++i
参与操作使用的时候 int j=i++; j=i后i++; 相反++i;是先i++,后j=i;
【2】、关系运算符: == ,!= ,> , >= , < , <= 结果是true和false
【3】、逻辑运算符:& ,|,^(异或),!
【4】、短路逻辑运算符:&&,||,与逻辑运算符作用相同,但有短路效果
15、三元运算符:关系表达式?表达式1(为true则为表达式1):表达式2 (为false则为表达式2)

16、数据输入:手动输入,要使用Scanner,Scanner使用步骤【1】导包【2】创建对象Scanner sc =new Scanner(System.in)【3】接收数据。Int x =sc.nextInt();

17、流程控制:【1】顺序结构【2】分支结构(if…else if…else,switch(表达式){case值1:语句体1;break;…default:语句体n+1;[break;]})【3】循环结构(for(int i=1;i<=5;i++),while,do…while)
18、跳转控制语句:【1】continue:跳转某次,继续下一次【2】break:结束当前循环
19、循环嵌套:
20、Random:用于产生一个随机数,使用步骤【1】导包【2】创建对象:Radom r=new Random();【3】获取随机数int number=r.nextInt(10);获取数据的范围:[0,10)

21、idea内容辅助键和快捷键:【1】main():psvm, 输出语句:sout【2】注释:多ctrl+shift+/,格式化:ctrl+Alt+L【3】get、set方法:alt+insert

22、数组:格式:int[] arr,int arr[]
23、数组初始化:【1】动态初始化 int[] arr=new int[3];【2】静态初始化
24、数组元素访问:【1】数组变量访问方式:数组名【2】数组内部保持的数据访问方式:数组名[索引] 索引是编号从0开始的
25、内存分配:Java中的内存分配,java程序在运行时需要内存分配空间,为提高运行效率,就对每一块空间进行了不同区域的划分。
数值在初始化时,会为存储空间添加默认值。整数0,浮点数0.0,布尔false,字符 空字符,应用数据类型null,每一个new出来的东西都有一个地址值。
【1】栈内存:存储的是局部变量 arr,使用完毕立即消失
【2】堆内存:存储new出来的内容(实体、对象)使用完毕,会在垃圾回收站空闲的时候被回收
26、单个数组的内存图
27、数组静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式: 数据类型[] 变量名 = new 数据类型[]{数据1,数据2…};
Int[] arr=new int[]{1,2,3};
简化格式:数据类型[] 变量名={数据1,数据2,…};
28、数组常见操作
【1】遍历:使用for循环遍历即可
【2】获取数组元素数量:数组名.length
【3】获取最值:定义变量保存最值,取第一个数据作为变量的初始值,与数组中剩余的数据逐个对比,每次比对后将最值保存到变量中,循环结束后打印变量值即为最值

29、方法
【1】带参数方法定义:
格式:
(单个参数)public static void 方法名(数据类型 变量名){……}
(多个参数)public static void 方法名(数据类型 变量名1,数据类型 变量名2){……}
【2】带参数方法调用
格式:
(单个参数)方法名(变量名/常量值);
(多个参数)方法名(变量名1/常量值1,变量名2/常量值2);
参数数量与类型必须与方法中一致
【3】形参和实参:
形参:方法定义中的参数 数据类型 变量名
实参:方法调用中的参数 变量名
30、带返回值方式的定义和调用
【1】带返回值方法定义
格式: public static 数据类型 方法名(参数){return 数据;}
return的返回值与方法定义上的数据类型要匹配
【2】带返回值方法调用
格式:方法名(参数);
格式:数据类型 变量名=方法名(参数);
31、方法注意事项
【1】方法不能嵌套定义
【2】void表示无返回值,可以省略return,也可以return;
32、方法的通用格式
Public static 返回值类型 方法名(参数){
方法体;
return 数据;
}
33、方法重载:多个方法在同一个类中,具有相同的方法名,但参数不同(即类型不同或者数量不同)
34、方法的参数传递:
【1】基本类型:形参的改变,不影响实参的值
【2】引用类型:形参的改变,影响实参的值
面向对象基础
35、类和对象:
对象:客观存在的事务
面向对象:
类:一类具有共同属性和行为事务的抽象
对象的属性:对象具有的各种特征,每个对象的每个属性拥有特定的值
对象的行为:对象能执行的操作
36、类的定义 :【1】定义类【2】编写类的成员变量【3】编写类的成员方法
37、对象的使用:【1】创建对象 类名 对象名=new 类名();【2】使用对象 对象名.变量名对象名.成员方法()
38、对象内存图
39、成员变量(方法外类中,堆内存,随对象,有默认初始值)和局部变量(方法中,栈内存,随方法,没有默认初始值)

40、关键字:
【1】private关键字:私有,需要提供get和set方法
【2】this关键字:this修饰就是成员变量,没有就是局部变量
41、面向对象三大特征:封装、继承、多态
42、封装是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外部是无法直接操作的。
43、封装的原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,成员变量private,提供对应的get,set方法。
44、封装的好处:方法控制成员变量,安全性;代码用方法封装提高了代码的复用性。

45、构造方法:是一种特殊方法,作用是创建对象。
格式:
Public class 类名{
修饰符 类名(参数){}
}
功能:完成对象数据的初始化
46、构造方法主意事项:构造方法的重载:自定了带参构造方法,系统将不再提供默认的构造方法,还要使用无参构造方法,就必须再写一个无参构造方法。

47、字符串
48、API:应用程序编程接口,帮助文档。
49、String:java.lang下无需导包,字符串,“”,创建后不能更改,但可共享,效果相当于char[],底层原理byte[]
50、String构造方法:
【1】public String() 空串
【2】public String(char[] chs) 根据字符数组的内容来创建
【3】public String(byte[] bys) 根据字节数组的内容来创建
【4】String s=”abc” 直接赋值
51、String对象的特点:new后都会有新的地址
52、==的比较:
【1】基本类型:比较的是数据值是否相同
【2】引用类型:比较的是地址值是否相同
53、字符串比较:比较内容是否相同 equals()
54、字符串获取每一个字符:charAt(int index) 从0开始
55、字符串长度:length()
56、字符串判断大写字母:ch>=’A’&&ch<=’Z’
57、字符串判断小写字母:ch>=’a’&&ch<=’z’
58、字符串判断数字:ch>=’0’&&ch<=’9’
59、StringBuilder:是一个可变(内容可变)的字符串类,我们可以把它看成是一个容器,使用时是不会像String拼接时创建一个新的对象,而且String的内容是不可变的
60、StringBuilder构造方法(new):
【1】StringBuilder()空白可变字符串对象
【2】StringBuilder(String str)根据字符串的内容创建
61、StringBuilder的添加和反转方法:
【1】append(任意类型)添加数据,并返回对象本身
【2】reverse()返回相反的字符序列
62、StringBuilder和String的相互转换:
【1】StringBuilder转String:toString()
【2】String转StringBuilder:StringBuilder(String s)

63、集合基础:
64、ArrayList:可调整大小的数组实现,泛型,是一种特殊的数据类型。ArrayList
65、ArrayList构造方法和添加方法:
【1】ArrayList():创建空的集合对象
【2】add():追加到集合末尾
【3】add(int index,E element):插入到指定位置
66、ArrayList常用方法:
【1】remove(Object o)删除指定元素,返回是否成功
【2】remove(int index)删除索引处的元素,返回删除的元素
【3】set(int index,E element)修改指定索引处的元素,返回被修改的元素
【4】get(int index)返回指定索引出元素
【5】size()返回集合中的元素个数

67、继承:面向对象三大特征之一,可以使子类具有父类 属性和方法,还可以在子类中重新定义,追加属性和方法。Extends
68、继承的好处和弊端:
【1】好处:代码的复用性,维护性提高
【2】弊端:耦合性增强
【3】什么时候用:is a关系
69、继承中变量的访问特点:
在子类方法中访问一个变量:子类局部范围—子类成员访问—父类成员范围—报错
70、super:
Super和this关键字用法相似:
This:代表本类对象的引用
Super:代表父类存储空间的标识(可以理解为父类对象引用)
71、继承中构造方法的访问特点:子类中所有的构造方法默认都会访问父类无参的构造方法
因为子类会继承父类中的数据,可能还会使用父类的数据。所以子类初始化之前一定要完成父类数据的初始化。每个子类构造方法的第一条语句默认都是super()
若父类中没有无参构造方法,只有带参构造方法,通过使用super关键字去显示的调用父类的带参构造方法或者在父类中自己提供一个无参构造方法。
72、继承中成员方法的访问特点:
在子类对象中访问一个方法:子类成员访问—父类成员范围—报错
73、方法重写:子类中出现了和父类中一模一样的方法声明 @Override
74、方法重写注意事项:父类私有不能重写。子类访问权限要在父类下
75、Java中继承的注意事项:java只支持单继承,不支持多继承,支持多层继承

76、修饰符:
77、包:就是文件夹,对类进行分类管理 package
78、导包:import
79、权限修饰符:private 默认 protected public
80、状态修饰符:final(最终态,修饰成员方法,成员变量、类)、static(静态,修饰成员方法,成员变量,静态成员方法只能访问静态成员)

81、多态:同一对象在不同时刻表现出的不同形态。Animal a=new Cat();
82、多态的前提和体现:有继承/实现关系,有方法重写,有父类引用指向子类对象
83、多态中成员访问特点:
【1】成员变量:编译看左边,执行看左边
【2】成员方法:编译看左边,执行看右边,因为方法重写了
84、多态的好处和弊端:
【1】好处:提高程序的扩展性
【2】弊端:不能使用子类的特有功能
85、多态中转型:帮助我们使用子类的特有功能
【1】向上转型 就是多态
【2】向下转型 Cat c= (Cat) a;

86、抽象类:一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。 Abstract
87、抽象类的特点:
【1】抽象类和抽象方法必须使用abstract关键字修饰
【2】抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
【3】抽象类不能实例化
【4】抽象类的子类:要么重写抽象类中的所有抽象方法,要么是抽象类
88、抽象类的成员特点:

89、接口:
90、接口的特点:接口interface 接口实现类implements
91、接口的成员特点:
【1】接口变量 只能是常量 ,默认修饰符:public static final
【2】接口没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在
一个类如果没有父类,默认继承自Object类
【3】成员方法 只能是抽象方法 , 默认修饰符:public abstract
92、类和接口的关系 :实现关系 ,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
93、接口和接口的关系:继承关系,可以单继承,也可以多继承

94、接口和抽象类的区别:抽象类是对事物的抽象,而接口是对行为的抽象
【1】成员区别
抽象类: 变量,常量;有构造方法;有抽象方法,也有非抽象方法
接口: 常量;抽象方法
【2】关系区别
类与类: 继承,单继承
类与接口: 实现,可以单实现,也可以多实现
接口与接口: 继承,单继承,多继承
【3】设计理念区别:
抽象类: 对类抽象,包括属性、行为
接口:对行为抽象,主要是行为

95、形参和返回值:
【1】类名作为形参和返回值:
方法的形参是类名,其实需要的是该类的对象
方法的返回值是类名,其实返回的是该类的对象
【2】抽象名作为形参和返回值:
方法的形参是抽象类名,其实需要的是该抽象类的子类对象
方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
【3】接口名作为形参和返回值:
方法的形参是接口名,其实需要的是该接口的实现类对象
方法的返回值是接口名,其实返回的是该接口的实现类对象

96、内部类:就是在一个类中定义一个类
内部类的定义格式:
格式:
Public class 类名{
修饰符 class 类名 {
}
}
97、成员内部类:按照内部类在类中定义的位置不同。分为成员内部类和局部内部类
外界创建对象使用:外部类名.内部类名 对象名= 外部类对象.内部类对象;
98、局部内部类:局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用。
该类可以直接访问外部类的成员,也可以访问方法内的局部变量
99、匿名内部类:前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类
格式:
new类名或者接口名(){
重写方法;
};
本质:是一个继承了该类或者实现了该接口的子类匿名对象
100、匿名内部类在开发中的使用:

101、常用API:
102、Math:
【1】abs(int a):返回参数的绝对值
【2】ceil(double a):返回大于或等于参数的最小的double值,等于一个整数
【3】floor(double a):返回小于或等于参数的最大的double值,等于一个整数
【4】round(float a):按四舍五入返回最接近参数的int
【5】max(int a,int b):返回两个int值中的较大值
【6】min(int a,int b):返回两个int值中的较小值
【7】pow(double a,double b):返回a的b次幂的值
【8】random():返回double的正值,[0.0,1.0)
103、System:
【1】exit(int status)终止当前java虚拟机,非零表示异常终止
【2】currentTimeMilllis()返回当前时间(以毫秒为单位)
104、Object:是类层次结构的根,所有类直接或间接继承该类
【1】ToString:返回对相关的字符串形式,建议所有子类覆盖此方法,重写比较内容,自动生成
【2】Equals:比较内容是否相等,默认比较地址,重写比较内容,自动生成
105、Arrays:
【1】冒泡排序相邻数据两两比较,大的放后面啊,依次对所有数据进行排序操作,知道所有数据按要求完成排序
n个数据排序,要比较n-1次 ,每次比较完了,下次比较就会少一个数据
【2】arrays类的概述和常用方法:toString(int[] a)返回指定数组的内容的字符串表示形式;sort(int[] a)按照数字顺序排列指定的数组
106、基本类型包装类:用于基本数据类型与字符串之间的转换
【1】基本数据类型:byte short int long float double char boolean
【2】 包装类:Byte Short Interger Long Float Double Character Boolean
【3】Integer类的概述和使用:包装一个对象中的原始类型int的值
构造方法:Integer(int value)根据int创建 Integer对象,Integer(String value)根据String创建 Integer对象
Int和String与Integer的转换:
静态方法获取对象:valueOf(int i),返回表示指定int的Integer实例,valueOf(String s),返回表示指定String的Integer实例
得到字符串中的数字数据存储到一个int类型的数组中:String[] split(String regex)
定义一个int数组,把String[]数组中的每一个元素存储到int数组中:int parseInt(String s)
装箱是基本类型到包装性,拆箱相反。
自动装箱 Integer I =100;
I +=100; i=i+100;i+100自动拆箱 i=i+100是自动装箱
107、日期类:
【1】Date类概述和构造方法 ,java util包下,以毫秒为精度。
构造方法:
Date()分配一个Date对象,并初始化,以便它代表被分配的时间,精准到毫秒
Date(long date)分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
常用方法:
GetTime()获取的是日期对象从1970年1月1日到现在的毫秒值
SetTime(long time)设置时间,给的是毫秒值
【2】SimpleDateFormat类概述:用于区域设置敏感的方式格式化和解析日期
日期和时间格式由日期和时间模式字符串指定,在日期和时间莫斯字符串中,从‘A’到‘Z’以及从‘a’到‘z’引号的字母被解释为表示日期或时间字符串的组件的模式字母
y年
M月
d日
H时
m分
s秒
yyyy年MM月dd日 HH:mm:ss
构造方法:
SimpleDateFormat()构造一个SimpleDateFormat,使用默认模式和日期格式
SimpleDateFormat(String pattern)构造一个SimpleDateFormat使用给定模式和默认的日期格式
格式化:从Date到String:String format(Date date)将日期格式化成日期/时间字符串
解析:从String到Date:Date parse(String source)从给定字符串的开始解析文本以生成日期
【3】Calendar类概述:日历类 为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法
类方法.getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化
calendar的常用方法:
get(int field)返回给定日历字段的值
add(int field,int amount)根据日历的规则,将指定的时间量添加或减去给定的日历字段
set(int year,int month,int date)设置当前日历的年月日

108、异常
109、throwable的成员方法
【1】getMessage()返回此throwable的详细消息字符串
【2】toString()返回此可抛出的简短描述
【3】printStackTrace)()把异常的错误信息输出给控制台

110、集合进阶:
111、集合类体系结构:
【1】接口Collection单列集合(接口List元素可重复 [ArraryList,LinkedList….], 接口Set不可重复[HashSet,TreeSet…])
【2】接口Map:双列集合[HashMap,…]
112、Collection集合概述和使用:单列集合顶层接口,表一组对象(又称collection的元素),jdk无此接口直接实现,提供更具体的子接口实现(set,list)
113、collection集合常用方法:
【1】boolean add(E e)添加元素
【2】boolean remove(Object o)从集合中移除指定的元素
【3】void clear·()清空集合
【4】boolean contains(Object o)判断集合中是否存在指定的元素
【5】boolean isEmpty()判断集合是否为空
【6】int size()集合长度
114、List集合概述和特点;有序集合,用户可以精准控制列表中的每一个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。与set的不同是元素允许重复
115、List集合特点:
有序:存储和取出的元素一致
可重复:存储的元素可以重复
116、list集合特有方法:
add(int index,E element):在此集合中指定位置插入指定的元素
remove(int index):删除指定元素
set(int index,E element):修改指定元素
get(int index):返回指定元素
117、并发修改异常
118、Listlterator

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值