java基础

来源:互联网 发布:魔术笔软件下载 编辑:程序博客网 时间:2024/05/21 19:45

面向对象的特征:

对象具有状态.行为.标识,意味有内部数据和方法,并有唯一的地址

类:所有对象是唯一的,具有相同的特征(数据类型)和行为(功能)的对象叫class
接口:只满足某些请求,请求的对象叫接口,接口决定类型。类识该接口的特定的实现
每一和对象都是提供服务的:每个对象完成一项任务,不要试图做更多的事,高内聚,低耦合
提供服务分俩类:类的创建者,和客户端程序员,客户端程序员只是收集各种信息,快速开发,所以类的创建
的要把具体细节隐藏(隐藏的也是最薄弱的)出现了权限,private 只有类创建者使用,protected,继承者
pubic全部
类建立成功就是使用类了,实用类有俩种;
1:组合has-a.2:继承:以现有的类为基础,复制它改变方法(重写,和重载)缺点上层变化,下层也变化
继承后产出多态:互换对象,动态绑定(静态绑定),和向上转型(向下绑定)
容器;解决问题不知道多少对象,或者存活多久,如何存储对象
list(储蓄序列)map(关联)set(每一个对象只有一个)
选择容器:不同的容器提供不同的类型接口。不同的容器在某种操作的速率
向下转型:泛型
异 常:java内置异常,强制必须使用
并发:同一时刻处理多个事任务-线程-提高响应-资源共享


集合:list必须按照顺序,可以重复 set元素不能重复,没有顺序 map键值对
arrayList 动态数组随机访问 插入删除重新分配空间慢,linkedlist 底层是链表访问慢,插入删除快
set 不能重复,找到快hashset没有顺序 散列函数 treeset有顺序唯一值 红黑树 实现Comparable接口
hashmap 线程同步与hashtable线程不同步 Collections.synchronize()使hashmap同步
hashtable不许value 和key不能null
解决哈希冲突 在所有哈希地址相同的记录都连接在同一链表中或者开放定址法


泛型list<object>list = new arratlist<integer>()不可以使用泛型错误


线程:继承Thread 重写run方法 实现runnable接口,重写run //加锁避免出现重复
当都用一个对象,会出现共享问题提run(){for(int =0;i<100;i++)synchronized(){} TestRunable r1= new test() new Thread(r1).start()}
控制时间片WaitForSingleObject(xxxhandle),4.临界区(常用)
InitializeCriticalSection(&m_CS);//初始化临界区
join方法在线程里的作用要一个线程强制占用一个线程


线程通信 wait this.notify 一定在同步中,没有共享不要通信


String str="asd" String str1="asd" String str2 = "asd" String str3=new String("asd") String str4=new String("asd")
str==str1 str2=str3 str = str2  ==比较引用类型 比较虚地址 new会开辟新的地址
Strig str="asd" 是只读属性,不会改变列如函数调用
String 的equals对Object类定义,在str中进行的覆盖,比较的是内容


引用的值传递:如果在方法中新建一个地址,就不会改变原来的值


基本数据类型传递:传递的值不会改变原来的值


static和类有关,非static和对象有关  static属性只初始化一次,每个对象对其修改是同一个地址空间


final 修饰变量变常量 不能改变 初始化必须赋值 或者在构造方法赋值  进一步static final 静态常量
为什么要用,说明方法已经满足需要了,不要扩展,不要覆盖,




this 只当前类的引用, 调用属性和方法 2在构造器中,调用另一个构造方法 final类不能继承 final方法不能覆盖


重载:出现多个重名但不同参数的方法,可根据参数的类型,个数个顺序识别
覆盖: 在继承关系中,子类重写父类的方法,,什么都相同,但权限不能缩小


继承:super()子类调用父类的指定方法,调用构造器方法 


抽象类:不能创建实列,继承
原创粉丝点击