1.stringbufferåstringbuilderçåºå«?方法源d方法
2.用Java数组求演讲评分去掉一个最高分去掉一个最低分
3.tcp端口阻塞解决方法
stringbufferåstringbuilderçåºå«?
åºå«1ï¼çº¿ç¨å®å ¨StringBufferï¼çº¿ç¨å®å ¨ï¼StringBuilderï¼çº¿ç¨ä¸å®å ¨ãå 为StringBufferçææå ¬å¼æ¹æ³é½æ¯synchronized修饰çï¼èStringBuilder并没æStringBuilder修饰ã
StringBuffer代ç ç段ï¼
@Overridepublic synchronized StringBuffer append(String str) {
toStringCache = nullï¼
super.append(str)ï¼
return thisï¼
ï½
åºå«2ï¼ç¼å²åº
StringBuffer代ç ç段ï¼
private transient char toStringCacheï¼
@Override
public synchronized String toString() {
if (toStringCache == null) {
toStringCache = Arrays.copyOfRange(value, 0, count);
} return
new String(toStringCache, true)ï¼
ï½
StringBuilder代ç ç段ï¼
@Override
public String toString() {
// Create a copy, don't share the array
return new String(value, 0, count);
}
åºå«3ï¼æ§è½
æ¢ç¶StringBufferæ¯çº¿ç¨å®å ¨çï¼å®çææå ¬å¼æ¹æ³é½æ¯åæ¥çï¼StringBuilderæ¯æ²¡æ对æ¹æ³å éåæ¥çï¼æ以毫æ çé®ï¼StringBuilderçæ§è½è¦è¿å¤§äºStringBufferã
用Java数组求演讲评分去掉一个最高分去掉一个最低分
import java.util.Arrays;//导入Arrays包
public class MAX_MIN {
public static void main(String[] args) {
double[] a={ 5.2,6.7,5.8,6.9};//定义数组(评分)
Arrays.sort(a);//对数组(评分)进行排序
a=Arrays.copyOfRange(a, 1, a.length-1);//去掉最高分最低分
double sum = 0;//定义总分变量
//循环累加评分
for(int i=0;i<a.length;i++){
System.out.println(a[i]);//打印去掉最高分最低分后的新数
sum+=a[i];
}
System.out.println("平均分为"+sum/a.length);//打印平均分
}
}
//打印结果
5.8
6.7
平均分为6.
tcp端口阻塞解决方法
大家知道,tcp的方法源d方法读和写是阻塞的,即读的方法源d方法php小型项目源码时候不知道什么时候读完,写的方法源d方法时候不知道什么时候写完,因此线程就一直暂停在哪里,方法源d方法股票卖出指标源码一般tcp程序用在上位机下位机之间对吧!方法源d方法小杨指标源码下位机一些设备一般会发心跳报文给我们机器,方法源d方法假设为s发一次吧,方法源d方法当机器超过s没接收到数据,方法源d方法那么我们就要考虑把socket断开,方法源d方法因为不断开的方法源d方法话设备重新连接可能又会建立新的socket,这样如果设备反复断开连接的方法源d方法话,将产生大量的方法源d方法课件源码是什么socket,占用大量系统资源,方法源d方法这里我们用socket.setSoTimeout()方法解决read方法的方法源d方法盘找找 网站源码阻塞问题,同时设定一个标志位,在异常处理程序当中退出socket连接:
public void run(){
InputStream is = null
OutputStream os = null
int flag = 0
try {
socket.setSoTimeout() // 0.5秒就退出read()方法的阻塞
is = socket.getInputStream()
os = socket.getOutputStream()
} catch (Exception e2) {
e2.printStackTrace()
}
while (true) {
try {
// 读取数据
int readlen = is.read(buff)
if (readlen > 0) {
flag = 0
}
byte data[] = Arrays.copyOfRange(buff, 0, readlen)
resolveData(data)
} catch (IOException e) {
try {
flag++
if (flag == ) {
is.close()
os.close()
socket.close()
}
} catch (Exception e1) {
e1.printStackTrace()
}
}
}
}