java算法有哪些,java十大经典算法

算法 0

Java数组去重复算法之HashMap

Java数组去重复算法之HashMap

Java数组去重复算法之HashMap。
利用HashMap数据结构的key值唯一性,也可以达到去重复的目的。这个相比双重循环算法来讲,更简单易懂,与直接set不同,这样也可以做一些特殊的逻辑处理。

【Java经典算法】  

【Java经典算法】  
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

源码:

public class exp2{
 public static void main(String args[]){
  int i=0;
  math mymath = new math();
  for(i=100;i<=999;i++)
   if(mymath.shuixianhua(i)==true)
   System.out.println(i);
 }
}
class math
{
 public int f(int x)
 {
  if(x==
|| x==2)
   return 1;
  else
   return f(x-1)+f(x-2);
 }
 public boolean iszhishu(int x)
 {
  for(int i=2;i<=x/2;i++)
   if (x % 2==
)
    return false;
  return true;
 }
 public boolean shuixianhua(int x)
 {
    int i=0,j=0,k=0;
    i=x / 100;
    j=(x % 100) /10;
    k=x % 10;
    if(x==i*i*i+j*j*j+k*k*k)
     return true;
    else
     return false;
    
 }
}

欢迎关注@猿码天地 一个在互联网打拼的工具人、Java研究猿、程序员日常工作生活分享官

关于Java垃圾回收算法的选择

关于Java垃圾回收算法的选择

关于Java垃圾回收算法的选择。G1不总是最优的选择,不同的GC算法各有长处。

我之前维护过一个Java程序,从上游一个表里接收日志,处理之后发送给下游,日志量大,单条日志占用存储也很大。

随着日志字段不断增加,Java程序处理不过来了,日志不断堆积,堆积过多会导致卡住(与上游的日志表设计有关)。由于这个程序不是核心模块,只有5台机器,每台机器几十个CPU核,内存几十
G,无法申请到更多的机器了。只能想办法优化一下程序性能。

当时经过定位发现性能瓶颈在于GC。刚开始我对于GC算法没有太多了解,盲目地相信G1,但是将GC算法从CMS切到G1之后并没有改善。后来经过查阅文献发现,吞吐率最高的GC算法是parallel GC。切换到parallel GC之后,5台机器就能够赶上日志的生产速度了。

为什么呢?因为G1和CMS的优化,其实都是在尽量缩短 the world的时间,让程序的响应速度不至于太慢,这就需要尽量地让GC线程和业务线程并发执行,而并发执行会带来大量的上下文切换开销。对于我的应用场景来说,响应速度并不是关键,吞吐率才是关键,parallel GC最适合这种场景,因为parallel GC并不关注 the world的时间有多长,它在执行垃圾回收任务时,把CPU专注投入到垃圾回收中。

我想,对于很多离线的大数据处理任务,其实使用parallel GC就挺合适,不过当时我看了一下,公司的大数据平台默认使用的还是CMS。

标签: #抑制剂 #有哪些 #设计公司 #射击游戏 #技术 #品牌 #主板 #关键字