2019-10-6 70 0
2019-10-4 122 0
Java-编程

注:字符串索引从0开始字符串基本操作获取字符串长度方法:length()获取字符串中的第某个字符方法:charAt(intindex)获取某个字符串第一次出现位置的索引方法:indexOf(intch)获取某个字符串最后一次出现位置的索引方法:lastindexOf(intch)Stringstr="获取字符串的长度长";System.out.println(str.length());//长度System.out.println(str.charAt(0));//获取第一个字符System.out.println(str.indexOf("字"));//获取第一次出现位置的索引System.out.println(str.lastIndexOf("长"));//获取最后一次出现位置的索引//打印结果:9,获,2,8字符串的截取与分割字符串截取方法:substring(intbeginIndex)substring(intbeginIndex,intendIndex)Stringstr="一二三四五六七八九十";System.out.println(str.substring(1));//二到十System.out.println(str.substring(4,7));//五六七//参数后面一位开始截取,到第二个参数指定位置结束//字符串分割方法:split(Stringregex)Stringstr1="你们好-我叫甄雨锋-今年十七岁";String[]s=str1.split("-");//根据参数指定的符号,将字符串分割。for(inti=0;i<s.length;i++){System.out.println(s[i]);}//打印结果:你们好(换行)我叫甄雨锋(换行)今年十七岁字符串转换操作将字符串转换为字符数组方法:toCharArray()将字符串转换为大写,方法:toUpperCase()字符串的替换方法:replace()去除字符串两端空格方法:trim()//将字符串转换为字符数组方法:toCharArray()Stringstr="abcdef1234";char[]a=str.toCharArray();for(inti=0;i<a.length;i++){System.out.println(a[i]);}//打印结果:将这几个字符拆分为一个字,打印一个字换一行//将字符串转换为大写,方法:toUpperCase()System.out.println(str.toUpperCase());//打印结果:ABCDEF1234//字符串的替换方法:replace()System.out.println(str.replace("1234","5678"));//打印结果:abcdef5678//去除字符串两端空格方法:trim()Stringstr1="去除两端空格操作方法";System.out.println(str1.trim());//打印结果:将两端的空格去掉了字符串的判断操作这些方法都是boolean(布尔)类型的,只能返回true或者false判断字符串是否为某某开头方法:startsWith()判断字符串是否为某某结尾方法:endsWith()判断字符串中是否包含某字符方法:contains()判断字符串是否为空方法:isEmpty()判断字符串是否相等方法:equals()Strings1="字符串s-ont";Strings2="字符串s-two";//判断字符串是否为某某开头方法:startsWith()System.out.println(s1.startsWith("字符串"));//返回true//判断字符串是否为某某结尾方法:endsWith()System.out.println(s1.endsWith("ont"));//返回true//判断字符串中是否包含某字符方法:contains()System.out.println(s1.contains("甄"));//返回false//判断字符串是否为空方法:isEmpty()System.out.println(s1.isEmpty());//返回false//判断字符串是否相等方法:equals()System.out.println(s1.equals(s2));//返回false字符串的替换和去除空格操作字符串去除两端空格方法:trim()字符串替换方法:replace()Strings1="zhen-yu-feng";//两端带有空格的字符串-s1//字符串去除两端空格方法:trim()System.out.println(s1.trim());//打印结果:zhen-yu-feng(两端不带有空格)//字符串替换方法:replace()System.out.println(s1.replace("zhen","我叫甄"));//打印结果:我叫甄-yu-feng

2019-10-3 146 0
2019-10-2 128 0
Java-编程

synchronized作用<摘抄>:Synchronzied关键字的作用一个词概括就是:线程同步。它可以用来修改对象中的方法,将对象加锁。相当于不管哪一个线程(例如:A)运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者CD等),有的话要等正在使用这个方法的线程B(或者CD)运行完这个方法后再运行此线程A,没有的话,直接运行。文章来源:https://www.cnblogs.com/oracleDBA/archive/2010/05/22/1741642.html(有改动).错误代码:publicclassTest_02{publicstaticvoidmain(String[]args){TestDome1t4=newTestDome1();newThread(t4,"线程一").start();newThread(t4,"线程二").start();}}classTestDome1implementsRunnable{privateintnum=100;publicsynchronizedvoidrun(){while(true){if(num>0){System.out.println(Thread.currentThread().getName()+"正在出售第"+num--+"张票...");}else{break;}}}}创建了一个TestDome1的实例,引用为t4创建了两个匿名线程,在传参时写了t4,并命名为<线程一,线程二>,然后开启线程。开启线程后两个线程执行run()方法,可是run方法被synchronized修饰,然后假如线程一先抢到了cpu的执行权,所以线程一先进入run方法,然后this锁标志位变成0,而线程二获得执行权后,并不能进入run方法,所以线程二一直在处于阻塞状态。关于一个线程死执行:当线程一进入run方法后,便进入到了while循环,此时while是一个死循环,进入后便开始判断(if代码块),如若num(10)>0,便执行System.out.println(Thread.currentThread().getName()+"正在出售第"+num--+"张票...");由于run方法被同步监视器修饰,又由于while是个死循环,所以一直是线程一执行,当执行完后,if判断代码则不成立了(num值为0了,如果轮到线程二执行,那么它也执行不到什么内容),所以执行break;语句,跳出循环,此时进程就结束了。

2019-10-1 182 1
2019-9-20 37 0
2019-9-13 27 0
2019-9-8 51 2
2019-9-2 35 0

友情链接申请友链