您的位置:首页 > 编程语言 > Java开发

java基础视频25days(毕老师)学习日志(day11、day12、day13)

2012-03-27 16:14 281 查看
 

day11
★01 多线程;

进程:是一个正在执行中的程序。

      每一个进程执行都有一个执行顺序。该顺序是一个执行路径。

     或者叫一个控制单元。

线程:就是进程中的一个独立的控制单元

      线程在控制着进程的执行。

一个进程中至少有一个线程。

java的编译、运行进程。

java VM  启动的时候会有一个进程java.exe

而且这个线程运行的代码存在于

★02

异常:Exception

线程:Thread

面试考点:

start是调用的底层,让控制单元去执行的一个动作。

rund 的功能仅仅是封装线程要运行的代码。

★05

线程被创建:

new thread  或创建thread的子类。

sleep

wait()

notify();

stop();  消亡

run方法结束。

没有执行资格的,冻结状态。(冻结分两:睡眠,等待)

有执行资格的,临时状态

运行状态,有资格,又有执行权的状态。

★06

父类描述完了一个私有的name,并通过set get方法,构造函数对它进行访问。

Thread.currentThread

this.getName

★07

让四个对象共享100张票。

runnable  可运行的。

真正创建线程,是Thread或Thread子类对象。

EditPlus  快速复制上一行的代码到下一行。ctrl+J

调用的是Thread类中run方法。该方法中没有卖票代码。

在创建线程对象时,就要明确要运行什么代码。

面试:

继承和实现方法开启线程的区别是?

★09

★11 12 13 14

★15

同步的弊端:

死锁;此现象产生后,程序不动。

同步中嵌套同步,而锁却不同。

面试:请写一个死锁程序。

这个程序要作掌握。

day12
★01 多线程间的通信

单例:操作同一个资源。

静态,不建议使用,清不掉,变成对象还可以清理掉。

加了同步后还不安全,想前提。

★03 等待唤醒机制。

notifyAll();全部唤醒。

wait();

notify();

用在同步当中。

将wait notify 操作线程的方法定义在了object当中,因为,锁是任意对象,不写r也可以,任意对象可以调用的方法,定义在上帝里面。

只有同步才会有锁,

★04 代码优化

★05生产消费程序;

★06

jdk1.4 1.5(5.0)

6.0  7.0

private Lock lock = new ReentrantLock();

private Condition con = lock.newCondition();

lock.lock();

finally

lock.unlock();

private boolean flag = false;

private int count=1;

private String name;\

conditon.await();

condition.signal();

★07 停止线程。

Interrupted  将处于冻结状态的线程,强制回复到运行状态中来,只有回复到运行状态,才可继续读标记。

★08

★09join  方法

day13
★01 String 类

Thread  Runnable 接口

public final class String

不能有子类。

String s = new String();

Sring s1="";

是一样的。

字符串其实在内存里面有个常量池,存放abc这样的字符,存在数组当中。拼成一个新的字符串对象。

字符串的比较有自己的独特方式(equals)

★02

静态区,常量池,方法区

拒绝回答的sop是怎么来的?为什么我的代码运行不了。

boolean startsWith(str);

boolean endsWith(str);

boolean isEmpty():原理就是判断长度是否为0,为0则true

boolean contains(str):判断字符串是否包含。

★04 常见功能,切割和替换。

如果要替换的字符不存在,返回的还是原串。

★05 转换

1  ——49

sop(s1.compareTo(s2));  0  整数,负数。

全变小写,再进行字符串的比较。

★06 

while(s.charAt(pos)=='-')

 pos++;

int x = s.length()-1;

while(s.charAt(x)=='-')

 x--;

★08

获取一个字符串在另一个字符串中的个数:

&:以该字符串为分界标,将另一个字符串分为若干数组,统计数组个数可得?为什么不行?

&indexOf,如何利用手册快速查找某一个方法的使用规范?

字段摘要

构造方法摘要

方法摘要

?打印出indexOf(key)的值。

★10

方法调用链

方法返回的还是本类对象,可以继续调用本类方法。

StringBuffer sb = new StringBuffer("abcde")

sb.replace(1,4,"java");

sb.setCharAt(3,'k');

★12  StringBuilder

多线程用 StringBuffer

单线程用 StringBuilder

java升级的三个因素:

提高效率

简化书写

提高安全性

★13

Integer i = new Integer("123);

int num = i.intValue();

★14

Integer 特性:

-128——127   byte

如果在此范围内,则不会重新开辟内存空间。如果是128,则重新开辟空间,指向了不同对象,所以==比较结果为false。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息