整数反转java
给出一个 32 位的有符号整数,你须要将这个整数中每位上的数字进行反转。 示例 1:bash
输入: 123 输出: 321 示例 2:并发
输入: -123 输出: -321 示例 3:app
输入: 120 输出: 21post
public int reverse(int x) {
if (x > Integer.MAX_VALUE || x < Integer.MIN_VALUE){
return 0;
}
if (x == 0 ){
return 0;
}
boolean flag = x >= 0;
Long xL = new Long(x);
String xDataStr = new String(Math.abs(xL.longValue())+"");
char[] xData = xDataStr.toCharArray();
StringBuilder dataBuilder = new StringBuilder();
if (!flag){
dataBuilder.append("-");
}
for (int i=0 , total = xDataStr.length() ; i < total ; i++){
if (dataBuilder.toString().length() == 0 && xData[total - i - 1] == '0'){
continue;
}
dataBuilder.append(xData[total - i - 1]);
}
Long result = Long.parseLong(dataBuilder.toString());
if (result.longValue() > Integer.MAX_VALUE || result.longValue() < Integer.MIN_VALUE){
return 0;
}
return result.intValue();
}
复制代码
没有阅读ui
ThreadPoolExector的参数this
参数名称 | 说明 | 其余 |
---|---|---|
核心线程数 | 线程池核心线程数量,核心线程不会被回收,即便没有任务执行,也会保持空闲状态 | |
最大线程数 | 池容许最大的线程数,当线程数量达到corePoolSize,且workQueue队列塞满任务了以后,继续建立线程。 |
"Isn't this fun?" |
keepAliveTime 保持时间 | 超过corePoolSize以后的“临时线程”的存活时间 |
|
unit 保持时间 | keepAliveTime的单位 |
|
workQueue 阻塞队列大小 | 当前线程数超过corePoolSize时,新的任务会处在等待状态,并存在workQueue中,BlockingQueue是一个先进先出的阻塞式队列实现,底层实现会涉及Java并发的AQS机制 |
|
threadFactory | 建立线程的工厂类,一般咱们会自顶一个threadFactory设置线程的名称,这样咱们就能够知道线程是由哪一个工厂类建立的,能够快速定位 |
|
handler 拒绝策略 | 一、AbortPolicy:为线程池默认的拒绝策略,该策略直接抛异常处理二、DiscardOldestPolicy:丢弃队列中最老的任务三、CallerRunsPolicy:将任务分配给当前执行execute方法线程来处理四、DiscardOldestPolicy:丢弃队列中最老的任务 |
自定义拒绝策略,只须要实现RejectedExecutionHandler接口便可 |
java锁浅析: link.spa