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 147 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-13 28 0
2019-9-8 52 2
2019-9-1 48 0
Java-编程

this关键字this代表,该对象,对自身的引用;this关键字的作用:(1)如果存在同名的成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据;(2)在一个构造函数中可以调用另外一个构造函数初始化对象;this关键字要注意的事项:(1)存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(Java采取的是“就近原则”的机制访问的);(2)如果在一个方法中访问了一个变量,该变量只存在成员变量的情况下,那么Java编译器会在该变量的前面添加this关键字;this关键字调用构造方法要注意的事项:(1)this关键字调用其他的构造方法时,this关键字必须要位于构造函数中的第一个语句;(2)this关键字在构造方法中不能出现相互调用的情况,因为是一个死循环;super关键字super关键字代表了父类空间的引用;super关键字的作用:(1)子父类存在着同名的成员(包括变量和方法)时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员;用法:super.父类方法或变量(2)创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。详情看代码第7行和9行。classA{//A(){}A(intage){}}classBextendsA{B(){/*如果这里没有显式的添加super(),那么编译器会自动添加一个隐式的super()来初始化父类,*///super();/*如果父类定义了有参构造方法,而没有定义无参的,那么需要用户自己在子类构造方法中定义带实参的super*/super(17);}}(3)super关键字调用父类的构造函数时,该语句必须要是子类构造函数中的第一个语句。(4)super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。(里面还是可以写this.num=num,并不是说不能出现this)

2019-8-26 76 0