线程
线程:轻量的进程,统一类线程共享的代码和数据空间,每个线程都具有独立栈和程序计数器
进程:每个进程都将具有的代码和数据空间
应用场景:tomcat
聊天室
web服务器:tomcat.resin等
数据库系统.MSSQLServer.oracle.mysql
区别
Thread :数据不共享,只能继承
Runnable:数据共享,必须创造一个Thread实例去实现多线程
synchronized 同步代码块,可以同步对象,或者同步方法,主要是用阿里操作对象的额互斥锁
阻塞的方法
sleep():毫秒为单位的时间使线程以指定的时间进入阻塞的状态,不能得到cpu时间,当然了是时间过来,就可以恢复
supend()resume():配套使用,supend()使线程进入阻塞状态,不会自动恢复,需要resume()唤醒
wait().notify:配套使用,1.以时间作为参数,超出时间就进入就绪状态,2.没有参数,需要notify调用(会释放所有的对象锁)
重点:
wait():执行该方法,该线程就会进入阻塞状态,同时释放掉对象的互斥锁,只能在同步代码块区(临界资源)synchronized.也就是操作对象的互斥锁.
面向对象
1.面向对象的特征?
1.抽象:将一类对象的共有的特征或者属性总结出来
2.继承:继承已有的类的信息,获取父类的属性
3.多态:就是允许不同的子类的对象对同一消息的而不同响应
(同样的对象引用调用同样的方法做不同的事情)
(重载与重写的区别
重载:一个类中的多态性的表现)(存在于一个类中,具有相同的名字,不同的参数和不同的定义)
重写 :不同的多态表现(子类继承父类,重写父类已有的方法)
4.封装:把数据和操作数据的方法绑定起来,用接口定义数据访问
2.总结修饰public ,private protect,default(默认不写)的区别
public :表名公开,表示该数据成员对全部用户开放
当前类, 同一个包 子包 其他包
private :表示私有,除了自己class以外,无论什么都不能使用(私有财产不可侵犯,不管是亲戚朋友,都不能使用)
protected:保护类型,对子女(子类)朋友(同包)就是公开的,可以使用对陌生人(外部的class)就是私有,只能是子类,和同包下使用
default(默认)朋友能够访问(当前类,同包)
3.int与Integer的区别
int:数据类型,在类(记住是类)中自动分配的默认是0
Integer(包装类):对象,默认值null
Boolean Character Byte Long short Integer Float Double
Stack(栈) head(堆) method(方法区)
String str
stack(栈):我们生命一个基本数据类型,或者对象引用,函数调用现场
head(堆):对象的存放,一般是通过new生成的对象,Gc垃圾回收器管理的主要区域(因为对空间很大,并且空间存放的独像很多)
method(方法区)类信息,常量,.静态变量,jit编译后的代码等
String str = new String("hello TZ");
5.构造器能否重写
不可以,构造器不能被继承,专用
6.string和StringBuilder string Buffer的区别
String其实是一个常量,只能可读字符串,引用的字符串内容不可改变的
Str ="aaa", str2 = "abc" str+=str2;(自行了解)
StringBuffer声明独像可以直接修改
Stringbuilder方法和StringBuffer(synchronized线程安全)完全一样(线程安全问题只是在单线程使用,因为没有被同步代码块)
7.adbstract class(抽象类)和interface(接口)区别
共同点:都不能直接被实例化,都需要实现类全部实现
abstract class(抽象类)private默认 ,protext public
interface(接口):成员只能是public的
8.为什么需要接口?
主要由于java不能多继承(c++可以),我们可以多个接口
9.static 可不可以访问或者调用非静态方法 ?
不可以,静态只能访问静态成员
10java javascipt
java:面向对象的程序语言
javascript:就是脚本语言
11.ERROR Exception的区别
Error<系统错误,程序不能处理(有可能可以恢复,但很困难,内存溢出)
Exceptrion:异常,就是需要捕捉或需要程序进行异常处理.