java基础11

同步代码块对于锁的操作是隐式的。

jdk1.5以后将同步锁封装成了对象,并将操作锁的隐式方式定义到了该对象(Lock接口)中,将隐式动作变成了显示动作。

Lock接口:出现替代了同步代码块或者同步函数,将同步的隐式所操作变成显示锁操作,同时更为灵活,可以一个锁上加多组监视器。lock():获取锁     unlock():释放锁,通常需要定义在finally代码块中。

Condition接口: 出现代替了Object中的wait,notify, notifyAll方法,将这些监视器方法单独进行了封装,变成Condition监视器对象。可以任意锁进行组合。await();   signal();   signalAll();

停止线程:

1.stop方法

2.run方法结束。线程的任务中都会有循环,控制住循环就可以停止线程任务。

控制循环可以使用标记的方式来控制。

interrupt():使线程从冻结状态强制清除,让线程具有cpu的执行资格,会发生InterruptedException,要处理 。

join():当前线程释放执行资格,该线程加入到当前线程中,执行该线程的任务,当该线程执行完毕以后,再执行原先的线程。

Thread.yield():释放线程执行权。

常用API

String类:字符串是一个特殊的对象。

String s  = "abc";//存在于常量池中,如果之前不存在"abc",就创建,如果存在,就直接将引用覆盖变量。

String s = new String("abc");//先看常量池中,是否存在该对象,不存在创建,后拿到该应用,在堆内存中创建String对象,并将该对象的引用赋给变量。

String类相关方法

获取字符串的长度:int length();

根据位置获取字符:char charAt(int index);

根据字符返回在字符串中第一次出现处的索引:int indexOf(int ch);    int indexOf(int ch, int fromIndex);   int indexOf(String str);                int indexOf(String str, int fromIndex);   int LastIndexOf(int ch);    int LastIndexOf(int ch, int fromIndex);   int LastIndexOf(String str);          int LastIndexOf(String str, int fromIndex);

获取字符串中的一部分:String substring(int beginIndex, int endIndex);//包含起始,不包含结束。

将字符串切割成字符数组:String[] split(String regex);

将字符串转换成字符数组:char[] toCharArray();

将字符串转换成字节数组:byte[] getBytes();

将字符串中的字母转换成大小写:String toUpperCase();   String toLowerCase();

将字符串中的内容进行替换:String replace(char oldch, char newch);   String replace(String oldch, String newch);

将字符串两端的空格去掉:String trim();

将字符串进行连接:String concat(String str);

判断两个字符串是否相同:boolean equals(Object obj);   boolean equalsIgnoreCase(String str);

字符串是否包含指定字符串:boolean contains(String str);

比较两个字符串的大小:int compareTo(String str);

String intern()://对字符串中的池进行操作。

StringBuffer类:就是字符串缓冲区,用于存储数据的容器。

特点:长度可变,可存储不同类型的数据,最终要转换成字符串使用,可以对字符串修改(初始默认长度为16)

void append(Object obj);//向容器中添加数据。

void insert(int index, Object obj);//向指定位置插入数据。

StringBuffer delete(int start, int end);//删除,包含头,不包含尾部。

StringBuffer deleteCharAt(int index);//删除指定索引的数据。

char charAt(int index);//查找指定索引的数据

void setCharAt(int index, char ch);//将指定索引下的数据替换。

void setLength();//设置容器的长度。

jdk1.5以后出现了一个与StringBuffer功能相同的类,它是StringBuilder,

StringBuffer线程同步,StringBuilder线程不同步。

StringBuilder为解决单线程效率低的问题。

jdk的升级:1.简化书写,2.提高效率,3.增加代码安全性。

基本数据类型对象包装类:

为了方便操作基本数据类型值,将其封装成了对象,在对象中封装了属性和行为丰富了该数据的操作。用于描述该对象的类就成为基本数据类型包装类。

基本数据类型--->字符串:1.基本数据类型+“”      2.用String类型的静态方法valueOf(基本数据类型)

字符串--->基本数据类型:1.使用包装类中的静态方法。xxx parseXxx("xxx类型的字符串");2.将包装类对象转换成基本数据类型:Integer a = new Integer("123");    int b = a.intValue();

十进制--->其他进制:toBineryString(int);      toOctalString(int);     toHexString(int);

其他进制--->十进制:parseInt(String, int radix);

Integer i = 4;//jdk1.5以后,自动装箱

Integer x  = 128;//jdk1.5以后,如果数据可以存放在一个字节一内,数据可以被共享。

集合类

集合类的由来:对象用于封装特有数据,对想多了需要存储,如果对象个数不确定,就是用集合容器进行存储。

集合特点:1.用于存储对象的容器,2.集合的长度是可变的。3.集合中不可以存储基本数据类型值。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值