2018.7.20 编程题: 写一个Singleton出来。

编程题: 写一个Singleton出来。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:

第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
    private Singleton(){}
    //在自己内部定义自己一个实例,是不是很奇怪?
    //注意这是private 只供内部调用
    private static Singleton instance = new Singleton();
    //这里提供了一个供外部访问本class的静态方法,可以直接访问
    public static Singleton getInstance() {
        return instance;
    }
}

第二种形式:

public class Singleton {
    private static Singleton instance = null;
    public static synchronized Singleton getInstance() {
    //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
    //使用时生成实例,提高了效率!
         if (instance==null)
              instance=new Singleton();
                   return instance;
      }
}

其他形式:

     定义一个类,它的构造函数为private的,所有方法为static的。
    一般认为第一种形式要更加安全些

原文地址:https://www.cnblogs.com/qichunlin/p/9339176.html

时间: 2024-09-30 06:36:57

2018.7.20 编程题: 写一个Singleton出来。的相关文章

2018阿里巴巴在线编程题

在其他博客上看到一道 "2018阿里巴巴在线编程题" 我记得题目大概是这样的:输入数据n(n>=6)代表n个数,从0-9任意输入n个数,然后在n个数选出6个数xx-xx-xx表示 时:分:秒,求出最小时间和最大时间,若时间无效,则输出时间无效,例如: 输入: 6 6 5 4 3 2 1 输出: 123456 235641 输入: 6 9 9 9 9 9 9 输出: 时间无效 看着有点意思,就自己做了一遍,输出格式自己美化了一下,没有严格按照题目要求.代码如下: def find_

盛大编程题 输入一个深度树 输出他的josn格式(ps 第一次写 写的不好请不要见怪,另外就是有错的地方,不合理的地方请指出。)

话不多说上源码. import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Test1 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); List<Integer> index=new ArrayList<>(); List<String> st

2018 科大讯飞笔试编程题

第一题:争吵问题 有一个队列,每个人要么朝左边(L表示),要么朝右边(R表示),因为每个人都讨厌其他任何人,只要两人面对面就会发生真吵.真吵结果是胜者留在队列中,败的人移除队中. 如果序列中有多对争吵,可以任选一对,胜者留在队中,败者出局,求最后队列最少人数是多少. 例子: LRLRLRR 输出:3 LRR. 思路:这道题找到方法了就很简单,依据题意 如果要真吵就只有  RL (两人对面)这种情况  ,其他  LL   RR   LR 都不会发生真吵. 所以我们只要从左边向右找到第一个R,从右边

写一个singleton

第一种:饱汉模式 public class SingleTon { private SingleTon(){ } //实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间 private final static SingleTon instance = new SingleTon(); public static SingleTon getInstance(){ return instance; } } 第二种:饥汉模式 public class SingleTon { privat

【filter 页面重定向循环】写一个过滤器造成的页面重定向循环的问题

今天做一个过滤器,碰上页面重定向循环的情况: 浏览器的访问路径是:http://192.168.16.104:8080/biologyInfo/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login/login1.htmls 过滤器的类如下: 1 package com.agen.util;

2018 校招在线编程 20题-01

1. 最大乘积(拼多多) 输入 3 4 1 2 输出 24 解题思路: 定义五个数,一个最大,一个次大,一个第三大,一个最小,一个次小.只要找到这五个数,问题就解决了.因为最大乘积只可能是最大*(次大*第三大) 或者是 最大*(最小*次小).时间复杂度O(n),空间复杂度O(1).PS:这道题输入有问题,题目给的样例是直接给了一组数,而此时用例先给了一个数的个数n,然后再给了一组数. 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 in

编程题:编写一个函数string_copy()完成strcpy()的作用,并验证。

#include<stdio.h> void string_copy(char *s1,char *s2) {   for(;*s2!='\0';s1++,s2++) *s1=*s2; *s1='\0'; } void main() { char str1[20],str2[]="I like C"; char *p1=str1,*p2=str2; string_copy(p1,p2); printf("str1:%s\t str2:%s\n",str1

编程题:为了展示文件包含功能,输入一个字符串,输出其长度。

1.c源代码如下: #include<stdio.h> #include"2.c" void main() { char string[20]; scanf("%s",string);         /*整个程序的功能:输入一个字符串,输出其长度*/ printf("There are %d characters.\n",string_len(string)); } 2.c源代码如下: int string_len(char str

速度爆破-shiyanbar的一个编程题

(一)出处: shiyanbar中的一个ctf练习题,题目大概意思是:网页上给定一个sha1的hash值,这个hash值是1-100000中随机的一个整数先通过'md5'hash一次,然后再通过'sha1'hash一次.如果能在两秒之内得到这个值,再输入并提交则过关.题目链接:http://ctf5.shiyanbar.com/ppc/sd.php . 截图下: (二).分析: 既然是编程题,当然得编程来完成,思路也很简单.笔者用的python. 1.要求要在两秒钟之内完成,相对来说,效率肯定要