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

 

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。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值