【网学网提醒】:网学会员为广大网友收集整理了,达内java学习资料,希望对大家有所帮助!
Oak橡树--->咖啡豆
java
java与C++
1,c++析构函数--->释放资源
c++支持多继承
c++写的
程序只能在window操作系统上面运行
2,java你要用直接申请,
java只支持单继承
java(任何操作系统)---jvm
java应用方面
1,javaSE
核心java也称作corejava,很重要,桌面应用
程序 2,javaEE
企业级应用软件开发,javaEE是java最难得
3,javaME
手机软件开发,android
javaSE
1,为什么java能跨平台
jvm--->javavirtuemachine
翻译解释执行
*.java--->javac--->*.class--->java--->jvm--->操作系统上运行的
不同的操作系统,jvm肯定不一样
jdk--->javadeveloperkit(javac核心类库jvm)
jre--->javaruntimeev....
jdk包含jre
path
告诉操作系统命令的位置
classpath
指定我们的类路径
1,java的数据类型(2种)
1,基本数据类型(8种)
1,数字类型
1,byte18Byte
2,short216Short
3,int432Integer
4,long864Long
2,浮点类型
1,float4
2,double8
3,字符类型
1,char2''
4,布尔类型
1,boolean1
1,什么是变量
变量就是一种容器,在内存中的一块空间
inti
变量的命名规则
不能以数字开头
不能有空格
不能有特殊符号
不能是关键字
但可以以字母开头,数字放后面
可以有_$命名
可以以中文命名
流程控制语句
if(布尔表达式){
}elseif(布尔表达式){
}elseif(){
}
从控制输入一个数字(0-100),判断该分数的等级(90-100)A
switch(值){
case值:语句;break;
case值:语句;
case值:语句;
case值:语句;
}
循环语句
for(初始值;循环条件;循环增量){
}
while(){
}
从控制台输入一个数(0-100)系统随机生成一个0-100的数,
2,引用数据类型(自定义数据类型)
数组
1,基本类型数组(数组里面的元素是基本的类型的)
1,静态初始化
2,动态初始化
无论是静态初始化还是。。。。。,数组一旦给定长度就不能增加长度了
数组的扩容
java里面的多维数组不是真正的多维数组,是有多个一维数组构成
2维数组
2,引用类型数组
面向过程(注重的是
程序的流程)
面向对象(注重的如何处理好各个对象之间的关系)
类(用来描述某一类具有相同特征一类事物)
属性:用来描述事物的特征
方法:用来描述事物的行为
对象(对象是类的具体事例)
1,构造方法没有返回值
2,方法签名跟类名一致
一定是构造方法
构造方法用来干什么?
调用构造方法表示正在创建一个该类型的一个具体对象
访问修饰符
public对所有类可见
protected对本包可见以及子类可见
default对本包可见
private本类可见
面向对象的3个特点
1,封装
就是把一类事物的特征和行为作为一个整体,抽象成一个类
方法的重载
前提
发生在同一个类里面
特征
1,方法签名必须相同
参数不同
1,参数类型不同
2,参数的个数不同
3,参数的顺序不同
跟返回值类型和访问修饰符不关
为什么要有方法的重载?
同一种行为,有不同的方式
可变长参数String...
构造方法可以重载吗?
可以
this关键字
1,表示当前对象
2,表示调用该类型的其他构造方法
2,继承
继承是为了代码重用而继承吗?
不是
继承是为了体现isa的关系
hasa
3,多态
1,什么是多态?
多种形态
多态的前提:
1,必须要有继承关系
2,要有方法的重写
1,方法签名一致
2,参数一定相同
3,返回值相同(在jdk1.5子类方法返回值类型可以是父类方法返回值类型的子类)
4,访问修饰符子类方法访问修饰符不能比父类更小
5,异常,子类方法抛出的异常不能比父类方法抛出的异常更大
多态是发生在多个类里面
属性没有多态
多态带来的好处,屏蔽了不同子类的差异性
1,编译时类型(认知状态)
2,运行时类型
static静态
static修饰的属性或者方法都是属于类级别
它可以同过类名直接调用
非static修饰的成员,属于具体的对象的
静态资源不能访问非静态资源,静态资源可以访问静态资源,非静态资源可以访问静态资源
final常量表示最终的意思
final修饰的方法不能被重写
final修饰的类是不能被继承的
接口
有点像c里面的数据结构
语法上(interface)
1,接口里面定义的属性全是公开的静态的常量
2,接口里面定义的方法全是抽象方法(方法不能有方法体)
3,接口里面没有方法体
在设计上
1,它是标准是规范,
接口一般用于定义业务方法
抽象类
abstract
抽象类里面可以有抽象方法,也可以有具体的方法
抽象类里面有构造方法,但不是直接new,可以通过子类间接构造
在设计上
它是
模板 内部类
类里面的类
1,成员内部类
2,局部内部类
数组
只能存放元素
集合
用来存放元素的一种容器(可以存放元素,并且可以操纵元素)
集合分为两大类
1,collection
ArrayList底层是用数组实现的
存放元素有序
可以存放相同的元素
HashSet底层是用hashmap实现的
存放元素无序
不能添加相同的元素
Set是真正意思上的数学集合
2,map
HashMap很重要
HashMap底层是有数组加链表实现
equals相等,hashcode一定相等
hashcode相等,equals不一定相等
异常
在
程序运行中出现了一些意外情况(例外)
异常的分类
1,编译时异常(已检查异常
2,运行时异常(未检查异常)
Object
Throwable
ExceptionError(jvm抛出的一些不可恢复的错误)
RuntimeException
异常的处理方式
1,捕获
try{
}catch(Exceptione){
}
2,抛
自定义异常
自己定义异常
如果你想让你的类成为一个已检查异常,那么要让你写的类直接或者间接继承自Exception(直接继承Exception)
如果你想让你的类成为一个未检查异常,那么要让你写的类直接或者间接继承自RuntimeException(直接继承RuntimeException)
File类(操作文件的类)
IO流(input,output)
1,流按单位划分
1,字节流(byte)
2,字符流(gbk)汉字abc中国(utf-8)多字节编码
凡是以stream结尾的流都是字节流,凡是以reader或者writer结尾的流都是字符流
2,按功能划分
1,节点流(功能流)
2,处理流(不是真正具备读写能力的流,加强节点流的处理能力)
3,按方向来划分
1,输入流
2,输出流
FileInputStream--->
BufferedInputStream
转换流
对象流(*****)
流的重定向
1,标准输入输出流重定向
2,标准错误输出流重定向
进程
不用的应用
程序都对应一个进程,操作系统管理的
线程
在同一个应用多个并发执行的顺序流,进程管理的
如何创建线程
1,写一个类继承Thread
2,写一个类实现Runnable接口
socket插座
jdbc--->javadatabaseconnection
是连接数据库的一套规范(接口)