单例模式和排序算法
Posted 程序人的生活
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式和排序算法相关的知识,希望对你有一定的参考价值。
int number = 1;
// 打印空格字符串
System.out.format("%" + (rows - i) * 2 + "s", "");
for (int j = 0; j <= i; j++) {
System.out.format("%4d", number);
number = number * (i - j) / (j + 1);
}
System.out.println();
}
运行的结果如下图所示:
冒泡排序算法
int[] numbers = new int[]{1,11,10,34,21,5,8,2,3,9,4};
int i,j;
for(i=0;i<numbers.length-1;i++)
{
for(j=0;j<numbers.length-1-i;j++)
{
if(numbers[j]>numbers[j+1])
{
int temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}
System.out.println("从小到大排序后的结果是:");
for(i=0;i<numbers.length;i++)
System.out.print(numbers[i]+" ");
重点介绍一下Java单例模式的几种实现。单例模式一般来说分为懒汉模式和饿汉模式,懒汉模式分为线程安全和线程不安全的实现方式。
饿汉模式:
public class Single {
// 私有构造方法
private Single(){}
// 新建对象
private static final Single single = new Single();
// 获取单例对象
public static Single getInstance(){
return single;
}
}
懒汉模式线程不安全
public class Single {
// 私有构造方法
private Single(){}
// 新建对象
private static final Single single = null;
// 获取单例对象
public static Single getInstance(){
if (single == null) {
return new Single();
}
return single;
}
}
懒汉模式线程安全通过加锁实现
public class Single {
// 私有构造方法
private Single(){}
// 新建对象
private static final Single single = null;
// 获取单例对象
public static Single getInstance(){
if (single == null) {
synchronized (Single.class) {
if (single == null) {
return new Single();
}
}
}
return single;
}
}
饿汉模式内部类实现线程安全
public class Single {
public static class SingleInstnce {
private static Single sing = new Single();
}
// 私有构造方法
private Single(){}
// 新建对象
private static final Single single = null;
// 获取单例对象
public static Single getInstance(){
return SingleInstnce.sing;
}
}
已上的分享内容是作为一名初级Java工程师必备的要求。多年的面试生涯中我也曾多次手写上述的代码。下一章节我想和大家聊一聊HashMap 探讨HashMap的底层原理。我们下期再见
以上是关于单例模式和排序算法的主要内容,如果未能解决你的问题,请参考以下文章